summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/accessibility/contrast/default.nix23
-rw-r--r--pkgs/applications/accessibility/squeekboard/default.nix70
-rw-r--r--pkgs/applications/accessibility/svkbd/default.nix59
-rw-r--r--pkgs/applications/audio/MMA/default.nix3
-rw-r--r--pkgs/applications/audio/aacgain/default.nix4
-rw-r--r--pkgs/applications/audio/aj-snapshot/default.nix4
-rw-r--r--pkgs/applications/audio/amarok/default.nix21
-rw-r--r--pkgs/applications/audio/apple-music-electron/default.nix8
-rw-r--r--pkgs/applications/audio/ardour/5.nix1
-rw-r--r--pkgs/applications/audio/ardour/default.nix15
-rw-r--r--pkgs/applications/audio/ashuffle/default.nix4
-rw-r--r--pkgs/applications/audio/audacity/default.nix2
-rw-r--r--pkgs/applications/audio/bambootracker/default.nix9
-rw-r--r--pkgs/applications/audio/baudline/default.nix2
-rw-r--r--pkgs/applications/audio/bchoppr/default.nix4
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix4
-rw-r--r--pkgs/applications/audio/bschaffl/default.nix4
-rw-r--r--pkgs/applications/audio/bsequencer/default.nix4
-rw-r--r--pkgs/applications/audio/bshapr/default.nix4
-rw-r--r--pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--pkgs/applications/audio/callaudiod/default.nix4
-rw-r--r--pkgs/applications/audio/caudec/default.nix2
-rw-r--r--pkgs/applications/audio/cheesecutter/default.nix6
-rw-r--r--pkgs/applications/audio/clementine/default.nix8
-rw-r--r--pkgs/applications/audio/clerk/default.nix7
-rw-r--r--pkgs/applications/audio/csa/default.nix2
-rw-r--r--pkgs/applications/audio/csound/csound-qt/default.nix2
-rw-r--r--pkgs/applications/audio/deadbeef/wrapper.nix2
-rw-r--r--pkgs/applications/audio/denemo/default.nix4
-rw-r--r--pkgs/applications/audio/ebumeter/default.nix33
-rw-r--r--pkgs/applications/audio/ecasound/default.nix1
-rw-r--r--pkgs/applications/audio/espeak-ng/default.nix20
-rw-r--r--pkgs/applications/audio/espeak-ng/mbrola.patch22
-rw-r--r--pkgs/applications/audio/espeak/default.nix3
-rw-r--r--pkgs/applications/audio/espeak/edit.nix4
-rw-r--r--pkgs/applications/audio/faust/faust1.nix7
-rw-r--r--pkgs/applications/audio/faust/faust2.nix5
-rw-r--r--pkgs/applications/audio/faust/faust2jack.nix4
-rw-r--r--pkgs/applications/audio/faust/faust2jaqt.nix4
-rw-r--r--pkgs/applications/audio/freac/default.nix38
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/gnome-podcasts/default.nix29
-rw-r--r--pkgs/applications/audio/google-musicmanager/default.nix77
-rw-r--r--pkgs/applications/audio/google-play-music-desktop-player/default.nix6
-rw-r--r--pkgs/applications/audio/gtklick/default.nix6
-rw-r--r--pkgs/applications/audio/helio-workstation/default.nix4
-rw-r--r--pkgs/applications/audio/ingen/default.nix23
-rw-r--r--pkgs/applications/audio/jalv/default.nix4
-rw-r--r--pkgs/applications/audio/jamin/default.nix4
-rw-r--r--pkgs/applications/audio/jamulus/default.nix10
-rw-r--r--pkgs/applications/audio/jmusicbot/default.nix31
-rw-r--r--pkgs/applications/audio/keyfinder/default.nix2
-rw-r--r--pkgs/applications/audio/kmetronome/default.nix2
-rw-r--r--pkgs/applications/audio/lash/default.nix4
-rw-r--r--pkgs/applications/audio/lastfmsubmitd/default.nix4
-rw-r--r--pkgs/applications/audio/linuxband/default.nix4
-rw-r--r--pkgs/applications/audio/littlegptracker/default.nix4
-rw-r--r--pkgs/applications/audio/lollypop/default.nix4
-rw-r--r--pkgs/applications/audio/lsp-plugins/default.nix4
-rw-r--r--pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/CompBus/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix9
-rw-r--r--pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix2
-rw-r--r--pkgs/applications/audio/mbrola/default.nix39
-rw-r--r--pkgs/applications/audio/mda-lv2/default.nix4
-rw-r--r--pkgs/applications/audio/midi-visualizer/default.nix4
-rw-r--r--pkgs/applications/audio/mmtc/default.nix18
-rw-r--r--pkgs/applications/audio/mopidy/default.nix2
-rw-r--r--pkgs/applications/audio/mopidy/gmusic.nix29
-rw-r--r--pkgs/applications/audio/mopidy/local.nix13
-rw-r--r--pkgs/applications/audio/mopidy/mopidy.nix2
-rw-r--r--pkgs/applications/audio/mopidy/somafm.nix2
-rw-r--r--pkgs/applications/audio/mp3gain/default.nix3
-rw-r--r--pkgs/applications/audio/mpdevil/default.nix52
-rw-r--r--pkgs/applications/audio/mpg123/default.nix4
-rw-r--r--pkgs/applications/audio/musescore/darwin.nix2
-rw-r--r--pkgs/applications/audio/musescore/default.nix7
-rw-r--r--pkgs/applications/audio/ncmpc/default.nix4
-rw-r--r--pkgs/applications/audio/ncspot/bump-security-framework-crate.patch19
-rw-r--r--pkgs/applications/audio/ncspot/default.nix11
-rw-r--r--pkgs/applications/audio/netease-music-tui/default.nix1
-rw-r--r--pkgs/applications/audio/new-session-manager/default.nix4
-rw-r--r--pkgs/applications/audio/nootka/default.nix2
-rw-r--r--pkgs/applications/audio/nootka/unstable.nix2
-rw-r--r--pkgs/applications/audio/ocenaudio/default.nix5
-rw-r--r--pkgs/applications/audio/openmpt123/default.nix4
-rw-r--r--pkgs/applications/audio/oxefmsynth/default.nix43
-rw-r--r--pkgs/applications/audio/pd-plugins/helmholtz/default.nix3
-rw-r--r--pkgs/applications/audio/pd-plugins/puremapping/default.nix3
-rw-r--r--pkgs/applications/audio/pd-plugins/timbreid/default.nix3
-rw-r--r--pkgs/applications/audio/picard/default.nix5
-rw-r--r--pkgs/applications/audio/playbar2/default.nix2
-rw-r--r--pkgs/applications/audio/plexamp/default.nix7
-rw-r--r--pkgs/applications/audio/pragha/default.nix103
-rw-r--r--pkgs/applications/audio/projectm/default.nix4
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/pulseaudio-ctl/default.nix4
-rw-r--r--pkgs/applications/audio/pulseeffects/default.nix18
-rw-r--r--pkgs/applications/audio/puredata/wrapper.nix2
-rw-r--r--pkgs/applications/audio/qmidinet/default.nix4
-rw-r--r--pkgs/applications/audio/qmmp/default.nix4
-rw-r--r--pkgs/applications/audio/qsynth/default.nix4
-rw-r--r--pkgs/applications/audio/real_time_config_quick_scan/default.nix3
-rw-r--r--pkgs/applications/audio/reaper/default.nix4
-rw-r--r--pkgs/applications/audio/renoise/default.nix19
-rw-r--r--pkgs/applications/audio/rosegarden/default.nix4
-rw-r--r--pkgs/applications/audio/rubyripper/default.nix3
-rw-r--r--pkgs/applications/audio/samplv1/default.nix4
-rw-r--r--pkgs/applications/audio/seq66/default.nix2
-rw-r--r--pkgs/applications/audio/sfizz/default.nix37
-rw-r--r--pkgs/applications/audio/shortwave/default.nix27
-rw-r--r--pkgs/applications/audio/sonic-pi/default.nix4
-rw-r--r--pkgs/applications/audio/spectmorph/default.nix2
-rw-r--r--pkgs/applications/audio/spotify-qt/default.nix36
-rw-r--r--pkgs/applications/audio/spotify/default.nix15
-rw-r--r--pkgs/applications/audio/spotifyd/default.nix17
-rw-r--r--pkgs/applications/audio/strawberry/default.nix13
-rw-r--r--pkgs/applications/audio/sublime-music/default.nix27
-rw-r--r--pkgs/applications/audio/sunvox/default.nix4
-rw-r--r--pkgs/applications/audio/surge/default.nix7
-rw-r--r--pkgs/applications/audio/tetraproc/default.nix4
-rw-r--r--pkgs/applications/audio/tuijam/default.nix46
-rw-r--r--pkgs/applications/audio/vkeybd/default.nix3
-rw-r--r--pkgs/applications/backup/pika-backup/borg-path.patch13
-rw-r--r--pkgs/applications/backup/pika-backup/default.nix77
-rw-r--r--pkgs/applications/backup/vorta/default.nix4
-rw-r--r--pkgs/applications/blockchains/bitcoin-classic.nix2
-rw-r--r--pkgs/applications/blockchains/btcpayserver/default.nix6
-rw-r--r--pkgs/applications/blockchains/btcpayserver/deps.nix69
-rw-r--r--pkgs/applications/blockchains/clightning.nix4
-rw-r--r--pkgs/applications/blockchains/crypto-org-wallet.nix33
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--pkgs/applications/blockchains/go-ethereum.nix23
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix6
-rw-r--r--pkgs/applications/blockchains/lnd.nix6
-rw-r--r--pkgs/applications/blockchains/lndmanage.nix44
-rw-r--r--pkgs/applications/blockchains/monero-gui/default.nix8
-rw-r--r--pkgs/applications/blockchains/monero/default.nix2
-rw-r--r--pkgs/applications/blockchains/mycrypto/default.nix4
-rw-r--r--pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch13
-rw-r--r--pkgs/applications/blockchains/nano-wallet/default.nix26
-rw-r--r--pkgs/applications/blockchains/openethereum/default.nix16
-rw-r--r--pkgs/applications/blockchains/particl/particl-core.nix4
-rw-r--r--pkgs/applications/blockchains/polkadot/default.nix10
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix4
-rw-r--r--pkgs/applications/blockchains/zcash/default.nix32
-rw-r--r--pkgs/applications/display-managers/lightdm-mini-greeter/default.nix4
-rw-r--r--pkgs/applications/display-managers/lightdm/default.nix2
-rw-r--r--pkgs/applications/display-managers/lightdm/gtk-greeter.nix15
-rw-r--r--pkgs/applications/display-managers/sddm/default.nix8
-rw-r--r--pkgs/applications/editors/android-studio/common.nix4
-rw-r--r--pkgs/applications/editors/android-studio/default.nix16
-rw-r--r--pkgs/applications/editors/apostrophe/default.nix25
-rw-r--r--pkgs/applications/editors/atom/default.nix12
-rw-r--r--pkgs/applications/editors/atom/env.nix4
-rw-r--r--pkgs/applications/editors/bluefish/default.nix4
-rw-r--r--pkgs/applications/editors/bluej/default.nix2
-rw-r--r--pkgs/applications/editors/code-browser/default.nix3
-rw-r--r--pkgs/applications/editors/cudatext/default.nix11
-rw-r--r--pkgs/applications/editors/cudatext/deps.json32
-rw-r--r--pkgs/applications/editors/eclipse/default.nix2
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix16
-rw-r--r--pkgs/applications/editors/edit/default.nix32
-rw-r--r--pkgs/applications/editors/emacs-modes/elpa-generated.nix318
-rw-r--r--pkgs/applications/editors/emacs-modes/elpa-packages.nix7
-rw-r--r--pkgs/applications/editors/emacs-modes/manual-packages.nix92
-rw-r--r--pkgs/applications/editors/emacs-modes/melpa-packages.nix346
-rw-r--r--pkgs/applications/editors/emacs-modes/org-generated.nix12
-rw-r--r--pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json6640
-rw-r--r--pkgs/applications/editors/emacs/26.nix8
-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.nix16
-rw-r--r--pkgs/applications/editors/emacs/macport.nix7
-rw-r--r--pkgs/applications/editors/formiko/default.nix52
-rw-r--r--pkgs/applications/editors/fte/default.nix3
-rw-r--r--pkgs/applications/editors/ghostwriter/default.nix4
-rw-r--r--pkgs/applications/editors/glow/default.nix6
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix1
-rw-r--r--pkgs/applications/editors/gophernotes/default.nix6
-rw-r--r--pkgs/applications/editors/greenfoot/default.nix2
-rw-r--r--pkgs/applications/editors/hecate/default.nix1
-rw-r--r--pkgs/applications/editors/jed/default.nix2
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix53
-rwxr-xr-xpkgs/applications/editors/jetbrains/update.pl2
-rw-r--r--pkgs/applications/editors/jucipp/default.nix3
-rw-r--r--pkgs/applications/editors/jupp/default.nix30
-rw-r--r--pkgs/applications/editors/kakoune/plugins/aliases.nix46
-rw-r--r--pkgs/applications/editors/kakoune/plugins/build-kakoune-plugin.nix33
-rw-r--r--pkgs/applications/editors/kakoune/plugins/case.kak.nix27
-rw-r--r--pkgs/applications/editors/kakoune/plugins/default.nix38
-rw-r--r--pkgs/applications/editors/kakoune/plugins/deprecated.json1
-rw-r--r--pkgs/applications/editors/kakoune/plugins/generated.nix211
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-ansi.nix32
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix24
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-buffers.nix24
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-fzf.nix39
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-plumb.nix31
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-powerline.nix29
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-prelude.nix25
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix24
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names17
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kakoune-utils.nix4
-rw-r--r--pkgs/applications/editors/kakoune/plugins/openscad.kak.nix25
-rw-r--r--pkgs/applications/editors/kakoune/plugins/overrides.nix161
-rw-r--r--pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix29
-rwxr-xr-xpkgs/applications/editors/kakoune/plugins/update.py91
-rw-r--r--pkgs/applications/editors/kakoune/wrapper.nix2
-rw-r--r--pkgs/applications/editors/kdevelop5/kdev-php.nix2
-rw-r--r--pkgs/applications/editors/kdevelop5/kdev-python.nix2
-rw-r--r--pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix2
-rw-r--r--pkgs/applications/editors/kodestudio/default.nix3
-rw-r--r--pkgs/applications/editors/manuskript/default.nix2
-rw-r--r--pkgs/applications/editors/monodevelop/default.nix4
-rw-r--r--pkgs/applications/editors/music/tuxguitar/default.nix2
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/gnvim/default.nix10
-rw-r--r--pkgs/applications/editors/neovim/neovim-qt.nix43
-rw-r--r--pkgs/applications/editors/neovim/qt.nix107
-rw-r--r--pkgs/applications/editors/neovim/wrapper.nix2
-rw-r--r--pkgs/applications/editors/netbeans/default.nix7
-rw-r--r--pkgs/applications/editors/poke/default.nix75
-rw-r--r--pkgs/applications/editors/qxmledit/default.nix2
-rw-r--r--pkgs/applications/editors/retext/default.nix4
-rw-r--r--pkgs/applications/editors/sigil/default.nix4
-rw-r--r--pkgs/applications/editors/spacevim/default.nix20
-rw-r--r--pkgs/applications/editors/spacevim/helptags.patch2
-rw-r--r--pkgs/applications/editors/standardnotes/default.nix2
-rw-r--r--pkgs/applications/editors/supertux-editor/default.nix4
-rw-r--r--pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--pkgs/applications/editors/textadept/10/default.nix4
-rw-r--r--pkgs/applications/editors/textadept/11/default.nix16
-rw-r--r--pkgs/applications/editors/textadept/11/deps.nix24
-rw-r--r--pkgs/applications/editors/texworks/default.nix14
-rw-r--r--pkgs/applications/editors/tiled/default.nix4
-rw-r--r--pkgs/applications/editors/typora/default.nix4
-rw-r--r--pkgs/applications/editors/vim/common.nix4
-rw-r--r--pkgs/applications/editors/vim/configurable.nix20
-rw-r--r--pkgs/applications/editors/vim/macvim-configurable.nix2
-rw-r--r--pkgs/applications/editors/viw/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/generic.nix10
-rwxr-xr-xpkgs/applications/editors/vscode/update-vscode.sh8
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix10
-rw-r--r--pkgs/applications/editors/vscode/with-extensions.nix3
-rw-r--r--pkgs/applications/editors/xed-editor/default.nix71
-rw-r--r--pkgs/applications/editors/zile/default.nix90
-rw-r--r--pkgs/applications/gis/openorienteering-mapper/default.nix25
-rw-r--r--pkgs/applications/gis/saga/default.nix8
-rw-r--r--pkgs/applications/graphics/ImageMagick/6.x.nix (renamed from pkgs/applications/graphics/ImageMagick/default.nix)8
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix5
-rw-r--r--pkgs/applications/graphics/avocode/default.nix8
-rw-r--r--pkgs/applications/graphics/batik/default.nix4
-rw-r--r--pkgs/applications/graphics/blockbench-electron/default.nix48
-rw-r--r--pkgs/applications/graphics/dia/default.nix4
-rw-r--r--pkgs/applications/graphics/drawio/default.nix15
-rw-r--r--pkgs/applications/graphics/eddy/default.nix47
-rw-r--r--pkgs/applications/graphics/fondo/default.nix4
-rw-r--r--pkgs/applications/graphics/freecad/default.nix140
-rw-r--r--pkgs/applications/graphics/gimp/default.nix7
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix23
-rw-r--r--pkgs/applications/graphics/gimp/wrapper.nix2
-rw-r--r--pkgs/applications/graphics/glimpse/wrapper.nix2
-rw-r--r--pkgs/applications/graphics/graphicsmagick/default.nix1
-rw-r--r--pkgs/applications/graphics/gscan2pdf/default.nix24
-rw-r--r--pkgs/applications/graphics/gthumb/default.nix1
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix13
-rw-r--r--pkgs/applications/graphics/imagej/default.nix2
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix7
-rw-r--r--pkgs/applications/graphics/inkscape/with-extensions.nix2
-rw-r--r--pkgs/applications/graphics/leocad/default.nix42
-rw-r--r--pkgs/applications/graphics/lightburn/default.nix4
-rw-r--r--pkgs/applications/graphics/megapixels/default.nix13
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix28
-rw-r--r--pkgs/applications/graphics/monado/default.nix16
-rw-r--r--pkgs/applications/graphics/openimageio/2.x.nix14
-rw-r--r--pkgs/applications/graphics/openimageio/2539_backport.patch31
-rw-r--r--pkgs/applications/graphics/openimageio/default.nix5
-rw-r--r--pkgs/applications/graphics/openscad/default.nix9
-rw-r--r--pkgs/applications/graphics/opentoonz/default.nix4
-rw-r--r--pkgs/applications/graphics/photoflare/default.nix8
-rw-r--r--pkgs/applications/graphics/rapid-photo-downloader/default.nix2
-rw-r--r--pkgs/applications/graphics/renderdoc/default.nix4
-rw-r--r--pkgs/applications/graphics/sane/backends/airscan/default.nix10
-rw-r--r--pkgs/applications/graphics/sane/backends/default.nix109
-rw-r--r--pkgs/applications/graphics/sane/backends/generic.nix95
-rw-r--r--pkgs/applications/graphics/sane/backends/git.nix10
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix2
-rw-r--r--pkgs/applications/graphics/solvespace/default.nix22
-rw-r--r--pkgs/applications/graphics/tesseract/wrapper.nix2
-rw-r--r--pkgs/applications/graphics/unigine-valley/default.nix2
-rw-r--r--pkgs/applications/graphics/yed/default.nix4
-rw-r--r--pkgs/applications/graphics/zgrviewer/default.nix3
-rw-r--r--pkgs/applications/kde/akonadi-contacts.nix8
-rw-r--r--pkgs/applications/kde/akonadi/0001-akonadi-paths.patch74
-rw-r--r--pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch10
-rw-r--r--pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch26
-rw-r--r--pkgs/applications/kde/akonadi/default.nix14
-rw-r--r--pkgs/applications/kde/ark/default.nix39
-rw-r--r--pkgs/applications/kde/calendarsupport.nix11
-rw-r--r--pkgs/applications/kde/default.nix4
-rw-r--r--pkgs/applications/kde/dolphin.nix3
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/ffmpegthumbs.nix4
-rw-r--r--pkgs/applications/kde/filelight.nix3
-rw-r--r--pkgs/applications/kde/incidenceeditor.nix4
-rw-r--r--pkgs/applications/kde/kaddressbook.nix11
-rw-r--r--pkgs/applications/kde/kalarm.nix18
-rw-r--r--pkgs/applications/kde/kamoso.nix41
-rw-r--r--pkgs/applications/kde/kcachegrind.nix4
-rw-r--r--pkgs/applications/kde/kdebugsettings.nix5
-rw-r--r--pkgs/applications/kde/kdenetwork-filesharing.nix5
-rw-r--r--pkgs/applications/kde/kdenlive/default.nix (renamed from pkgs/applications/kde/kdenlive.nix)0
-rw-r--r--pkgs/applications/kde/kdenlive/ffmpeg-path.patch (renamed from pkgs/applications/kde/ffmpeg-path.patch)0
-rw-r--r--pkgs/applications/kde/kdenlive/mlt-path.patch (renamed from pkgs/applications/kde/mlt-path.patch)0
-rw-r--r--pkgs/applications/kde/kdepim-addons.nix4
-rw-r--r--pkgs/applications/kde/kdepim-apps-libs/default.nix20
-rw-r--r--pkgs/applications/kde/kmail.nix4
-rw-r--r--pkgs/applications/kde/kompare.nix10
-rw-r--r--pkgs/applications/kde/konqueror.nix3
-rw-r--r--pkgs/applications/kde/kontact.nix4
-rw-r--r--pkgs/applications/kde/korganizer.nix4
-rw-r--r--pkgs/applications/kde/kpat.nix2
-rw-r--r--pkgs/applications/kde/krdc.nix3
-rw-r--r--pkgs/applications/kde/libksane.nix2
-rw-r--r--pkgs/applications/kde/messagelib.nix4
-rw-r--r--pkgs/applications/kde/minuet.nix4
-rw-r--r--pkgs/applications/kde/srcs.nix1808
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix70
-rwxr-xr-xpkgs/applications/misc/1password-gui/update.sh5
-rw-r--r--pkgs/applications/misc/9menu/default.nix32
-rw-r--r--pkgs/applications/misc/almanah/default.nix4
-rw-r--r--pkgs/applications/misc/ape/default.nix3
-rw-r--r--pkgs/applications/misc/archivy/default.nix23
-rw-r--r--pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch24
-rw-r--r--pkgs/applications/misc/audio/sox/default.nix2
-rw-r--r--pkgs/applications/misc/audio/soxr/arm64-check.patch79
-rw-r--r--pkgs/applications/misc/audio/soxr/default.nix5
-rw-r--r--pkgs/applications/misc/audio/wavesurfer/default.nix3
-rw-r--r--pkgs/applications/misc/authy/default.nix110
-rw-r--r--pkgs/applications/misc/avrdudess/default.nix2
-rw-r--r--pkgs/applications/misc/azuredatastudio/default.nix4
-rw-r--r--pkgs/applications/misc/bashSnippets/default.nix12
-rw-r--r--pkgs/applications/misc/bemenu/default.nix6
-rw-r--r--pkgs/applications/misc/birdtray/default.nix6
-rw-r--r--pkgs/applications/misc/blender/darwin.patch23
-rw-r--r--pkgs/applications/misc/blender/default.nix19
-rw-r--r--pkgs/applications/misc/bottles/default.nix77
-rw-r--r--pkgs/applications/misc/caerbannog/default.nix59
-rw-r--r--pkgs/applications/misc/calibre/default.nix7
-rw-r--r--pkgs/applications/misc/cataract/build.nix4
-rw-r--r--pkgs/applications/misc/cherrytree/default.nix6
-rw-r--r--pkgs/applications/misc/cli-visualizer/default.nix4
-rw-r--r--pkgs/applications/misc/clight/clightd.nix30
-rw-r--r--pkgs/applications/misc/clipit/default.nix2
-rw-r--r--pkgs/applications/misc/clipmenu/default.nix3
-rw-r--r--pkgs/applications/misc/cointop/default.nix4
-rw-r--r--pkgs/applications/misc/coolreader/default.nix4
-rw-r--r--pkgs/applications/misc/cpu-x/default.nix4
-rw-r--r--pkgs/applications/misc/crow-translate/default.nix4
-rw-r--r--pkgs/applications/misc/cura/plugins.nix6
-rw-r--r--pkgs/applications/misc/curabydagoma/default.nix10
-rw-r--r--pkgs/applications/misc/curaengine/stable.nix4
-rw-r--r--pkgs/applications/misc/dasel/default.nix4
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix74
-rw-r--r--pkgs/applications/misc/deadd-notification-center/default.nix33
-rw-r--r--pkgs/applications/misc/ding/default.nix3
-rw-r--r--pkgs/applications/misc/dmensamenu/default.nix4
-rw-r--r--pkgs/applications/misc/dockbarx/default.nix6
-rw-r--r--pkgs/applications/misc/dotfiles/default.nix10
-rw-r--r--pkgs/applications/misc/dunst/default.nix15
-rw-r--r--pkgs/applications/misc/electrum/default.nix15
-rw-r--r--pkgs/applications/misc/extract_url/default.nix2
-rw-r--r--pkgs/applications/misc/far2l/default.nix2
-rw-r--r--pkgs/applications/misc/flavours/default.nix6
-rw-r--r--pkgs/applications/misc/foxtrotgps/default.nix16
-rw-r--r--pkgs/applications/misc/foxtrotgps/gps-status-fix.patch14
-rw-r--r--pkgs/applications/misc/free42/default.nix4
-rw-r--r--pkgs/applications/misc/freeplane/default.nix118
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/gammu/default.nix6
-rw-r--r--pkgs/applications/misc/gcalcli/default.nix2
-rw-r--r--pkgs/applications/misc/gcstar/default.nix2
-rw-r--r--pkgs/applications/misc/gnome-passwordsafe/default.nix29
-rw-r--r--pkgs/applications/misc/go-org/default.nix26
-rw-r--r--pkgs/applications/misc/golden-cheetah/default.nix4
-rw-r--r--pkgs/applications/misc/gollum/Gemfile.lock42
-rw-r--r--pkgs/applications/misc/gollum/default.nix2
-rw-r--r--pkgs/applications/misc/gollum/gemset.nix77
-rw-r--r--pkgs/applications/misc/gphoto2/default.nix4
-rw-r--r--pkgs/applications/misc/gpsbabel/default.nix2
-rw-r--r--pkgs/applications/misc/gpsbabel/gui.nix2
-rw-r--r--pkgs/applications/misc/gpscorrelate/default.nix4
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/gremlin-console/default.nix8
-rw-r--r--pkgs/applications/misc/gsimplecal/default.nix4
-rw-r--r--pkgs/applications/misc/gxkb/default.nix29
-rw-r--r--pkgs/applications/misc/hugo/default.nix19
-rw-r--r--pkgs/applications/misc/icesl/default.nix2
-rw-r--r--pkgs/applications/misc/index-fm/default.nix52
-rw-r--r--pkgs/applications/misc/jbidwatcher/default.nix47
-rw-r--r--pkgs/applications/misc/jekyll/basic/Gemfile.lock24
-rw-r--r--pkgs/applications/misc/jekyll/basic/gemset.nix52
-rw-r--r--pkgs/applications/misc/jekyll/full/Gemfile.lock38
-rw-r--r--pkgs/applications/misc/jekyll/full/gemset.nix88
-rw-r--r--pkgs/applications/misc/josm/default.nix13
-rw-r--r--pkgs/applications/misc/jrnl/default.nix4
-rw-r--r--pkgs/applications/misc/kdbplus/default.nix2
-rw-r--r--pkgs/applications/misc/keepass/default.nix3
-rw-r--r--pkgs/applications/misc/keepassx/community.nix4
-rw-r--r--pkgs/applications/misc/keeweb/default.nix19
-rw-r--r--pkgs/applications/misc/khard/default.nix7
-rw-r--r--pkgs/applications/misc/kiwix/default.nix123
-rw-r--r--pkgs/applications/misc/kiwix/lib.nix55
-rw-r--r--pkgs/applications/misc/klayout/default.nix10
-rw-r--r--pkgs/applications/misc/koreader/default.nix4
-rw-r--r--pkgs/applications/misc/librecad/default.nix32
-rw-r--r--pkgs/applications/misc/librecad/fix_qt_5_11_build.patch36
-rw-r--r--pkgs/applications/misc/logseq/default.nix52
-rwxr-xr-xpkgs/applications/misc/logseq/update.sh5
-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/lyx/default.nix4
-rw-r--r--pkgs/applications/misc/marktext/default.nix2
-rw-r--r--pkgs/applications/misc/mediainfo-gui/default.nix4
-rw-r--r--pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--pkgs/applications/misc/megasync/default.nix4
-rw-r--r--pkgs/applications/misc/merkaartor/default.nix53
-rw-r--r--pkgs/applications/misc/metadata-cleaner/default.nix61
-rw-r--r--pkgs/applications/misc/milu/default.nix3
-rw-r--r--pkgs/applications/misc/mkgmap/default.nix4
-rw-r--r--pkgs/applications/misc/mob/default.nix4
-rw-r--r--pkgs/applications/misc/moonlight-qt/default.nix59
-rw-r--r--pkgs/applications/misc/mpvc/default.nix3
-rw-r--r--pkgs/applications/misc/mupdf/default.nix34
-rw-r--r--pkgs/applications/misc/nnn/default.nix11
-rw-r--r--pkgs/applications/misc/nwg-launchers/default.nix4
-rw-r--r--pkgs/applications/misc/obsidian/default.nix15
-rw-r--r--pkgs/applications/misc/omegat.nix2
-rw-r--r--pkgs/applications/misc/onboard/default.nix4
-rw-r--r--pkgs/applications/misc/openjump/default.nix2
-rw-r--r--pkgs/applications/misc/openring/default.nix25
-rw-r--r--pkgs/applications/misc/orpie/default.nix2
-rw-r--r--pkgs/applications/misc/osmscout-server/default.nix65
-rw-r--r--pkgs/applications/misc/pdfpc/default.nix2
-rw-r--r--pkgs/applications/misc/pdfsam-basic/default.nix4
-rw-r--r--pkgs/applications/misc/pdfslicer/default.nix48
-rw-r--r--pkgs/applications/misc/plasma-applet-volumewin7mixer/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/portfolio-filemanager/default.nix71
-rw-r--r--pkgs/applications/misc/projectlibre/default.nix3
-rw-r--r--pkgs/applications/misc/prusa-slicer/super-slicer.nix4
-rw-r--r--pkgs/applications/misc/pueue/default.nix11
-rw-r--r--pkgs/applications/misc/pure-maps/default.nix49
-rw-r--r--pkgs/applications/misc/qcad/default.nix9
-rw-r--r--pkgs/applications/misc/qlcplus/default.nix10
-rw-r--r--pkgs/applications/misc/qpdfview/default.nix6
-rw-r--r--pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch17
-rw-r--r--pkgs/applications/misc/qtbitcointrader/default.nix1
-rw-r--r--pkgs/applications/misc/ranger/default.nix2
-rw-r--r--pkgs/applications/misc/reddsaver/default.nix10
-rw-r--r--pkgs/applications/misc/redis-desktop-manager/default.nix11
-rw-r--r--pkgs/applications/misc/redshift-plasma-applet/default.nix2
-rw-r--r--pkgs/applications/misc/regextester/default.nix4
-rw-r--r--pkgs/applications/misc/robo3t/default.nix19
-rw-r--r--pkgs/applications/misc/robomongo/default.nix2
-rw-r--r--pkgs/applications/misc/rofi/wrapper.nix15
-rw-r--r--pkgs/applications/misc/sc-im/default.nix55
-rw-r--r--pkgs/applications/misc/sent/default.nix7
-rw-r--r--pkgs/applications/misc/senv/default.nix24
-rw-r--r--pkgs/applications/misc/sidequest/default.nix12
-rw-r--r--pkgs/applications/misc/simplenote/default.nix4
-rw-r--r--pkgs/applications/misc/spacenav-cube-example/default.nix29
-rw-r--r--pkgs/applications/misc/spicetify-cli/default.nix6
-rw-r--r--pkgs/applications/misc/spnavcfg/default.nix28
-rw-r--r--pkgs/applications/misc/stork/default.nix25
-rw-r--r--pkgs/applications/misc/subsurface/default.nix10
-rw-r--r--pkgs/applications/misc/sunwait/default.nix25
-rw-r--r--pkgs/applications/misc/surface-control/default.nix6
-rw-r--r--pkgs/applications/misc/swappy/default.nix24
-rw-r--r--pkgs/applications/misc/sweethome3d/default.nix32
-rw-r--r--pkgs/applications/misc/sweethome3d/editors.nix27
-rw-r--r--pkgs/applications/misc/syncthingtray/default.nix15
-rw-r--r--pkgs/applications/misc/tabula/default.nix2
-rw-r--r--pkgs/applications/misc/taskwarrior-tui/default.nix6
-rw-r--r--pkgs/applications/misc/taskwarrior/default.nix40
-rw-r--r--pkgs/applications/misc/tellico/default.nix36
-rw-r--r--pkgs/applications/misc/ticker/default.nix32
-rw-r--r--pkgs/applications/misc/tickrs/default.nix6
-rw-r--r--pkgs/applications/misc/tipp10/default.nix10
-rw-r--r--pkgs/applications/misc/todoist-electron/default.nix80
-rw-r--r--pkgs/applications/misc/translate-shell/default.nix2
-rw-r--r--pkgs/applications/misc/tty-share/default.nix4
-rw-r--r--pkgs/applications/misc/tty-solitaire/default.nix2
-rw-r--r--pkgs/applications/misc/udiskie/default.nix57
-rw-r--r--pkgs/applications/misc/unipicker/default.nix36
-rw-r--r--pkgs/applications/misc/upwork/default.nix10
-rw-r--r--pkgs/applications/misc/vifm/default.nix1
-rw-r--r--pkgs/applications/misc/viking/default.nix4
-rw-r--r--pkgs/applications/misc/visidata/default.nix2
-rw-r--r--pkgs/applications/misc/vit/default.nix4
-rw-r--r--pkgs/applications/misc/waybar/default.nix14
-rw-r--r--pkgs/applications/misc/wordnet/default.nix3
-rw-r--r--pkgs/applications/misc/worker/default.nix4
-rw-r--r--pkgs/applications/misc/writefreely/default.nix34
-rw-r--r--pkgs/applications/misc/wtf/default.nix6
-rw-r--r--pkgs/applications/misc/xchm/default.nix4
-rw-r--r--pkgs/applications/misc/xfontsel/default.nix4
-rw-r--r--pkgs/applications/misc/zathura/pdf-mupdf/default.nix4
-rw-r--r--pkgs/applications/misc/zathura/wrapper.nix3
-rw-r--r--pkgs/applications/misc/zettlr/default.nix22
-rw-r--r--pkgs/applications/networking/appgate-sdp/default.nix10
-rw-r--r--pkgs/applications/networking/bee/bee-clef.nix2
-rw-r--r--pkgs/applications/networking/bee/bee.nix12
-rw-r--r--pkgs/applications/networking/browsers/amfora/default.nix7
-rw-r--r--pkgs/applications/networking/browsers/angelfish/default.nix71
-rw-r--r--pkgs/applications/networking/browsers/asuka/default.nix10
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/castor/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix1
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix18
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix12
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/get-commit-message.py35
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json58
-rw-r--r--pkgs/applications/networking/browsers/elinks/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix780
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix23
-rw-r--r--pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch (renamed from pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch)0
-rw-r--r--pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch21
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix12
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix61
-rw-r--r--pkgs/applications/networking/browsers/gmni/default.nix24
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/lagrange/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/luakit/default.nix54
-rw-r--r--pkgs/applications/networking/browsers/nyxt/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix16
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/widevine.nix2
-rw-r--r--pkgs/applications/networking/browsers/webbrowser/default.nix4
-rw-r--r--pkgs/applications/networking/calls/default.nix27
-rw-r--r--pkgs/applications/networking/charles/default.nix16
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/fluxcd/default.nix25
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/hadoop/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/default.nix11
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix35
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix38
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix44
-rw-r--r--pkgs/applications/networking/cluster/helm/wrapper.nix46
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helmsman/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/k3s/default.nix27
-rw-r--r--pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch25
-rw-r--r--pkgs/applications/networking/cluster/k9s/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kconf/default.nix22
-rw-r--r--pkgs/applications/networking/cluster/kpt/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kube-capacity/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kube-router/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kube-score/default.nix22
-rw-r--r--pkgs/applications/networking/cluster/kube3d/default.nix28
-rw-r--r--pkgs/applications/networking/cluster/kubecfg/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeconform/default.nix22
-rw-r--r--pkgs/applications/networking/cluster/kubectl-doctor/default.nix27
-rw-r--r--pkgs/applications/networking/cluster/kubectl-example/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/kubelogin/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/default.nix19
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch23
-rwxr-xr-xpkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh113
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeval/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kuttl/default.nix31
-rw-r--r--pkgs/applications/networking/cluster/lens/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix50
-rw-r--r--pkgs/applications/networking/cluster/nixops/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nixops/shell.nix2
-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/octant/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/openshift/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/pgo-client/default.nix26
-rw-r--r--pkgs/applications/networking/cluster/qbec/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/sonobuoy/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/spark/default.nix3
-rw-r--r--pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch44
-rw-r--r--pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch46
-rw-r--r--pkgs/applications/networking/cluster/ssm-agent/default.nix123
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/tektoncd-cli/default.nix21
-rw-r--r--pkgs/applications/networking/cluster/terraform-docs/default.nix22
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json44
-rwxr-xr-xpkgs/applications/networking/cluster/terraform-providers/update-provider5
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/terraforming/Gemfile3
-rw-r--r--pkgs/applications/networking/cluster/terraforming/Gemfile.lock92
-rw-r--r--pkgs/applications/networking/cluster/terraforming/default.nix20
-rw-r--r--pkgs/applications/networking/cluster/terraforming/gemset.nix261
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/velero/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/waypoint/default.nix22
-rw-r--r--pkgs/applications/networking/compactor/default.nix4
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--pkgs/applications/networking/dyndns/cfdyndns/default.nix5
-rw-r--r--pkgs/applications/networking/feedreaders/feedreader/default.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/newsboat/default.nix22
-rw-r--r--pkgs/applications/networking/feedreaders/newsflash/default.nix32
-rw-r--r--pkgs/applications/networking/feedreaders/rss2email/default.nix23
-rw-r--r--pkgs/applications/networking/feedreaders/rssguard/default.nix6
-rw-r--r--pkgs/applications/networking/firehol/default.nix4
-rw-r--r--pkgs/applications/networking/flexget/default.nix6
-rw-r--r--pkgs/applications/networking/ftp/filezilla/default.nix4
-rw-r--r--pkgs/applications/networking/giara/default.nix68
-rw-r--r--pkgs/applications/networking/gns3/gui.nix2
-rw-r--r--pkgs/applications/networking/gns3/server.nix13
-rw-r--r--pkgs/applications/networking/ids/snort/default.nix3
-rw-r--r--pkgs/applications/networking/ids/zeek/default.nix46
-rw-r--r--pkgs/applications/networking/ids/zeek/script.nix69
-rw-r--r--pkgs/applications/networking/ike/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/blink/default.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/fractal/default.nix23
-rw-r--r--pkgs/applications/networking/instant-messengers/gomuks/default.nix13
-rw-r--r--pkgs/applications/networking/instant-messengers/hipchat/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/mirage/default.nix2
-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/pidgin-plugins/carbons/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix15
-rw-r--r--pkgs/applications/networking/instant-messengers/profanity/default.nix6
-rwxr-xr-xpkgs/applications/networking/instant-messengers/ripcord/default.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-cli/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/stride/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/teams/default.nix15
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/server.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix25
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/torchat/default.nix3
-rw-r--r--pkgs/applications/networking/instant-messengers/utox/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/viber/default.nix3
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-messenger/default.nix87
-rw-r--r--pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix38
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix32
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix21
-rw-r--r--pkgs/applications/networking/instant-messengers/zulip-term/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/zulip/default.nix6
-rw-r--r--pkgs/applications/networking/insync/default.nix4
-rw-r--r--pkgs/applications/networking/ipfs/default.nix4
-rw-r--r--pkgs/applications/networking/irc/catgirl/default.nix23
-rw-r--r--pkgs/applications/networking/irc/communi/default.nix2
-rw-r--r--pkgs/applications/networking/irc/convos/default.nix13
-rw-r--r--pkgs/applications/networking/irc/irssi/default.nix9
-rw-r--r--pkgs/applications/networking/irc/qweechat/default.nix31
-rw-r--r--pkgs/applications/networking/irc/weechat/default.nix4
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/default.nix6
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix40
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch9
-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/irc/weechat/scripts/weechat-notify-send/default.nix2
-rw-r--r--pkgs/applications/networking/jnetmap/default.nix3
-rw-r--r--pkgs/applications/networking/lieer/default.nix2
-rw-r--r--pkgs/applications/networking/maestral-qt/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/default.nix15
-rw-r--r--pkgs/applications/networking/mailreaders/alpine/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix207
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix121
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution/default.nix7
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/mailpile/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/mblaze/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix8
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix10
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix12
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix530
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/68.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix6
-rw-r--r--pkgs/applications/networking/modem-manager-gui/default.nix1
-rw-r--r--pkgs/applications/networking/mpop/default.nix4
-rw-r--r--pkgs/applications/networking/msmtp/default.nix4
-rw-r--r--pkgs/applications/networking/mullvad-vpn/default.nix6
-rw-r--r--pkgs/applications/networking/mumble/default.nix47
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix10
-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/p2p/deluge/default.nix68
-rw-r--r--pkgs/applications/networking/p2p/eiskaltdcpp/default.nix63
-rw-r--r--pkgs/applications/networking/p2p/gnunet/gtk.nix6
-rw-r--r--pkgs/applications/networking/p2p/retroshare/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/tixati/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/transgui/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/transmission/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/tribler/default.nix5
-rw-r--r--pkgs/applications/networking/p2p/vuze/default.nix3
-rw-r--r--pkgs/applications/networking/pcloud/default.nix6
-rw-r--r--pkgs/applications/networking/powerdns-admin/default.nix111
-rw-r--r--pkgs/applications/networking/powerdns-admin/package.json16
-rwxr-xr-xpkgs/applications/networking/powerdns-admin/update-asset-deps.sh20
-rw-r--r--pkgs/applications/networking/powerdns-admin/yarndeps.nix1453
-rw-r--r--pkgs/applications/networking/protonmail-bridge/default.nix21
-rw-r--r--pkgs/applications/networking/pyload/beautifulsoup.nix20
-rw-r--r--pkgs/applications/networking/pyload/default.nix60
-rw-r--r--pkgs/applications/networking/remote/anydesk/default.nix15
-rw-r--r--pkgs/applications/networking/remote/aws-workspaces/default.nix65
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/default.nix2
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/generic.nix2
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/sources.nix13
-rw-r--r--pkgs/applications/networking/remote/freerdp/default.nix4
-rw-r--r--pkgs/applications/networking/remote/remmina/default.nix4
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix4
-rw-r--r--pkgs/applications/networking/remote/vmware-horizon-client/default.nix7
-rw-r--r--pkgs/applications/networking/remote/waypipe/default.nix10
-rw-r--r--pkgs/applications/networking/remote/x2goserver/default.nix4
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix6
-rw-r--r--pkgs/applications/networking/shellhub-agent/default.nix14
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix14
-rw-r--r--pkgs/applications/networking/sync/onedrive/default.nix4
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix8
-rw-r--r--pkgs/applications/networking/sync/rsync/base.nix2
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix2
-rw-r--r--pkgs/applications/networking/sync/rsync/rrsync.nix2
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix3
-rw-r--r--pkgs/applications/networking/syncthing/default.nix8
-rw-r--r--pkgs/applications/networking/testssl/default.nix4
-rw-r--r--pkgs/applications/networking/tsung/default.nix2
-rw-r--r--pkgs/applications/networking/umurmur/default.nix4
-rw-r--r--pkgs/applications/networking/websocketd/default.nix6
-rw-r--r--pkgs/applications/networking/wg-bond/default.nix2
-rw-r--r--pkgs/applications/networking/zerobin/default.nix61
-rw-r--r--pkgs/applications/networking/znc/default.nix2
-rw-r--r--pkgs/applications/office/banking/default.nix67
-rw-r--r--pkgs/applications/office/bookworm/default.nix2
-rw-r--r--pkgs/applications/office/calligra/default.nix23
-rw-r--r--pkgs/applications/office/cb2bib/default.nix2
-rw-r--r--pkgs/applications/office/docear/default.nix3
-rw-r--r--pkgs/applications/office/fava/default.nix58
-rw-r--r--pkgs/applications/office/gnumeric/default.nix4
-rw-r--r--pkgs/applications/office/homebank/default.nix4
-rw-r--r--pkgs/applications/office/ib/controller/default.nix3
-rw-r--r--pkgs/applications/office/impressive/default.nix3
-rw-r--r--pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/download.nix32
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/primary.nix10
-rw-r--r--pkgs/applications/office/onlyoffice-bin/default.nix168
-rw-r--r--pkgs/applications/office/paperless/default.nix4
-rw-r--r--pkgs/applications/office/portfolio/default.nix4
-rw-r--r--pkgs/applications/office/qownnotes/default.nix14
-rw-r--r--pkgs/applications/office/semantik/default.nix90
-rw-r--r--pkgs/applications/office/semantik/qt5.patch78
-rw-r--r--pkgs/applications/office/skanlite/default.nix15
-rw-r--r--pkgs/applications/office/skrooge/default.nix4
-rw-r--r--pkgs/applications/office/softmaker/freeoffice.nix6
-rw-r--r--pkgs/applications/office/softmaker/generic.nix2
-rw-r--r--pkgs/applications/office/softmaker/softmaker_office.nix6
-rw-r--r--pkgs/applications/office/timeular/default.nix11
-rw-r--r--pkgs/applications/office/treesheets/default.nix3
-rw-r--r--pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch92
-rw-r--r--pkgs/applications/office/trilium/default.nix24
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix14
-rw-r--r--pkgs/applications/office/zotero/default.nix62
-rw-r--r--pkgs/applications/printing/pappl/default.nix4
-rw-r--r--pkgs/applications/radio/btlejack/default.nix26
-rw-r--r--pkgs/applications/radio/cqrlog/default.nix101
-rw-r--r--pkgs/applications/radio/cqrlog/fix-makefile-lazarusdir.patch13
-rw-r--r--pkgs/applications/radio/dablin/default.nix4
-rw-r--r--pkgs/applications/radio/direwolf/default.nix6
-rw-r--r--pkgs/applications/radio/gnss-sdr/default.nix36
-rw-r--r--pkgs/applications/radio/gnuradio/3.7.nix55
-rw-r--r--pkgs/applications/radio/gnuradio/3.8.nix269
-rw-r--r--pkgs/applications/radio/gnuradio/ais.nix53
-rw-r--r--pkgs/applications/radio/gnuradio/default.nix136
-rw-r--r--pkgs/applications/radio/gnuradio/gsm.nix37
-rw-r--r--pkgs/applications/radio/gnuradio/limesdr.nix38
-rw-r--r--pkgs/applications/radio/gnuradio/nacl.nix37
-rw-r--r--pkgs/applications/radio/gnuradio/osmosdr.nix45
-rw-r--r--pkgs/applications/radio/gnuradio/rds.nix36
-rw-r--r--pkgs/applications/radio/gnuradio/shared.nix10
-rw-r--r--pkgs/applications/radio/gnuradio/wrapper.nix125
-rw-r--r--pkgs/applications/radio/gqrx/default.nix36
-rw-r--r--pkgs/applications/radio/inspectrum/default.nix19
-rw-r--r--pkgs/applications/radio/pothos/default.nix74
-rw-r--r--pkgs/applications/radio/pothos/spuce.patch101
-rw-r--r--pkgs/applications/radio/qradiolink/default.nix68
-rw-r--r--pkgs/applications/radio/svxlink/default.nix4
-rw-r--r--pkgs/applications/radio/ubertooth/default.nix34
-rw-r--r--pkgs/applications/radio/uhd/3.5.nix159
-rw-r--r--pkgs/applications/radio/uhd/default.nix17
-rw-r--r--pkgs/applications/radio/unixcw/default.nix2
-rw-r--r--pkgs/applications/radio/xlog/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/kstars/default.nix12
-rw-r--r--pkgs/applications/science/astronomy/phd2/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/siril/default.nix20
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix4
-rw-r--r--pkgs/applications/science/biology/bcftools/default.nix13
-rw-r--r--pkgs/applications/science/biology/bedops/default.nix51
-rw-r--r--pkgs/applications/science/biology/bedtools/default.nix11
-rw-r--r--pkgs/applications/science/biology/delly/default.nix4
-rw-r--r--pkgs/applications/science/biology/eggnog-mapper/default.nix2
-rw-r--r--pkgs/applications/science/biology/freebayes/default.nix4
-rw-r--r--pkgs/applications/science/biology/kent/default.nix4
-rw-r--r--pkgs/applications/science/biology/last/default.nix4
-rw-r--r--pkgs/applications/science/biology/messer-slim/default.nix4
-rw-r--r--pkgs/applications/science/biology/octopus/default.nix20
-rw-r--r--pkgs/applications/science/biology/picard-tools/default.nix4
-rw-r--r--pkgs/applications/science/biology/platypus/default.nix3
-rw-r--r--pkgs/applications/science/biology/prodigal/default.nix2
-rw-r--r--pkgs/applications/science/biology/sambamba/default.nix8
-rw-r--r--pkgs/applications/science/biology/snpeff/default.nix3
-rw-r--r--pkgs/applications/science/biology/spades/default.nix8
-rw-r--r--pkgs/applications/science/biology/stacks/default.nix4
-rw-r--r--pkgs/applications/science/biology/star/default.nix4
-rw-r--r--pkgs/applications/science/biology/svaba/default.nix4
-rw-r--r--pkgs/applications/science/biology/varscan/default.nix3
-rw-r--r--pkgs/applications/science/chemistry/gwyddion/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/marvin/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/quantum-espresso/default.nix2
-rw-r--r--pkgs/applications/science/electronics/diylc/default.nix9
-rw-r--r--pkgs/applications/science/electronics/gnucap/default.nix26
-rw-r--r--pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix4
-rw-r--r--pkgs/applications/science/electronics/horizon-eda/default.nix4
-rw-r--r--pkgs/applications/science/electronics/kicad/base.nix6
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix9
-rw-r--r--pkgs/applications/science/electronics/librepcb/default.nix15
-rw-r--r--pkgs/applications/science/electronics/ngspice/default.nix4
-rw-r--r--pkgs/applications/science/electronics/pcb/default.nix4
-rw-r--r--pkgs/applications/science/electronics/tkgate/1.x.nix4
-rw-r--r--pkgs/applications/science/electronics/verilator/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/coq/default.nix5
-rw-r--r--pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch40
-rw-r--r--pkgs/applications/science/logic/elan/default.nix34
-rw-r--r--pkgs/applications/science/logic/hol/default.nix15
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix3
-rw-r--r--pkgs/applications/science/logic/lean/default.nix4
-rw-r--r--pkgs/applications/science/logic/lean2/default.nix4
-rw-r--r--pkgs/applications/science/logic/leo2/default.nix3
-rw-r--r--pkgs/applications/science/logic/mcrl2/default.nix2
-rw-r--r--pkgs/applications/science/logic/poly/default.nix6
-rw-r--r--pkgs/applications/science/logic/sad/default.nix2
-rw-r--r--pkgs/applications/science/logic/satallax/default.nix3
-rw-r--r--pkgs/applications/science/logic/tlaplus/default.nix3
-rw-r--r--pkgs/applications/science/logic/tlaplus/toolbox.nix28
-rw-r--r--pkgs/applications/science/logic/why3/with-provers.nix3
-rw-r--r--pkgs/applications/science/logic/workcraft/default.nix2
-rw-r--r--pkgs/applications/science/logic/z3/default.nix5
-rw-r--r--pkgs/applications/science/machine-learning/shogun/default.nix4
-rw-r--r--pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix54
-rw-r--r--pkgs/applications/science/math/R/default.nix7
-rw-r--r--pkgs/applications/science/math/calc/default.nix13
-rw-r--r--pkgs/applications/science/math/cbc/default.nix11
-rw-r--r--pkgs/applications/science/math/dap/default.nix37
-rw-r--r--pkgs/applications/science/math/gap/default.nix3
-rw-r--r--pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch13
-rw-r--r--pkgs/applications/science/math/gfan/default.nix2
-rw-r--r--pkgs/applications/science/math/gfm/default.nix3
-rw-r--r--pkgs/applications/science/math/giac/default.nix46
-rw-r--r--pkgs/applications/science/math/ginac/default.nix6
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix4
-rw-r--r--pkgs/applications/science/math/gurobi/default.nix6
-rw-r--r--pkgs/applications/science/math/msieve/default.nix2
-rw-r--r--pkgs/applications/science/math/nasc/default.nix1
-rw-r--r--pkgs/applications/science/math/palp/default.nix21
-rw-r--r--pkgs/applications/science/math/perseus/default.nix2
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--pkgs/applications/science/math/ratpoints/default.nix2
-rw-r--r--pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch16
-rw-r--r--pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch131
-rw-r--r--pkgs/applications/science/math/sage/patches/pillow-update.patch39
-rw-r--r--pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch36
-rw-r--r--pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch13
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix121
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix2
-rw-r--r--pkgs/applications/science/math/tilp2/default.nix3
-rw-r--r--pkgs/applications/science/math/weka/default.nix2
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--pkgs/applications/science/medicine/aliza/default.nix15
-rw-r--r--pkgs/applications/science/medicine/xmedcon/default.nix36
-rw-r--r--pkgs/applications/science/misc/cytoscape/default.nix3
-rw-r--r--pkgs/applications/science/misc/root/5.nix4
-rw-r--r--pkgs/applications/science/misc/root/default.nix4
-rw-r--r--pkgs/applications/science/misc/simgrid/default.nix6
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix8
-rw-r--r--pkgs/applications/science/networking/sumo/default.nix68
-rw-r--r--pkgs/applications/science/physics/professor/default.nix41
-rw-r--r--pkgs/applications/science/physics/sherpa/default.nix2
-rw-r--r--pkgs/applications/science/programming/plm/default.nix3
-rw-r--r--pkgs/applications/science/robotics/betaflight-configurator/default.nix4
-rw-r--r--pkgs/applications/science/robotics/mavproxy/default.nix4
-rw-r--r--pkgs/applications/search/doodle/default.nix4
-rw-r--r--pkgs/applications/search/recoll/default.nix6
-rw-r--r--pkgs/applications/system/glances/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/alacritty/default.nix16
-rw-r--r--pkgs/applications/terminal-emulators/evilvte/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/foot/default.nix32
-rw-r--r--pkgs/applications/terminal-emulators/hyper/default.nix9
-rw-r--r--pkgs/applications/terminal-emulators/kgx/default.nix76
-rw-r--r--pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix2
-rw-r--r--pkgs/applications/terminal-emulators/terminus/default.nix3
-rw-r--r--pkgs/applications/terminal-emulators/tilix/default.nix14
-rw-r--r--pkgs/applications/terminal-emulators/xterm/default.nix5
-rw-r--r--pkgs/applications/version-management/bcompare/default.nix1
-rw-r--r--pkgs/applications/version-management/bumpver/default.nix4
-rw-r--r--pkgs/applications/version-management/cvs2svn/default.nix2
-rw-r--r--pkgs/applications/version-management/gerrit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix3
-rw-r--r--pkgs/applications/version-management/git-and-tools/bit/default.nix31
-rw-r--r--pkgs/applications/version-management/git-and-tools/delta/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/fast-export/default.nix3
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghorg/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/git-annex-remote-googledrive/default.nix34
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-bug/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-bz/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-cola/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-crypt/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-extras/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-octopus/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-open/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-recent/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-reparent/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-secret/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-sync/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix24
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitflow/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitui/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/glab/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/lab/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/subgit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/svn2git/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/transcrypt/default.nix3
-rw-r--r--pkgs/applications/version-management/git-crecord/default.nix6
-rw-r--r--pkgs/applications/version-management/git-lfs/default.nix4
-rw-r--r--pkgs/applications/version-management/git-repo/default.nix6
-rw-r--r--pkgs/applications/version-management/gitea/default.nix36
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/data.json14
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix1
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile12
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock87
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix180
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch124
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile84
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock421
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix526
-rw-r--r--pkgs/applications/version-management/gitlab/yarnPkgs.nix1776
-rw-r--r--pkgs/applications/version-management/gitstats/default.nix8
-rw-r--r--pkgs/applications/version-management/meld/default.nix5
-rw-r--r--pkgs/applications/version-management/mercurial/4.9.nix3
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix3
-rw-r--r--pkgs/applications/version-management/monotone-viz/default.nix8
-rw-r--r--pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix6
-rw-r--r--pkgs/applications/version-management/pijul/default.nix6
-rw-r--r--pkgs/applications/version-management/redmine/Gemfile8
-rw-r--r--pkgs/applications/version-management/redmine/Gemfile.lock146
-rw-r--r--pkgs/applications/version-management/redmine/default.nix4
-rw-r--r--pkgs/applications/version-management/redmine/gemset.nix180
-rw-r--r--pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--pkgs/applications/version-management/subversion/default.nix5
-rw-r--r--pkgs/applications/video/alass/default.nix33
-rw-r--r--pkgs/applications/video/avidemux/default.nix4
-rw-r--r--pkgs/applications/video/catt/default.nix26
-rw-r--r--pkgs/applications/video/clipgrab/default.nix4
-rw-r--r--pkgs/applications/video/corrscope/default.nix55
-rw-r--r--pkgs/applications/video/droidcam/default.nix4
-rw-r--r--pkgs/applications/video/filebot/default.nix4
-rw-r--r--pkgs/applications/video/freetube/default.nix50
-rw-r--r--pkgs/applications/video/handbrake/default.nix4
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/default.nix103
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch12
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch15
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix25
-rw-r--r--pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix26
-rw-r--r--pkgs/applications/video/kodi-packages/addon-update-script/default.nix23
-rw-r--r--pkgs/applications/video/kodi-packages/certifi/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/chardet/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/controllers/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/dateutil/default.nix27
-rw-r--r--pkgs/applications/video/kodi-packages/idna/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix29
-rw-r--r--pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix24
-rw-r--r--pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix24
-rw-r--r--pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/jellyfin/default.nix49
-rw-r--r--pkgs/applications/video/kodi-packages/joystick/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/kodi-platform/default.nix15
-rw-r--r--pkgs/applications/video/kodi-packages/kodi-six/default.nix23
-rw-r--r--pkgs/applications/video/kodi-packages/myconnpy/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/netflix/default.nix29
-rw-r--r--pkgs/applications/video/kodi-packages/osmc-skin/default.nix21
-rw-r--r--pkgs/applications/video/kodi-packages/pdfreader/default.nix20
-rw-r--r--pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix23
-rw-r--r--pkgs/applications/video/kodi-packages/pvr-hts/default.nix21
-rw-r--r--pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix35
-rw-r--r--pkgs/applications/video/kodi-packages/requests/default.nix29
-rw-r--r--pkgs/applications/video/kodi-packages/signals/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/six/default.nix23
-rw-r--r--pkgs/applications/video/kodi-packages/steam-controller/default.nix21
-rw-r--r--pkgs/applications/video/kodi-packages/steam-launcher/default.nix29
-rw-r--r--pkgs/applications/video/kodi-packages/svtplay/default.nix27
-rw-r--r--pkgs/applications/video/kodi-packages/urllib3/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix22
-rw-r--r--pkgs/applications/video/kodi-packages/vfs-sftp/default.nix22
-rw-r--r--pkgs/applications/video/kodi/build-kodi-addon.nix25
-rw-r--r--pkgs/applications/video/kodi/build-kodi-binary-addon.nix35
-rw-r--r--pkgs/applications/video/kodi/default.nix300
-rw-r--r--pkgs/applications/video/kodi/packages.nix (renamed from pkgs/applications/video/kodi/plugins.nix)237
-rw-r--r--pkgs/applications/video/kodi/unwrapped.nix243
-rw-r--r--pkgs/applications/video/kodi/wrapper.nix22
-rw-r--r--pkgs/applications/video/kodi/yatp/dont-monkey.patch29
-rw-r--r--pkgs/applications/video/lightworks/default.nix3
-rw-r--r--pkgs/applications/video/makemkv/default.nix6
-rw-r--r--pkgs/applications/video/minitube/default.nix14
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix7
-rw-r--r--pkgs/applications/video/mpv/scripts/thumbnail.nix36
-rw-r--r--pkgs/applications/video/natron/default.nix54
-rw-r--r--pkgs/applications/video/obs-studio/default.nix2
-rw-r--r--pkgs/applications/video/obs-studio/obs-ndi.nix2
-rw-r--r--pkgs/applications/video/obs-studio/v4l2sink.nix2
-rw-r--r--pkgs/applications/video/openshot-qt/libopenshot.nix2
-rw-r--r--pkgs/applications/video/pitivi/default.nix1
-rw-r--r--pkgs/applications/video/qstopmotion/default.nix4
-rw-r--r--pkgs/applications/video/quvi/tool.nix4
-rw-r--r--pkgs/applications/video/shotcut/default.nix4
-rw-r--r--pkgs/applications/video/smplayer/default.nix49
-rw-r--r--pkgs/applications/video/sub-batch/default.nix20
-rw-r--r--pkgs/applications/video/tartube/default.nix4
-rw-r--r--pkgs/applications/video/vlc/default.nix4
-rw-r--r--pkgs/applications/video/webtorrent_desktop/default.nix4
-rw-r--r--pkgs/applications/video/xplayer/default.nix103
-rw-r--r--pkgs/applications/video/xplayer/plparser.nix42
-rw-r--r--pkgs/applications/video/xscast/default.nix2
-rw-r--r--pkgs/applications/virtualization/aqemu/default.nix1
-rw-r--r--pkgs/applications/virtualization/catatonit/default.nix39
-rw-r--r--pkgs/applications/virtualization/charliecloud/default.nix4
-rw-r--r--pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch53
-rw-r--r--pkgs/applications/virtualization/cloud-hypervisor/default.nix15
-rw-r--r--pkgs/applications/virtualization/cntr/default.nix6
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix6
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix13
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix8
-rw-r--r--pkgs/applications/virtualization/crun/default.nix13
-rw-r--r--pkgs/applications/virtualization/docker-compose/default.nix12
-rw-r--r--pkgs/applications/virtualization/docker/default.nix26
-rw-r--r--pkgs/applications/virtualization/docker/gc.nix2
-rw-r--r--pkgs/applications/virtualization/gvisor/default.nix4
-rw-r--r--pkgs/applications/virtualization/libnvidia-container/default.nix4
-rw-r--r--pkgs/applications/virtualization/open-vm-tools/default.nix4
-rw-r--r--pkgs/applications/virtualization/podman/default.nix12
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix10
-rw-r--r--pkgs/applications/virtualization/qtemu/default.nix2
-rw-r--r--pkgs/applications/virtualization/runc/default.nix4
-rw-r--r--pkgs/applications/virtualization/seabios/default.nix8
-rw-r--r--pkgs/applications/virtualization/singularity/default.nix5
-rw-r--r--pkgs/applications/virtualization/spike/default.nix12
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/linux-5-11.patch12
-rw-r--r--pkgs/applications/virtualization/x11docker/default.nix6
-rw-r--r--pkgs/applications/virtualization/xen/generic.nix4
-rw-r--r--pkgs/applications/window-managers/bspwm/unstable.nix31
-rw-r--r--pkgs/applications/window-managers/cagebreak/default.nix5
-rw-r--r--pkgs/applications/window-managers/cwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/dwl/default.nix12
-rw-r--r--pkgs/applications/window-managers/dwm/dwm-status.nix4
-rw-r--r--pkgs/applications/window-managers/herbstluftwm/default.nix31
-rw-r--r--pkgs/applications/window-managers/i3/auto-layout.nix26
-rw-r--r--pkgs/applications/window-managers/i3/blocks-gaps.nix6
-rw-r--r--pkgs/applications/window-managers/i3/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/i3-ratiosplit.nix26
-rw-r--r--pkgs/applications/window-managers/i3/lock-color.nix4
-rw-r--r--pkgs/applications/window-managers/i3/status-rust.nix9
-rw-r--r--pkgs/applications/window-managers/icewm/default.nix21
-rw-r--r--pkgs/applications/window-managers/leftwm/default.nix4
-rw-r--r--pkgs/applications/window-managers/sawfish/default.nix76
-rw-r--r--pkgs/applications/window-managers/wayfire/wcm.nix4
-rw-r--r--pkgs/applications/window-managers/wayfire/wf-shell.nix4
-rw-r--r--pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix2
-rw-r--r--pkgs/applications/window-managers/wmii-hg/default.nix4
-rw-r--r--pkgs/applications/window-managers/xmonad/log-applet/default.nix2
1129 files changed, 23180 insertions, 12584 deletions
diff --git a/pkgs/applications/accessibility/contrast/default.nix b/pkgs/applications/accessibility/contrast/default.nix
index 689ad273575..44bee86880a 100644
--- a/pkgs/applications/accessibility/contrast/default.nix
+++ b/pkgs/applications/accessibility/contrast/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , fetchFromGitLab
 , cairo
 , dbus
@@ -7,17 +8,17 @@
 , glib
 , gtk3
 , libhandy_0
+, libsass
 , meson
 , ninja
 , pango
 , pkg-config
 , python3
-, rustc
 , rustPlatform
 , wrapGAppsHook
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "contrast";
   version = "0.0.3";
 
@@ -30,7 +31,11 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0kk3mv7a6y258109xvgicmsi0lw0rcs00gfyivl5hdz7qh47iccy";
   };
 
-  cargoSha256 = "0vi8nv4hkhsgqgz36xacwkk5cxirg6li44nbmk3x7vx7c64hzybq";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-ePkPiWGn79PHrMsSEql5OXZW5uRMdTP+w0/DCcm2KG4=";
+  };
 
   nativeBuildInputs = [
     desktop-file-utils
@@ -39,6 +44,9 @@ rustPlatform.buildRustPackage rec {
     ninja
     pkg-config
     python3
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
     wrapGAppsHook
     glib # for glib-compile-resources
   ];
@@ -49,6 +57,7 @@ rustPlatform.buildRustPackage rec {
     glib
     gtk3
     libhandy_0
+    libsass
     pango
   ];
 
@@ -56,12 +65,6 @@ rustPlatform.buildRustPackage rec {
     patchShebangs build-aux/meson_post_install.py
   '';
 
-  # Don't use buildRustPackage phases, only use it for rust deps setup
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   meta = with lib; {
     description = "Checks whether the contrast between two colors meet the WCAG requirements";
     homepage = "https://gitlab.gnome.org/World/design/contrast";
diff --git a/pkgs/applications/accessibility/squeekboard/default.nix b/pkgs/applications/accessibility/squeekboard/default.nix
new file mode 100644
index 00000000000..08042a7701b
--- /dev/null
+++ b/pkgs/applications/accessibility/squeekboard/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, gnome3
+, glib
+, gtk3
+, wayland
+, wayland-protocols
+, libxml2
+, libxkbcommon
+, rustPlatform
+, feedbackd
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "squeekboard";
+  version = "unstable-2021-03-09";
+
+  src = fetchFromGitLab {
+    domain = "source.puri.sm";
+    owner = "Librem5";
+    repo = pname;
+    rev = "bffd212e102bf71a94c599aac0359a8d30d19008";
+    sha256 = "1j10zhyb8wyrcbryfj6f3drn9b0l9x0l7hnhy2imnjbfbnwwm4w7";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    cargoUpdateHook = ''
+      cat Cargo.toml.in Cargo.deps > Cargo.toml
+    '';
+    name = "${pname}-${version}";
+    sha256 = "1qaqiaxqc4x2x5bd31na4c49vbjwrmz5clmgli7733dv55rxxias";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    glib
+    wayland
+    wrapGAppsHook
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    gtk3
+    gnome3.gnome-desktop
+    wayland
+    wayland-protocols
+    libxml2
+    libxkbcommon
+    feedbackd
+  ];
+
+  meta = with lib; {
+    description = "A virtual keyboard supporting Wayland";
+    homepage = "https://source.puri.sm/Librem5/squeekboard";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ artturin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/accessibility/svkbd/default.nix b/pkgs/applications/accessibility/svkbd/default.nix
new file mode 100644
index 00000000000..57e6cdba5ae
--- /dev/null
+++ b/pkgs/applications/accessibility/svkbd/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchurl
+, writeText
+, pkg-config
+, libX11
+, libXft
+, libXi
+, libXinerama
+, libXtst
+, layout ? null
+, conf ? null
+, patches ? [ ]
+}:
+
+stdenv.mkDerivation rec {
+  pname = "svkbd";
+  version = "0.3";
+
+  src = fetchurl {
+    url = "https://dl.suckless.org/tools/svkbd-${version}.tar.gz";
+    sha256 = "108khx665d7dlzs04iy4g1nw3fyqpy6kd0afrwiapaibgv4xhfsk";
+  };
+
+  inherit patches;
+
+  postPatch = let
+    configFile = if lib.isDerivation conf || lib.isPath conf then
+      conf
+    else
+      writeText "config.def.h" conf;
+  in lib.optionalString (conf != null) ''
+    cp ${configFile} config.def.h
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libX11
+    libXft
+    libXi
+    libXinerama
+    libXtst
+  ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ] ++ lib.optional (layout != null) "LAYOUT=${layout}";
+
+  meta = with lib; {
+    description = "Simple virtual keyboard";
+    homepage = "https://tools.suckless.org/x/svkbd/";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/audio/MMA/default.nix b/pkgs/applications/audio/MMA/default.nix
index ade595732c3..25cb9696509 100644
--- a/pkgs/applications/audio/MMA/default.nix
+++ b/pkgs/applications/audio/MMA/default.nix
@@ -9,7 +9,8 @@
     sha256 = "18k0hwlqky5x4y461fxmw77gvz7z8jyrvxicrqphsgvwwinzy732";
   };
 
-  buildInputs = [ makeWrapper python3 alsaUtils timidity ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python3 alsaUtils timidity ];
 
   patchPhase = ''
     sed -i 's@/usr/bin/aplaymidi@/${alsaUtils}/bin/aplaymidi@g' mma-splitrec
diff --git a/pkgs/applications/audio/aacgain/default.nix b/pkgs/applications/audio/aacgain/default.nix
index d4fc3fbe698..0f9b511d455 100644
--- a/pkgs/applications/audio/aacgain/default.nix
+++ b/pkgs/applications/audio/aacgain/default.nix
@@ -12,6 +12,10 @@ stdenv.mkDerivation {
 
   hardeningDisable = [ "format" ];
 
+  # -Wnarrowing is enabled by default in recent GCC versions,
+  # causing compilation to fail.
+  NIX_CFLAGS_COMPILE = "-Wno-narrowing";
+
   postPatch = ''
     (
       cd mp4v2
diff --git a/pkgs/applications/audio/aj-snapshot/default.nix b/pkgs/applications/audio/aj-snapshot/default.nix
index 636314bf1ca..418426530bf 100644
--- a/pkgs/applications/audio/aj-snapshot/default.nix
+++ b/pkgs/applications/audio/aj-snapshot/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, alsaLib, jack2Full, minixml, pkg-config }:
+{ lib, stdenv, fetchurl, alsaLib, jack2, minixml, pkg-config }:
 
 stdenv.mkDerivation rec {
   name =  packageName + "-" + version ;
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ alsaLib minixml jack2Full ];
+  buildInputs = [ alsaLib minixml jack2 ];
 
   meta = with lib; {
     description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files";
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index 063cfcaa9fa..c75adb11ed4 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchgit, lib
+{ mkDerivation, fetchurl, lib
 , extra-cmake-modules, kdoctools
 , qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 , karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
@@ -7,19 +7,16 @@
 }:
 
 mkDerivation rec {
-  pname = "amarok-unstable";
-  version = "2020-06-12";
+  pname = "amarok";
+  version = "2.9.71";
 
-  src = fetchgit {
-    # master has the Qt5 version as of April 2018 but a formal release has not
-    # yet been made so change this back to the proper upstream when such a
-    # release is out
-    url    = "https://invent.kde.org/multimedia/amarok.git";
-    # url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-    rev    = "fece39b0e81db310b6a6e08f93d83b0d498cd02b";
-    sha256 = "12casnq6w5yp2jlvnr466pjpkn0vriry8jzfq2qkjl564y0vhy9x";
+  src = fetchurl {
+    url = "mirror://kde/unstable/${pname}/${version}/${pname}-${version}.tar.xz";
+    sha256 = "0kz8wixjmy4yxq2gk11ybswryxb6alfymd3bzcar9xinscllhh3a";
   };
 
+  outputs = [ "out" "doc" ];
+
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
 
   propagatedBuildInputs = [
@@ -35,7 +32,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://amarok.kde.org";
     description = "A powerful music player with an intuitive interface";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/pkgs/applications/audio/apple-music-electron/default.nix b/pkgs/applications/audio/apple-music-electron/default.nix
index 1c6180ac211..e4d43d7f01f 100644
--- a/pkgs/applications/audio/apple-music-electron/default.nix
+++ b/pkgs/applications/audio/apple-music-electron/default.nix
@@ -1,12 +1,12 @@
 { appimageTools, lib, fetchurl }:
 let
   pname = "apple-music-electron";
-  version = "1.5.2";
+  version = "1.5.5";
   name = "Apple.Music-${version}";
 
   src = fetchurl {
-    url = "https://github.com/iiFir3z/Apple-Music-Electron/releases/download/${version}/${name}.AppImage";
-    sha256 = "1jl0wgwy6ajmfkzygwb7cm9m49nkhp3x6vd8kwmh6ccs3jy4ayp5";
+    url = "https://github.com/cryptofyre/Apple-Music-Electron/releases/download/v${version}/${name}.AppImage";
+    sha256 = "1gb6j3nvam9fcpsgiv56jccg9a4y14vzsyw11h3hckaigy90knpx";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
@@ -18,7 +18,7 @@ in appimageTools.wrapType2 {
 
     install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
     substituteInPlace $out/share/applications/${pname}.desktop \
-      --replace 'Exec=AppRun' 'Exec=$out/bin/apple-music-electron'
+      --replace "Exec=AppRun" "Exec=$out/bin/apple-music-electron"
     cp -r ${appimageContents}/usr/share/icons $out/share
   '';
 
diff --git a/pkgs/applications/audio/ardour/5.nix b/pkgs/applications/audio/ardour/5.nix
index 4a0656ed9ce..9e8c075bfb0 100644
--- a/pkgs/applications/audio/ardour/5.nix
+++ b/pkgs/applications/audio/ardour/5.nix
@@ -8,7 +8,6 @@
 , doxygen
 , fftwSinglePrec
 , flac
-, glibc
 , glibmm
 , graphviz
 , gtkmm2
diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix
index 26e25c687e7..b6643264071 100644
--- a/pkgs/applications/audio/ardour/default.nix
+++ b/pkgs/applications/audio/ardour/default.nix
@@ -16,6 +16,7 @@
 , glibmm
 , graphviz
 , gtkmm2
+, harvid
 , itstool
 , libarchive
 , libjack2
@@ -35,6 +36,7 @@
 , lilv
 , lrdf
 , lv2
+, makeWrapper
 , pango
 , perl
 , pkg-config
@@ -49,6 +51,8 @@
 , taglib
 , vamp-plugin-sdk
 , wafHook
+, xjadeo
+, videoSupport ? false
 }:
 stdenv.mkDerivation rec {
   pname = "ardour";
@@ -70,6 +74,7 @@ stdenv.mkDerivation rec {
     doxygen
     graphviz # for dot
     itstool
+    makeWrapper
     perl
     pkg-config
     python3
@@ -121,7 +126,7 @@ stdenv.mkDerivation rec {
     suil
     taglib
     vamp-plugin-sdk
-  ];
+  ] ++ lib.optionals videoSupport [ harvid xjadeo ];
 
   wafConfigureFlags = [
     "--cxx11"
@@ -158,6 +163,10 @@ stdenv.mkDerivation rec {
         "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png"
     done
     install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
+  '' + lib.optionalString videoSupport ''
+    # `harvid` and `xjadeo` must be accessible in `PATH` for video to work.
+    wrapProgram "$out/bin/ardour6" \
+      --prefix PATH : "${lib.makeBinPath [ harvid xjadeo ]}"
   '';
 
   LINKFLAGS = "-lpthread";
@@ -174,8 +183,8 @@ stdenv.mkDerivation rec {
       https://community.ardour.org/donate
     '';
     homepage = "https://ardour.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ goibhniu magnetophon ];
+    maintainers = with maintainers; [ goibhniu magnetophon mitchmindtree ];
   };
 }
diff --git a/pkgs/applications/audio/ashuffle/default.nix b/pkgs/applications/audio/ashuffle/default.nix
index cf3321e241f..e445132ee3c 100644
--- a/pkgs/applications/audio/ashuffle/default.nix
+++ b/pkgs/applications/audio/ashuffle/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ashuffle";
-  version = "3.4.0";
+  version = "3.10.1";
 
   src = fetchFromGitHub {
     owner = "joshkunz";
     repo = "ashuffle";
     rev = "v${version}";
-    sha256 = "09q6lwgc1dc8bg1mb9js9qz3xcsxph3548nxzvyb4v8111gixrp7";
+    sha256 = "103jhajqwryiaf52qqgshajcnsxsz4l8gn3sz6bxs7k0yq5x1knr";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index c3daee55fc4..36320a01061 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -132,6 +132,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.audacityteam.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lheckemann ];
-    platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
index ac405cde644..09be8faa8a0 100644
--- a/pkgs/applications/audio/bambootracker/default.nix
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -1,4 +1,5 @@
 { mkDerivation
+, stdenv
 , lib
 , fetchFromGitHub
 , fetchpatch
@@ -39,6 +40,14 @@ mkDerivation rec {
 
   postConfigure = "make qmake_all";
 
+  # installs app bundle on darwin, re-extract the binary
+  # wrapQtAppsHook fails to wrap mach-o binaries, manually call wrapper (https://github.com/NixOS/nixpkgs/issues/102044)
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mv $out/bin/BambooTracker{.app/Contents/MacOS/BambooTracker,}
+    rm -r $out/bin/BambooTracker.app
+    wrapQtApp $out/bin/BambooTracker
+  '';
+
   meta = with lib; {
     description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
     homepage = "https://rerrahkr.github.io/BambooTracker";
diff --git a/pkgs/applications/audio/baudline/default.nix b/pkgs/applications/audio/baudline/default.nix
index 29c5130f575..7d6d51011cc 100644
--- a/pkgs/applications/audio/baudline/default.nix
+++ b/pkgs/applications/audio/baudline/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     else
       throw "baudline isn't supported (yet?) on ${stdenv.hostPlatform.system}";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   # Prebuilt binary distribution.
   # "patchelf --set-rpath" seems to break the application (cannot start), using
diff --git a/pkgs/applications/audio/bchoppr/default.nix b/pkgs/applications/audio/bchoppr/default.nix
index db8f8ad793a..b15b8d127a6 100644
--- a/pkgs/applications/audio/bchoppr/default.nix
+++ b/pkgs/applications/audio/bchoppr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bchoppr";
-  version = "1.10.0";
+  version = "1.10.4";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-LYndZhg4ILN0E8aRqgUBFzzzLv88TMSXG2OeFxImDu0=";
+    sha256 = "sha256-/csds8QOgn5IogyMg/5PMKdlCISakS3GDkyj2tTt0BY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 87638ebbe6c..fac816649c7 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "3.3.3";
+  version = "3.3.6";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-NDkGHJDr6TCHEhgSKK7jLYk5RjGEj8+lDYZ4ywvG20g=";
+    sha256 = "sha256-k7L6CU2lY9192tfaWtVOxq9BCY7FZZdxmHT8EA+ZFsk=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/pkgs/applications/audio/bschaffl/default.nix b/pkgs/applications/audio/bschaffl/default.nix
index 6b0ca55f27f..76d2e78a266 100644
--- a/pkgs/applications/audio/bschaffl/default.nix
+++ b/pkgs/applications/audio/bschaffl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bschaffl";
-  version = "1.4.2";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-R6QTADPE2PW/ySQla2lQbb308jrHXZ43DpFxUfQ0/NY=";
+    sha256 = "sha256-tu5JL0vcqRsZYmoaYGYm/aj95i7wLtnKYGbEPD7AsoM=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/bsequencer/default.nix b/pkgs/applications/audio/bsequencer/default.nix
index d45b42ddb9f..692667c0003 100644
--- a/pkgs/applications/audio/bsequencer/default.nix
+++ b/pkgs/applications/audio/bsequencer/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSEQuencer";
-  version = "1.8.4";
+  version = "1.8.6";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "0hagnn104ybzdp13r95idw20fhmzif8p3kmiypnr20m6c64rdd29";
+    sha256 = "sha256-PZ2Ft7y2mbb5Wpa7mWPys2BVpcQC3WE5rKu2sRqkf8w=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/bshapr/default.nix b/pkgs/applications/audio/bshapr/default.nix
index 7e45d6a826f..04dd93b8f49 100644
--- a/pkgs/applications/audio/bshapr/default.nix
+++ b/pkgs/applications/audio/bshapr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BShapr";
-  version = "0.9";
+  version = "0.10";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04zd3a178i2nivg5rjailzqvc5mlnilmhj1ziygmbhshbrywplri";
+    sha256 = "sha256-oEBsaIcw/Ltxr2CUPGBjwcxOPhNQoYPZDkfQE7QA940=";
   };
 
   nativeBuildInputs = [ pkg-config ];
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/callaudiod/default.nix b/pkgs/applications/audio/callaudiod/default.nix
index d742961939f..6529cd860c8 100644
--- a/pkgs/applications/audio/callaudiod/default.nix
+++ b/pkgs/applications/audio/callaudiod/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "callaudiod";
-  version = "0.0.4";
+  version = "0.1.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.com";
     owner = "mobian1";
     repo = pname;
     rev = version;
-    sha256 = "07k7xp5a9c4d4lq7amaj6cg6b3gsd77x9wvf7nzcf4vpaph4yiyj";
+    sha256 = "087589z45xvldn2m1g79y0xbwzylwkjmfk83s5xjixyq0wqmfppd";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/caudec/default.nix b/pkgs/applications/audio/caudec/default.nix
index 0360922c819..15ebb85136b 100644
--- a/pkgs/applications/audio/caudec/default.nix
+++ b/pkgs/applications/audio/caudec/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     patchShebangs ./install.sh
   '';
 
-  buildInputs = [ bash makeWrapper ];
+  nativeBuildInputs = [ bash makeWrapper ];
 
   installPhase = ''
     ./install.sh --prefix=$out/bin
diff --git a/pkgs/applications/audio/cheesecutter/default.nix b/pkgs/applications/audio/cheesecutter/default.nix
index 84f6b183033..6c14cc67f81 100644
--- a/pkgs/applications/audio/cheesecutter/default.nix
+++ b/pkgs/applications/audio/cheesecutter/default.nix
@@ -8,13 +8,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "cheesecutter";
-  version = "unstable-2020-04-03";
+  version = "unstable-2021-02-27";
 
   src = fetchFromGitHub {
     owner = "theyamo";
     repo = "CheeseCutter";
-    rev = "68d6518f0e6249a2a5d122fc80201578337c1277";
-    sha256 = "0xspzjhc6cp3m0yd0mwxncg8n1wklizamxvidrnn21jgj3mnaq2q";
+    rev = "84450d3614b8fb2cabda87033baab7bedd5a5c98";
+    sha256 = "sha256:0q4a791nayya6n01l0f4kk497rdq6kiq0n72fqdpwqy138pfwydn";
   };
 
   patches = [
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index be0f2f72529..b84b4e6aa9a 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -10,7 +10,7 @@ let
   withCD = config.clementine.cd or true;
   withCloud = config.clementine.cloud or true;
 
-  # On the update after all 1.4rc, qt5.15 will be supported.
+  # On the update after all 1.4rc, qt5.15 and protobuf 3.15 will be supported.
   version = "1.4.0rc1";
 
   src = fetchFromGitHub {
@@ -24,7 +24,7 @@ let
     ./clementine-spotify-blob.patch
   ];
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config makeWrapper ];
 
   buildInputs = [
     boost
@@ -68,7 +68,7 @@ let
     inherit src patches nativeBuildInputs postPatch;
 
     # gst_plugins needed for setup-hooks
-    buildInputs = buildInputs ++ [ makeWrapper ] ++ gst_plugins;
+    buildInputs = buildInputs ++ gst_plugins;
 
     preConfigure = ''
       rm -rf ext/{,lib}clementine-spotifyblob
@@ -102,7 +102,7 @@ let
     # Use the same patches and sources as Clementine
     inherit src nativeBuildInputs patches postPatch;
 
-    buildInputs = buildInputs ++ [ libspotify makeWrapper ];
+    buildInputs = buildInputs ++ [ libspotify ];
     # Only build and install the Spotify blob
     preBuild = ''
       cd ext/clementine-spotifyblob
diff --git a/pkgs/applications/audio/clerk/default.nix b/pkgs/applications/audio/clerk/default.nix
index 0724632a63e..ebcd09ca6ad 100644
--- a/pkgs/applications/audio/clerk/default.nix
+++ b/pkgs/applications/audio/clerk/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper, rofi, mpc_cli, perl,
-util-linux, pythonPackages, libnotify }:
+util-linux, python3Packages, libnotify }:
 
 stdenv.mkDerivation {
   name = "clerk-2016-10-14";
@@ -11,10 +11,13 @@ stdenv.mkDerivation {
     sha256 = "0y045my65hr3hjyx13jrnyg6g3wb41phqb1m7azc4l6vx6r4124b";
   };
 
-  buildInputs = [ makeWrapper pythonPackages.mpd2 ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python3Packages.mpd2 ];
 
   dontBuild = true;
 
+  strictDeps = true;
+
   installPhase = ''
     DESTDIR=$out PREFIX=/ make install
     wrapProgram $out/bin/clerk \
diff --git a/pkgs/applications/audio/csa/default.nix b/pkgs/applications/audio/csa/default.nix
index 5121f6d616b..0f7ad460a8c 100644
--- a/pkgs/applications/audio/csa/default.nix
+++ b/pkgs/applications/audio/csa/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3;
     maintainers = [ maintainers.magnetophon ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/audio/csound/csound-qt/default.nix b/pkgs/applications/audio/csound/csound-qt/default.nix
index ba9df9039f6..953a919d0c7 100644
--- a/pkgs/applications/audio/csound/csound-qt/default.nix
+++ b/pkgs/applications/audio/csound/csound-qt/default.nix
@@ -40,6 +40,8 @@ stdenv.mkDerivation rec {
                  "SHARE_DIR=${placeholder "out"}/share"
                  ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features";
     homepage = "https://csoundqt.github.io/";
diff --git a/pkgs/applications/audio/deadbeef/wrapper.nix b/pkgs/applications/audio/deadbeef/wrapper.nix
index cd45ef5926b..66108deab1e 100644
--- a/pkgs/applications/audio/deadbeef/wrapper.nix
+++ b/pkgs/applications/audio/deadbeef/wrapper.nix
@@ -5,7 +5,7 @@ symlinkJoin {
 
   paths = [ deadbeef ] ++ plugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     wrapProgram $out/bin/deadbeef \
diff --git a/pkgs/applications/audio/denemo/default.nix b/pkgs/applications/audio/denemo/default.nix
index 4abaec8dadd..3a2dbd139d7 100644
--- a/pkgs/applications/audio/denemo/default.nix
+++ b/pkgs/applications/audio/denemo/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "denemo";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
-    sha256 = "145kq0zfgdadykl3i6na221i4s5wzdrcqq48amzyfarnrqk2rmpd";
+    sha256 = "sha256-B6GbBL/o/z0emT+Iw6XvWmAsJCmIwSGCyV1DkhDyfBY=";
   };
 
   buildInputs = [
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/ecasound/default.nix b/pkgs/applications/audio/ecasound/default.nix
index 0de66b24e70..e2ec9bf8ab2 100644
--- a/pkgs/applications/audio/ecasound/default.nix
+++ b/pkgs/applications/audio/ecasound/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
+  CXXFLAGS = "-std=c++11";
   configureFlags = "--enable-liblilv --with-extra-cppflags=-Dnullptr=0";
 
   postPatch = ''
diff --git a/pkgs/applications/audio/espeak-ng/default.nix b/pkgs/applications/audio/espeak-ng/default.nix
index 50d7af6d116..44d5a0aa15a 100644
--- a/pkgs/applications/audio/espeak-ng/default.nix
+++ b/pkgs/applications/audio/espeak-ng/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchFromGitHub, autoconf, automake, which, libtool, pkg-config
-, ronn
+, ronn, substituteAll
+, mbrolaSupport ? true, mbrola
 , pcaudiolibSupport ? true, pcaudiolib
 , sonicSupport ? true, sonic }:
 
@@ -14,13 +15,26 @@ stdenv.mkDerivation rec {
     sha256 = "0jkqhf2h94vbqq7mg7mmm23bq372fa7mdk941my18c3vkldcir1b";
   };
 
+  patches = lib.optionals mbrolaSupport [
+    # Hardcode correct mbrola paths.
+    (substituteAll {
+      src = ./mbrola.patch;
+      inherit mbrola;
+    })
+  ];
+
   nativeBuildInputs = [ autoconf automake which libtool pkg-config ronn ];
 
-  buildInputs = lib.optional pcaudiolibSupport pcaudiolib
+  buildInputs = lib.optional mbrolaSupport mbrola
+             ++ lib.optional pcaudiolibSupport pcaudiolib
              ++ lib.optional sonicSupport sonic;
 
   preConfigure = "./autogen.sh";
 
+  configureFlags = [
+    "--with-mbrola=${if mbrolaSupport then "yes" else "no"}"
+  ];
+
   postInstall = lib.optionalString stdenv.isLinux ''
     patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
   '';
@@ -29,7 +43,7 @@ stdenv.mkDerivation rec {
     description = "Open source speech synthesizer that supports over 70 languages, based on eSpeak";
     homepage = "https://github.com/espeak-ng/espeak-ng";
     changelog = "https://github.com/espeak-ng/espeak-ng/blob/${version}/CHANGELOG.md";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ aske ];
     platforms = platforms.all;
   };
diff --git a/pkgs/applications/audio/espeak-ng/mbrola.patch b/pkgs/applications/audio/espeak-ng/mbrola.patch
new file mode 100644
index 00000000000..2f6c61cca4e
--- /dev/null
+++ b/pkgs/applications/audio/espeak-ng/mbrola.patch
@@ -0,0 +1,22 @@
+--- a/src/libespeak-ng/mbrowrap.c
++++ b/src/libespeak-ng/mbrowrap.c
+@@ -205,7 +205,7 @@
+ 		signal(SIGTERM, SIG_IGN);
+ 
+ 		snprintf(charbuf, sizeof(charbuf), "%g", mbr_volume);
+-		execlp("mbrola", "mbrola", "-e", "-v", charbuf,
++		execlp("@mbrola@/bin/mbrola", "mbrola", "-e", "-v", charbuf,
+ 		       voice_path, "-", "-.wav", (char *)NULL);
+ 		/* if execution reaches this point then the exec() failed */
+ 		snprintf(mbr_errorbuf, sizeof(mbr_errorbuf),
+--- a/src/libespeak-ng/synth_mbrola.c
++++ b/src/libespeak-ng/synth_mbrola.c
+@@ -85,7 +85,7 @@
+ 	if (!load_MBR())
+ 		return ENS_MBROLA_NOT_FOUND;
+ 
+-	sprintf(path, "%s/mbrola/%s", path_home, mbrola_voice);
++	sprintf(path, "@mbrola@/share/mbrola/voices/%s/%s", mbrola_voice, mbrola_voice);
+ #ifdef PLATFORM_POSIX
+ 	// if not found, then also look in
+ 	//   usr/share/mbrola/xx, /usr/share/mbrola/xx/xx, /usr/share/mbrola/voices/xx
diff --git a/pkgs/applications/audio/espeak/default.nix b/pkgs/applications/audio/espeak/default.nix
index b155c1c41b6..675f31b478c 100644
--- a/pkgs/applications/audio/espeak/default.nix
+++ b/pkgs/applications/audio/espeak/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz";
   };
 
-  buildInputs = [ unzip portaudio ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ portaudio ];
 
   patches = [
     ./gcc6.patch
diff --git a/pkgs/applications/audio/espeak/edit.nix b/pkgs/applications/audio/espeak/edit.nix
index aa0dc90adf5..0b9fa3dfbe5 100644
--- a/pkgs/applications/audio/espeak/edit.nix
+++ b/pkgs/applications/audio/espeak/edit.nix
@@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ unzip portaudio wxGTK ];
+  nativeBuildInputs = [ pkg-config unzip ];
+  buildInputs = [ portaudio wxGTK ];
 
   # TODO:
   # Uhm, seems like espeakedit still wants espeak-data/ in $HOME, even thought
diff --git a/pkgs/applications/audio/faust/faust1.nix b/pkgs/applications/audio/faust/faust1.nix
index 6d7d2e2c2ba..81ce11b9ea1 100644
--- a/pkgs/applications/audio/faust/faust1.nix
+++ b/pkgs/applications/audio/faust/faust1.nix
@@ -30,7 +30,7 @@ let
 
     inherit src;
 
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
 
     passthru = {
       inherit wrap wrapWithBuildEnv;
@@ -159,8 +159,7 @@ let
 
     stdenv.mkDerivation ((faust2ApplBase args) // {
 
-      nativeBuildInputs = [ pkg-config ];
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ pkg-config makeWrapper ];
 
       propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs;
 
@@ -195,7 +194,7 @@ let
 
     in stdenv.mkDerivation ((faust2ApplBase args) // {
 
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ makeWrapper ];
 
       postFixup = ''
         for script in "$out"/bin/*; do
diff --git a/pkgs/applications/audio/faust/faust2.nix b/pkgs/applications/audio/faust/faust2.nix
index 990d073528e..051caf120fa 100644
--- a/pkgs/applications/audio/faust/faust2.nix
+++ b/pkgs/applications/audio/faust/faust2.nix
@@ -168,8 +168,7 @@ let
 
     stdenv.mkDerivation ((faust2ApplBase args) // {
 
-      nativeBuildInputs = [ pkg-config ];
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ pkg-config makeWrapper ];
 
       propagatedBuildInputs = [ faust ] ++ propagatedBuildInputs;
 
@@ -209,7 +208,7 @@ let
 
     in stdenv.mkDerivation ((faust2ApplBase args) // {
 
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ makeWrapper ];
 
       postFixup = ''
         for script in "$out"/bin/*; do
diff --git a/pkgs/applications/audio/faust/faust2jack.nix b/pkgs/applications/audio/faust/faust2jack.nix
index dd4cdd29c66..ab2450f1e52 100644
--- a/pkgs/applications/audio/faust/faust2jack.nix
+++ b/pkgs/applications/audio/faust/faust2jack.nix
@@ -1,6 +1,6 @@
 { faust
 , gtk2
-, jack2Full
+, jack2
 , alsaLib
 , opencv
 , libsndfile
@@ -18,7 +18,7 @@ faust.wrapWithBuildEnv {
 
   propagatedBuildInputs = [
     gtk2
-    jack2Full
+    jack2
     alsaLib
     opencv
     libsndfile
diff --git a/pkgs/applications/audio/faust/faust2jaqt.nix b/pkgs/applications/audio/faust/faust2jaqt.nix
index 76e4b5ce8db..f6bc4d485fd 100644
--- a/pkgs/applications/audio/faust/faust2jaqt.nix
+++ b/pkgs/applications/audio/faust/faust2jaqt.nix
@@ -1,5 +1,5 @@
 { faust
-, jack2Full
+, jack2
 , qt4
 , libsndfile
 , alsaLib
@@ -16,7 +16,7 @@ faust.wrapWithBuildEnv {
   ];
 
   propagatedBuildInputs = [
-    jack2Full
+    jack2
     qt4
     libsndfile
     alsaLib
diff --git a/pkgs/applications/audio/freac/default.nix b/pkgs/applications/audio/freac/default.nix
new file mode 100644
index 00000000000..c906f62894d
--- /dev/null
+++ b/pkgs/applications/audio/freac/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, boca
+, smooth
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "freac";
+  version = "1.1.4";
+
+  src = fetchFromGitHub {
+    owner = "enzo1982";
+    repo = "freac";
+    rev = "v${version}";
+    sha256 = "sha256-JwZJOV4mxNKqhhdlfFcX06NwBxmbye2mgMfdM//bHYI=";
+  };
+
+  buildInputs = [
+    boca
+    smooth
+    systemd
+  ];
+
+  makeFlags = [
+    "prefix=$(out)"
+  ];
+
+  meta = with lib; {
+    description = "The fre:ac audio converter project";
+    license = licenses.gpl2Plus;
+    homepage = "https://www.freac.org/";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index d9d2570d0a8..2ebff030b4e 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.43";
+  version = "1.44_fix";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "sha256-OIQk7ngg1wsB6DFcxhrviPGlhzdaAWBi9C2roSNg1eI=";
+    sha256 = "sha256-2HhG2cDzAvpSm655M1KQnjbfVvqqOZDz2ty7xnttskA=";
   };
 
   # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix
index 1733aef4177..6524700ae15 100644
--- a/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -1,12 +1,10 @@
-{ lib
+{ stdenv
+, lib
 , rustPlatform
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , gettext
-, cargo
-, rustc
 , python3
 , pkg-config
 , glib
@@ -19,9 +17,9 @@
 , wrapGAppsHook
 }:
 
-rustPlatform.buildRustPackage rec {
-  version = "0.4.8";
+stdenv.mkDerivation rec {
   pname = "gnome-podcasts";
+  version = "0.4.8";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -31,16 +29,21 @@ rustPlatform.buildRustPackage rec {
     sha256 = "0y2332zjq7vf1v38wzwz98fs19vpzy9kl7y0xbdzqr303l59hjb1";
   };
 
-  cargoSha256 = "1jbii9k4bkrivdk1ffr6556q1sgk9j4jbzwnn8vbxmksyl1x328q";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-GInRA/V61r42spb/JYlM8+mATSkmOxdm2zHPRWaKcck=";
+  };
 
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     gettext
-    cargo
-    rustc
     python3
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
     wrapGAppsHook
     glib
   ];
@@ -58,12 +61,6 @@ rustPlatform.buildRustPackage rec {
     gst_all_1.gst-plugins-good
   ];
 
-  # use Meson/Ninja phases
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   # tests require network
   doCheck = false;
 
@@ -75,7 +72,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Listen to your favorite podcasts";
     homepage = "https://wiki.gnome.org/Apps/Podcasts";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/audio/google-musicmanager/default.nix b/pkgs/applications/audio/google-musicmanager/default.nix
deleted file mode 100644
index e10a961a9e6..00000000000
--- a/pkgs/applications/audio/google-musicmanager/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ lib, stdenv, fetchurl
-, flac, expat, libidn, qtbase, qtwebkit, libvorbis }:
-assert stdenv.hostPlatform.system == "x86_64-linux";
-
-stdenv.mkDerivation rec {
-  version = "beta_1.0.467.4929-r0"; # friendly to nix-env version sorting algo
-  product = "google-musicmanager";
-  name    = "${product}-${version}";
-
-  # When looking for newer versions, since google doesn't let you list their repo dirs,
-  # curl http://dl.google.com/linux/musicmanager/deb/dists/stable/Release
-  # fetch an appropriate packages file such as main/binary-amd64/Packages:
-  # curl http://dl.google.com/linux/musicmanager/deb/dists/stable/main/binary-amd64/Packages
-  # which will contain the links to all available *.debs for the arch.
-
-  src = fetchurl {
-    url    = "http://dl.google.com/linux/musicmanager/deb/pool/main/g/google-musicmanager-beta/${name}_amd64.deb";
-    sha256 = "0yaprpbp44var88kdj1h11fqkhgcklixr69jyia49v9m22529gg2";
-  };
-
-  unpackPhase = ''
-    ar vx ${src}
-    tar xvf data.tar.xz
-    tar xvf control.tar.gz
-  '';
-
-  prePatch = ''
-    sed -i "s@\(Exec=\).*@\1$out/bin/google-musicmanager@" opt/google/musicmanager/google-musicmanager.desktop
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/lib
-    mkdir -p $out/share/applications
-
-    cp -r opt $out
-    find -name "*.so*" -exec cp "{}" $out/lib \;
-    ln -s $out/opt/google/musicmanager/google-musicmanager $out/bin
-    ln -s $out/opt/google/musicmanager/google-musicmanager.desktop $out/share/applications
-
-    for i in 16 32 48 128
-    do
-      iconDirectory=$out/usr/share/icons/hicolor/"$i"x"$i"/apps
-
-      mkdir -p $iconDirectory
-      ln -s $out/opt/google/musicmanager/product_logo_"$i".png $iconDirectory/google-musicmanager.png
-    done
-  '';
-
-  postFixup = ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "$(patchelf --print-rpath $out/opt/google/musicmanager/minidump_upload):${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}" \
-      $out/opt/google/musicmanager/minidump_upload
-
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "$(patchelf --print-rpath $out/opt/google/musicmanager/MusicManager):$out/lib:${lib.makeLibraryPath [
-        flac
-        expat
-        libidn
-        qtbase
-        qtwebkit
-        libvorbis
-        stdenv.cc.cc.lib
-      ]}" \
-      $out/opt/google/musicmanager/MusicManager
-  '';
-
-  meta = with lib; {
-    description = "Uploads music from your computer to Google Play";
-    homepage    = "https://support.google.com/googleplay/answer/1229970";
-    license     = licenses.unfree;
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/google-play-music-desktop-player/default.nix b/pkgs/applications/audio/google-play-music-desktop-player/default.nix
index 0be1cc45717..9d891d30234 100644
--- a/pkgs/applications/audio/google-play-music-desktop-player/default.nix
+++ b/pkgs/applications/audio/google-play-music-desktop-player/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   };
 
   dontBuild = true;
-  buildInputs = [ dpkg makeWrapper ];
+  nativeBuildInputs = [ dpkg makeWrapper ];
 
   unpackPhase = ''
     dpkg -x $src .
@@ -74,9 +74,9 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://www.googleplaymusicdesktopplayer.com/";
-    description = "A beautiful cross platform Desktop Player for Google Play Music";
+    description = "A beautiful cross platform Desktop Player for Google Play Music and YouTube Music";
     license = lib.licenses.mit;
     platforms = [ "x86_64-linux" ];
-    maintainers = [ lib.maintainers.SuprDewd ];
+    maintainers = with lib.maintainers; [ anna328p SuprDewd ];
   };
 }
diff --git a/pkgs/applications/audio/gtklick/default.nix b/pkgs/applications/audio/gtklick/default.nix
index b3b95ca057e..6b7f4e4d7b2 100644
--- a/pkgs/applications/audio/gtklick/default.nix
+++ b/pkgs/applications/audio/gtklick/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchurl, pythonPackages, gettext, klick}:
+{ lib, fetchurl, python2Packages, gettext, klick}:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "gtklick";
   version = "0.6.4";
 
@@ -9,7 +9,7 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "7799d884126ccc818678aed79d58057f8cf3528e9f1be771c3fa5b694d9d0137";
   };
 
-  pythonPath = with pythonPackages; [
+  pythonPath = with python2Packages; [
     pyliblo
     pyGtkGlade
   ];
diff --git a/pkgs/applications/audio/helio-workstation/default.nix b/pkgs/applications/audio/helio-workstation/default.nix
index e2c19ac156d..bb92682b141 100644
--- a/pkgs/applications/audio/helio-workstation/default.nix
+++ b/pkgs/applications/audio/helio-workstation/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "helio-workstation";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "helio-fm";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-meeNqV1jKUwWc7P3p/LicPsbpzpKKFmQ1wP9DuXc9NY=";
+    sha256 = "sha256-zXsDu/xi7OV6VtnZK9ZJ8uwPeA5uTgNpAQsqe90iwG4=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/ingen/default.nix b/pkgs/applications/audio/ingen/default.nix
index 55456b2fb6f..a0defad0da0 100644
--- a/pkgs/applications/audio/ingen/default.nix
+++ b/pkgs/applications/audio/ingen/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv
-, lv2, makeWrapper, pkg-config, python, raul, rdflib, serd, sord, sratom
+, lv2, makeWrapper, pkg-config, python3, raul, serd, sord, sratom
 , wafHook
 , suil
 }:
@@ -16,24 +16,21 @@ stdenv.mkDerivation  rec {
     deepClone = true;
   };
 
-  nativeBuildInputs = [ pkg-config wafHook ];
+  nativeBuildInputs = [ pkg-config wafHook python3 python3.pkgs.wrapPython ];
   buildInputs = [
-    boost ganv glibmm gtkmm2 libjack2 lilv lv2 makeWrapper
-    python raul serd sord sratom suil
+    boost ganv glibmm gtkmm2 libjack2 lilv lv2
+    python3 raul serd sord sratom suil
   ];
 
-  preConfigure = ''
-    sed -e "s@{PYTHONDIR}/'@out/'@" -i wscript
-  '';
+  strictDeps = true;
 
-  propagatedBuildInputs = [ rdflib ];
+  pythonPath = [
+    python3
+    python3.pkgs.rdflib
+  ];
 
   postInstall = ''
-    for program in ingenams ingenish
-    do
-      wrapProgram $out/bin/$program \
-        --prefix PYTHONPATH : $out/${python.sitePackages}:$PYTHONPATH
-    done
+    wrapPythonProgramsIn "$out/bin" "$out $pythonPath"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix
index 611956089ed..b640b55c547 100644
--- a/pkgs/applications/audio/jalv/default.nix
+++ b/pkgs/applications/audio/jalv/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python
+{ lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python3
 , serd, sord , sratom, suil, wafHook }:
 
 stdenv.mkDerivation  rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ pkg-config wafHook ];
   buildInputs = [
-    gtk2 libjack2 lilv lv2 python serd sord sratom suil
+    gtk2 libjack2 lilv lv2 python3 serd sord sratom suil
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/audio/jamin/default.nix b/pkgs/applications/audio/jamin/default.nix
index f111c4e99d7..325d115b581 100644
--- a/pkgs/applications/audio/jamin/default.nix
+++ b/pkgs/applications/audio/jamin/default.nix
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 makeWrapper ]
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 ]
     ++ (with perlPackages; [ perl XMLParser ]);
 
   NIX_LDFLAGS = "-ldl";
diff --git a/pkgs/applications/audio/jamulus/default.nix b/pkgs/applications/audio/jamulus/default.nix
index 13b488ce7d7..bf054b118e1 100644
--- a/pkgs/applications/audio/jamulus/default.nix
+++ b/pkgs/applications/audio/jamulus/default.nix
@@ -1,14 +1,14 @@
-{ mkDerivation, lib, fetchFromGitHub, fetchpatch, pkg-config, qtscript, qmake, libjack2
+{ mkDerivation, lib, fetchFromGitHub, pkg-config, qtscript, qmake, libjack2
 }:
 
 mkDerivation rec {
   pname = "jamulus";
-  version = "3.6.2";
+  version = "3.7.0";
   src = fetchFromGitHub {
-    owner = "corrados";
+    owner = "jamulussoftware";
     repo = "jamulus";
     rev = "r${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-b187Q8KXcU32C2hGFqs6R2CqWgmieq6ewQDx+elEgP4=";
+    sha256 = "sha256-8zCPT0jo4ExgmZWxGinumv3JauH4csM9DtuHmOiJQAM=";
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
@@ -20,7 +20,7 @@ mkDerivation rec {
     description = "Enables musicians to perform real-time jam sessions over the internet";
     longDescription = "You also need to enable JACK and should enable several real-time optimizations. See project website for details";
     homepage = "https://github.com/corrados/jamulus/wiki";
-    license = lib.licenses.gpl2; # linked in git repo, at least
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.seb314 ];
   };
diff --git a/pkgs/applications/audio/jmusicbot/default.nix b/pkgs/applications/audio/jmusicbot/default.nix
new file mode 100644
index 00000000000..299fe547366
--- /dev/null
+++ b/pkgs/applications/audio/jmusicbot/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+  pname = "JMusicBot";
+  version = "0.3.4";
+
+  src = fetchurl {
+    url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
+    sha256 = "sha256-++/ot9k74pkN9Wl7IEjiMIv/q5zklIEdU6uFjam0tmU=";
+  };
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/lib
+    cp $src $out/lib/JMusicBot
+
+    makeWrapper ${jre}/bin/java $out/bin/JMusicBot \
+      --add-flags "-Xmx1G -Dnogui=true -jar $out/lib/JMusicBot"
+  '';
+
+  meta = with lib; {
+    description = "Discord music bot that's easy to set up and run yourself";
+    homepage = "https://github.com/jagrosh/MusicBot";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/audio/keyfinder/default.nix b/pkgs/applications/audio/keyfinder/default.nix
index 80cd8f4d9a0..c3667ee57a5 100644
--- a/pkgs/applications/audio/keyfinder/default.nix
+++ b/pkgs/applications/audio/keyfinder/default.nix
@@ -20,6 +20,8 @@ mkDerivation rec {
        --replace "\$\$[QT_INSTALL_PREFIX]" "$out"
   '';
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Musical key detection for digital audio (graphical UI)";
     longDescription = ''
diff --git a/pkgs/applications/audio/kmetronome/default.nix b/pkgs/applications/audio/kmetronome/default.nix
index ca8df45e459..02353fcf4f5 100644
--- a/pkgs/applications/audio/kmetronome/default.nix
+++ b/pkgs/applications/audio/kmetronome/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ alsaLib drumstick qtbase qtsvg ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://kmetronome.sourceforge.io/";
     description = "ALSA MIDI metronome with Qt interface";
diff --git a/pkgs/applications/audio/lash/default.nix b/pkgs/applications/audio/lash/default.nix
index eb355a43409..74bbeb9b7bb 100644
--- a/pkgs/applications/audio/lash/default.nix
+++ b/pkgs/applications/audio/lash/default.nix
@@ -15,8 +15,8 @@ stdenv.mkDerivation  rec {
   # http://permalink.gmane.org/gmane.linux.redhat.fedora.extras.cvs/822346
   patches = [ ./socket.patch ./gcc-47.patch ];
 
-  buildInputs = [ alsaLib gtk2 libjack2 libxml2 makeWrapper
-    pkg-config readline ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ alsaLib gtk2 libjack2 libxml2 readline ];
   propagatedBuildInputs = [ libuuid ];
   NIX_LDFLAGS = "-lm -lpthread -luuid";
 
diff --git a/pkgs/applications/audio/lastfmsubmitd/default.nix b/pkgs/applications/audio/lastfmsubmitd/default.nix
index efafc5b05b1..8a786c5c69e 100644
--- a/pkgs/applications/audio/lastfmsubmitd/default.nix
+++ b/pkgs/applications/audio/lastfmsubmitd/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchurl, pythonPackages }:
+{ lib, fetchurl, python2Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "lastfmsubmitd";
   version = "1.0.6";
 
diff --git a/pkgs/applications/audio/linuxband/default.nix b/pkgs/applications/audio/linuxband/default.nix
index 118b54ad858..ec034ae238d 100644
--- a/pkgs/applications/audio/linuxband/default.nix
+++ b/pkgs/applications/audio/linuxband/default.nix
@@ -11,8 +11,8 @@ in stdenv.mkDerivation rec {
     sha256 = "1r71h4yg775m4gax4irrvygmrsclgn503ykmc2qwjsxa42ri4n2n";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ makeWrapper MMA libjack2 libsmf python pyGtkGlade pygtksourceview ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ MMA libjack2 libsmf python pyGtkGlade pygtksourceview ];
 
   patchPhase = ''
     sed -i 's@/usr/@${MMA}/@g' src/main/config/linuxband.rc.in
diff --git a/pkgs/applications/audio/littlegptracker/default.nix b/pkgs/applications/audio/littlegptracker/default.nix
index 638f54da515..4d7d70aebd6 100644
--- a/pkgs/applications/audio/littlegptracker/default.nix
+++ b/pkgs/applications/audio/littlegptracker/default.nix
@@ -43,7 +43,9 @@ stdenv.mkDerivation rec {
   installPhase = let extension = if stdenv.isDarwin then "app" else "deb-exe";
     in "install -Dm555 lgpt.${extension} $out/bin/lgpt";
 
-  passthru.updateScript = unstableGitUpdater { };
+  passthru.updateScript = unstableGitUpdater {
+    url = "https://github.com/Mdashdotdashn/littlegptracker.git";
+  };
 
   meta = with lib; {
     description = "A music tracker similar to lsdj optimised to run on portable game consoles";
diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix
index 6c218738f0e..9ae05fb571b 100644
--- a/pkgs/applications/audio/lollypop/default.nix
+++ b/pkgs/applications/audio/lollypop/default.nix
@@ -25,7 +25,7 @@
 
 python3.pkgs.buildPythonApplication rec  {
   pname = "lollypop";
-  version = "1.4.16";
+  version = "1.4.17";
 
   format = "other";
   doCheck = false;
@@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec  {
     url = "https://gitlab.gnome.org/World/lollypop";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-4txJ+lYx2BROjZznFwWMc+tTVpYQpPtPySfCl+Hfy+0=";
+    sha256 = "sha256-GrznUXIYUTYOKQ1znsCqmBdm5YImCABMK2NGRtx5fSk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix
index a25c522e12f..e3f92d2da74 100644
--- a/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/pkgs/applications/audio/lsp-plugins/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, makeWrapper
-, libsndfile, jack2Full
+, libsndfile, jack2
 , libGLU, libGL, lv2, cairo
 , ladspaH, php }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config php makeWrapper ];
-  buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH ];
+  buildInputs = [ jack2 libsndfile libGLU libGL lv2 cairo ladspaH ];
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
diff --git a/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix b/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
index d7f0a7fb20e..400f268d439 100644
--- a/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "CharacterCompressor";
   version = "0.3.3";
diff --git a/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix b/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
index 7a917d79c57..0b80aef170a 100644
--- a/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "CompBus";
   version = "1.1.1";
diff --git a/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix b/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
index 5ac71172325..56534309733 100644
--- a/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "constant-detune-chorus";
   version = "0.1.3";
diff --git a/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix b/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
index 277b186fd4a..4b1157de0b0 100644
--- a/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "LazyLimiter";
   version = "0.3.2";
diff --git a/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix b/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
index de7e573cbee..32f43eaed9c 100644
--- a/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "MBdistortion";
   version = "1.1.1";
@@ -10,6 +10,13 @@ stdenv.mkDerivation rec {
     sha256 = "0mdzaqmxzgspfgx9w1hdip18y17hwpdcgjyq1rrfm843vkascwip";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/magnetophon/MBdistortion/commit/10e35084b88c559f1b63760cf40fd5ef5a6745a5.patch";
+      sha256 = "0hwjl3rzvn3id0sr0qs8f37jdmr915mdan8miaf78ra0ir3wnk76";
+    })
+  ];
+
   buildInputs = [ faust2jaqt faust2lv2 ];
 
   buildPhase = ''
diff --git a/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix b/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
index 80c5bb89eee..fff4292cd76 100644
--- a/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "RhythmDelay";
   version = "2.1";
diff --git a/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix b/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
index 9bd4076f130..6bc8cff2261 100644
--- a/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jack, faust2lv2, helmholtz, mrpeach, puredata-with-plugins }:
+{ lib, stdenv, fetchFromGitHub, faust2jack, faust2lv2, helmholtz, mrpeach, puredata-with-plugins }:
 stdenv.mkDerivation rec {
   pname = "VoiceOfFaust";
   version = "1.1.4";
diff --git a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
index a90492f4235..7ea5fa753c8 100644
--- a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   name = "faustCompressors-v${version}";
   version = "1.2";
diff --git a/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix b/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
index 414e350caa0..fd807dd4245 100644
--- a/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "pluginUtils";
   version = "1.1";
diff --git a/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix b/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
index 7dcdf985c82..07d4402578c 100644
--- a/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+{ lib, stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
 stdenv.mkDerivation rec {
   pname = "shelfMultiBand";
   version = "0.6.1";
diff --git a/pkgs/applications/audio/mbrola/default.nix b/pkgs/applications/audio/mbrola/default.nix
new file mode 100644
index 00000000000..01a9fdd636b
--- /dev/null
+++ b/pkgs/applications/audio/mbrola/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+let
+  voices = fetchFromGitHub {
+    owner = "numediart";
+    repo = "MBROLA-voices";
+    rev = "fe05a0ccef6a941207fd6aaad0b31294a1f93a51";  # using latest commit
+    sha256 = "1w0y2xjp9rndwdjagp2wxh656mdm3d6w9cs411g27rjyfy1205a0";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "mbrola";
+  version = "3.3";
+
+  src = fetchFromGitHub {
+    owner = "numediart";
+    repo = "MBROLA";
+    rev = version;
+    sha256 = "1w86gv6zs2cbr0731n49z8v6xxw0g8b0hzyv2iqb9mqcfh38l8zy";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -D Bin/mbrola $out/bin/mbrola
+
+    # TODO: package separately because it's very big
+    install -d $out/share/mbrola/voices
+    cp -R ${voices}/data/* $out/share/mbrola/voices/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Speech synthesizer based on the concatenation of diphones";
+    homepage = "https://github.com/numediart/MBROLA";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ davidak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/mda-lv2/default.nix b/pkgs/applications/audio/mda-lv2/default.nix
index 30d654ab87a..92f8506483f 100644
--- a/pkgs/applications/audio/mda-lv2/default.nix
+++ b/pkgs/applications/audio/mda-lv2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mda-lv2";
-  version = "1.2.4";
+  version = "1.2.6";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "1a3cv6w5xby9yn11j695rbh3c4ih7rxfxmkca9s1324ljphh06m8";
+    sha256 = "sha256-zWYRcCSuBJzzrKg/npBKcCdyJOI6lp9yqcXQEKSYV9s=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook python3 ];
diff --git a/pkgs/applications/audio/midi-visualizer/default.nix b/pkgs/applications/audio/midi-visualizer/default.nix
index ec6fd4d8ed9..37cfd0fac40 100644
--- a/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/pkgs/applications/audio/midi-visualizer/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "MIDIVisualizer";
-  version = "6.2";
+  version = "6.3";
 
   src = fetchFromGitHub {
     owner = "kosua20";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-t7DRPV0FSg6v81GzHLK2O++sfjr2aFT+xg3+wFd0UFg=";
+    sha256 = "sha256-U/YmxHD6e13I++aW+z1Y5xtZ+MN0KUJLSskrF4+UgTE=";
   };
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper];
diff --git a/pkgs/applications/audio/mmtc/default.nix b/pkgs/applications/audio/mmtc/default.nix
index 0d1d2c5684f..4bd922c8fb6 100644
--- a/pkgs/applications/audio/mmtc/default.nix
+++ b/pkgs/applications/audio/mmtc/default.nix
@@ -1,17 +1,27 @@
-{ fetchFromGitHub, lib, rustPlatform }:
+{ fetchFromGitHub, installShellFiles, lib, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mmtc";
-  version = "0.2.12";
+  version = "0.2.13";
 
   src = fetchFromGitHub {
     owner = "figsoda";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1chcnv8wql6v2vckpzvq6sxgpss7mnxaj008jdm8xalhw9d496s4";
+    sha256 = "0ag87hgdg6fvk80fgznba0xjlcajks5w5s6y8lvwhz9irn2kq2rz";
   };
 
-  cargoSha256 = "06b0hag3s5irvi57n0hc97agfw4sw783lkkl1b26iap6mfbvrqma";
+  cargoSha256 = "06xqh0mqbik00qyg8mn1ddbn15v3pdwvh1agghg22xgx53kmnxb3";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  preFixup = ''
+    completions=($releaseDir/build/mmtc-*/out/completions)
+    installShellCompletion ''${completions[0]}/mmtc.{bash,fish}
+    installShellCompletion --zsh ''${completions[0]}/_mmtc
+  '';
+
+  GEN_COMPLETIONS = "1";
 
   meta = with lib; {
     description = "Minimal mpd terminal client that aims to be simple yet highly configurable";
diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix
index 2c19afb16a2..44d48fb3783 100644
--- a/pkgs/applications/audio/mopidy/default.nix
+++ b/pkgs/applications/audio/mopidy/default.nix
@@ -12,8 +12,6 @@ let
 
     mopidy = callPackage ./mopidy.nix { };
 
-    mopidy-gmusic = callPackage ./gmusic.nix { };
-
     mopidy-iris = callPackage ./iris.nix { };
 
     mopidy-local = callPackage ./local.nix { };
diff --git a/pkgs/applications/audio/mopidy/gmusic.nix b/pkgs/applications/audio/mopidy/gmusic.nix
deleted file mode 100644
index 6e76d6af87d..00000000000
--- a/pkgs/applications/audio/mopidy/gmusic.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, python3Packages, mopidy }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "mopidy-gmusic";
-  version = "4.0.0";
-
-  src = python3Packages.fetchPypi {
-    inherit version;
-    pname = "Mopidy-GMusic";
-    sha256 = "14yswmlfs659rs3k595606m77lw9c6pjykb5pikqw21sb97haxl3";
-  };
-
-  propagatedBuildInputs = [
-    mopidy
-    python3Packages.requests
-    python3Packages.gmusicapi
-    python3Packages.cachetools
-  ];
-
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://www.mopidy.com/";
-    description = "Mopidy extension for playing music from Google Play Music";
-    license = licenses.asl20;
-    maintainers = [ maintainers.jgillich ];
-    hydraPlatforms = [];
-  };
-}
diff --git a/pkgs/applications/audio/mopidy/local.nix b/pkgs/applications/audio/mopidy/local.nix
index de748ea7b32..ebe9885e495 100644
--- a/pkgs/applications/audio/mopidy/local.nix
+++ b/pkgs/applications/audio/mopidy/local.nix
@@ -1,16 +1,15 @@
 { lib
 , mopidy
 , python3Packages
-, fetchpatch
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "Mopidy-Local";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "14f78sb3wkg83dg3xcqlq77dh059zzcwry5l9ilyhnmvmyrkhqx0";
+    sha256 = "18w39mxpv8p17whd6zfw5653d21q138f8xd6ili6ks2g2dbm25i9";
   };
 
   propagatedBuildInputs = [
@@ -22,14 +21,6 @@ python3Packages.buildPythonApplication rec {
     python3Packages.pytestCheckHook
   ];
 
-  patches = [
-    # Fix tests for Mopidy≥3.1.0. Remove with the next release.
-    (fetchpatch {
-      url = "https://github.com/mopidy/mopidy-local/commit/f1d7598d3a9587f0823acb97ecb615f4f4817fd2.patch";
-      sha256 = "193kd5zwsr0qpp2y8icdy13vqpglmjdm7x1rw5hliwyq18a34vjp";
-    })
-  ];
-
   meta = with lib; {
     homepage = "https://github.com/mopidy/mopidy-local";
     description = "Mopidy extension for playing music from your local music archive";
diff --git a/pkgs/applications/audio/mopidy/mopidy.nix b/pkgs/applications/audio/mopidy/mopidy.nix
index 63a28eb0f58..d53bfee9efd 100644
--- a/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/pkgs/applications/audio/mopidy/mopidy.nix
@@ -42,7 +42,7 @@ pythonPackages.buildPythonApplication rec {
     homepage = "https://www.mopidy.com/";
     description = ''
       An extensible music server that plays music from local disk, Spotify,
-      SoundCloud, Google Play Music, and more
+      SoundCloud, and more
     '';
     license = licenses.asl20;
     maintainers = [ maintainers.fpletz ];
diff --git a/pkgs/applications/audio/mopidy/somafm.nix b/pkgs/applications/audio/mopidy/somafm.nix
index 0637731dcb5..81c689a343d 100644
--- a/pkgs/applications/audio/mopidy/somafm.nix
+++ b/pkgs/applications/audio/mopidy/somafm.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    homepage = https://www.mopidy.com/;
+    homepage = "https://www.mopidy.com/";
     description = "Mopidy extension for playing music from SomaFM";
     license = licenses.mit;
     maintainers = [ maintainers.nickhu ];
diff --git a/pkgs/applications/audio/mp3gain/default.nix b/pkgs/applications/audio/mp3gain/default.nix
index fb774476a2e..bf0a347d14b 100644
--- a/pkgs/applications/audio/mp3gain/default.nix
+++ b/pkgs/applications/audio/mp3gain/default.nix
@@ -7,7 +7,8 @@ stdenv.mkDerivation {
     sha256 = "0varr6y7k8zarr56b42r0ad9g3brhn5vv3xjg1c0v19jxwr4gh2w";
   };
 
-  buildInputs = [ unzip mpg123 ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ mpg123 ];
 
   sourceRoot = ".";
 
diff --git a/pkgs/applications/audio/mpdevil/default.nix b/pkgs/applications/audio/mpdevil/default.nix
new file mode 100644
index 00000000000..09256911f87
--- /dev/null
+++ b/pkgs/applications/audio/mpdevil/default.nix
@@ -0,0 +1,52 @@
+{ lib, fetchFromGitHub
+, python3Packages
+, gdk-pixbuf, glib, gobject-introspection, gtk3
+, intltool
+, wrapGAppsHook }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mpdevil";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "SoongNoonien";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0l7mqv7ys05al2hds4icb32hf14fqi3n7b0f5v1yx54cbl9cqfap";
+  };
+
+  nativeBuildInputs = [
+    glib.dev gobject-introspection gtk3 intltool wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gdk-pixbuf glib
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    beautifulsoup4 distutils_extra mpd2 notify-py pygobject3 requests
+  ];
+
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  # Prevent double wrapping.
+  dontWrapGApps = true;
+  # Otherwise wrapGAppsHook do not pick up the dependencies correctly.
+  strictDeps = false;
+  # There aren't any checks.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A simple music browser for MPD";
+    homepage = "https://github.com/SoongNoonien/mpdevil";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bloomvdomino ];
+  };
+}
diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix
index 0b46cffd19c..5c7eb6b88cf 100644
--- a/pkgs/applications/audio/mpg123/default.nix
+++ b/pkgs/applications/audio/mpg123/default.nix
@@ -7,11 +7,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "mpg123-1.26.3";
+  name = "mpg123-1.26.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
-    sha256 = "0vkcfdx0mqq6lmpczsmpa2jsb0s6dryx3i7gvr32i3w9b9w9ij9h";
+    sha256 = "sha256-CBmRVA33pmaykEmthw8pPPoohjs2SIq01Yzqp7WEZFQ=";
   };
 
   outputs = [ "out" "conplay" ];
diff --git a/pkgs/applications/audio/musescore/darwin.nix b/pkgs/applications/audio/musescore/darwin.nix
index 8cc876ab19e..13141729320 100644
--- a/pkgs/applications/audio/musescore/darwin.nix
+++ b/pkgs/applications/audio/musescore/darwin.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     homepage = "https://musescore.org/";
     license = licenses.gpl2;
     platforms = platforms.darwin;
-    maintainers = with maintainers; [ yurrriq ];
+    maintainers = [];
     repositories.git = "https://github.com/musescore/MuseScore";
   };
 }
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
index 47f8e5a22e6..b43b770b24f 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -3,17 +3,18 @@
 , portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects
 , qtquickcontrols2, qtscript, qtsvg, qttools
 , qtwebengine, qtxmlpatterns
+, nixosTests
 }:
 
 mkDerivation rec {
   pname = "musescore";
-  version = "3.6";
+  version = "3.6.2";
 
   src = fetchFromGitHub {
     owner = "musescore";
     repo = "MuseScore";
     rev = "v${version}";
-    sha256 = "sha256-0M+idYnrgXyH6WLp+2jIYRnFzTB93v+dG1XHmSNyPjE=";
+    sha256 = "sha256-GBGAD/qdOhoNfDzI+O0EiKgeb86GFJxpci35T6tZ+2s=";
   };
 
   patches = [
@@ -40,6 +41,8 @@ mkDerivation rec {
     qtscript qtsvg qttools qtwebengine qtxmlpatterns
   ];
 
+  passthru.tests = nixosTests.musescore;
+
   meta = with lib; {
     description = "Music notation and composition software";
     homepage = "https://musescore.org/";
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/ncspot/bump-security-framework-crate.patch b/pkgs/applications/audio/ncspot/bump-security-framework-crate.patch
new file mode 100644
index 00000000000..5c8008abb18
--- /dev/null
+++ b/pkgs/applications/audio/ncspot/bump-security-framework-crate.patch
@@ -0,0 +1,19 @@
+Bump security-framework from 2.1.1 to 2.1.2
+
+security-framework=2.1.1 doesn't build on Darwin 10.12.
+https://github.com/kornelski/rust-security-framework/issues/124
+
+--- c/Cargo.lock
++++ i/Cargo.lock
+@@ -3138,9 +3138,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+ 
+ [[package]]
+ name = "security-framework"
+-version = "2.1.1"
++version = "2.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2dfd318104249865096c8da1dfabf09ddbb6d0330ea176812a62ec75e40c4166"
++checksum = "d493c5f39e02dfb062cd8f33301f90f9b13b650e8c1b1d0fd75c19dd64bff69d"
+ dependencies = [
+  "bitflags 1.2.1",
+  "core-foundation",
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index e78eaca5490..ad8d64b9720 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPlatform, pkg-config, ncurses, openssl
+{ stdenv, lib, fetchFromGitHub, rustPlatform, pkg-config, ncurses, openssl, libiconv
 , withALSA ? true, alsaLib ? null
 , withPulseAudio ? false, libpulseaudio ? null
 , withPortAudio ? false, portaudio ? null
@@ -14,22 +14,25 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "sha256-4V0LG9mDvezeLHHTAmfAXdssOAOlZs30b8IejKEKN4g=";
+    sha256 = "1h1il2mzngxmcsl169431lwzl0skv420arg9i06856r5wil37jf7";
   };
 
-  cargoSha256 = "sha256-POvIkoxLAXVBTsB37aAEUKhk6DRF9IfvfTcrP5PLFEQ=";
+  cargoSha256 = "13yn7l4hhl48lbpj0zsbraqzkkz6knc373j6rcf8d1p4z76yili4";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
   nativeBuildInputs = [ pkg-config ];
 
+  cargoPatches = [ ./bump-security-framework-crate.patch ];
+
   buildInputs = [ ncurses openssl ]
+    ++ lib.optional stdenv.isDarwin libiconv
     ++ lib.optional withALSA alsaLib
     ++ lib.optional withPulseAudio libpulseaudio
     ++ lib.optional withPortAudio portaudio
diff --git a/pkgs/applications/audio/netease-music-tui/default.nix b/pkgs/applications/audio/netease-music-tui/default.nix
index 0322459685f..957c7b3c7fb 100644
--- a/pkgs/applications/audio/netease-music-tui/default.nix
+++ b/pkgs/applications/audio/netease-music-tui/default.nix
@@ -17,7 +17,6 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ alsaLib openssl ];
 
   cargoSha256 = "1kfbnwy3lkbhz0ggxwr5n6qd1plipkr1ycr3z2r7c0amrzzbkc7l";
-  verifyCargoDeps = true;
 
   meta = with lib; {
     homepage = "https://github.com/betta-cyber/netease-music-tui";
diff --git a/pkgs/applications/audio/new-session-manager/default.nix b/pkgs/applications/audio/new-session-manager/default.nix
index 0badb85f02c..eedd193b2c5 100644
--- a/pkgs/applications/audio/new-session-manager/default.nix
+++ b/pkgs/applications/audio/new-session-manager/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "new-session-manager";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "linuxaudio";
     repo = "new-session-manager";
     rev = "v${version}";
-    sha256 = "sha256-YP5AHoFP8P1o0Y2jAipRcNPxPRuM7COs5tBMm6Eojoc=";
+    sha256 = "sha256-hcw+Fn5s1S786eqmR95RmkFcIaRzWaH38YE9DXVQJU0=";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja ];
diff --git a/pkgs/applications/audio/nootka/default.nix b/pkgs/applications/audio/nootka/default.nix
index b1b60540b8c..11424c0be18 100644
--- a/pkgs/applications/audio/nootka/default.nix
+++ b/pkgs/applications/audio/nootka/default.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
     "-DENABLE_PULSEAUDIO=ON"
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Application for practicing playing musical scores and ear training";
     homepage = "https://nootka.sourceforge.io/";
diff --git a/pkgs/applications/audio/nootka/unstable.nix b/pkgs/applications/audio/nootka/unstable.nix
index 1fb70c195dc..aa49daaa1e7 100644
--- a/pkgs/applications/audio/nootka/unstable.nix
+++ b/pkgs/applications/audio/nootka/unstable.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
     qtbase qtdeclarative qtquickcontrols2
   ];
 
+  dontWrapQtApps = true;
+
   cmakeFlags = [
     "-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse"
     "-DENABLE_JACK=ON"
diff --git a/pkgs/applications/audio/ocenaudio/default.nix b/pkgs/applications/audio/ocenaudio/default.nix
index c3ab0ffcebd..d770396a6ad 100644
--- a/pkgs/applications/audio/ocenaudio/default.nix
+++ b/pkgs/applications/audio/ocenaudio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ocenaudio";
-  version = "3.9.6";
+  version = "3.10.2";
 
   src = fetchurl {
     url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
-    sha256 = "07r49133kk99ya4grwby3admy892mkk9cfxz3wh0v81aznhpw4jg";
+    sha256 = "sha256-mmo6/zc/3R8ptXfY01RKUOLgmDhWTHiYBMlGqpdMTAo=";
   };
 
 
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   dontUnpack = true;
   dontBuild = true;
   dontStrip = true;
+  dontWrapQtApps = true;
 
   installPhase = ''
     mkdir -p $out
diff --git a/pkgs/applications/audio/openmpt123/default.nix b/pkgs/applications/audio/openmpt123/default.nix
index 8e6113a716d..7f412d528db 100644
--- a/pkgs/applications/audio/openmpt123/default.nix
+++ b/pkgs/applications/audio/openmpt123/default.nix
@@ -2,14 +2,14 @@
 , usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
 
 let
-  version = "0.5.5";
+  version = "0.5.6";
 in stdenv.mkDerivation {
   pname = "openmpt123";
   inherit version;
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    sha256 = "sha256-8eAUg+vxpoDZ7AMMmvIPXypawPHgZCwYvVWTz6qc62s=";
+    sha256 = "sha256-F96ngrM0wUb0rNlIx8Mf/dKvyJnrNH6+Ab4WBup59Lg=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/oxefmsynth/default.nix b/pkgs/applications/audio/oxefmsynth/default.nix
new file mode 100644
index 00000000000..427029f3c86
--- /dev/null
+++ b/pkgs/applications/audio/oxefmsynth/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchFromGitHub, unzip, fetchzip, libX11 }:
+
+let
+
+  vst-sdk = stdenv.mkDerivation rec {
+    name = "vstsdk3610_11_06_2018_build_37";
+    src = fetchzip {
+      url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/${name}.zip";
+      sha256 = "0da16iwac590wphz2sm5afrfj42jrsnkr1bxcy93lj7a369ildkj";
+    };
+    installPhase = "cp -r . $out";
+  };
+
+in stdenv.mkDerivation rec {
+  pname = "oxefmsynth";
+  version = "1.3.5";
+
+  src = fetchFromGitHub {
+    owner = "oxesoft";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1rk71ls33a38wx8i22plsi7d89cqqxrfxknq5i4f9igsw1ipm4gn";
+  };
+
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=narrowing" ];
+
+  buildFlags = [ "VSTSDK_PATH=${vst-sdk}/VST2_SDK" ];
+
+  buildInputs = [ libX11 ];
+
+  installPhase = ''
+    mkdir -p $out/lib/lxvst
+    install -Dm644 oxevst64.so -t $out/lib/lxvst
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/oxesoft/oxefmsynth";
+    description = "An open source VST 2.4 instrument plugin";
+    maintainers = [ maintainers.hirenashah ];
+    platforms = [ "x86_64-linux" ];
+    license = licenses.gpl3Only;
+  };
+}
diff --git a/pkgs/applications/audio/pd-plugins/helmholtz/default.nix b/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
index 9b50b40a5bb..feaf9ed70cf 100644
--- a/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
+++ b/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
     sha256 = "0h1fj7lmvq9j6rmw33rb8k0byxb898bi2xhcwkqalb84avhywgvs";
   };
 
-  buildInputs = [ unzip puredata ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ puredata ];
 
   unpackPhase = ''
     unzip $src
diff --git a/pkgs/applications/audio/pd-plugins/puremapping/default.nix b/pkgs/applications/audio/pd-plugins/puremapping/default.nix
index 1eb6eb38931..811b8c2ee9a 100644
--- a/pkgs/applications/audio/pd-plugins/puremapping/default.nix
+++ b/pkgs/applications/audio/pd-plugins/puremapping/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1h7qgqd8srrxw2y1rkdw5js4k6f5vc8x6nlm2mq9mq9vjck7n1j7";
   };
 
-  buildInputs = [ unzip puredata ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ puredata ];
 
   unpackPhase = ''
     unzip $src
diff --git a/pkgs/applications/audio/pd-plugins/timbreid/default.nix b/pkgs/applications/audio/pd-plugins/timbreid/default.nix
index e5e67ec44dd..7fd2adefce0 100644
--- a/pkgs/applications/audio/pd-plugins/timbreid/default.nix
+++ b/pkgs/applications/audio/pd-plugins/timbreid/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "14k2xk5zrzrw1zprdbwx45hrlc7ck8vq4drpd3l455i5r8yk4y6b";
   };
 
-  buildInputs = [ unzip puredata fftw ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ puredata fftw ];
 
   unpackPhase = ''
     mkdir source
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/playbar2/default.nix b/pkgs/applications/audio/playbar2/default.nix
index 7545c17131f..dfbfb43e625 100644
--- a/pkgs/applications/audio/playbar2/default.nix
+++ b/pkgs/applications/audio/playbar2/default.nix
@@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
     kwindowsystem
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Mpris2 Client for Plasma5";
     homepage = "https://github.com/audoban/PlayBar2";
diff --git a/pkgs/applications/audio/plexamp/default.nix b/pkgs/applications/audio/plexamp/default.nix
index c484f6e1924..cb682f91b6d 100644
--- a/pkgs/applications/audio/plexamp/default.nix
+++ b/pkgs/applications/audio/plexamp/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "plexamp";
-  version = "3.4.1";
+  version = "3.4.4";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
     name="${pname}-${version}.AppImage";
-    sha256 = "Vv+e1q5ThuXDPX8baSU+7/U63p6/dvh0ZvScO1Loj+U=";
+    sha256 = "1iz6qi12ljafb49l73rba5rwi5sdbd8ck5h2r6jiy260lgr2iiyk";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -32,8 +32,9 @@ in appimageTools.wrapType2 {
   meta = with lib; {
     description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
     homepage = "https://plexamp.com/";
+    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/26";
     license = licenses.unfree;
-    maintainers = with maintainers; [ killercup ];
+    maintainers = with maintainers; [ killercup synthetica ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/audio/pragha/default.nix b/pkgs/applications/audio/pragha/default.nix
new file mode 100644
index 00000000000..da5a64f708e
--- /dev/null
+++ b/pkgs/applications/audio/pragha/default.nix
@@ -0,0 +1,103 @@
+{ lib
+, intltool
+, mkDerivation
+, installShellFiles
+, pkg-config
+, fetchFromGitHub
+, dbus-glib
+, desktop-file-utils
+, hicolor-icon-theme
+, pcre
+, qtbase
+, sqlite
+, taglib
+, zlib
+, gtk3
+, libpeas
+, libcddb
+, libcdio
+, gst_all_1, withGstPlugins ? true
+, glyr, withGlyr ? true
+, liblastfmSF, withLastfm ? true
+, libcdio-paranoia, withCD ? true
+, keybinder3, withKeybinder ? false
+, libnotify, withLibnotify ? false
+, libsoup, withLibsoup ? false
+, libgudev, withGudev ? false # experimental
+, libmtp, withMtp ? false # experimental
+, xfce, withXfce4ui ? false
+, totem-pl-parser, withTotemPlParser ? false
+# , grilo, withGrilo ? false
+# , rygel, withRygel ? true
+}:
+
+assert withGlyr -> withLastfm;
+assert withLastfm -> withCD;
+
+mkDerivation rec {
+  pname = "pragha";
+  version = "1.3.99.1";
+
+  src = fetchFromGitHub {
+    owner = "pragha-music-player";
+    repo = "pragha";
+    rev = "v${version}";
+    sha256 = "sha256-C4zh2NHqP4bwKMi5s+3AfEtKqxRlzL66H8OyNonGzxE=";
+  };
+
+  nativeBuildInputs = [
+    intltool
+    pkg-config
+    xfce.xfce4-dev-tools
+    desktop-file-utils
+    installShellFiles
+  ];
+
+  buildInputs = with gst_all_1; [
+    dbus-glib
+    gstreamer
+    gst-plugins-base
+    gtk3
+    hicolor-icon-theme
+    libpeas
+    pcre
+    qtbase
+    sqlite
+    taglib
+    zlib
+  ]
+  ++ lib.optionals withGstPlugins [ gst-plugins-good gst-plugins-bad gst-plugins-ugly ]
+  ++ lib.optionals withCD [ libcddb libcdio libcdio-paranoia ]
+  ++ lib.optional withGudev libgudev
+  ++ lib.optional withKeybinder keybinder3
+  ++ lib.optional withLibnotify libnotify
+  ++ lib.optional withLastfm liblastfmSF
+  ++ lib.optional withGlyr glyr
+  ++ lib.optional withLibsoup libsoup
+  ++ lib.optional withMtp libmtp
+  ++ lib.optional withXfce4ui xfce.libxfce4ui
+  ++ lib.optional withTotemPlParser totem-pl-parser
+  # ++ lib.optional withGrilo grilo
+  # ++ lib.optional withRygel rygel
+  ;
+
+  CFLAGS = [ "-DHAVE_PARANOIA_NEW_INCLUDES" ];
+
+  NIX_CFLAGS_COMPILE = "-I${lib.getDev gst_all_1.gst-plugins-base}/include/gstreamer-1.0";
+
+  postInstall = ''
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+
+    install -m 444 data/${pname}.desktop $out/share/applications
+    install -d $out/share/pixmaps
+    installManPage data/${pname}.1
+  '';
+
+  meta = with lib; {
+    description = "A lightweight GTK+ music manager - fork of Consonance Music Manager";
+    homepage = "https://pragha-music-player.github.io/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ mbaeten ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/audio/projectm/default.nix b/pkgs/applications/audio/projectm/default.nix
index d207d26972f..6ca8d55bb24 100644
--- a/pkgs/applications/audio/projectm/default.nix
+++ b/pkgs/applications/audio/projectm/default.nix
@@ -13,13 +13,13 @@
 
 mkDerivation rec {
   pname = "projectm";
-  version = "3.1.8";
+  version = "3.1.12";
 
   src = fetchFromGitHub {
     owner = "projectM-visualizer";
     repo = "projectM";
     rev = "v${version}";
-    sha256 = "17zyxj1q0zj17jskq8w9bn2ijn34ldvdq61wy01yf5wgngax2r4z";
+    sha256 = "sha256-oEfOx93JyR94II5NkUCvMwqxuV7ktpOHZ8PNMLCiqDw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index 6a093c91daf..72e8ba135dd 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pt2-clone";
-  version = "1.28";
+  version = "1.29";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${version}";
-    sha256 = "1c2x43f46l7556kl9y9qign0g6ywdkh7ywkzv6c9y63n68ph20x2";
+    sha256 = "sha256-xnw4UL30nUv/Ru6x/7d05gC0X9nREMdXO9QWBjVoIvo=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/pulseaudio-ctl/default.nix b/pkgs/applications/audio/pulseaudio-ctl/default.nix
index 843c131ea65..9d1d6df1da5 100644
--- a/pkgs/applications/audio/pulseaudio-ctl/default.nix
+++ b/pkgs/applications/audio/pulseaudio-ctl/default.nix
@@ -7,13 +7,13 @@ let
 
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "1.68";
+  version = "1.69";
 
   src = fetchFromGitHub {
     owner = "graysky2";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wrzfanwy18wyawpg8rfvfgjh3lwngqwmfpi4ww3530rfmi84cf0";
+    sha256 = "sha256-5WRhVIQlSwWuyvkzrnNW0rdVet9ZzM47gISJpznM8mU=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/audio/pulseeffects/default.nix b/pkgs/applications/audio/pulseeffects/default.nix
index 0ba926fab4f..33b15e977e7 100644
--- a/pkgs/applications/audio/pulseeffects/default.nix
+++ b/pkgs/applications/audio/pulseeffects/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -45,13 +46,15 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "pulseeffects";
-  version = "5.0.0";
+  # 5.0.3 crashes. Test carefully before updating.
+  # https://github.com/wwmm/pulseeffects/issues/927
+  version = "5.0.2";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "pulseeffects";
     rev = "v${version}";
-    sha256 = "1zs13bivxlgcb24lz1pgmgy2chcjxnmn4lz7g1n0ygiaaj4c30xj";
+    sha256 = "14ir25q6bws26im6qmj3k6hkfdh5pc6mbvln7wkdwy5dv0vix3cm";
   };
 
   nativeBuildInputs = [
@@ -87,6 +90,15 @@ in stdenv.mkDerivation rec {
     zita-convolver
   ];
 
+  patches = [
+    (fetchpatch {
+      # Fix build failure.
+      # https://github.com/wwmm/pulseeffects/pull/934
+      url = "https://github.com/wwmm/pulseeffects/commit/ab7354a6850d23840b4c9af212dbebf4f31a562f.patch";
+      sha256 = "1hd05xn6sp0xs632mqgwk19hl40kh2f69mx5mgzahysrj057w22c";
+    })
+  ];
+
   postPatch = ''
     chmod +x meson_post_install.py
     patchShebangs meson_post_install.py
@@ -104,6 +116,8 @@ in stdenv.mkDerivation rec {
   BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
   BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
 
+  separateDebugInfo = true;
+
   meta = with lib; {
     description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
     homepage = "https://github.com/wwmm/pulseeffects";
diff --git a/pkgs/applications/audio/puredata/wrapper.nix b/pkgs/applications/audio/puredata/wrapper.nix
index 80968e2700b..3444ef9acbd 100644
--- a/pkgs/applications/audio/puredata/wrapper.nix
+++ b/pkgs/applications/audio/puredata/wrapper.nix
@@ -7,7 +7,7 @@ in symlinkJoin {
 
   paths = [ puredata ] ++ plugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     wrapProgram $out/bin/pd \
diff --git a/pkgs/applications/audio/qmidinet/default.nix b/pkgs/applications/audio/qmidinet/default.nix
index d7b4b834321..ea5430a82a2 100644
--- a/pkgs/applications/audio/qmidinet/default.nix
+++ b/pkgs/applications/audio/qmidinet/default.nix
@@ -1,12 +1,12 @@
 { mkDerivation, lib, fetchurl, pkg-config, qtbase, qttools, alsaLib, libjack2 }:
 
 mkDerivation rec {
-  version = "0.6.3";
+  version = "0.9.1";
   pname = "qmidinet";
 
   src = fetchurl {
     url = "mirror://sourceforge/qmidinet/${pname}-${version}.tar.gz";
-    sha256 = "04jbvnf6yp9l0bhl1ym6zqkmaz8c2az3flq7qgflaxzj3isns1p1";
+    sha256 = "sha256-cDgF5hbjy5DzGn4Rlmb76XzRa2wURVwPu2rQRKENxQU=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index b75af645bb3..25263f2a2cb 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -29,11 +29,11 @@
 # handle that.
 
 mkDerivation rec {
-  name = "qmmp-1.4.2";
+  name = "qmmp-1.4.4";
 
   src = fetchurl {
     url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
-    sha256 = "1kvzw0n90crg3dgy8834qrjv0zb3ia5cny7virax9ax73y653jfa";
+    sha256 = "sha256-sZRZVhCf2ceETuV4AULA0kVkuIMn3C+aYdKThqvPnVQ=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix
index f708207cce9..417c478e9e5 100644
--- a/pkgs/applications/audio/qsynth/default.nix
+++ b/pkgs/applications/audio/qsynth/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation  rec {
   pname = "qsynth";
-  version = "0.6.3";
+  version = "0.9.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
-    sha256 = "0xiqmpzpxjvh32vivfj6h33w0ahmyfjzjb41b6fnf92bbg9k6mqv";
+    sha256 = "sha256-VNcI5QOVacHBcI6psEvhm7+cOTpwr2pMVXmk7nMXNiY=";
   };
 
   nativeBuildInputs = [ autoconf pkg-config ];
diff --git a/pkgs/applications/audio/real_time_config_quick_scan/default.nix b/pkgs/applications/audio/real_time_config_quick_scan/default.nix
index 3fb476b65cc..8bc2553f521 100644
--- a/pkgs/applications/audio/real_time_config_quick_scan/default.nix
+++ b/pkgs/applications/audio/real_time_config_quick_scan/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "16kanzp5i353x972zjkwgi3m8z90wc58613mlfzb0n01djdnm6k5";
   };
 
-  buildInputs = [ perlPackages.perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perlPackages.perl ];
 
   dontBuild = true;
 
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 8e70bff2b97..19def55a15c 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "6.23";
+  version = "6.25";
 
   src = fetchurl {
     url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
-    sha256 = "1s9c8prqk38738hjaixiy8ljp94cqw7jq3160890477jyk6cvicd";
+    sha256 = "0i1idlr4ar28wvwcvwn9hqzb63kki1x1995cr87a9slxfa7zcshb";
   };
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
diff --git a/pkgs/applications/audio/renoise/default.nix b/pkgs/applications/audio/renoise/default.nix
index 8d495b93629..fd9a9f00502 100644
--- a/pkgs/applications/audio/renoise/default.nix
+++ b/pkgs/applications/audio/renoise/default.nix
@@ -14,7 +14,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "renoise";
-  version = "3.2.2";
+  version = "3.3.1";
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
@@ -24,11 +24,11 @@ stdenv.mkDerivation rec {
               "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
               "https://web.archive.org/web/https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
           ];
-          sha256 = "1v249kmyidx55kppk3sry7yg6hl1a91ixhnwz36h4y134fs7bkrl";
+          sha256 = "05baicks5dx278z2dx6h5n2vabsn64niwqssgys36xy469l9m1h0";
         }
         else
           releasePath
-    else throw "Platform is not supported by Renoise";
+    else throw "Platform is not supported. Use instalation native to your platform https://www.renoise.com/";
 
   buildInputs = [ alsaLib libjack2 libX11 libXcursor libXext libXrandr ];
 
@@ -47,6 +47,16 @@ stdenv.mkDerivation rec {
 
     mkdir $out/bin
     ln -s $out/renoise $out/bin/renoise
+
+    # Desktop item
+    mkdir -p $out/share/applications
+    cp -r Installer/renoise.desktop $out/share/applications/renoise.desktop
+
+    # Desktop item icons
+    mkdir -p $out/share/icons/hicolor/{48x48,64x64,128x128}/apps
+    cp Installer/renoise-48.png $out/share/icons/hicolor/48x48/apps/renoise.png
+    cp Installer/renoise-64.png $out/share/icons/hicolor/64x64/apps/renoise.png
+    cp Installer/renoise-128.png $out/share/icons/hicolor/128x128/apps/renoise.png
   '';
 
   postFixup = ''
@@ -61,6 +71,9 @@ stdenv.mkDerivation rec {
         --set-rpath $out/lib \
         $path
     done
+
+    substituteInPlace $out/share/applications/renoise.desktop \
+      --replace Exec=renoise Exec=$out/bin/renoise
   '';
 
   meta = {
diff --git a/pkgs/applications/audio/rosegarden/default.nix b/pkgs/applications/audio/rosegarden/default.nix
index 5c7493ef7db..b95e5fdc76d 100644
--- a/pkgs/applications/audio/rosegarden/default.nix
+++ b/pkgs/applications/audio/rosegarden/default.nix
@@ -3,12 +3,12 @@
 , liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }:
 
 stdenv.mkDerivation (rec {
-  version = "20.06";
+  version = "20.12";
   pname = "rosegarden";
 
   src = fetchurl {
     url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2";
-    sha256 = "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r";
+    sha256 = "sha256-iGaEr8WFipV4I00fhFGI2xMBFPf784IIxNXs2hUTHFs=";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/audio/rubyripper/default.nix b/pkgs/applications/audio/rubyripper/default.nix
index b7abfa40b86..e8a275db98d 100644
--- a/pkgs/applications/audio/rubyripper/default.nix
+++ b/pkgs/applications/audio/rubyripper/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
   preConfigure = "patchShebangs .";
 
   configureFlags = [ "--enable-cli" ];
-  buildInputs = [ ruby cdparanoia makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ruby cdparanoia ];
   postInstall = ''
     wrapProgram "$out/bin/rrip_cli" \
       --prefix PATH : "${ruby}/bin" \
diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix
index 4b06a99d473..8f0a4808121 100644
--- a/pkgs/applications/audio/samplv1/default.nix
+++ b/pkgs/applications/audio/samplv1/default.nix
@@ -5,11 +5,11 @@
 
 mkDerivation rec {
   pname = "samplv1";
-  version = "0.9.18";
+  version = "0.9.20";
 
   src = fetchurl {
     url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz";
-    sha256 = "ePhM9OTLJp1Wa2D9Y1Dqq/69WlEhEp3ih9yNUIJU5Y4=";
+    sha256 = "sha256-9tm72lV9i/155TVweNwO2jpPsCJkh6r82g7Z1wCI1ho=";
   };
 
   nativeBuildInputs = [ qttools pkg-config ];
diff --git a/pkgs/applications/audio/seq66/default.nix b/pkgs/applications/audio/seq66/default.nix
index 93f9e9503b9..71d70c2dd58 100644
--- a/pkgs/applications/audio/seq66/default.nix
+++ b/pkgs/applications/audio/seq66/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://github.com/ahlstromcj/seq66";
     description = "Loop based midi sequencer with Qt GUI derived from seq24 and sequencer64";
diff --git a/pkgs/applications/audio/sfizz/default.nix b/pkgs/applications/audio/sfizz/default.nix
index 85bc9e3542c..153e52c82e1 100644
--- a/pkgs/applications/audio/sfizz/default.nix
+++ b/pkgs/applications/audio/sfizz/default.nix
@@ -1,20 +1,49 @@
-{ lib, stdenv, fetchFromGitHub , cmake, libjack2, libsndfile, pkg-config }:
+{ lib, stdenv, fetchFromGitHub
+, libjack2, libsndfile, xorg, freetype, libxkbcommon
+, cairo, glib, gnome3, flac, libogg, libvorbis, libopus
+, cmake, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "sfizz";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "sfztools";
     repo = pname;
     rev = version;
-    sha256 = "0zpmvmh7n0064rxfqxb7z9rnz493k7yq7nl0vxppqnasg97jn5f3";
+    sha256 = "sha256-3RdY5+BPsdk6vctDy24w5aJsVOV9qzSgXs62Pm5UEKs=";
     fetchSubmodules = true;
   };
 
+  buildInputs = [
+    libjack2
+    libsndfile
+    flac
+    libogg
+    libvorbis
+    libopus
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXau
+    xorg.libXdmcp
+    xorg.xcbutil
+    xorg.xcbutilcursor
+    xorg.xcbutilrenderutil
+    xorg.xcbutilkeysyms
+    xorg.xcbutilimage
+    libxkbcommon
+    cairo
+    glib
+    gnome3.zenity
+    freetype
+  ];
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ libjack2 libsndfile ];
+  postPatch = ''
+  substituteInPlace editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \
+    --replace '"/usr/bin/zenity' '"${gnome3.zenity}/bin/zenity'
+  '';
 
   cmakeFlags = [
     "-DCMAKE_BUILD_TYPE=Release"
diff --git a/pkgs/applications/audio/shortwave/default.nix b/pkgs/applications/audio/shortwave/default.nix
index a503d3b344c..36ee6c12eef 100644
--- a/pkgs/applications/audio/shortwave/default.nix
+++ b/pkgs/applications/audio/shortwave/default.nix
@@ -1,10 +1,11 @@
-{ lib
+{ stdenv
+, lib
 , fetchFromGitLab
-, cargo
 , dbus
 , desktop-file-utils
 , gdk-pixbuf
 , gettext
+, gitMinimal
 , glib
 , gst_all_1
 , gtk3
@@ -14,14 +15,12 @@
 , openssl
 , pkg-config
 , python3
-, rust
-, rustc
 , rustPlatform
 , sqlite
 , wrapGAppsHook
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "shortwave";
   version = "1.1.1";
 
@@ -33,18 +32,24 @@ rustPlatform.buildRustPackage rec {
     sha256 = "1vlhp2ss06j41simjrrjg38alp85jddhqyvccy6bhfzm0gzynwld";
   };
 
-  cargoSha256 = "181699rlpr5dszc18wg0kbss3gfskxaz9lpxpgsc4yfb6ip89qnk";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-0+KEbjTLecL0u/3S9FWf2r2h9ZrgcRTY163kS3NKJqA=";
+  };
 
   nativeBuildInputs = [
-    cargo
     desktop-file-utils
     gettext
+    gitMinimal
     glib # for glib-compile-schemas
     meson
     ninja
     pkg-config
     python3
-    rustc
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
     wrapGAppsHook
   ];
 
@@ -63,12 +68,6 @@ rustPlatform.buildRustPackage rec {
     gst-plugins-bad
   ]);
 
-  # Don't use buildRustPackage phases, only use it for rust deps setup
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   postPatch = ''
     patchShebangs build-aux/meson/postinstall.py
   '';
diff --git a/pkgs/applications/audio/sonic-pi/default.nix b/pkgs/applications/audio/sonic-pi/default.nix
index 349f4636a79..c84aa039c52 100644
--- a/pkgs/applications/audio/sonic-pi/default.nix
+++ b/pkgs/applications/audio/sonic-pi/default.nix
@@ -9,7 +9,7 @@
 , pkg-config
 , boost
 , bash
-, jack2Full
+, jack2
 , supercollider
 , qwt
 , osmid
@@ -102,7 +102,7 @@ mkDerivation rec {
   dontWrapQtApps = true;
   preFixup = ''
     wrapQtApp "$out/bin/sonic-pi" \
-      --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2Full}/bin \
+      --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2}/bin \
       --set AUBIO_LIB "${aubio}/lib/libaubio.so"
   '';
 
diff --git a/pkgs/applications/audio/spectmorph/default.nix b/pkgs/applications/audio/spectmorph/default.nix
index a368d62ce7d..6292d771a51 100644
--- a/pkgs/applications/audio/spectmorph/default.nix
+++ b/pkgs/applications/audio/spectmorph/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Allows to analyze samples of musical instruments, and to combine them (morphing) to construct hybrid sounds";
     homepage = "http://spectmorph.org";
diff --git a/pkgs/applications/audio/spotify-qt/default.nix b/pkgs/applications/audio/spotify-qt/default.nix
new file mode 100644
index 00000000000..211e45f7b17
--- /dev/null
+++ b/pkgs/applications/audio/spotify-qt/default.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub
+, lib
+, cmake
+, mkDerivation
+, libxcb
+, qtbase
+, qtsvg
+}:
+
+mkDerivation rec {
+   pname = "spotify-qt";
+   version = "3.5";
+
+   src = fetchFromGitHub {
+      owner = "kraxarn";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "1bgd0q4sbbww3lbrx2zwgaz0sl7qh195s4kvgsq16gv7ij82bskn";
+   };
+
+   buildInputs = [ libxcb qtbase qtsvg ];
+
+   nativeBuildInputs = [ cmake ];
+
+   cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=" ];
+
+   installFlags = [ "DESTDIR=$(out)" ];
+
+   meta = with lib; {
+    description = "Lightweight unofficial Spotify client using Qt";
+    homepage = "https://github.com/kraxarn/spotify-qt";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ kiyengar ];
+    platforms = platforms.unix;
+   };
+}
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 43ecb67d64a..3be5af2755b 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, lib, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
-, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify
+, glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify
 , libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
-, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa
+, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
 }:
 
 let
@@ -10,14 +10,14 @@ let
   # If an update breaks things, one of those might have valuable info:
   # https://aur.archlinux.org/packages/spotify/
   # https://community.spotify.com/t5/Desktop-Linux
-  version = "1.1.46.916.g416cacf1";
+  version = "1.1.55.498.gf9a83c60";
   # To get the latest stable revision:
   # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
   # To get general information:
   # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
   # More examples of api usage:
   # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
-  rev = "43";
+  rev = "46";
 
   deps = [
     alsaLib
@@ -34,12 +34,13 @@ let
     freetype
     gdk-pixbuf
     glib
-    gtk2
+    gtk3
     libdrm
     libgcrypt
     libnotify
     libpng
     libpulseaudio
+    libxkbcommon
     mesa
     nss
     pango
@@ -78,10 +79,10 @@ stdenv.mkDerivation {
   # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
   src = fetchurl {
     url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
-    sha512 = "5b3d5d1f52a554c8e775b8aed16ef84e96bf3b61a2b53266e10d3c47e341899310af13cc8513b04424fc14532e36543a6fae677f80a036e3f51c75166d8d53d1";
+    sha512 = "dabb55d2ba41f977b6d3f03bfcf147d11785136dd1277efc62011c8371ef25cc04531266bd16608639b9b6a500c1a18a45f44ba7a43e17ab5ac139e36eff7149";
   };
 
-  buildInputs = [ squashfsTools makeWrapper ];
+  nativeBuildInputs = [ makeWrapper squashfsTools ];
 
   dontStrip = true;
   dontPatchELF = true;
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index 776c9576bb4..3c4370d1614 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -1,24 +1,24 @@
 { lib, fetchFromGitHub, rustPackages, pkg-config, openssl
-, withALSA ? true, alsaLib ? null
-, withPulseAudio ? false, libpulseaudio ? null
-, withPortAudio ? false, portaudio ? null
+, withALSA ? true, alsaLib
+, withPulseAudio ? false, libpulseaudio
+, withPortAudio ? false, portaudio
 , withMpris ? false
 , withKeyring ? false
-, dbus ? null
+, dbus
 }:
 
 rustPackages.rustPlatform.buildRustPackage rec {
   pname = "spotifyd";
-  version = "0.3.0";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "Spotifyd";
     repo = "spotifyd";
     rev = "v${version}";
-    sha256 = "055njhy9if4qpsbgbr6615xxhcx9plava1m4l323vi4dbw09wh5r";
+    sha256 = "1a578h13iv8gqmskzlncfr42jlg5gp0zfcizv4wbd48y9hl8fh2l";
   };
 
-  cargoSha256 = "1ijrl208607abjwpr3cajcbj6sr35bk6ik778a58zf28kzdhrawc";
+  cargoSha256 = "1sm5yfgjx5xfnqqh1v8ycwzxw4kl6dq5gcvsdnc4h1cj3pdhbpcc";
 
   cargoBuildFlags = [
     "--no-default-features"
@@ -39,7 +39,8 @@ 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 ];
+    changelog = "https://github.com/Spotifyd/spotifyd/raw/v${version}/CHANGELOG.md";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ anderslundstedt Br1ght0ne marsam ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index eb7aac16c64..76ed0e9cc1f 100644
--- a/pkgs/applications/audio/strawberry/default.nix
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -35,13 +35,13 @@
 
 mkDerivation rec {
   pname = "strawberry";
-  version = "0.8.5";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "jonaski";
     repo = pname;
     rev = version;
-    sha256 = "sha256-+ZQ80J94Teqt4Gy6fw/pS7FwILK/TPehtJDy72Bdy1E=";
+    sha256 = "sha256:0d9asg21j9ai23sb35cimws8bd8fsnpha777rgscraa7i09q0rx2";
   };
 
   buildInputs = [
@@ -67,7 +67,6 @@ mkDerivation rec {
     libselinux
     libsepol
     p11-kit
-    util-linux
   ]
   ++ lib.optionals withGstreamer (with gst_all_1; [
     gstreamer
@@ -77,7 +76,11 @@ mkDerivation rec {
   ])
   ++ lib.optional withVlc libvlc;
 
-  nativeBuildInputs = [ cmake ninja pkg-config qttools ];
+  nativeBuildInputs = [
+    cmake ninja pkg-config qttools
+  ] ++ lib.optionals stdenv.isLinux [
+    util-linux
+  ];
 
   cmakeFlags = [
     "-DUSE_SYSTEM_TAGLIB=ON"
@@ -91,7 +94,7 @@ mkDerivation rec {
     description = "Music player and music collection organizer";
     homepage = "https://www.strawberrymusicplayer.org/";
     changelog = "https://raw.githubusercontent.com/jonaski/strawberry/${version}/Changelog";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
     # upstream says darwin should work but they lack maintainers as of 0.6.6
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/applications/audio/sublime-music/default.nix
index 1f74998166f..f584b13a292 100644
--- a/pkgs/applications/audio/sublime-music/default.nix
+++ b/pkgs/applications/audio/sublime-music/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
+{ fetchFromGitLab, lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
 , chromecastSupport ? false
 , serverSupport ? false
 , keyringSupport ? true
@@ -8,11 +8,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sublime-music";
-  version = "0.11.7";
+  version = "0.11.10";
 
-  src = python3Packages.fetchPypi {
-    inherit pname version;
-    sha256 = "1x6b02gw46gp6qcgv67j7k3gr1dpfczbyma6dxanag8pnpqrj8qi";
+  src = fetchFromGitLab {
+    owner = "sublime-music";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1g78gmiywg07kaywfc9q0yab2bzxs936vb3157ni1z0flbmcwrry";
   };
 
   nativeBuildInputs = [
@@ -30,6 +32,7 @@ python3Packages.buildPythonApplication rec {
   ;
 
   propagatedBuildInputs = with python3Packages; [
+    bleach
     dataclasses-json
     deepdiff
     fuzzywuzzy
@@ -52,12 +55,22 @@ python3Packages.buildPythonApplication rec {
 
   # no tests
   doCheck = false;
-  pythonImportsCheck = [ "sublime" ];
+  pythonImportsCheck = [ "sublime_music" ];
+
+  postInstall = ''
+    install -Dm444 sublime-music.desktop      -t $out/share/applications
+    install -Dm444 sublime-music.metainfo.xml -t $out/share/metainfo
+
+    for size in 16 22 32 48 64 72 96 128 192 512 1024; do
+        install -Dm444 logo/rendered/"$size".png \
+          $out/share/icons/hicolor/"$size"x"$size"/apps/sublime-music.png
+    done
+  '';
 
   meta = with lib; {
     description = "GTK3 Subsonic/Airsonic client";
     homepage = "https://sublimemusic.app/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ albakham ];
+    maintainers = with maintainers; [ albakham sumnerevans ];
   };
 }
diff --git a/pkgs/applications/audio/sunvox/default.nix b/pkgs/applications/audio/sunvox/default.nix
index abc31d9f180..ef7133630b5 100644
--- a/pkgs/applications/audio/sunvox/default.nix
+++ b/pkgs/applications/audio/sunvox/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     sha256 = "0lqzr68n2c6aifw2vbyars91wn1chmgb9xfdk463g4vjqiava3ih";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = "unzip $src";
 
@@ -44,5 +44,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.warmplace.ru/soft/sunvox/";
     maintainers = with maintainers; [ puffnfresh ];
     platforms = [ "i686-linux" "x86_64-linux" ];
+    # hash mismatch
+    broken = true;
   };
 }
diff --git a/pkgs/applications/audio/surge/default.nix b/pkgs/applications/audio/surge/default.nix
index 83125324694..ed15d49cfe0 100644
--- a/pkgs/applications/audio/surge/default.nix
+++ b/pkgs/applications/audio/surge/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "surge";
-  version = "1.7.1";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "surge-synthesizer";
     repo = pname;
     rev = "release_${version}";
-    sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s";
+    sha256 = "0lla860g7zgn9n1zgy14g4j72d5n5y7isyxz2w5xy2fzdpdg24ql";
     leaveDotGit = true; # for SURGE_VERSION
     fetchSubmodules = true;
   };
@@ -20,9 +20,10 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge"
-    substituteInPlace src/common/gui/PopupEditorDialog.cpp --replace '"zenity' '"${zenity}/bin/zenity'
     substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity'
     substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity
+    patchShebangs scripts/linux/emit-vector-piggy
+    patchShebangs scripts/linux/generate-lv2-ttl
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/audio/tetraproc/default.nix b/pkgs/applications/audio/tetraproc/default.nix
index 1fe56096e95..b5012029480 100644
--- a/pkgs/applications/audio/tetraproc/default.nix
+++ b/pkgs/applications/audio/tetraproc/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, makeWrapper
-, expat, fftwFloat, fontconfig, freetype, libjack2, jack2Full, libclthreads, libclxclient
+, expat, fftwFloat, fontconfig, freetype, libjack2, jack2, libclthreads, libclxclient
 , libsndfile, libxcb, xorg
 }:
 
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     # Make sure Jack is avalable in $PATH for tetraproc
-    wrapProgram $out/bin/tetraproc --prefix PATH : "${jack2Full}/bin"
+    wrapProgram $out/bin/tetraproc --prefix PATH : "${jack2}/bin"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/audio/tuijam/default.nix b/pkgs/applications/audio/tuijam/default.nix
deleted file mode 100644
index 8a08b64508d..00000000000
--- a/pkgs/applications/audio/tuijam/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ buildPythonApplication
-, fetchFromGitHub
-, lib
-, python3Packages
-, youtube-dl
-}:
-
-buildPythonApplication rec {
-  pname = "tuijam";
-  version = "unstable-2020-06-05";
-
-  src = fetchFromGitHub {
-    owner = "cfangmeier";
-    repo = pname;
-    rev = "7baec6f6e80ee90da0d0363b430dd7d5695ff03b";
-    sha256 = "1l0s88jvj99jkxnczw5nfj78m8vihh29g815n4mg9jblad23mgx5";
-  };
-
-  buildInputs = [ python3Packages.Babel ];
-
-  # the package has no tests
-  doCheck = false;
-
-  propagatedBuildInputs = with python3Packages; [
-    gmusicapi
-    google_api_python_client
-    mpv
-    pydbus
-    pygobject3
-    pyyaml
-    requests
-    rsa
-    urwid
-  ];
-
-  meta = with lib; {
-    description = "A fancy TUI client for Google Play Music";
-    longDescription = ''
-      TUIJam seeks to make a simple, attractive, terminal-based interface to
-      listening to music for Google Play Music All-Access subscribers.
-    '';
-    homepage    = "https://github.com/cfangmeier/tuijam";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ kalbasit ];
-  };
-}
diff --git a/pkgs/applications/audio/vkeybd/default.nix b/pkgs/applications/audio/vkeybd/default.nix
index 3409d8a4907..943bd0d8032 100644
--- a/pkgs/applications/audio/vkeybd/default.nix
+++ b/pkgs/applications/audio/vkeybd/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation  rec {
     sha256 = "0107b5j1gf7dwp7qb4w2snj4bqiyps53d66qzl2rwj4jfpakws5a";
   };
 
-  buildInputs = [ alsaLib libX11 makeWrapper tcl tk ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ alsaLib libX11 tcl tk ];
 
   configurePhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/backup/pika-backup/borg-path.patch b/pkgs/applications/backup/pika-backup/borg-path.patch
new file mode 100644
index 00000000000..c4ed649ffc9
--- /dev/null
+++ b/pkgs/applications/backup/pika-backup/borg-path.patch
@@ -0,0 +1,13 @@
+diff --git a/src/borg/utils.rs b/src/borg/utils.rs
+index 4e30913..30d7d6f 100644
+--- a/src/borg/utils.rs
++++ b/src/borg/utils.rs
+@@ -223,7 +223,7 @@ impl BorgCall {
+     }
+ 
+     pub fn cmd(&self) -> Command {
+-        let mut cmd = Command::new("borg");
++        let mut cmd = Command::new("@borg@");
+ 
+         cmd.args(self.args())
+             .stderr(Stdio::piped())
diff --git a/pkgs/applications/backup/pika-backup/default.nix b/pkgs/applications/backup/pika-backup/default.nix
new file mode 100644
index 00000000000..f04a5a2d8bf
--- /dev/null
+++ b/pkgs/applications/backup/pika-backup/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, rustPlatform
+, substituteAll
+, desktop-file-utils
+, meson
+, ninja
+, pkg-config
+, python3
+, wrapGAppsHook
+, borgbackup
+, dbus
+, gdk-pixbuf
+, glib
+, gtk3
+, libhandy
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pika-backup";
+  version = "0.2.3";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "pika-backup";
+    rev = "v${version}";
+    sha256 = "sha256-jy22eyuzM2y7vByT3TOlAUuTKtPepkB9iiHQT1YGQ88=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "1ndcpgw18w3l5f7vv5vw8lxhgd5y1zxfarwnyfx13m7kcv8m3vyj";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./borg-path.patch;
+      borg = "${borgbackup}/bin/borg";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs build-aux
+  '';
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  buildInputs = [
+    dbus
+    gdk-pixbuf
+    glib
+    gtk3
+    libhandy
+  ];
+
+  meta = with lib; {
+    description = "Simple backups based on borg";
+    homepage = "https://wiki.gnome.org/Apps/PikaBackup";
+    changelog = "https://gitlab.gnome.org/World/pika-backup/-/blob/v${version}/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index a1b5944a51e..c37bf0f20f7 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "vorta";
-  version = "0.7.2";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "v${version}";
-    sha256 = "1amq0fz3xrnxplzd6ih2azx6b4k1w496kcr7f8agfp617f5rkwa5";
+    sha256 = "sha256-qPO8qmXYDDFwV+8hAUyfF4Ins0vkwEJbw4JPguUSYOw=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/blockchains/bitcoin-classic.nix b/pkgs/applications/blockchains/bitcoin-classic.nix
index bd1c9611d56..f578313323c 100644
--- a/pkgs/applications/blockchains/bitcoin-classic.nix
+++ b/pkgs/applications/blockchains/bitcoin-classic.nix
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   meta = {
     description = "Peer-to-peer electronic cash system (Classic client)";
     longDescription= ''
diff --git a/pkgs/applications/blockchains/btcpayserver/default.nix b/pkgs/applications/blockchains/btcpayserver/default.nix
index 52914c1128a..6952d9c0072 100644
--- a/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
-  dotnetPackages, dotnetCorePackages, writeScript, bash
+  dotnetPackages, dotnetCorePackages
 }:
 
 let
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "btcpayserver";
-  version = "1.0.6.8";
+  version = "1.0.7.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1znmix9w7ahzyb933lxzqv6j8j5qycknq3gmnkakj749ksshql1b";
+    sha256 = "1hxpbzc4l1zxrcvmdm93vvphhksfwd0mw2dv6h8vi4451p77dhd9";
   };
 
   nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
diff --git a/pkgs/applications/blockchains/btcpayserver/deps.nix b/pkgs/applications/blockchains/btcpayserver/deps.nix
index 9065ff49cf8..b579fc8f7f8 100644
--- a/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -20,24 +20,29 @@
     sha256 = "1lf1hfbx792dpa1hxgn0a0jrrvldd16hgbxx229dk2qcz5qlnc38";
   })
   (fetchNuGet {
+    name = "BIP78.Sender";
+    version = "0.2.0";
+    sha256 = "0gyynn15rc1x9p2703ffi4jnbpbd0k3wvg839xrk2skmaw8nxamf";
+  })
+  (fetchNuGet {
     name = "BTCPayServer.Hwi";
     version = "1.1.3";
     sha256 = "1c8hfnrjh2ad8qh75d63gsl170q8czf3j1hk8sv8fnbgnxdnkm7a";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.All";
-    version = "1.2.4";
-    sha256 = "1f4wgs8ijk1wmppz5lmas7l6m83szz57jyk6ak0dxhccdld9rdaj";
+    version = "1.2.7";
+    sha256 = "0jzmzvlpf6iba2fsc6cyi69vlaim9slqm2sapknmd7drl3gcn2zj";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.Charge";
-    version = "1.2.1";
-    sha256 = "0iv9frbr6xfxif3pnfd7c87y8mv31nqkdrnhvnaswrx43nv6s272";
+    version = "1.2.3";
+    sha256 = "1rdrwmijx0v4z0xsq4acyvdcj7hv6arfh3hwjy89rqnkkznrzgwv";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.CLightning";
-    version = "1.2.1";
-    sha256 = "14km69jzmnyqg19w27g6znml4z0xkm8l4j7rj0x36bw67cjmgahv";
+    version = "1.2.3";
+    sha256 = "02197rh03q8d0mv40zf67wp1rd2gbxi5l8krd2rzj84n267bcfvc";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.Common";
@@ -45,19 +50,24 @@
     sha256 = "17di8ndkw8z0ci0zk15mcrqpmganwkz9ys2snr2rqpw5mrlhpwa0";
   })
   (fetchNuGet {
+    name = "BTCPayServer.Lightning.Common";
+    version = "1.2.2";
+    sha256 = "07xb7fsqvfjmcawxylriw60i73h0cvfb765aznhp9ffyrmjaql7z";
+  })
+  (fetchNuGet {
     name = "BTCPayServer.Lightning.Eclair";
-    version = "1.2.0";
-    sha256 = "0w7nwsr0n2hrqak023xa294palsk3r96wlgw2ks8d3p5kxm8kskp";
+    version = "1.2.2";
+    sha256 = "03dymhwxb5s28kb187g5h4aysnz2xzml89p47nmwz9lkg2h4s73h";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.LND";
-    version = "1.2.1";
-    sha256 = "0ql4qyvz0rms6ls46pi3bgak3r6hj2c5ivnzahiq6cb84pbl61cr";
+    version = "1.2.4";
+    sha256 = "0qnj5rsp6hnybsr58zny9dfbsxksg1674q0z9944jwkzm7pcqyg4";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.Ptarmigan";
-    version = "1.2.0";
-    sha256 = "1yd6nhlssb9k08p5491knlwwjij9324ildir99sa9cp24rlq5nis";
+    version = "1.2.2";
+    sha256 = "17yl85vqfp7l12bv3f3w1b861hm41i7cfhs78gaq04s4drvcnj6k";
   })
   (fetchNuGet {
     name = "BuildBundlerMinifier";
@@ -80,11 +90,6 @@
     sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
   })
   (fetchNuGet {
-    name = "DBriize";
-    version = "1.0.1.3";
-    sha256 = "0rsm68hwq2ky8i6mv3ckdjkj4vjygnkgk3disva0skl3apk833dc";
-  })
-  (fetchNuGet {
     name = "DigitalRuby.ExchangeSharp";
     version = "0.6.3";
     sha256 = "1vb7ahafcd3lcbiiz552aisilwm1yq3j600gkf1wik8vhvsk02fs";
@@ -666,13 +671,8 @@
   })
   (fetchNuGet {
     name = "NBitcoin.Altcoins";
-    version = "2.0.21";
-    sha256 = "0xmygiwjlia7fbxy63893jb15g6fxggxxr9bbm8znd9bs3jzp2g1";
-  })
-  (fetchNuGet {
-    name = "NBitcoin";
-    version = "5.0.33";
-    sha256 = "030q609b9lhapq4wfl1w3impjw5m40kz2rg1s9jn3bn8yjfmsi4a";
+    version = "2.0.28";
+    sha256 = "1zfirfmhgigp733km9rqkgz560h5wg88bpba499x49h5j650cnn4";
   })
   (fetchNuGet {
     name = "NBitcoin";
@@ -686,13 +686,13 @@
   })
   (fetchNuGet {
     name = "NBitcoin";
-    version = "5.0.60";
-    sha256 = "0pin4ldfz5lfxyd47mj1ypyp8lmj0v5nq5zvygdjna956vphd39v";
+    version = "5.0.67";
+    sha256 = "049marx1jwr7srlpqspimrqqgahh53gi2iyp7bpzn5npsbzh9v3h";
   })
   (fetchNuGet {
     name = "NBitcoin";
-    version = "5.0.68";
-    sha256 = "0k275mbp9wannm10pqj4nv8agjc1f6hsrfhl0m6ax1apv81sfxcd";
+    version = "5.0.73";
+    sha256 = "0vqgcb0ws5fnkrdzqfkyh78041c6q4l22b93rr0006dd4bmqrmg1";
   })
   (fetchNuGet {
     name = "NBitpayClient";
@@ -701,8 +701,8 @@
   })
   (fetchNuGet {
     name = "NBXplorer.Client";
-    version = "3.0.19";
-    sha256 = "0nahfxdsryf5snjy87770m51v2jcry02lmb10ilsg4h2ig4pjdk4";
+    version = "3.0.20";
+    sha256 = "1mwa6ncmg5r6q7yn6skm9dgqm631c7r7nadcg9mvbw81113h0xxy";
   })
   (fetchNuGet {
     name = "NETStandard.Library";
@@ -731,11 +731,6 @@
   })
   (fetchNuGet {
     name = "Newtonsoft.Json";
-    version = "11.0.1";
-    sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
-  })
-  (fetchNuGet {
-    name = "Newtonsoft.Json";
     version = "11.0.2";
     sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
   })
@@ -921,8 +916,8 @@
   })
   (fetchNuGet {
     name = "Selenium.WebDriver.ChromeDriver";
-    version = "87.0.4280.8800";
-    sha256 = "1zrizydlhjv81r1fa5g8wzxrx1cxly3ip7pargj48hdx419iblfr";
+    version = "88.0.4324.9600";
+    sha256 = "0jm8dpfp329xsrg69lzq2m6x9yin1m43qgrhs15cz2qx9f02pdx9";
   })
   (fetchNuGet {
     name = "Selenium.WebDriver";
diff --git a/pkgs/applications/blockchains/clightning.nix b/pkgs/applications/blockchains/clightning.nix
index 745ac349975..44ed4d1541c 100644
--- a/pkgs/applications/blockchains/clightning.nix
+++ b/pkgs/applications/blockchains/clightning.nix
@@ -20,11 +20,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "b4563921ed8bccd59d32b031f81825dc57fbe90882f0ecd5da89e48b59ff18b2";
+    sha256 = "5154e67780dddbf12f64c4b1994c3ee3834236f05b6462adf25e8a5f3fa407ea";
   };
 
   nativeBuildInputs = [ autogen autoconf automake gettext libtool pkg-config py3 unzip which ];
diff --git a/pkgs/applications/blockchains/crypto-org-wallet.nix b/pkgs/applications/blockchains/crypto-org-wallet.nix
new file mode 100644
index 00000000000..be45967018d
--- /dev/null
+++ b/pkgs/applications/blockchains/crypto-org-wallet.nix
@@ -0,0 +1,33 @@
+{ lib, fetchurl, makeDesktopItem, appimageTools, imagemagick }:
+
+let
+  pname = "chain-desktop-wallet";
+  version = "0.1.1";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/crypto-com/${pname}/releases/download/v${version}/${name}-x86_64.AppImage";
+    sha256 = "12076hf8dlz0hg1pb2ixwlslrh8gi6s1iawnvhnn6vz4jmjvq356";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+    install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
+    ${imagemagick}/bin/convert ${appimageContents}/${pname}.png -resize 512x512 ${pname}_512.png
+    install -m 444 -D ${pname}_512.png $out/share/icons/hicolor/512x512/apps/${pname}.png
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun --no-sandbox %U' "Exec=$out/bin/${pname}"
+  '';
+
+  meta = with lib; {
+    description = "Crypto.org Chain desktop wallet (Beta)";
+    homepage = "https://github.com/crypto-com/chain-desktop-wallet";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ th0rgal ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index 3c5bc5ea5ce..597db2ae8ff 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.8";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "1zi559ixjxxsrpvvjbxa1d0g96px3h9amjvy149sfhp7b8w5hhk3";
+    sha256 = "sha256-swU4CnX2BxL3ILH/sXux8ZHMo5nAPLQOIiWmr4C8BOQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix
index 776253ac9cd..0f99f28b42f 100644
--- a/pkgs/applications/blockchains/go-ethereum.nix
+++ b/pkgs/applications/blockchains/go-ethereum.nix
@@ -1,21 +1,34 @@
 { 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";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cbgqs17agwdap4g37sb2g6mhyn7qkqbjk7kwb5jvj8nbi5n3kbd";
+    sha256 = "sha256-4lHT0P8Euau0AJNtg1YstJJRQ58WTUlIH+HCKEjCq/s=";
   };
 
   runVend = true;
-  vendorSha256 = "08wgah8gxb5bscm5ca6zkfgssnmw2y2l6k9gfw7gbxyflsx74lya";
+  vendorSha256 = "sha256-DgyOvplk1JWn6D/z4zbXHLNLuAVQ5beEHi0NuSv236A=";
 
   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/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index d130b3d0454..2dea189dca4 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -1,13 +1,13 @@
-{ lib, fetchurl, makeDesktopItem, appimageTools, imagemagick }:
+{ lib, fetchurl, appimageTools, imagemagick }:
 
 let
   pname = "ledger-live-desktop";
-  version = "2.21.3";
+  version = "2.24.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    sha256 = "11r6gwzg5qym7h40d8mrpw8c6zbdi534c2y7ghy2k0a4k3ybk8x1";
+    sha256 = "1xdqj825vwh3kg35v7568zr1jhvldb4wcazzgzcaawkr4qzfdb2n";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/lnd.nix b/pkgs/applications/blockchains/lnd.nix
index f5c1329090f..147d826dfa6 100644
--- a/pkgs/applications/blockchains/lnd.nix
+++ b/pkgs/applications/blockchains/lnd.nix
@@ -1,18 +1,18 @@
 { buildGoModule
 , fetchFromGitHub
 , lib
-, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" ]
+, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" "routerrpc" ]
 }:
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.12.0-beta";
+  version = "0.12.1-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    sha256 = "0mjfmmi5d5d2hny3938rxxdgar3qyk6x909l25fvjr4q3l4sz4x0";
+    sha256 = "0ly6909cg0qzdsp9idp1g7zqd6liw7f142d7n7vga64s1ksvv6lx";
   };
 
   vendorSha256 = "00q8dydskzg4rhxnnpzpbmmvc3q4wzm8z3dps2bv0nx3fk0fmrl3";
diff --git a/pkgs/applications/blockchains/lndmanage.nix b/pkgs/applications/blockchains/lndmanage.nix
new file mode 100644
index 00000000000..56db469ff45
--- /dev/null
+++ b/pkgs/applications/blockchains/lndmanage.nix
@@ -0,0 +1,44 @@
+{ lib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "lndmanage";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "bitromortac";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "19sqf7cjslwpfzcdbyq182dx7gnn9hii77sahbnh88v69qxgwzvb";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    cycler
+    decorator
+    googleapis-common-protos
+    grpcio
+    grpcio-tools
+    kiwisolver
+    networkx
+    numpy
+    protobuf
+    pyparsing
+    python-dateutil
+    six
+    pygments
+  ];
+
+  preBuild = ''
+    substituteInPlace setup.py --replace '==' '>='
+  '';
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  meta = with lib; {
+    description = "Channel management tool for lightning network daemon (LND) operators";
+    homepage = "https://github.com/bitromortac/lndmanage";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmilata ];
+  };
+}
diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix
index 9bf1ca586c2..5f430bc8869 100644
--- a/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/pkgs/applications/blockchains/monero-gui/default.nix
@@ -10,15 +10,13 @@
 , randomx, zeromq, libgcrypt, libgpgerror
 , hidapi, rapidjson, quirc
 , trezorSupport ? true
-,   libusb1  ? null
-,   protobuf ? null
-,   python3  ? null
+,   libusb1
+,   protobuf
+,   python3
 }:
 
 with lib;
 
-assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
-
 let
   arch = if stdenv.isx86_64  then "x86-64"
     else if stdenv.isi686    then "i686"
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix
index 41931bc9ec3..3be8b908c7a 100644
--- a/pkgs/applications/blockchains/monero/default.nix
+++ b/pkgs/applications/blockchains/monero/default.nix
@@ -63,6 +63,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://getmonero.org/";
     license     = licenses.bsd3;
     platforms   = platforms.all;
-    maintainers = with maintainers; [ ehmry rnhmjoj ];
+    maintainers = with maintainers; [ rnhmjoj ];
   };
 }
diff --git a/pkgs/applications/blockchains/mycrypto/default.nix b/pkgs/applications/blockchains/mycrypto/default.nix
index b884f044efe..17e884c5794 100644
--- a/pkgs/applications/blockchains/mycrypto/default.nix
+++ b/pkgs/applications/blockchains/mycrypto/default.nix
@@ -1,5 +1,5 @@
 { lib, appimageTools, fetchurl, makeDesktopItem
-, gsettings-desktop-schemas, gtk2
+, gsettings-desktop-schemas, gtk3
 }:
 
 let
@@ -30,7 +30,7 @@ in appimageTools.wrapType2 rec {
   inherit name src;
 
   profile = ''
-    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk2}/share/gsettings-schemas/${gtk2.name}:$XDG_DATA_DIRS
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
   '';
 
   multiPkgs = null; # no p32bit needed
diff --git a/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch b/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch
deleted file mode 100644
index 5bbec1d39be..00000000000
--- a/pkgs/applications/blockchains/nano-wallet/CMakeLists.txt.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b43f02f6..4470abbf 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -119,7 +119,7 @@ endif (RAIBLOCKS_SECURE_RPC)
- 
- include_directories (${CMAKE_SOURCE_DIR})
- 
--set(Boost_USE_STATIC_LIBS        ON)
-+add_definitions(-DBOOST_LOG_DYN_LINK)
- set(Boost_USE_MULTITHREADED      ON)
- 
- if (BOOST_CUSTOM)
diff --git a/pkgs/applications/blockchains/nano-wallet/default.nix b/pkgs/applications/blockchains/nano-wallet/default.nix
index 60ad51152f6..0e39587fabb 100644
--- a/pkgs/applications/blockchains/nano-wallet/default.nix
+++ b/pkgs/applications/blockchains/nano-wallet/default.nix
@@ -1,28 +1,24 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, wrapQtAppsHook, boost, libGL
-, qtbase}:
+, qtbase, python }:
 
 stdenv.mkDerivation rec {
 
   pname = "nano-wallet";
-  version = "20.0";
+  version = "21.3";
 
   src = fetchFromGitHub {
     owner = "nanocurrency";
-    repo = "raiblocks";
+    repo = "nano-node";
     rev = "V${version}";
-    sha256 = "12nrjjd89yjzx20d85ccmp395pl0djpx0x0qb8dgka8xfy11k7xn";
+    sha256 = "0f6chl5vrzdr4w8g3nivfxk3qm6m11js401998afnhz0xaysm4pm";
     fetchSubmodules = true;
   };
 
-  # Use a patch to force dynamic linking
-  patches = [
-    ./CMakeLists.txt.patch
-  ];
-
   cmakeFlags = let
     options = {
+      PYTHON_EXECUTABLE = "${python}/bin/python";
+      NANO_SHARED_BOOST = "ON";
       BOOST_ROOT = boost;
-      Boost_USE_STATIC_LIBS = "OFF";
       RAIBLOCKS_GUI = "ON";
       RAIBLOCKS_TEST = "ON";
       Qt5_DIR = "${qtbase.dev}/lib/cmake/Qt5";
@@ -37,17 +33,15 @@ stdenv.mkDerivation rec {
   buildInputs = [ boost libGL qtbase ];
 
   buildPhase = ''
+    runHook preBuild
     make nano_wallet
-  '';
-
-  # Move executables under bin directory
-  postInstall = ''
-    mkdir -p $out/bin
-    mv $out/nano* $out/bin/
+    runHook postBuild
   '';
 
   checkPhase = ''
+    runHook preCheck
     ./core_test
+    runHook postCheck
   '';
 
   meta = {
diff --git a/pkgs/applications/blockchains/openethereum/default.nix b/pkgs/applications/blockchains/openethereum/default.nix
index 8ad7c8fdd6c..e4d8d72fb4c 100644
--- a/pkgs/applications/blockchains/openethereum/default.nix
+++ b/pkgs/applications/blockchains/openethereum/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "openethereum";
-  version = "3.1.1";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "openethereum";
     repo = "openethereum";
     rev = "v${version}";
-    sha256 = "sha256-RUrJuJF0R0mc7XdLyk915fRWtMfzjp5QE6oeWxHfyEQ=";
+    sha256 = "sha256-+bzMo0s+wdp8T/YjPk6mrPSPid1G8WScB8FJhXdL9JQ=";
   };
 
-  cargoSha256 = "sha256-b+winsCzU0sXGDX6nUtWq4JrIyTcJ3uva7RlV5VsXfk=";
+  cargoSha256 = "sha256-ibjjJ5zGF6wbO24/RoYKsTYsMNXHb1EdekDwSICPc5g=";
 
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
   nativeBuildInputs = [
@@ -37,8 +37,14 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [ "--features final" ];
 
-  # test result: FAILED. 88 passed; 13 failed; 0 ignored; 0 measured; 0 filtered out
-  doCheck = false;
+  # Fix tests by preventing them from writing to /homeless-shelter.
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # Exclude some tests that don't work in the sandbox
+  # - Nat test requires network access
+  checkFlags = "--skip configuration::tests::should_resolve_external_nat_hosts";
 
   meta = with lib; {
     description = "Fast, light, robust Ethereum implementation";
diff --git a/pkgs/applications/blockchains/particl/particl-core.nix b/pkgs/applications/blockchains/particl/particl-core.nix
index feced9eecb0..99bc49e8db3 100644
--- a/pkgs/applications/blockchains/particl/particl-core.nix
+++ b/pkgs/applications/blockchains/particl/particl-core.nix
@@ -17,11 +17,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "particl-core";
-  version = "0.19.2.3";
+  version = "0.19.2.5";
 
   src = fetchurl {
     url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
-    sha256 = "sha256-nAsQvYWUejSu/4MMIwZhlV5Gjza/Da4jcp6/01lppvg=";
+    sha256 = "sha256-uI4T8h6RvCikk8h/sZmGlj3Uj3Xhu0vDn/fPb6rLcSg=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix
index 9a5a1faac5a..4436264ba26 100644
--- a/pkgs/applications/blockchains/polkadot/default.nix
+++ b/pkgs/applications/blockchains/polkadot/default.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "0.8.28-1";
+  version = "0.8.29";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "polkadot";
     rev = "v${version}";
-    sha256 = "sha256-a+w/909PZuHsgIQEtO2IWQijsERfAKJUZ8K30+PhD3k=";
+    sha256 = "sha256-O5GIbX7qp+Te5QQuqytC9rsQJ5FuXtUl5h2DZXsfMPk=";
   };
 
-  cargoSha256 = "sha256-Zz844XDx5qj2hQlf99uvHV6e5wmDAlYh3zBvcpdoiIo=";
+  cargoSha256 = "sha256-4VmRIrd79odnYrHuBLdFwere+7bvtUI3daVs3ZUKsdY=";
 
   nativeBuildInputs = [ clang ];
 
@@ -35,8 +35,8 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Polkadot Node Implementation";
     homepage = "https://polkadot.network";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ akru andresilva RaghavSood ];
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ akru andresilva asymmetric RaghavSood ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index d85e7dcfebf..e86d145bdf4 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "1.1.12.3";
+  version = "1.1.12.5";
 
   src = fetchurl {
     url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
-    sha256 = "1x4gqmiwdp5bjq7c5hjch3srsvf73d92lswnp355l7l7cxh2hcsx";
+    sha256 = "sha256-6KIsSsCAyZ6uYSbDBIKdtM4adGOttvJ78obCptcd57s=";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix
index 6a8bebf6178..77601aa3d56 100644
--- a/pkgs/applications/blockchains/zcash/default.nix
+++ b/pkgs/applications/blockchains/zcash/default.nix
@@ -1,23 +1,25 @@
 { rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
-, cargo, pkg-config
-, bash, curl, coreutils, boost17x, db62, libsodium, libevent, utf8cpp, util-linux
+, fetchpatch, cargo, pkg-config, curl, coreutils, boost174, db62, hexdump
+, libsodium, libevent, utf8cpp, util-linux, withWallet ? true, withDaemon ? true
+, withUtils ? true
 }:
 
-rustPlatform.buildRustPackage rec {
+rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
   pname = "zcash";
-  version = "4.1.1";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "zcash";
     repo  = "zcash";
     rev = "v${version}";
-    sha256 = "185zrw276g545np0niw5hlhlppkjbf5a1r4rwhnbaimdjdii2dil";
+    sha256 = "00pn1jw8j90y7i8nc92b51znz4gczphvdzbkbcjx63cf6vk7v4ks";
   };
 
-  cargoSha256 = "0qxr6asf8zsya0f1ri39z2cnfpjk96hgwjchz2c7j87vibbvg6dc";
+  cargoSha256 = "1rl9sjbvpfrv1mlyb04vw1935qx0kz9cs177xl7izdva1ixk9blr";
 
-  nativeBuildInputs = [ autoreconfHook cargo makeWrapper pkg-config ];
-  buildInputs = [ bash boost17x db62 libevent libsodium utf8cpp ];
+  nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
+  buildInputs = [ boost174 libevent libsodium utf8cpp ]
+    ++ lib.optional withWallet db62;
 
   # Use the stdenv default phases (./configure; make) instead of the
   # ones from buildRustPackage.
@@ -26,6 +28,14 @@ rustPlatform.buildRustPackage rec {
   checkPhase = "checkPhase";
   installPhase = "installPhase";
 
+  patches = [
+    # See https://github.com/zcash/zcash/pull/5015
+    (fetchpatch {
+      url = "https://github.com/zcash/zcash/commit/a0ac27ec6ed434a233c7ad2468258f6e6e7e9688.patch";
+      sha256 = "0pmx1spql9p8vvpjgw7qf3qy46f4mh9ni16bq4ss1xz1z9zgjc4k";
+    })
+  ];
+
   postPatch = ''
     # Have to do this here instead of in preConfigure because
     # cargoDepsCopy gets unset after postPatch.
@@ -34,10 +44,12 @@ rustPlatform.buildRustPackage rec {
 
   configureFlags = [
     "--disable-tests"
-    "--with-boost-libdir=${lib.getLib boost17x}/lib"
+    "--with-boost-libdir=${lib.getLib boost174}/lib"
     "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
     "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
-  ];
+  ] ++ lib.optional (!withWallet) "--disable-wallet"
+    ++ lib.optional (!withDaemon) "--without-daemon"
+    ++ lib.optional (!withUtils) "--without-utils";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
index d1cd2e7d3e4..72f38679870 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.1";
 
   src = fetchFromGitHub {
     owner = "prikhi";
     repo = "lightdm-mini-greeter";
     rev = version;
-    sha256 = "10hga7pmfyjdvj4xwm3djwrhk50brcpycj3p3c57pa0vnx4ill3s";
+    sha256 = "sha256-Pm7ExfusFIPktX2C4UE07qgOVhcWhVxnaD3QARpmu7Y=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
diff --git a/pkgs/applications/display-managers/lightdm/default.nix b/pkgs/applications/display-managers/lightdm/default.nix
index 6a96f560ddc..be9ba0f7561 100644
--- a/pkgs/applications/display-managers/lightdm/default.nix
+++ b/pkgs/applications/display-managers/lightdm/default.nix
@@ -101,6 +101,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  dontWrapQtApps = true;
+
   preConfigure = "NOCONFIGURE=1 ./autogen.sh";
 
   configureFlags = [
diff --git a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
index 90f7a03d0dd..b012699a16b 100644
--- a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
+++ b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
@@ -9,7 +9,7 @@
 , useGTK2 ? false
 , gtk2
 , gtk3 # gtk3 seems better supported
-, exo
+, xfce4-dev-tools
 , at-spi2-core
 , librsvg
 , hicolor-icon-theme
@@ -31,8 +31,8 @@ stdenv.mkDerivation rec {
     sha256 = "1g7wc3d3vqfa7mrdhx1w9ywydgjbffla6rbrxq9k3sc62br97qms";
   };
 
-  nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
-  buildInputs = [ lightdm exo librsvg hicolor-icon-theme ]
+  nativeBuildInputs = [ pkg-config intltool xfce4-dev-tools wrapGAppsHook ];
+  buildInputs = [ lightdm librsvg hicolor-icon-theme ]
     ++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]);
 
   configureFlags = [
@@ -42,6 +42,13 @@ stdenv.mkDerivation rec {
     "--sbindir=${placeholder "out"}/bin" # for wrapGAppsHook to wrap automatically
   ] ++ lib.optional useGTK2 "--with-gtk2";
 
+  postPatch = ''
+    # exo-csource has been dropped from exo, and replaced by xdt-csource from xfce4-dev-tools
+    for f in configure.ac src/Makefile.am; do
+      substituteInPlace $f --replace exo-csource xdt-csource
+    done
+  '';
+
   preConfigure = ''
     configureFlagsArray+=( --enable-at-spi-command="${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" )
   '';
@@ -66,7 +73,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://launchpad.net/lightdm-gtk-greeter";
     platforms = platforms.linux;
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix
index f43d3ca9be3..029501c7787 100644
--- a/pkgs/applications/display-managers/sddm/default.nix
+++ b/pkgs/applications/display-managers/sddm/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub
+{ mkDerivation, lib, fetchFromGitHub, fetchpatch
 , cmake, extra-cmake-modules, pkg-config, libxcb, libpthreadstubs
 , libXdmcp, libXau, qtbase, qtdeclarative, qtquickcontrols2, qttools, pam, systemd
 }:
@@ -19,6 +19,12 @@ in mkDerivation {
 
   patches = [
     ./sddm-ignore-config-mtime.patch
+    # Load `/etc/profile` for `environment.variables` with zsh default shell.
+    # See: https://github.com/sddm/sddm/pull/1382
+    (fetchpatch {
+      url = "https://github.com/sddm/sddm/commit/e1dedeeab6de565e043f26ac16033e613c222ef9.patch";
+      sha256 = "sha256-OPyrUI3bbH+PGDBfoL4Ohb4wIvmy9TeYZhE0JxR/D58=";
+    })
   ];
 
   postPatch =
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 1c3c4aade5f..678d6a0a353 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -65,15 +65,15 @@ let
       sha256 = sha256Hash;
     };
 
+    nativeBuildInputs = [ unzip ];
     buildInputs = [
       makeWrapper
-      unzip
     ];
     installPhase = ''
       cp -r . $out
       wrapProgram $out/bin/studio.sh \
+        --set-default JAVA_HOME "$out/jre" \
         --set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
-        --set JAVA_HOME "$out/jre" \
         --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
         --set FONTCONFIG_FILE ${fontsConf} \
         --prefix PATH : "${lib.makeBinPath [
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 1dc8b9ca7ff..466dfb2516e 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -9,18 +9,18 @@ let
     inherit buildFHSUserEnv;
   };
   stableVersion = {
-    version = "4.1.2.0"; # "Android Studio 4.1.2"
-    build = "201.7042882";
-    sha256Hash = "1f9bclvyvm3sg9an7wxlfwd8jwnb9cl726dvggmysa6r7shc7xw9";
+    version = "4.1.3.0"; # "Android Studio 4.1.3"
+    build = "201.7199119";
+    sha256Hash = "06xwgk7bwcmljka8xa56cfwwg858r0bl0xp2jb9hdnkwljf796gm";
   };
   betaVersion = {
-    version = "4.2.0.20"; # "Android Studio 4.2 Beta 4"
-    build = "202.7094744";
-    sha256Hash = "10c4qfq6d9ggs88s8h3pryhlnzw17m60qci78rjbh32wmm02sciz";
+    version = "4.2.0.22"; # "Android Studio 4.2 Beta 6"
+    build = "202.7188722";
+    sha256Hash = "0mzwkx1csx194wzg7dc1cii3c16wbmlbq1jdv9ly4nmdxlvc2rxb";
   };
   latestVersion = { # canary & dev
-    version = "2020.3.1.5"; # "Android Studio Arctic Fox (2020.3.1) Canary 5"
-    sha256Hash = "0x749sbg7qa5ncwwaywcldlhyyyyfh05bms2czz1rv6h7zgq16vq";
+    version = "2020.3.1.10"; # "Android Studio Arctic Fox (2020.3.1) Canary 10"
+    sha256Hash = "15xxyjjjy5pnimc66dcwnqb7z4lq7ll4fl401a3br5ca4d1hpgsj";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/apostrophe/default.nix b/pkgs/applications/editors/apostrophe/default.nix
index 4265e0ef104..5d435fa6823 100644
--- a/pkgs/applications/editors/apostrophe/default.nix
+++ b/pkgs/applications/editors/apostrophe/default.nix
@@ -2,45 +2,42 @@
 , wrapGAppsHook, pkg-config, desktop-file-utils
 , appstream-glib, pythonPackages, glib, gobject-introspection
 , gtk3, webkitgtk, glib-networking, gnome3, gspell, texlive
-, shared-mime-info, haskellPackages}:
+, shared-mime-info, haskellPackages, libhandy
+}:
 
 let
-  pythonEnv = pythonPackages.python.withPackages(p: with p;
-    [ regex setuptools python-Levenshtein pyenchant pygobject3 pycairo pypandoc ]);
-  texliveDist = texlive.combined.scheme-medium;
+  pythonEnv = pythonPackages.python.withPackages(p: with p; [
+    regex setuptools python-Levenshtein pyenchant
+    pygobject3 pycairo pypandoc chardet
+  ]);
 
 in stdenv.mkDerivation rec {
   pname = "apostrophe";
-  version = "2.2.0.3";
+  version = "2.4";
 
   src = fetchFromGitLab {
     owner  = "somas";
     repo   = pname;
     domain = "gitlab.gnome.org";
     rev    = "v${version}";
-    sha256 = "06bl1hc69ixk2vcb2ig74mwid14sl5zq6rfna7lx9na6j3l04879";
+    sha256 = "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz";
   };
 
   nativeBuildInputs = [ meson ninja cmake pkg-config desktop-file-utils
     appstream-glib wrapGAppsHook ];
 
   buildInputs = [ glib pythonEnv gobject-introspection gtk3
-    gnome3.adwaita-icon-theme webkitgtk gspell texliveDist
-    glib-networking ];
+    gnome3.adwaita-icon-theme webkitgtk gspell texlive
+    glib-networking libhandy ];
 
   postPatch = ''
     patchShebangs --build build-aux/meson_post_install.py
-
-    substituteInPlace ${pname}/config.py --replace "/usr/share/${pname}" "$out/share/${pname}"
-
-    # get rid of unused distributed dependencies
-    rm -r ${pname}/pylocales
   '';
 
   preFixup = ''
     gappsWrapperArgs+=(
       --prefix PYTHONPATH : "$out/lib/python${pythonEnv.pythonVersion}/site-packages/"
-      --prefix PATH : "${texliveDist}/bin"
+      --prefix PATH : "${texlive}/bin"
       --prefix PATH : "${haskellPackages.pandoc-citeproc}/bin"
       --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
     )
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index e7a9a26f066..875f8612fde 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -3,18 +3,19 @@
 let
   versions = {
     atom = {
-      version = "1.48.0";
-      sha256 = "1693bxbylf6jhld9bdcr5pigk36wqlbj89praldpz9s96yxig9s1";
+      version = "1.54.0";
+      sha256 = "sha256-21AURgomEjuiTzeJ4MIx0mkyVi0b0mVdmFsFGNLXRP4";
     };
 
     atom-beta = {
-      version = "1.49.0";
+      version = "1.55.0";
       beta = 0;
-      sha256 = "1fr6m4a7shdj3wpn6g4n95cqpkkg2x9srwjf7bqxv9f3d5jb1y33";
+      sha256 = "sha256-PICkTt54cPkDJVnXBTtSHUQVbmosOpZfVAiD5A3/n+Q=";
+      broken = true;
     };
   };
 
-  common = pname: {version, sha256, beta ? null}:
+  common = pname: {version, sha256, beta ? null, broken ? false}:
       let fullVersion = version + lib.optionalString (beta != null) "-beta${toString beta}";
       name = "${pname}-${fullVersion}";
   in stdenv.mkDerivation {
@@ -88,6 +89,7 @@ let
       license = licenses.mit;
       maintainers = with maintainers; [ offline ysndr ];
       platforms = platforms.x86_64;
+      inherit broken;
     };
   };
 in lib.mapAttrs common versions
diff --git a/pkgs/applications/editors/atom/env.nix b/pkgs/applications/editors/atom/env.nix
index 5e3c1070ad2..3c0f348ebd5 100644
--- a/pkgs/applications/editors/atom/env.nix
+++ b/pkgs/applications/editors/atom/env.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, zlib, glib, alsaLib, dbus, gtk3, atk, pango, freetype, fontconfig
 , libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
 , gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
-, at-spi2-core
+, at-spi2-core, libdbusmenu
 }:
 
 let
@@ -11,7 +11,7 @@ let
     xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
     xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
     xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
-    xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core
+    xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core libdbusmenu
   ];
 
   libPathNative = lib.makeLibraryPath packages;
diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix
index 2507cb13d7a..59d1f11312d 100644
--- a/pkgs/applications/editors/bluefish/default.nix
+++ b/pkgs/applications/editors/bluefish/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, intltool, wrapGAppsHook, pkg-config , gtk, libxml2
-, enchant, gucharmap, python, gnome3
+, enchant, gucharmap, python3, gnome3
 }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ intltool pkg-config wrapGAppsHook ];
   buildInputs = [ gnome3.adwaita-icon-theme gtk libxml2
-    enchant gucharmap python ];
+    enchant gucharmap python3 ];
 
   meta = with lib; {
     description = "A powerful editor targeted towards programmers and webdevelopers";
diff --git a/pkgs/applications/editors/bluej/default.nix b/pkgs/applications/editors/bluej/default.nix
index c0ca16a284a..9b28de9440f 100644
--- a/pkgs/applications/editors/bluej/default.nix
+++ b/pkgs/applications/editors/bluej/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "A simple integrated development environment for Java";
     homepage = "https://www.bluej.org/";
     license = licenses.gpl2ClasspathPlus;
-    maintainers = [ maintainers.charvp ];
+    maintainers = [ maintainers.chvp ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/editors/code-browser/default.nix b/pkgs/applications/editors/code-browser/default.nix
index a4ae4a811bf..ea4398cc4a5 100644
--- a/pkgs/applications/editors/code-browser/default.nix
+++ b/pkgs/applications/editors/code-browser/default.nix
@@ -39,6 +39,9 @@ stdenv.mkDerivation rec {
   ]
   ++ lib.optionals withQt [ "UI=qt" ]
   ++ lib.optionals withGtk [ "UI=gtk" ];
+
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code";
     homepage = "https://tibleiz.net/code-browser/";
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index 2d9138bc32e..efb3adaaa28 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.122.3";
+  version = "1.129.3";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "1h56hj433z0n4l97zl1cwkjv0qvz4qmvf469zzjzf1nj4zj8px2b";
+    sha256 = "1sg9wg6w3w0phrnnzpj7h2g22y0x7a3dl57djzydayxmg8fnn2ys";
   };
 
   postPatch = ''
@@ -91,7 +91,12 @@ stdenv.mkDerivation rec {
     install -Dm644 setup/debfiles/cudatext-512.png -t $out/share/pixmaps
     install -Dm644 setup/debfiles/cudatext.desktop -t $out/share/applications
   '' + lib.concatMapStringsSep "\n" (lexer: ''
-    install -Dm644 CudaText-lexers/${lexer}/*.{cuda-lexmap,lcf} $out/share/cudatext/data/lexlib
+    if [ -d "CudaText-lexers/${lexer}" ]; then
+      install -Dm644 CudaText-lexers/${lexer}/*.{cuda-lexmap,lcf} $out/share/cudatext/data/lexlib
+    else
+      echo "${lexer} lexer not found"
+      exit 1
+    fi
   '') additionalLexers;
 
   meta = with lib; {
diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json
index 89f6dbc75fa..a0044aaf833 100644
--- a/pkgs/applications/editors/cudatext/deps.json
+++ b/pkgs/applications/editors/cudatext/deps.json
@@ -6,38 +6,38 @@
   },
   "ATBinHex-Lazarus": {
     "owner": "Alexey-T",
-    "rev": "2020.11.22",
-    "sha256": "0dkvzm32ls03pfp40fxvsyrkfmyznc5yrj65cp4a8pp9kpkvzlz7"
+    "rev": "2021.02.13",
+    "sha256": "1p2r2q1al6rcsdbbg8ilm4xn6w48bj348khxdmpak7vfwx9741h8"
   },
   "ATFlatControls": {
     "owner": "Alexey-T",
-    "rev": "2021.01.12",
-    "sha256": "1mavv3krs4srdp362prf4sncssxjh11la5j4lkx0wk5csrmd1pc9"
+    "rev": "2021.03.05",
+    "sha256": "1p2pzha5dd4p23j2bv6jxphj596dlb5v8ixjzg4x2zglz2hir6yz"
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2021.01.19",
-    "sha256": "0lpgfwljwh9mypscbpj5c7fivhza0hizjgqypval3v0209cx38d1"
+    "rev": "2021.03.16",
+    "sha256": "1sq9j2zaif019gl6nf391lyp8k9s38f5s6ci7k3z5v90hkz1dcql"
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
-    "rev": "2021.01.17",
-    "sha256": "14i4jdpbmh6sjpvbwipdvvmmqqw8wg592b34a9wdf2f9qxq2p4ly"
+    "rev": "2021.03.08",
+    "sha256": "0xvnvx4qzp6nxi912i4zlnal91k6vbcsyfbz05ib73sz68xqd5qv"
   },
   "EControl": {
     "owner": "Alexey-T",
-    "rev": "2021.01.12",
-    "sha256": "107zyd65vc72fl4mvyirhv2a9m47l9bs6gwqiwar7hrn02zns6bq"
+    "rev": "2021.03.16",
+    "sha256": "159s1rpl829bmaa4bllqhjm8z0vji1ncsd6hw2s8z8hz28n905k8"
   },
   "ATSynEdit_Ex": {
     "owner": "Alexey-T",
-    "rev": "2020.10.04",
-    "sha256": "0z66cm9pgdi7whqaim6hva4aa08zrr1881n1fal7lnz6wlla824k"
+    "rev": "2021.03.16",
+    "sha256": "1a4mxcwjm9naxh4piqm5y93w2xd5rgl0vcn108wy1pkr221agg2q"
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
-    "rev": "2021.01.16",
-    "sha256": "07qv3x1cm3r12gxfnqzxly6nff39bghwwgxzl2lxi1qbpqhcs2l5"
+    "rev": "2021.02.18",
+    "sha256": "0fy6bmpdcl2aa8pb7zban6midkfwdj99x14hdghrv7cp8l4gcsg5"
   },
   "Emmet-Pascal": {
     "owner": "Alexey-T",
@@ -46,8 +46,8 @@
   },
   "CudaText-lexers": {
     "owner": "Alexey-T",
-    "rev": "2021.01.16",
-    "sha256": "13zyg0cm1c1662l3f7sy462pbc39l1cwm5214nx8ijngf8kgn2zh"
+    "rev": "2021.02.01",
+    "sha256": "051jnrhfpl9n5pgrssf68lj732zxhvjbvna4746ngmdyxvw6dqfd"
   },
   "bgrabitmap": {
     "owner": "bgrabitmap",
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index cff482e887d..2c067250309 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -162,7 +162,7 @@ in rec {
       # Eclipse.
       name = (lib.meta.appendToName "with-plugins" eclipse).name;
     in
-      runCommand name { buildInputs = [ makeWrapper ]; } ''
+      runCommand name { nativeBuildInputs = [ makeWrapper ]; } ''
         mkdir -p $out/bin $out/etc
 
         # Prepare an eclipse.ini with the plugin directory.
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 000129f74df..2f97e361322 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -413,6 +413,22 @@ rec {
     };
   };
 
+  freemarker = buildEclipseUpdateSite rec {
+    name = "freemarker-${version}";
+    version = "1.5.305";
+
+    src = fetchzip {
+      url = "https://github.com/ddekany/jbosstools-freemarker/releases/download/v${version}/freemarker.site-${version}.zip";
+      sha256 = "1qrhi300vk07gi14r445wvy0bvghbjd6c4k7q09pqpaxv6raiczn";
+      stripRoot = false;
+    };
+
+    meta = with lib; {
+      homepage = "https://github.com/ddekany/jbosstools-freemarker";
+      description = "Plugin that provides an editor for Apache FreeMarker files";
+    };
+  };
+
   gnuarmeclipse = buildEclipseUpdateSite rec {
     name = "gnuarmeclipse-${version}";
     version = "3.1.1-201606210758";
diff --git a/pkgs/applications/editors/edit/default.nix b/pkgs/applications/editors/edit/default.nix
index 25e620c51e4..7ef81a4ebc0 100644
--- a/pkgs/applications/editors/edit/default.nix
+++ b/pkgs/applications/editors/edit/default.nix
@@ -2,39 +2,39 @@
 
 stdenv.mkDerivation {
   pname = "edit-nightly";
-  version = "20160425";
+  version = "20180228";
 
   src = fetchgit {
     url = "git://c9x.me/ed.git";
-    rev = "323d49b68c5e804ed3b8cada0e2274f1589b3484";
-    sha256 = "0wv8i3ii7cd9bqhjpahwp2g5fcmyk365nc7ncmvl79cxbz3f7y8v";
+    rev = "77d96145b163d79186c722a7ffccfff57601157c";
+    sha256 = "0rsmp7ydmrq3xx5q19566is9a2v2w5yfsphivfc7j4ljp32jlyyy";
   };
 
+  nativeBuildInputs = [
+    unzip
+    pkg-config
+    cwebbin
+  ];
+
   buildInputs = [
-     unzip
-     pkg-config
-     ncurses
-     libX11
-     libXft
-     cwebbin
+    ncurses
+    libX11
+    libXft
   ];
 
-  buildPhase = ''
+  preBuild = ''
     ctangle *.w
-    make
   '';
 
   installPhase = ''
-    mkdir -p $out/bin/
-    cp obj/edit $out/bin/edit
+    install -Dm755 obj/edit -t $out/bin
   '';
 
   meta = with lib; {
     description = "A relaxing mix of Vi and ACME";
-    homepage = "http://c9x.me/edit";
+    homepage = "https://c9x.me/edit";
     license = licenses.publicDomain;
     maintainers = [ maintainers.vrthra ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index d986903cc57..857b0562c00 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "ace-window";
         ename = "ace-window";
-        version = "0.9.0";
+        version = "0.10.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ace-window-0.9.0.el";
-          sha256 = "1m7fc4arcxn7fp0hnzyp20czjp4zx3rjaspfzpxzgc8sbghi81a3";
+          url = "https://elpa.gnu.org/packages/ace-window-0.10.0.tar";
+          sha256 = "1kfyf7za4zc41gf0k3rq8byvwkw7q5pxnyynh5i0gv686zrzak1i";
         };
         packageRequires = [ avy ];
         meta = {
@@ -223,10 +223,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "13.0.4";
+        version = "13.0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-13.0.4.tar";
-          sha256 = "1362dqb8mcaddda9849gqsj6rzlfq18xprddb74j02884xl7hq65";
+          url = "https://elpa.gnu.org/packages/auctex-13.0.5.tar";
+          sha256 = "072wwsqfl8n2gi2inbp0s8k1ydr6fh1zyvc3rgynwzibjjniy319";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -343,10 +343,10 @@
       elpaBuild {
         pname = "bnf-mode";
         ename = "bnf-mode";
-        version = "0.4.4";
+        version = "0.4.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/bnf-mode-0.4.4.tar";
-          sha256 = "0acr3x96zknxs90dc9mpnrwiaa81883h36lx5q1lxfn78vjfw14x";
+          url = "https://elpa.gnu.org/packages/bnf-mode-0.4.5.tar";
+          sha256 = "0bj5ffqi54cdrraj5bp4v2cpbxjzly1p467dx1hzrlwv2b1svy2y";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -497,10 +497,10 @@
       elpaBuild {
         pname = "clipboard-collector";
         ename = "clipboard-collector";
-        version = "0.2";
+        version = "0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/clipboard-collector-0.2.el";
-          sha256 = "19scspkxgm3b1jkv10jy6nw9gv1q6sfjys09l37mvsva3djxa1dl";
+          url = "https://elpa.gnu.org/packages/clipboard-collector-0.3.tar";
+          sha256 = "09zxbivmc1zhcj8ksac2a0qpqh74rrx2slnj6cwz1n1nixn19743";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -591,10 +591,10 @@
       elpaBuild {
         pname = "company-math";
         ename = "company-math";
-        version = "1.3";
+        version = "1.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/company-math-1.3.tar";
-          sha256 = "0fc9ms0s9w81sxp3qcfva3n3d2qys0pj19pnm621a6v1xdsc7i1l";
+          url = "https://elpa.gnu.org/packages/company-math-1.4.tar";
+          sha256 = "17p5ib65lg8lj2gwip5qgsznww96pch16pr16b41lls5dx4k6d6z";
         };
         packageRequires = [ company math-symbol-lists ];
         meta = {
@@ -636,16 +636,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    counsel = callPackage ({ elpaBuild, emacs, fetchurl, lib, swiper }:
+    counsel = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib, swiper }:
       elpaBuild {
         pname = "counsel";
         ename = "counsel";
-        version = "0.13.1";
+        version = "0.13.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/counsel-0.13.1.tar";
-          sha256 = "0m4dmhj33cxaapn9lf7bj1r680gi2wd7cw9xlssjklzvic29a6db";
+          url = "https://elpa.gnu.org/packages/counsel-0.13.4.tar";
+          sha256 = "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031";
         };
-        packageRequires = [ emacs swiper ];
+        packageRequires = [ emacs ivy swiper ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/counsel.html";
           license = lib.licenses.free;
@@ -685,10 +685,10 @@
       elpaBuild {
         pname = "csv-mode";
         ename = "csv-mode";
-        version = "1.14";
+        version = "1.15";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/csv-mode-1.14.tar";
-          sha256 = "1jz4134pk8dwzsqih9wybx4l9yl244cgcilw8rdnnqmm8i6vxgrp";
+          url = "https://elpa.gnu.org/packages/csv-mode-1.15.tar";
+          sha256 = "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -726,16 +726,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    dash = callPackage ({ elpaBuild, fetchurl, lib }:
+    dash = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "dash";
         ename = "dash";
-        version = "2.12.0";
+        version = "2.18.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dash-2.12.0.tar";
-          sha256 = "02r547vian59zr55z6ri4p2b7q5y5k256wi9j8a317vjzyh54m05";
+          url = "https://elpa.gnu.org/packages/dash-2.18.1.tar";
+          sha256 = "17mrvmrfh5c3kri4r3gf1c3gz4i5vl9ac60grpx4103b56y4cgra";
         };
-        packageRequires = [];
+        packageRequires = [ emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/dash.html";
           license = lib.licenses.free;
@@ -940,10 +940,10 @@
       elpaBuild {
         pname = "easy-kill";
         ename = "easy-kill";
-        version = "0.9.3";
+        version = "0.9.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/easy-kill-0.9.3.tar";
-          sha256 = "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb";
+          url = "https://elpa.gnu.org/packages/easy-kill-0.9.4.tar";
+          sha256 = "1pqqv4dhfm00wqch4wy3n2illsvxlz9r6r64925cvq3i7wq4la1x";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -1118,10 +1118,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.9";
+        version = "1.11";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.9.tar";
-          sha256 = "14qmybmjlgkjns6vlbsf46f276ykydnbm0f6mij2w3b9qx7z2nb2";
+          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.11.tar";
+          sha256 = "0s1mpapvcivy25zbhw6ghpg0ym23vb4dsrz876rl4z2rfyckxral";
         };
         packageRequires = [];
         meta = {
@@ -1295,10 +1295,10 @@
       elpaBuild {
         pname = "flymake";
         ename = "flymake";
-        version = "1.0.9";
+        version = "1.1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/flymake-1.0.9.el";
-          sha256 = "0xm1crhjcs14iqkf481igbf40wj2ib3hjzinw1gn8w1n0462ymp6";
+          url = "https://elpa.gnu.org/packages/flymake-1.1.1.tar";
+          sha256 = "0lk2v34b59b24j3hsmi8d0v7fgpwcipv7ka9i88cdgjmjjmzgz5q";
         };
         packageRequires = [ eldoc emacs ];
         meta = {
@@ -1714,10 +1714,10 @@
       elpaBuild {
         pname = "ivy";
         ename = "ivy";
-        version = "0.13.1";
+        version = "0.13.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ivy-0.13.1.tar";
-          sha256 = "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx";
+          url = "https://elpa.gnu.org/packages/ivy-0.13.4.tar";
+          sha256 = "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1725,6 +1725,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    ivy-avy = callPackage ({ avy, elpaBuild, emacs, fetchurl, ivy, lib }:
+      elpaBuild {
+        pname = "ivy-avy";
+        ename = "ivy-avy";
+        version = "0.13.4";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ivy-avy-0.13.4.tar";
+          sha256 = "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi";
+        };
+        packageRequires = [ avy emacs ivy ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ivy-avy.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     ivy-explorer = callPackage ({ elpaBuild, emacs, fetchurl, ivy, lib }:
       elpaBuild {
         pname = "ivy-explorer";
@@ -1740,6 +1755,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    ivy-hydra = callPackage ({ elpaBuild, emacs, fetchurl, hydra, ivy, lib }:
+      elpaBuild {
+        pname = "ivy-hydra";
+        ename = "ivy-hydra";
+        version = "0.13.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ivy-hydra-0.13.5.tar";
+          sha256 = "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x";
+        };
+        packageRequires = [ emacs hydra ivy ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ivy-hydra.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     ivy-posframe = callPackage ({ elpaBuild
                                 , emacs
                                 , fetchurl
@@ -1854,10 +1884,10 @@
       elpaBuild {
         pname = "kiwix";
         ename = "kiwix";
-        version = "1.0.1";
+        version = "1.0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/kiwix-1.0.1.tar";
-          sha256 = "1dly6pilf71hq3mra9kc63i6iynzkxjmp9gwy0rhnvhq4b4qr01d";
+          url = "https://elpa.gnu.org/packages/kiwix-1.0.3.tar";
+          sha256 = "061b816xp8ykqd56z0nvc69aql9y4mba42p6x6vc0j6gr9n3c1j6";
         };
         packageRequires = [ emacs request ];
         meta = {
@@ -1899,10 +1929,10 @@
       elpaBuild {
         pname = "leaf";
         ename = "leaf";
-        version = "4.3.2";
+        version = "4.4.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/leaf-4.3.2.tar";
-          sha256 = "190sfnnii9jnj8amjkdabd8w9k2xyalhg4h488a5gzjxdzz2s6zi";
+          url = "https://elpa.gnu.org/packages/leaf-4.4.4.tar";
+          sha256 = "1npg06zmy21kg2qsqgfm03l7vjib697i96awypcdb0hw5mvmc1a1";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2019,10 +2049,10 @@
       elpaBuild {
         pname = "map";
         ename = "map";
-        version = "2.1";
+        version = "3.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/map-2.1.el";
-          sha256 = "0ydz5w1n4vwhhzxxj003s7jv8n1wjijwfryk5z93bwhnr0cak0i0";
+          url = "https://elpa.gnu.org/packages/map-3.0.tar";
+          sha256 = "00wf8lgh1b1i5l838y6di8194rf5gf5djklkhmxj1nlikz66j2ls";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2165,31 +2195,54 @@
           license = lib.licenses.free;
         };
       }) {};
-    modus-operandi-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    modus-operandi-theme = callPackage ({ elpaBuild
+                                        , emacs
+                                        , fetchurl
+                                        , lib
+                                        , modus-themes }:
       elpaBuild {
         pname = "modus-operandi-theme";
         ename = "modus-operandi-theme";
-        version = "0.12.0";
+        version = "0.13.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.12.0.el";
-          sha256 = "1mllyysn701qfnglxs7n2f6mrzrz55v9hcwspvafc6fl2blr393y";
+          url = "https://elpa.gnu.org/packages/modus-operandi-theme-0.13.2.tar";
+          sha256 = "1sw18ijp9rhaf8y8x8z5rmxy23pxd3gaicgmp2zndcfmm54gwsic";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs modus-themes ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/modus-operandi-theme.html";
           license = lib.licenses.free;
         };
       }) {};
-    modus-vivendi-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    modus-themes = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "modus-themes";
+        ename = "modus-themes";
+        version = "1.2.4";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/modus-themes-1.2.4.tar";
+          sha256 = "0wz6dgkrq4ryvj0kxnzqxwh4i8b9lw15d5dsazjpqa7gfwffpzp0";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/modus-themes.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    modus-vivendi-theme = callPackage ({ elpaBuild
+                                       , emacs
+                                       , fetchurl
+                                       , lib
+                                       , modus-themes }:
       elpaBuild {
         pname = "modus-vivendi-theme";
         ename = "modus-vivendi-theme";
-        version = "0.12.0";
+        version = "0.13.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.12.0.el";
-          sha256 = "01f6z5xjnmki1k9m83jwva42lxidb31pdpwm4wpxjzxqmb96picn";
+          url = "https://elpa.gnu.org/packages/modus-vivendi-theme-0.13.2.tar";
+          sha256 = "1qn3kzxwf81zc7gprd9wblhb8b8akdkxwajpgk036y8i4cmvmspn";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs modus-themes ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/modus-vivendi-theme.html";
           license = lib.licenses.free;
@@ -2373,10 +2426,10 @@
       elpaBuild {
         pname = "oauth2";
         ename = "oauth2";
-        version = "0.15";
+        version = "0.16";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/oauth2-0.15.el";
-          sha256 = "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3";
+          url = "https://elpa.gnu.org/packages/oauth2-0.16.tar";
+          sha256 = "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316";
         };
         packageRequires = [ cl-lib nadvice ];
         meta = {
@@ -2384,6 +2437,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    ob-haxe = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "ob-haxe";
+        ename = "ob-haxe";
+        version = "1.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ob-haxe-1.0.tar";
+          sha256 = "1x19b3aappv4d3mvpf01r505l1sfndbzbpr5sbid411g9g9k3rwr";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ob-haxe.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     objed = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "objed";
@@ -2613,10 +2681,10 @@
       elpaBuild {
         pname = "phps-mode";
         ename = "phps-mode";
-        version = "0.4.1";
+        version = "0.4.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/phps-mode-0.4.1.tar";
-          sha256 = "11d1gsvvj26h9d7a28v87b022vbi3syzngn1x9v1d2g55iv01x38";
+          url = "https://elpa.gnu.org/packages/phps-mode-0.4.2.tar";
+          sha256 = "0ngh54jdh56563crgvf0r4gd6zfvhbkxs9prp12930gav8mdm3sh";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2658,10 +2726,10 @@
       elpaBuild {
         pname = "posframe";
         ename = "posframe";
-        version = "0.8.5";
+        version = "0.8.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/posframe-0.8.5.tar";
-          sha256 = "0rls0rsj9clx4wd0gbdi5jzwyslparlf7phib649637gq6gs90ds";
+          url = "https://elpa.gnu.org/packages/posframe-0.8.8.tar";
+          sha256 = "1ij6brzcxv9viz37qafcinlfx5l20w8x8s6786r1rsda5n1xsmvd";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2673,10 +2741,10 @@
       elpaBuild {
         pname = "project";
         ename = "project";
-        version = "0.5.3";
+        version = "0.5.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/project-0.5.3.el";
-          sha256 = "0cpf69m41h8gfcqnq72h11925zdk35b7hw7bfy83xm83xwp12rxx";
+          url = "https://elpa.gnu.org/packages/project-0.5.4.tar";
+          sha256 = "0arjvhzzcf8b80w94yvpgfdlhsjwf5jk1r7vcai5a4dg3bi9cxyb";
         };
         packageRequires = [ emacs xref ];
         meta = {
@@ -2714,6 +2782,36 @@
           license = lib.licenses.free;
         };
       }) {};
+    pyim = callPackage ({ async, elpaBuild, emacs, fetchurl, lib, xr }:
+      elpaBuild {
+        pname = "pyim";
+        ename = "pyim";
+        version = "3.6";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/pyim-3.6.tar";
+          sha256 = "1fmbzh33s9xdvrfjhkqr9ydcqbiv8lr04k5idvbpc9vwjjjan5y0";
+        };
+        packageRequires = [ async emacs xr ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/pyim.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim-basedict = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "pyim-basedict";
+        ename = "pyim-basedict";
+        version = "0.5.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/pyim-basedict-0.5.0.tar";
+          sha256 = "0h946wsnbbii32kl2kpv0k1kq118ymvpd5q1mphfsf126dz9sv78";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/pyim-basedict.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     python = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "python";
@@ -3028,10 +3126,10 @@
       elpaBuild {
         pname = "rich-minority";
         ename = "rich-minority";
-        version = "1.0.1";
+        version = "1.0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rich-minority-1.0.1.el";
-          sha256 = "1pr89k3jz044vf582klphl1zf0r7hj2g7ga8j1dwbrpr9ngiicgc";
+          url = "https://elpa.gnu.org/packages/rich-minority-1.0.3.tar";
+          sha256 = "1w61qvx2rw6a6gmrm61080zghil95nzdv4w06c0pvyb62m4rwab0";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -3058,10 +3156,10 @@
       elpaBuild {
         pname = "rt-liberation";
         ename = "rt-liberation";
-        version = "2.1";
+        version = "2.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rt-liberation-2.1.tar";
-          sha256 = "1ahl1ys72rvqs2bf9zv9648h65fx0283ibqlk1b8ayahc04w6qbl";
+          url = "https://elpa.gnu.org/packages/rt-liberation-2.3.tar";
+          sha256 = "0sqq5zfzx9dir6d6zvg7vj5v629b508bbxsp7j0sp21rr4fw9nn0";
         };
         packageRequires = [];
         meta = {
@@ -3150,6 +3248,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    setup = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "setup";
+        ename = "setup";
+        version = "0.1.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/setup-0.1.2.tar";
+          sha256 = "1q29phch4fvmvc255kgvzsnzdqp6kaip7ybpxprd0kkdjs3jrsqv";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/setup.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     shelisp = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "shelisp";
@@ -3454,10 +3567,10 @@
       elpaBuild {
         pname = "swiper";
         ename = "swiper";
-        version = "0.13.1";
+        version = "0.13.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/swiper-0.13.1.tar";
-          sha256 = "0k39pa89y0bfvdfqg3nc5pjq5mwxwimc4ma3z28vaf14zd38x9m1";
+          url = "https://elpa.gnu.org/packages/swiper-0.13.4.tar";
+          sha256 = "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v";
         };
         packageRequires = [ emacs ivy ];
         meta = {
@@ -3563,10 +3676,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.5.0.1";
+        version = "2.5.0.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.5.0.1.tar";
-          sha256 = "0kqlc03bbsdywp0m3mf0m62hqyam8vg81phh7nqmpdjzskrdc1yy";
+          url = "https://elpa.gnu.org/packages/tramp-2.5.0.2.tar";
+          sha256 = "16f782rjkmxxs5sz3wv4d46i7hbl483ashmrkvljf7lpnrl91s93";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3604,6 +3717,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    transient = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "transient";
+        ename = "transient";
+        version = "0.3.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/transient-0.3.0.tar";
+          sha256 = "1a457apfl762nn5xf1h3hbvrgs9hybkxh0jwb2y713zkhhck66cp";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/transient.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }:
       elpaBuild {
         pname = "trie";
@@ -3707,10 +3835,10 @@
       elpaBuild {
         pname = "valign";
         ename = "valign";
-        version = "3.1.0";
+        version = "3.1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/valign-3.1.0.tar";
-          sha256 = "0zx6p2nlvd4nkffj0myqv4hry8kgnhq45fcivfjzbfn62j2kp293";
+          url = "https://elpa.gnu.org/packages/valign-3.1.1.tar";
+          sha256 = "1nla0zfj0rxwhdjgnsy2c34wzrxfxiwl89cjb6aicyvfxninz7j0";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3769,10 +3897,10 @@
       elpaBuild {
         pname = "verilog-mode";
         ename = "verilog-mode";
-        version = "2020.6.27.14326051";
+        version = "2021.2.2.263931197";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/verilog-mode-2020.6.27.14326051.el";
-          sha256 = "194gn8cj01jb9xcl0qq3gq6mzxfdyn459ysb35fnib7pcnafm188";
+          url = "https://elpa.gnu.org/packages/verilog-mode-2021.2.2.263931197.tar";
+          sha256 = "0rizadyzrsprc3mw3h2ag4760wapx5gxzsr11rgrllwzzqwin1ks";
         };
         packageRequires = [];
         meta = {
@@ -3922,10 +4050,10 @@
       elpaBuild {
         pname = "which-key";
         ename = "which-key";
-        version = "3.3.2";
+        version = "3.5.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/which-key-3.3.2.tar";
-          sha256 = "01g5jcikhgxnri1rpbjq191220b4r3bimz2jzs1asc766w42q2gb";
+          url = "https://elpa.gnu.org/packages/which-key-3.5.1.tar";
+          sha256 = "187cssvqpd0wj01rgd19pp1k6aj9m2n5fdqznkga6w1h6cb5cm2b";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4062,10 +4190,10 @@
       elpaBuild {
         pname = "xr";
         ename = "xr";
-        version = "1.20";
+        version = "1.21";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/xr-1.20.tar";
-          sha256 = "0i3vfsp110z60gabn9x9rv21fvm7nnr234mvmpp7gx4l4hpadvzy";
+          url = "https://elpa.gnu.org/packages/xr-1.21.tar";
+          sha256 = "0mc10d33lsqs0ihcja8w78jzh2pk0dfm9m86kap6r3hi6wkr1cmi";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/pkgs/applications/editors/emacs-modes/elpa-packages.nix
index 8b9ad33fce7..034b698137b 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-packages.nix
@@ -20,7 +20,7 @@ instantenous and formats commits for you.
 
 */
 
-{ lib, stdenv, texinfo }:
+{ lib, stdenv, texinfo, writeText }:
 
 self: let
 
@@ -31,7 +31,7 @@ self: let
   };
 
   elpaBuild = import ../../../build-support/emacs/elpa.nix {
-    inherit lib stdenv texinfo;
+    inherit lib stdenv texinfo writeText;
     inherit (self) emacs;
   };
 
@@ -53,6 +53,9 @@ self: let
       seq = if lib.versionAtLeast self.emacs.version "27"
             then null
             else super.seq;
+      project = if lib.versionAtLeast self.emacs.version "28"
+                then null
+                else super.project;
     };
 
     elpaPackages = super // overrides;
diff --git a/pkgs/applications/editors/emacs-modes/manual-packages.nix b/pkgs/applications/editors/emacs-modes/manual-packages.nix
index 5f7d602264f..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"))
     '';
@@ -113,19 +113,83 @@
 
   jam-mode = callPackage ./jam-mode { };
 
+  llvm-mode = trivialBuild {
+    pname = "llvm-mode";
+    inherit (pkgs.llvmPackages.llvm) src version;
+
+    dontConfigure = true;
+    buildPhase = ''
+      cp utils/emacs/*.el .
+    '';
+
+    meta = {
+      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 62979b4226d..e5e2bac964f 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: {
@@ -47,8 +47,13 @@ let
       });
     }) else null;
 
+  buildWithGit = pkg: pkg.overrideAttrs (attrs: {
+    nativeBuildInputs =
+      (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
+  });
+
   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
@@ -74,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
@@ -120,33 +125,35 @@ let
           packageRequires = with self; [ evil ];
         });
 
-        evil-magit = super.evil-magit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        eopengrok = super.eopengrok.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
         ess-R-data-view = super.ess-R-data-view.override {
           inherit (self.melpaPackages) ess ctable popup;
         };
 
-        forge = super.forge.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
         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 ];
-          preBuild = "make server/epdfinfo";
+          nativeBuildInputs = [
+            pkgs.autoconf
+            pkgs.automake
+            pkgs.pkg-config
+            pkgs.removeReferencesTo
+          ];
+          buildInputs = old.buildInputs ++ [ pkgs.libpng pkgs.zlib pkgs.poppler ];
+          preBuild = ''
+            make server/epdfinfo
+            remove-references-to ${lib.concatStringsSep " " (
+              map (output: "-t " + output) (
+                [
+                  pkgs.glib.dev
+                  pkgs.libpng.dev
+                  pkgs.poppler.dev
+                  pkgs.zlib.dev
+                  pkgs.cairo.dev
+                ]
+                ++ lib.optional pkgs.stdenv.isLinux pkgs.stdenv.cc.libc.dev
+              )
+            )} server/epdfinfo
+          '';
           recipe = pkgs.writeText "recipe" ''
             (pdf-tools
             :repo "politza/pdf-tools" :fetcher github
@@ -155,7 +162,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 ];
         });
 
@@ -181,7 +188,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
@@ -211,113 +218,81 @@ let
           '';
         });
 
-        magit = super.magit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        evil-magit = buildWithGit super.evil-magit;
 
-        magit-find-file = super.magit-find-file.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        eopengrok = buildWithGit super.eopengrok;
 
-        magit-gh-pulls = super.magit-gh-pulls.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        forge = buildWithGit super.forge;
 
-        magit-imerge = super.magit-imerge.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit = buildWithGit super.magit;
 
-        magit-lfs = super.magit-lfs.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-find-file = buildWithGit super.magit-find-file;
 
-        magit-org-todos = super.magit-org-todos.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-gh-pulls = buildWithGit super.magit-gh-pulls;
 
-        magit-tbdiff = super.magit-tbdiff.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-imerge = buildWithGit super.magit-imerge;
 
-        magit-topgit = super.magit-topgit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-lfs = buildWithGit super.magit-lfs;
 
-        magit-vcsh = super.magit-vcsh.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-org-todos = buildWithGit super.magit-org-todos;
 
-        magit-gerrit = super.magit-gerrit.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-tbdiff = buildWithGit super.magit-tbdiff;
 
-        magit-annex = super.magit-annex.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-topgit = buildWithGit super.magit-topgit;
 
-        magit-todos = super.magit-todos.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-vcsh = buildWithGit super.magit-vcsh;
 
-        magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-gerrit = buildWithGit super.magit-gerrit;
 
-        magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-annex = buildWithGit super.magit-annex;
 
-        magithub = super.magithub.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-todos = buildWithGit super.magit-todos;
 
-        magit-svn = super.magit-svn.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-filenotify = buildWithGit super.magit-filenotify;
 
-        kubernetes = super.kubernetes.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magit-gitflow = buildWithGit super.magit-gitflow;
 
-        kubernetes-evil = super.kubernetes-evil.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
+        magithub = buildWithGit super.magithub;
+
+        magit-svn = buildWithGit super.magit-svn;
+
+        kubernetes = buildWithGit super.kubernetes;
+
+        kubernetes-evil = buildWithGit super.kubernetes-evil;
+
+        egg = buildWithGit super.egg;
+
+        kapacitor = buildWithGit super.kapacitor;
+
+        gerrit = buildWithGit super.gerrit;
+
+        gerrit-download = buildWithGit super.gerrit-download;
+
+        github-pullrequest = buildWithGit super.github-pullrequest;
+
+        jist = buildWithGit super.jist;
+
+        mandoku = buildWithGit super.mandoku;
+
+        mandoku-tls = buildWithGit super.mandoku-tls;
+
+        magit-p4 = buildWithGit super.magit-p4;
+
+        magit-rbr = buildWithGit super.magit-rbr;
+
+        magit-diff-flycheck = buildWithGit super.magit-diff-flycheck;
+
+        magit-reviewboard = buildWithGit super.magit-reviewboard;
+
+        magit-patch-changelog = buildWithGit super.magit-patch-changelog;
+
+        magit-circleci = buildWithGit super.magit-circleci;
+
+        magit-delta = buildWithGit super.magit-delta;
+
+        orgit = buildWithGit super.orgit;
+
+        orgit-forge = buildWithGit super.orgit-forge;
 
         # upstream issue: missing file header
         mhc = super.mhc.override {
@@ -330,18 +305,36 @@ 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 ];
+
+          patches = [
+            (pkgs.fetchpatch {
+              name = "telega-server-bin-store-prefer.patch";
+              url = "https://github.com/zevlg/telega.el/commit/72550f984ca869309d197203ef7de99182d71729.patch";
+              sha256 = "18xvz53bygksak6h5f8cz79y83p2va15i8qz7n4s3g9gsklmkj2p";
+            })
+          ];
+
+          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
@@ -358,12 +351,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: {
@@ -372,11 +365,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-*
@@ -459,13 +452,7 @@ let
         window-numbering = markBroken super.window-numbering;
 
         editorconfig = super.editorconfig.overrideAttrs (attrs: {
-          propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
-        });
-
-        egg = super.egg.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+          propagatedUserEnvPkgs = [ pkgs.editorconfig-core-c ];
         });
 
         # missing dependencies
@@ -473,95 +460,8 @@ let
           packageRequires = with self; [ evil highlight ];
         });
 
-        kapacitor = super.kapacitor.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        gerrit = super.gerrit.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        gerrit-download = super.gerrit-download.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        github-pullrequest = super.github-pullrequest.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
         helm-rtags = fix-rtags super.helm-rtags;
 
-        jist = super.jist.overrideAttrs (attrs: {
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        mandoku = super.mandoku.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        mandoku-tls = super.mandoku-tls.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-p4 = super.magit-p4.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-rbr = super.magit-rbr.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-diff-flycheck = super.magit-diff-flycheck.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-reviewboard = super.magit-reviewboard.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-patch-changelog = super.magit-patch-changelog.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        magit-circleci = super.magit-circleci.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
-        orgit =
-          (super.orgit.overrideAttrs (attrs: {
-            # searches for Git at build time
-            nativeBuildInputs =
-              (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-          }));
-
-        orgit-forge = super.orgit-forge.overrideAttrs (attrs: {
-          # searches for Git at build time
-          nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
-        });
-
         # tries to write to $HOME
         php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: {
           HOME = "/tmp";
@@ -570,7 +470,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}
           '';
         });
 
@@ -599,7 +499,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-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix
index 9260900853c..01ad01f9049 100644
--- a/pkgs/applications/editors/emacs-modes/org-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/org-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "20210208";
+        version = "20210322";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-20210208.tar";
-          sha256 = "1awqk2dk3sgglq6fqgaz8y8rqw3p5rcnkp7i6m15n7wlq9nx7njp";
+          url = "https://orgmode.org/elpa/org-20210322.tar";
+          sha256 = "0iv54rhwa0972yr1wqzmlkggs5vc6qajz8mmyfhynp65ap088g6v";
         };
         packageRequires = [];
         meta = {
@@ -19,10 +19,10 @@
       elpaBuild {
         pname = "org-plus-contrib";
         ename = "org-plus-contrib";
-        version = "20210208";
+        version = "20210322";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-plus-contrib-20210208.tar";
-          sha256 = "13yrzx7sdndf38hamm1m82kfgnqgm8752mjxmmqw1iqr3r33ihi3";
+          url = "https://orgmode.org/elpa/org-plus-contrib-20210322.tar";
+          sha256 = "0riswc3ira8hsawm37yypji55z47bw2477kaw3qx7ghz3n62r9nf";
         };
         packageRequires = [];
         meta = {
diff --git a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
index 9d936e4b3dc..7703579db80 100644
--- a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
@@ -191,6 +191,29 @@
   }
  },
  {
+  "ename": "aas",
+  "commit": "30cedefefdab6d423bfc8851463a7892c266be70",
+  "sha256": "0nn740r5w62a783ky9nsm3bzagcvamj0psd120vkdx28ml3g9xyr",
+  "fetcher": "github",
+  "repo": "ymarco/auto-activating-snippets",
+  "unstable": {
+   "version": [
+    20210316,
+    2027
+   ],
+   "commit": "af9d405a0f6ea078ae5b6567f664f4166f9f0ab0",
+   "sha256": "0jsnvnpvrrz5b4vh9jf3sjjm0pgh4241zw54bjkqa1ld9vvxwkxn"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "commit": "ffafc54e02475b9e7f7bcbe1d8ed3f11bcb4b542",
+   "sha256": "054sfzvm1ihaxy4hnhl424y5py8k7wi73rb0lqvbi4v8iphihzhr"
+  }
+ },
+ {
   "ename": "abc-mode",
   "commit": "aaee9dc5de06747374f311d86a550d3cc15beed1",
   "sha256": "0qf5lbszyscmagiqhc0d05vzkhdky7ini4w33z1h3j5417sscrcx",
@@ -279,16 +302,16 @@
   "repo": "abstools/abs-mode",
   "unstable": {
    "version": [
-    20201021,
-    958
+    20210303,
+    1059
    ],
    "deps": [
     "erlang",
     "flymake",
     "maude-mode"
    ],
-   "commit": "9101779ef8861cb1f46d288946356e600359a4e0",
-   "sha256": "08ymmf030gsk7hfvbjp302micnz2fa087i6f44l2i7yz592myhsz"
+   "commit": "5a766c734fcdf3b6c2ad88bbeb5c1cd79cdeaf44",
+   "sha256": "10ywyz0g4nnkap66xc7ynr9lq9z9jpsd0i3qwxs3fqkjwixwylz5"
   },
   "stable": {
    "version": [
@@ -1006,8 +1029,8 @@
     "auto-complete",
     "yasnippet"
    ],
-   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
-   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   },
   "stable": {
    "version": [
@@ -1032,8 +1055,8 @@
   "repo": "xcwen/ac-php",
   "unstable": {
    "version": [
-    20210129,
-    951
+    20210218,
+    559
    ],
    "deps": [
     "dash",
@@ -1043,8 +1066,8 @@
     "s",
     "xcscope"
    ],
-   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
-   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   },
   "stable": {
    "version": [
@@ -1484,14 +1507,14 @@
   "repo": "mrkkrp/ace-popup-menu",
   "unstable": {
    "version": [
-    20190713,
-    1337
+    20210318,
+    1748
    ],
    "deps": [
     "avy-menu"
    ],
-   "commit": "390f0711d2a42675980d8b531fd5dc396b85f24b",
-   "sha256": "00va4glq9iibrfrnhinv8a7f5q0z7xvfyxnjf1rl4z770drz9j4n"
+   "commit": "9a2056c53faba0bd7b7f44fb3faabf4d34b8497f",
+   "sha256": "0i7a708y9x4xdny3ccqwngn4la5vg0539c7qk87d163gl61mbk7k"
   },
   "stable": {
    "version": [
@@ -1716,11 +1739,11 @@
   "repo": "codesuki/add-node-modules-path",
   "unstable": {
    "version": [
-    20180710,
-    2342
+    20210305,
+    312
    ],
-   "commit": "f31e69ccb681f882aebb806ce6e9478e3ac39708",
-   "sha256": "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"
+   "commit": "7d9be65b3be062842b7ead862dec15d6f25db4a2",
+   "sha256": "0za0jjba2qdpqdkcp5bch6ma8crf0vsi7bxj2rasn2icqgxyn89m"
   },
   "stable": {
    "version": [
@@ -1763,11 +1786,11 @@
   "repo": "louabill/ado-mode",
   "unstable": {
    "version": [
-    20210202,
-    2006
+    20210219,
+    1548
    ],
-   "commit": "c9af0cac90b912ce0dd02fbf470f513dea2d4f43",
-   "sha256": "0z4vi4q6awss52afp4nnxxdhmhdchp8qn6hqyhdikr8lgvja4pq6"
+   "commit": "438e2b9ca1ce9fd1043998359dfe5a32a0ddb6d0",
+   "sha256": "1fpk7lc5z9v8an9x8j1v3l2pkbg93368qv23jzsqs84r3ndw5b7k"
   },
   "stable": {
    "version": [
@@ -1888,15 +1911,15 @@
   "repo": "agda/agda",
   "unstable": {
    "version": [
-    20200922,
-    1231
+    20210220,
+    2039
    ],
    "deps": [
     "annotation",
     "eri"
    ],
-   "commit": "e6862ebe3e8f2f29325378d820f7fa94656be479",
-   "sha256": "1iwi8jm3mp77zmcvn813mcnih1sq56mpl66r2qlkl72paqli790i"
+   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
+   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
   },
   "stable": {
    "version": [
@@ -2355,11 +2378,11 @@
   "repo": "domtronn/all-the-icons.el",
   "unstable": {
    "version": [
-    20210208,
-    0
+    20210313,
+    2205
    ],
-   "commit": "2f5ea7259ed104a0ef8727f640ee2525108038d5",
-   "sha256": "1lvnzjarnzjkrkmhbwgny64ym7s6m4if6lc2fpapcx9hh6bq9h6c"
+   "commit": "a8c84176af7f3b97019423ebf3e02f983f4ebdf9",
+   "sha256": "07vscdf28wjjxsqaich694r94rf9iffjbqsvmqcq8h0qhqzfp2pq"
   },
   "stable": {
    "version": [
@@ -2376,20 +2399,20 @@
  },
  {
   "ename": "all-the-icons-dired",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1qj639z24ln29hv6c51g1vsa2jsy4qrlhf8c7d5w9bxcrcn2fnr9",
+  "commit": "26f650e465b22a0afdb77318aebfcfbdb832c9ce",
+  "sha256": "0qa2x3c9j779yr1q0kfi4696zhbgc1drafskl7rymdpia3vqkwd0",
   "fetcher": "github",
-  "repo": "jtbm37/all-the-icons-dired",
+  "repo": "wyuenho/all-the-icons-dired",
   "unstable": {
    "version": [
-    20200403,
-    1018
+    20210302,
+    1410
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5",
-   "sha256": "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"
+   "commit": "f401fe289cd93936e7747b1541aa98117b7ca96f",
+   "sha256": "1j5vbrsxy6blickkbblagyn6binvpalc2kxr7b438xhx8mgfbapv"
   }
  },
  {
@@ -2419,14 +2442,14 @@
   "repo": "seagle0128/all-the-icons-ibuffer",
   "unstable": {
    "version": [
-    20201218,
-    356
+    20210325,
+    512
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "0260cd194d150126bcb81823742ab53036942c73",
-   "sha256": "1snxbi5wv5qa78vx487rdrarpydrabxz3s6a9ck54wkf91mkbcvv"
+   "commit": "5a984b4d7f811e2ad08fdc461a1e89205804b7bd",
+   "sha256": "05bglgqc4q5p9zr6ylllg16crpxcnb6p51xkk5v1nljgi3n9786l"
   },
   "stable": {
    "version": [
@@ -2481,15 +2504,15 @@
   "repo": "seagle0128/all-the-icons-ivy-rich",
   "unstable": {
    "version": [
-    20210126,
-    1227
+    20210303,
+    1747
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "3cfc62cea6f26279e062d6056fa0fec7b6f7ac1c",
-   "sha256": "03xpsrdh2z1d7sax83a5dv1alb5kmnbfvxwvqib3f7bllggw4wpg"
+   "commit": "2efbbf231ea3b3248177051a10c52c151686c4b4",
+   "sha256": "1rrnanmmq07jx83w51b9gpwv2al1xw01xqb6xbpzd4bi2gjlayy5"
   },
   "stable": {
    "version": [
@@ -2513,11 +2536,11 @@
   "repo": "cryon/almost-mono-themes",
   "unstable": {
    "version": [
-    20200211,
-    2126
+    20210306,
+    1040
    ],
-   "commit": "0b804c3ce21b9045d9b3093ef066d8269ac93990",
-   "sha256": "0bp38fwrgw5hr8vyn9shy1am2d224nbyjymdar6i2gh191y43rpm"
+   "commit": "a7dc21078e25dab2b054d64e5b40ecce2878edb2",
+   "sha256": "12q9wddkynl90hl8vcy69hwl2g9flfz7r4fsp81bwc3vv130s7cg"
   }
  },
  {
@@ -2738,25 +2761,25 @@
   "repo": "DarwinAwardWinner/amx",
   "unstable": {
    "version": [
-    20210101,
-    1921
+    20210305,
+    118
    ],
    "deps": [
     "s"
    ],
-   "commit": "b99149715266b5c2c48f5a0fc43716d36575da5f",
-   "sha256": "14k1wrjfhawb18fyrfdv2lv0nwfpliw0f14hrhdb3kmshp5dsb3x"
+   "commit": "37f9c7ae55eb0331b27200fb745206fc58ceffc0",
+   "sha256": "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"
   },
   "stable": {
    "version": [
     3,
-    3
+    4
    ],
    "deps": [
     "s"
    ],
-   "commit": "394734e42aa8c43940df358e77a69248b42f2a9c",
-   "sha256": "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"
+   "commit": "37f9c7ae55eb0331b27200fb745206fc58ceffc0",
+   "sha256": "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"
   }
  },
  {
@@ -2767,8 +2790,8 @@
   "repo": "pythonic-emacs/anaconda-mode",
   "unstable": {
    "version": [
-    20210210,
-    852
+    20210304,
+    1723
    ],
    "deps": [
     "dash",
@@ -2776,8 +2799,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "081f9d8f92f5b85b4f4ac01af7ee72582e689ce1",
-   "sha256": "01z4npw03rkpjl0gmxgryvpkndwn43bgmda398dyzfv00pl5cdar"
+   "commit": "344727c9e07e108896740c782689bf3588edcce5",
+   "sha256": "020ix7jlzx3k9g9flwcq8ddgplby62gcfj28wxhq0pcngy8fnqjz"
   },
   "stable": {
    "version": [
@@ -2803,15 +2826,11 @@
   "repo": "didibus/anakondo",
   "unstable": {
    "version": [
-    20200503,
-    123
-   ],
-   "deps": [
-    "clojure-mode",
-    "projectile"
+    20210221,
+    1727
    ],
-   "commit": "ba6b56c18f2b0ae035b448813b27114d19fb821c",
-   "sha256": "0dbhkinfn6ahvi9pi7kghlc0fccil15lx0pd1rpgv4d7n3bnsdna"
+   "commit": "c48518560815c49d8d78fb9069906d17e883385e",
+   "sha256": "1fzsqd150gpmrj8kz3zy9cd78x9vank7ra720mljhyf04z0h1mj6"
   },
   "stable": {
    "version": [
@@ -3085,11 +3104,11 @@
   "repo": "bastibe/annotate.el",
   "unstable": {
    "version": [
-    20210211,
-    1931
+    20210322,
+    1739
    ],
-   "commit": "3e0d5f39b24eeded849c1c4903f9a75976732d2b",
-   "sha256": "1l1xmb12qfs0rvgvqqnbjn0njdgxiprxx6fd0vzinlpfdfk1f39j"
+   "commit": "54ac759facadacbfea5c1e7c2975e2da6434cdda",
+   "sha256": "18pr4bympwl6c2a1bsk4s8ixg4l7ykcxfh1bk42vvbcqnbmvd7dw"
   },
   "stable": {
    "version": [
@@ -3127,8 +3146,8 @@
     20200914,
     644
    ],
-   "commit": "e6862ebe3e8f2f29325378d820f7fa94656be479",
-   "sha256": "1iwi8jm3mp77zmcvn813mcnih1sq56mpl66r2qlkl72paqli790i"
+   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
+   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
   },
   "stable": {
    "version": [
@@ -3579,11 +3598,19 @@
   "repo": "emacsorphanage/applescript-mode",
   "unstable": {
    "version": [
-    20090321,
-    632
+    20210223,
+    1539
    ],
-   "commit": "8f888cd80af1e0902b5609143facd3051bc94892",
-   "sha256": "0d3bqx6346vmniv001jgd6wggp80kv1kqc38sdgd88862gkqnqyg"
+   "commit": "a45c426b7e4a450faea004ef5b842fd37e17a7c6",
+   "sha256": "1f7bvcv4qqqa5bsfrcs69yc1phgnyrh5mbnb2hhgq72z8ymmrn7q"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "commit": "42b3db3838821f240e05752de4337359d25d8c04",
+   "sha256": "1z0z0pxy5f5lsw4pskk77dfql5s89iqb6zzkm4pr5r5pcqbhla1s"
   }
  },
  {
@@ -3617,11 +3644,11 @@
   "repo": "waymondo/apropospriate-theme",
   "unstable": {
    "version": [
-    20191220,
-    2017
+    20210316,
+    2156
    ],
-   "commit": "543341f0836b24e001375c530c4706e9345ec1e3",
-   "sha256": "03917db85x4c2a1ba94wmik21wwnwf9xpz6wc0d0ay0zkkvqsn5g"
+   "commit": "22b394e3c9fc8db3a33c0f7fa36263ce44b0dec5",
+   "sha256": "1075f1gp9q210h4varmrj69g35wf8dygamzwsgfp38kqggdqdrxq"
   },
   "stable": {
    "version": [
@@ -3748,11 +3775,11 @@
   "repo": "motform/arduino-cli-mode",
   "unstable": {
    "version": [
-    20210119,
-    1200
+    20210321,
+    1641
    ],
-   "commit": "10d5cfa1563f314e5b24b151f63b9579992a7ba5",
-   "sha256": "0czbp56jg40y33p05l1wvrinjiz795zjk4gyxyvjbra11a8byf84"
+   "commit": "1724860a6a930a539472bb56bc3cae0e317dc055",
+   "sha256": "184phkylr4ax586glx7qx2f8yfdbbjx94vwq698z2yxs4jphni91"
   }
  },
  {
@@ -3763,14 +3790,14 @@
   "repo": "stardiviner/arduino-mode",
   "unstable": {
    "version": [
-    20201231,
-    214
+    20210216,
+    926
    ],
    "deps": [
     "spinner"
    ],
-   "commit": "10af99792c8e4b97ea542c55bfed246781fdd1ba",
-   "sha256": "1gz4hmmijlilqqh7scyidh5kbbmyvq12dhnjgnn9h6y9q5qabibq"
+   "commit": "969b49ef6c954a067b3cbca43a4cdc1c04b1a62a",
+   "sha256": "0cjygkddlla2ygiyn506mwqjfn52lqpwfbv1fbwcqljvfspc65am"
   }
  },
  {
@@ -4178,15 +4205,15 @@
   "repo": "alpha22jp/atomic-chrome",
   "unstable": {
    "version": [
-    20210117,
-    408
+    20210221,
+    59
    ],
    "deps": [
     "let-alist",
     "websocket"
    ],
-   "commit": "ae2a6158a6a216dddbe281d0b0b00af7a2fdd558",
-   "sha256": "1wb770157p85nmsmqb2pspkw0jfrrlp43bp7cmdjv561gh0mbrak"
+   "commit": "c73367d8aa660f2b3c3f70ef5c39f5b502d60404",
+   "sha256": "07bw5fjmszxsvvcb0415zfawfmzqwj0qdvaigxrbb5rinazwb0pn"
   },
   "stable": {
    "version": [
@@ -4210,8 +4237,8 @@
   "repo": "jyp/attrap",
   "unstable": {
    "version": [
-    20210205,
-    1027
+    20210219,
+    1001
    ],
    "deps": [
     "dash",
@@ -4219,8 +4246,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "c84d68846995dbfe15f1237bf4ce0bc83c37bc52",
-   "sha256": "14446mn96kmmn1l915jf54x3cvrmkjnzrgsp8091xicxfvmhmpyq"
+   "commit": "778382eba8e1a449862b1573e90c1e79cf5caeb1",
+   "sha256": "0a2n1p2nasd2ikv86p3sm5sn4qb3avj2sni9gja3yn6kdqn8s8jp"
   },
   "stable": {
    "version": [
@@ -4245,26 +4272,26 @@
   "repo": "tsuu32/auctex-cluttex",
   "unstable": {
    "version": [
-    20201029,
-    1241
+    20210226,
+    302
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "e01f42ef4db28d284db010dbb590b197520f73d4",
-   "sha256": "0iq14adyry26n5c6i67fd6aiwlcw4a9shndljlvvzc7g82kdw7vl"
+   "commit": "9a15742a6de1285831329eac93f9e35752472685",
+   "sha256": "1ra2qkr9wadnx5aqg6paxk8w4h9m6c4jrl4b7zb5l6s1csw1llj1"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "e358f7148092d8ed64703641b5621e130cce458d",
-   "sha256": "1whzcp9wvpwn1c33n7mqxx8v6g4apg3cq5h2ffl74423ysymry71"
+   "commit": "4e05ad8976f352e67d56d9a479a4a570dfe7ba73",
+   "sha256": "0zgd7yascqn2dwjd20f1v962q7b24wibla5fwnbl9df1x36asqhs"
   }
  },
  {
@@ -5283,8 +5310,8 @@
     20190331,
     2230
    ],
-   "commit": "19e2f1766b4a845ce5a4ccc87de62608f385bd11",
-   "sha256": "1gpzi092732chg0mvrwmr01c2njip1d2m15lj9fa1ii6sddfpand"
+   "commit": "74e1fcbeca25734235afec9c6a4d0cf73736b62c",
+   "sha256": "0yrcsr4360v222klahbccfq3vb4kp5xdsibydwircv36xhxplzq3"
   }
  },
  {
@@ -5427,8 +5454,8 @@
     "avy",
     "embark"
    ],
-   "commit": "3a9c581cb7518f738dce8d6a0f1d1eb6c78b6622",
-   "sha256": "1aik11mq5yqk9zwqqfizh9vsb8gglisrf02hlx28s32h2hybsd3n"
+   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
+   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
   },
   "stable": {
    "version": [
@@ -5471,14 +5498,14 @@
   "repo": "mrkkrp/avy-menu",
   "unstable": {
    "version": [
-    20190713,
-    1348
+    20210321,
+    1732
    ],
    "deps": [
     "avy"
    ],
-   "commit": "970204989bcd4a4f8223c2fe980a08dc58441045",
-   "sha256": "196pwh83p0yrnagpiig8h2mq9xxm7wk9q8x832ffwizip4yni80b"
+   "commit": "2c5e0c08d6cb27c213a8eda5c7033e3ff2aa9661",
+   "sha256": "11sa9a5vh546dpnxmrhxps77c225vkrfqsb6qlsnli2kmp5cxj48"
   },
   "stable": {
    "version": [
@@ -5638,11 +5665,11 @@
   "url": "https://bitbucket.org/pdo/axiom-environment",
   "unstable": {
    "version": [
-    20210131,
-    2053
+    20210312,
+    2248
    ],
-   "commit": "d9c1c85ea731a18f271bd003a5b1736e26fa172a",
-   "sha256": "1clcbgs5dk3jas6sclsfj6ibrb0n2508xapyp85lb0nm01i07jb9"
+   "commit": "ac8228a702290732ba12c5d13b38576a57afb0d6",
+   "sha256": "1nrlgrckvh2fiwis9bmr95h2bpxfkz1nknxdz61380f2caqwwhw7"
   }
  },
  {
@@ -6013,11 +6040,11 @@
   "repo": "belak/base16-emacs",
   "unstable": {
    "version": [
-    20210206,
-    1822
+    20210320,
+    519
    ],
-   "commit": "041e442b6ab2b85a254e17bfc776a508e1b66abf",
-   "sha256": "1rcw4jsla3fhrb6b5margiwk2i2m0rrf3vp8lxk8vdg9bsy5ikmc"
+   "commit": "0c3aa33520ae4cb467c76ce53d438827df77eb1a",
+   "sha256": "0ibwxwyncyrgbpvhcx523813njdgln34wmqf0x826qv4hh4ai0yw"
   },
   "stable": {
    "version": [
@@ -6117,14 +6144,26 @@
   "repo": "dykstrom/basic-mode",
   "unstable": {
    "version": [
-    20180919,
-    1752
+    20210316,
+    1253
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "eaa5f24d2fb303d9e5d7de2a28c7c18b01532ab6",
+   "sha256": "1qvrf6mdrxzzd66888saddjrg5008rrgk0shg6vsyd39gk2bai22"
+  },
+  "stable": {
+   "version": [
+    0,
+    4,
+    3
    ],
    "deps": [
     "seq"
    ],
-   "commit": "812f078240f9de09491701853569335ba6d9b5ff",
-   "sha256": "1492klgbkxb46x02kmhngccx4p9fmjvf6m4ay89j7pyaixvcqj8v"
+   "commit": "0f135eb6581dabe69fff07f31082c8f53b4dcc70",
+   "sha256": "13z1b9wqhrx5c87ymc7jikvais7xd1jzx5qsnn03d6wmlm1y027z"
   }
  },
  {
@@ -6165,21 +6204,20 @@
   "repo": "AlonTzarafi/battle-haxe",
   "unstable": {
    "version": [
-    20200222,
-    56
+    20210219,
+    354
    ],
    "deps": [
     "async",
     "cl-lib",
     "company",
     "dash",
-    "dash-functional",
     "f",
     "helm",
     "s"
    ],
-   "commit": "64d20c9ea3fd503fdefafda122e7095c192e72a3",
-   "sha256": "15ykwqg100vjl014awwwzmch84vwqyrlm46c22w9x3dgqk8yxyi2"
+   "commit": "2f32c81dcecfc68fd410cb9d2aca303d6e3028c7",
+   "sha256": "0br1iy9zcjqaxmm691axrcbfxmid76rsbkcp1vrpzrdqvrkskpww"
   }
  },
  {
@@ -6193,8 +6231,8 @@
     20200627,
     1625
    ],
-   "commit": "689f5df2c728129f288ed6eed82cde5df8c2ad1f",
-   "sha256": "09mj52wqdlysdqrs8mabm6373pqrab7zjbc4y5ll54a5iz7fv7yb"
+   "commit": "43026c5e09dfca86fb84b9a857708ad419f2215f",
+   "sha256": "0bwabpx56ybk114456x0p4k8xqh0s060ig40jdsqibq89h6m1nab"
   },
   "stable": {
    "version": [
@@ -6339,14 +6377,14 @@
   "repo": "tohojo/bbdb-vcard",
   "unstable": {
    "version": [
-    20201016,
-    1902
+    20210325,
+    2208
    ],
    "deps": [
     "bbdb"
    ],
-   "commit": "8d2fa496e58ded18f5eb589c1781adaf48a5f73f",
-   "sha256": "0ssmr4cyywqhr42fjmk5z3hb1z7ddbbz8y9sc5bzad7wncbybwbv"
+   "commit": "113c66115ce68316e209f51ebce56de8dded3606",
+   "sha256": "1sr5kd2gvw1b4hl147yb60cgx6j730vdnpyr09p7vmpw65hzwlwm"
   },
   "stable": {
    "version": [
@@ -6476,11 +6514,11 @@
   "repo": "DamienCassou/beginend",
   "unstable": {
    "version": [
-    20200526,
-    2005
+    20210320,
+    1115
    ],
-   "commit": "9c7a92779d75f6fd985cf707ff5241bc98ccea6c",
-   "sha256": "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"
+   "commit": "18d0bbde367dfe259d697d1c589e3040d69797ee",
+   "sha256": "13gdlaiqi3jnavwrwj5ic9aqycfvbzw8d4v0413nwzag35bz4mpl"
   },
   "stable": {
    "version": [
@@ -6639,11 +6677,11 @@
   "url": "https://git.sr.ht/~technomancy/better-defaults",
   "unstable": {
    "version": [
-    20200717,
-    2012
+    20210222,
+    1928
    ],
-   "commit": "fd4346735d61be88e6eafabf1f62c4c16548f1b3",
-   "sha256": "1cnqwrkiml8jz4hbdv16pb97v6g528mvpqx1lg01v45h4mky82bn"
+   "commit": "4c5409406ee35c5ba46880c6cfe98df4b14dc631",
+   "sha256": "0agj1zyspm3bqj7apfjwhllnmydyj00x2iv7nvy03szpnwvm11fq"
   },
   "stable": {
    "version": [
@@ -6741,14 +6779,14 @@
   "repo": "zk-phi/bfbuilder",
   "unstable": {
    "version": [
-    20200816,
-    519
+    20210228,
+    1740
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "00cbf1010dc3fee5a0b8e7c0e0b6041bb6251bdf",
-   "sha256": "1n1aq3kwsjc3hlgas73bs22pvrn69hfba1wcbqs2j28j2j9j00b2"
+   "commit": "689f320a9a1326cdeff43b8538e0d739f8519c4b",
+   "sha256": "0wrzyv38dmsdfjwsbf89pa5l2gzbbx86jmy8nflfs86im0g9qcp1"
   }
  },
  {
@@ -6795,8 +6833,8 @@
    "deps": [
     "biblio-core"
    ],
-   "commit": "eb9baf1d2bf6a073d24ccb717025baa693e98f3e",
-   "sha256": "0s7wld8ikfyn2rz8zr4g3lj59b2g95mj1jnqw6xvmxys0ahnb0r5"
+   "commit": "242c3f3ac1198b1e969e2a34d6348354a9d83345",
+   "sha256": "0m1ih8p7s3335wah1wzaiipqphvjd88nyig582ja3ra6xkvazf00"
   },
   "stable": {
    "version": [
@@ -6836,16 +6874,16 @@
   "repo": "cpitclaudel/biblio.el",
   "unstable": {
    "version": [
-    20200416,
-    307
+    20210311,
+    2310
    ],
    "deps": [
     "dash",
     "let-alist",
     "seq"
    ],
-   "commit": "eb9baf1d2bf6a073d24ccb717025baa693e98f3e",
-   "sha256": "0s7wld8ikfyn2rz8zr4g3lj59b2g95mj1jnqw6xvmxys0ahnb0r5"
+   "commit": "242c3f3ac1198b1e969e2a34d6348354a9d83345",
+   "sha256": "0m1ih8p7s3335wah1wzaiipqphvjd88nyig582ja3ra6xkvazf00"
   },
   "stable": {
    "version": [
@@ -6876,8 +6914,8 @@
     "a",
     "pdf-tools"
    ],
-   "commit": "e086c59a14701cd041641b51c952fa704ee963df",
-   "sha256": "0w1crw5lsk22jfw2w5qq6ab7zxdzp38akasvyvxakvpp1782xq9p"
+   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
+   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
   }
  },
  {
@@ -6925,8 +6963,8 @@
   "repo": "tmalsburg/helm-bibtex",
   "unstable": {
    "version": [
-    20210108,
-    1155
+    20210223,
+    840
    ],
    "deps": [
     "biblio",
@@ -6936,8 +6974,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "94807a3d3419f90b505eddc3272e244475eeb4f2",
-   "sha256": "08wfvqdzs05bmfjjaqfxffjbl4j7632bnpncs9khrh6lifz03xh2"
+   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
+   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
   },
   "stable": {
    "version": [
@@ -7519,6 +7557,30 @@
   }
  },
  {
+  "ename": "blox",
+  "commit": "cacd156d195ffddeba880a8ebb4f38a07db0b15f",
+  "sha256": "0w0j9xskvyb91i473wr1rj4q61i151ckslm87hszh9sqc9wv38p3",
+  "fetcher": "github",
+  "repo": "kennethloeffler/blox",
+  "unstable": {
+   "version": [
+    20210225,
+    1900
+   ],
+   "commit": "2bf0e618451fb1da11263d8a35ffcd9210590c0a",
+   "sha256": "0lkhdm9jhy8wlmrmd9nqrbrczh5k75q38n6bq3gfhppycmysh9d5"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
+   ],
+   "commit": "f27e79d6da65d8877ebb4e84a40350b61c3f0362",
+   "sha256": "1id5jgaa4yjkgzn00s54lcbdwll85nw0dfsa228mvkvigdn5rya6"
+  }
+ },
+ {
   "ename": "bm",
   "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
   "sha256": "07459r7m12j2nsb7qrb26bx32alylhaaq3z448n42lz02a8dc63g",
@@ -7548,8 +7610,8 @@
   "repo": "josteink/bmx-mode",
   "unstable": {
    "version": [
-    20180929,
-    1132
+    20210319,
+    620
    ],
    "deps": [
     "cl-lib",
@@ -7557,8 +7619,8 @@
     "dash",
     "s"
    ],
-   "commit": "30122e2a6bfb00834e18363e7909182b2701ce82",
-   "sha256": "1kk98g2zlgz9s7r95986p7f9dch23r8dk78k2dgy07ifnqickvfx"
+   "commit": "6f008707efe0bb5646f0c1b0d6f57f0a8800e200",
+   "sha256": "0v6b8w4hy1yw713mkkh74b7c638hnk24ccbizfsylnk00ynrrza1"
   }
  },
  {
@@ -7711,8 +7773,8 @@
   "repo": "boogie-org/boogie-friends",
   "unstable": {
    "version": [
-    20210131,
-    8
+    20210323,
+    1836
    ],
    "deps": [
     "cl-lib",
@@ -7721,8 +7783,8 @@
     "flycheck",
     "yasnippet"
    ],
-   "commit": "8e906c41725bada06ff6e296af65cc463b028ea9",
-   "sha256": "1cf94hw1b50qkzjc88gxi5qhpf3pkaj2w3glr8dldnh0l5z8vfxg"
+   "commit": "bc5572f796bc3ecafadadcbd93de73052304c856",
+   "sha256": "0x1lw3cx9vx0l9xr9683p2385msny8dkp2w5l6kfa8imbyclpkp2"
   }
  },
  {
@@ -7757,16 +7819,17 @@
   "repo": "jyp/boon",
   "unstable": {
    "version": [
-    20210212,
-    2136
+    20210323,
+    1341
    ],
    "deps": [
     "dash",
     "expand-region",
-    "multiple-cursors"
+    "multiple-cursors",
+    "pcre2el"
    ],
-   "commit": "d34d5cfc902702537e82df11d743fd0ac8ffe1d2",
-   "sha256": "0545alciqa51gi6rnw8mhb0xjab8f22dnb2vh238in3bxf2i349h"
+   "commit": "17a7a9219a5a9b7156f58f7f30227fc2b79b6020",
+   "sha256": "1jcvz9vy5sz9bysrlg2b9d3732zab8hmg8hg5ghwjx5kgxl2yfzh"
   },
   "stable": {
    "version": [
@@ -7960,20 +8023,20 @@
   "repo": "jadler/brazilian-holidays",
   "unstable": {
    "version": [
-    20201109,
-    2052
+    20210302,
+    107
    ],
-   "commit": "d9e685b21be4d5264cbee0cf74a846af380af4d4",
-   "sha256": "10jp4yd2v7p8qg9x1s24z3ldbcf1klbxk1754vf25rrrzsxbb6il"
+   "commit": "68811fd5f3e9d9c0572995c3ca46ead2c35eb421",
+   "sha256": "03p3s5cxyi3dzi4ry9l30dwcs9a3rbg8ijsb595hj56al80k9y3q"
   },
   "stable": {
    "version": [
     2,
     1,
-    1
+    2
    ],
-   "commit": "d9e685b21be4d5264cbee0cf74a846af380af4d4",
-   "sha256": "10jp4yd2v7p8qg9x1s24z3ldbcf1klbxk1754vf25rrrzsxbb6il"
+   "commit": "68811fd5f3e9d9c0572995c3ca46ead2c35eb421",
+   "sha256": "03p3s5cxyi3dzi4ry9l30dwcs9a3rbg8ijsb595hj56al80k9y3q"
   }
  },
  {
@@ -7984,14 +8047,14 @@
   "url": "https://bitbucket.org/MikeWoolley/brf-mode",
   "unstable": {
    "version": [
-    20200811,
-    1622
+    20210325,
+    2154
    ],
    "deps": [
     "fringe-helper"
    ],
-   "commit": "4e12ec16d6b896402f8bcdc1cd468d4064a2df6f",
-   "sha256": "1pdrpvff6hvhjv512z1vkivd848ar5li4p63jnbvl90hp7kpy7c3"
+   "commit": "733a44bc491d9d28f9eefc2550616e97b1419cee",
+   "sha256": "0dfd3w3g31fjzqvzn57xw3whr60fy8yj8hnga8b4n9698dihw0bn"
   },
   "stable": {
    "version": [
@@ -8140,11 +8203,11 @@
   "repo": "topikettunen/brutal-emacs",
   "unstable": {
    "version": [
-    20210206,
-    1
+    20210226,
+    1538
    ],
-   "commit": "3959cf1737691d8eb41ec9c652d959f24c7de150",
-   "sha256": "1pq4iyl0z8wwzahjcdncmvwc4nz4zh9nmb54zjx7mrdcqvzh2x7v"
+   "commit": "8173b7d041cccfa3e5bb3f3f85ec8c6109fd264b",
+   "sha256": "1y6b9q3byvwsi6d5sjc642189c5cjbinylqis3d248qws2dp6kvq"
   }
  },
  {
@@ -8741,8 +8804,8 @@
     "alert",
     "dash"
    ],
-   "commit": "d4b1fc8f6d32eb69c066775558442dcc84208ba0",
-   "sha256": "03qrfb2rzx2aqkzn7pm0z97l9sfv13znd1dndjjp5gdga0nr2wjz"
+   "commit": "eed66036d65b0ee26ce02371d14dce16a360acb4",
+   "sha256": "070p6mziljnyqzadbvwwmdv11gdmwi4h6q4rbnlp6dj91yiizksi"
   }
  },
  {
@@ -8997,20 +9060,20 @@
   "repo": "wendelscardua/ca65-mode",
   "unstable": {
    "version": [
-    20210202,
-    39
+    20210218,
+    106
    ],
-   "commit": "100e0f1ff7678733404a03b5a5eefb5daf2081c2",
-   "sha256": "0r66sw7scw0y1vfby7mcrf8kxhyvsaqhn9v2n098ih1x06ah0640"
+   "commit": "590d90cc0e1c1864dd7ce03df99b741ba866d52a",
+   "sha256": "0snmxnhi7g5qx7p1z9zzlpc2zd20iq94hfvf2vavjpxw1fz4sk46"
   },
   "stable": {
    "version": [
     0,
     3,
-    1
+    3
    ],
-   "commit": "431e61b886611d1c5f08266b482c18fd03a61130",
-   "sha256": "0043v8a861714xalk3hf0gbpmx223432qbsgimizar59ysczagma"
+   "commit": "590d90cc0e1c1864dd7ce03df99b741ba866d52a",
+   "sha256": "0snmxnhi7g5qx7p1z9zzlpc2zd20iq94hfvf2vavjpxw1fz4sk46"
   }
  },
  {
@@ -9173,15 +9236,14 @@
   "repo": "walseb/calc-at-point",
   "unstable": {
    "version": [
-    20200406,
-    1618
+    20210219,
+    1252
    ],
    "deps": [
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "11e40c8db9493ada71964b73069c6db529016492",
-   "sha256": "06dmm6b2xflkwgk5mysi3ycbi6yz5n0sci191a15nnzxg7vh1fbf"
+   "commit": "0c1a9e94b519b0edb0abcbacdf6101eea2f2a524",
+   "sha256": "04yg0rf6i95s913hs6zn01rajpbc1gk2hcpzkxyjy3mj1lqhh45s"
   }
  },
  {
@@ -9346,16 +9408,16 @@
   "repo": "chenyanming/calibredb.el",
   "unstable": {
    "version": [
-    20201225,
-    854
+    20210321,
+    944
    ],
    "deps": [
     "dash",
     "s",
     "transient"
    ],
-   "commit": "1f38fc34a8c159846450d18b1ee50cc960349ee7",
-   "sha256": "18m8g9scjllckq1c71z2dl1khgjq02d65vjakxbiyp0c049f40mq"
+   "commit": "a3b04c0c37b1e8ceff2472e21a3579e64e944528",
+   "sha256": "04fzskx066v5091467da3plsxkqx3acbaqmk282k8cdaxsnr4ifd"
   },
   "stable": {
    "version": [
@@ -9380,8 +9442,8 @@
   "repo": "beacoder/call-graph",
   "unstable": {
    "version": [
-    20200402,
-    910
+    20210311,
+    831
    ],
    "deps": [
     "anaconda-mode",
@@ -9390,8 +9452,8 @@
     "ivy",
     "tree-mode"
    ],
-   "commit": "2f47dcb65ed8dc5393df846b4175a4872e254c05",
-   "sha256": "0xn8xk2x3ih22vlfjvnl6853ddpk57q70z9b0vwhjvwmi4idz7xp"
+   "commit": "3e5c510c51dd8b3491a32a1d67ad6268033348ee",
+   "sha256": "1jj8bj9a05dq0igxd2ddf0p9gc9sbffcn0wy3b26qlcspcvbpm1h"
   },
   "stable": {
    "version": [
@@ -9551,15 +9613,15 @@
   "repo": "kwrooijen/cargo.el",
   "unstable": {
    "version": [
-    20210124,
-    1516
+    20210217,
+    904
    ],
    "deps": [
     "markdown-mode",
     "rust-mode"
    ],
-   "commit": "e66beb9b2f1f8dce48aa31f42cb5c384328554c6",
-   "sha256": "0hf7ij307nndxs96a3xqzcgpn8fblpx4px817ib08kfqzi6ph99j"
+   "commit": "9442af81d64f73935d3590948c97594f0bc79d4a",
+   "sha256": "1xci8kx10vxaniyzxgzzs0zd7m7s0grd0bbrxaxhyjjdvic77mq1"
   },
   "stable": {
    "version": [
@@ -9590,6 +9652,21 @@
   }
  },
  {
+  "ename": "cascading-dir-locals",
+  "commit": "4140f4b373119deba3142cbc6037e6634d74a4de",
+  "sha256": "1g5disv23wn70h7sr0z9pbh9ws66rbzw7s8q07xzvhk1yfggr0ls",
+  "fetcher": "github",
+  "repo": "fritzgrabo/cascading-dir-locals",
+  "unstable": {
+   "version": [
+    20210221,
+    1516
+   ],
+   "commit": "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0",
+   "sha256": "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"
+  }
+ },
+ {
   "ename": "caseformat",
   "commit": "ba158fbeebcda6b6122b18c97ab8042b1c0a0bc0",
   "sha256": "1qwyr74jbx4jpfcw8sccg47q1vdg094rr06m111gsz2yaj9m0gfk",
@@ -9631,27 +9708,26 @@
   "repo": "cask/cask",
   "unstable": {
    "version": [
-    20210211,
-    727
+    20210319,
+    2155
    ],
    "deps": [
     "ansi",
     "cl-lib",
-    "dash",
     "epl",
     "f",
     "package-build",
     "s",
     "shut-up"
    ],
-   "commit": "5ac82efeea812a83c636d5273ddf5b99bb72f8a2",
-   "sha256": "19dg2z9mmqzpvjs5xnyj0yh2j212cakvkaf660ha6j03c203nbw4"
+   "commit": "7ae2d54004b26ebb891f7a011c86cff706acbf1a",
+   "sha256": "1ksw4rcbghjjni7v622cdfd84312fs39xhiyzbk7xmh57clrbx4f"
   },
   "stable": {
    "version": [
     0,
     8,
-    5
+    6
    ],
    "deps": [
     "ansi",
@@ -9663,8 +9739,8 @@
     "s",
     "shut-up"
    ],
-   "commit": "6fd81cdbe2c4c0a13798a6f2a1e1a6392a4bbc86",
-   "sha256": "0wgm0f39diswmp1ccx5a0qwfpcy8hczzp8b2s7bpi5qb49al55d0"
+   "commit": "610894d57f467a55fb146ade4d6f8173e4e9579b",
+   "sha256": "1y12m5sjgws4a4bikr8d1ccysy55j7xx3cp1qii4pw62bkf9y2bq"
   }
  },
  {
@@ -9843,8 +9919,8 @@
     20200904,
     1431
    ],
-   "commit": "1cd0f65e4e116aaa1dddce98e95ce79911ff85ac",
-   "sha256": "1w9k8gadkm0l39j8i9n5c3zwsgv1rqi9q3gpx050wn5mv33aryak"
+   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
+   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
   }
  },
  {
@@ -9892,8 +9968,8 @@
     20200904,
     1431
    ],
-   "commit": "1cd0f65e4e116aaa1dddce98e95ce79911ff85ac",
-   "sha256": "1w9k8gadkm0l39j8i9n5c3zwsgv1rqi9q3gpx050wn5mv33aryak"
+   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
+   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
   }
  },
  {
@@ -10027,15 +10103,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20210114,
-    2059
+    20210309,
+    1822
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "50fd573ce9ed9f914940c79c82e411511ca5c8a8",
-   "sha256": "0dxis8w931chcbfwggc0jdirsxys42n2g21wqnqy892k70p7by1j"
+   "commit": "df972095135de90b47413190f61ec4f5af33f9f1",
+   "sha256": "0is51bc9zd9lr0y59md2ci4ddlfylp5jb9hwyll9r6j8gn3lrzza"
   },
   "stable": {
    "version": [
@@ -10162,8 +10238,8 @@
     20171115,
     2108
    ],
-   "commit": "711f389a527d65b39c91f5c10fc24cededb62ccf",
-   "sha256": "1q134lk70qkm3cw0m2cn024bvahfwlyvpap50f150rfpkz1v4v5v"
+   "commit": "9914e9c951e1598bafb6bce8cf5ad5cbe260d290",
+   "sha256": "1ziq8xq94nys5g95jrng1w33rsmhfi0k3bfbsfh8ifvz2lhd1ai5"
   },
   "stable": {
    "version": [
@@ -10209,6 +10285,40 @@
   }
  },
  {
+  "ename": "cfn-mode",
+  "commit": "3ac23c6e0cceb3dd52519a9946dcd500936d8e97",
+  "sha256": "0yk7zlgbr0s3lc2b05g057g55x3rl767xd317hb162lg0d7d900v",
+  "fetcher": "gitlab",
+  "repo": "worr/cfn-mode",
+  "unstable": {
+   "version": [
+    20210129,
+    2037
+   ],
+   "deps": [
+    "f",
+    "s",
+    "yaml-mode"
+   ],
+   "commit": "a4ca40978e680f9edc86c141e696e0ae57c63533",
+   "sha256": "0ggq4q2c1xi26m4rlvjm8f51wlj7h351pp6m20k6l25856858vhi"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    2
+   ],
+   "deps": [
+    "f",
+    "s",
+    "yaml-mode"
+   ],
+   "commit": "f3462930067de8f79c3d2e8da14d1924f609d3ab",
+   "sha256": "15ndphxz1jy4wbk52f6l3hk67b29844ljmmxd8wmahmi6c8nh3si"
+  }
+ },
+ {
   "ename": "cframe",
   "commit": "6e39555b2538cc8a955766c5533871396e8fe712",
   "sha256": "0pngdaflk1pk2xmwbij4b520b3mlacnjab4r3jby0phah44ziv4l",
@@ -10247,30 +10357,30 @@
   "repo": "Alexander-Miller/cfrs",
   "unstable": {
    "version": [
-    20210121,
-    2007
+    20210217,
+    1848
    ],
    "deps": [
     "dash",
     "posframe",
     "s"
    ],
-   "commit": "fdcb5031ca364770475fc432b36599b7d34be502",
-   "sha256": "1ffdxyw3f791s11hw0qlybxqhg9q0994hc8w21n9vg856by9h7yq"
+   "commit": "7c42f2c82c7ae689f3ef291b066688c58ab96298",
+   "sha256": "1x8y4cc1cgln4qv6yzhsiqgnziilg5fh07bvg9ygcjmdhvnhsvcm"
   },
   "stable": {
    "version": [
     1,
     5,
-    1
+    4
    ],
    "deps": [
     "dash",
     "posframe",
     "s"
    ],
-   "commit": "f47e9b7b96172023cbc0e3aaeb62462829d3134d",
-   "sha256": "1sia4dnp2jfjx2npklgg9yhdgs5vzjxvyk6nj0z1fvpqxfdkg60m"
+   "commit": "7c42f2c82c7ae689f3ef291b066688c58ab96298",
+   "sha256": "1x8y4cc1cgln4qv6yzhsiqgnziilg5fh07bvg9ygcjmdhvnhsvcm"
   }
  },
  {
@@ -10356,14 +10466,14 @@
   "repo": "mrkkrp/char-menu",
   "unstable": {
    "version": [
-    20190713,
-    1343
+    20210321,
+    1657
    ],
    "deps": [
     "avy-menu"
    ],
-   "commit": "a1ccf5ed786af6e2441037964668d817b9c7362f",
-   "sha256": "19yl7gmzalhrhr3spi8vs6wpxpv6m3m1d9564naznswxx19sjcjy"
+   "commit": "d77c4d64fc8acc386a0fb9727d346c838e75f011",
+   "sha256": "11hls33r3lq46griyvpfnwkgwfwa4adfjzd03hcx2dn5ji0x0yxb"
   },
   "stable": {
    "version": [
@@ -10863,8 +10973,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20210209,
-    632
+    20210325,
+    825
    ],
    "deps": [
     "clojure-mode",
@@ -10875,8 +10985,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "6b397733f7ebe5dbd4d9c717c0acb13a69f88d7d",
-   "sha256": "1mqws9386fph96ypr516i9dlm15nxyiwfsvqpgnzi366sdpx9bid"
+   "commit": "4278d7cf0b54af5cc84f4a521ee1ed6e81a96adc",
+   "sha256": "1538cfygk1yr8nr5axjqa29jd2n8v6mwk6plgvnrdrp1msspcvm2"
   },
   "stable": {
    "version": [
@@ -11067,14 +11177,14 @@
   "repo": "jorgenschaefer/circe",
   "unstable": {
    "version": [
-    20210111,
-    2141
+    20210323,
+    1704
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "265f36c1e6c8db598742778dc64f9799896f5dc1",
-   "sha256": "0vf76rrgkpybi67n14g6gn1a7by7b90gxa8rz2m50xl3vdphnibk"
+   "commit": "e67e2d1149ebf3e79cd2162e78802af3ed5f82da",
+   "sha256": "0jrpa8kndq2v69nr9jva970q0n3662x2g0chg89nd2d3gbv693mw"
   },
   "stable": {
    "version": [
@@ -11127,14 +11237,14 @@
   "repo": "sulami/circleci-api.el",
   "unstable": {
    "version": [
-    20201221,
-    1036
+    20210227,
+    1607
    ],
    "deps": [
     "request"
    ],
-   "commit": "870d6b550210cb1fd97a8dabad2c284e54416b4b",
-   "sha256": "0ph12r4lfy653qbp00hbry06n0gddfm3c7kmqp2v3c03bdsn5l9c"
+   "commit": "2e39c5896819bb2063f9d7795c4299f419cf5542",
+   "sha256": "0j184sgqxh3f34ni6bfb69mfir94glcyl0wpqmpsn9siq54s82ag"
   }
  },
  {
@@ -11469,26 +11579,26 @@
   "repo": "redguardtoo/cliphist",
   "unstable": {
    "version": [
-    20210129,
-    313
+    20210301,
+    748
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "3682a114e7651fc53155451afef0026f25f01f64",
-   "sha256": "08ih6n6xmnv179z8lfvplgss3xvl9bxppcbj1qiqbvgnf2rqfpb3"
+   "commit": "1ef50459fa6044c4d571cec0009368948bcf5fc5",
+   "sha256": "0xba2gxwy1y8zl9nvga186873icvwfi0yan3qbw2vdkpzry5ifhk"
   },
   "stable": {
    "version": [
     0,
     5,
-    6
+    7
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "232ab0b3f6d502de61ebe76681a6a04d4223b877",
-   "sha256": "0is772r0b7i8rvra9zb94g9aczv8b6q0dmdk67wbli5rv5drfjyq"
+   "commit": "1ef50459fa6044c4d571cec0009368948bcf5fc5",
+   "sha256": "0xba2gxwy1y8zl9nvga186873icvwfi0yan3qbw2vdkpzry5ifhk"
   }
  },
  {
@@ -11574,8 +11684,8 @@
   "repo": "clojure-emacs/clj-refactor.el",
   "unstable": {
    "version": [
-    20210101,
-    1036
+    20210322,
+    2122
    ],
    "deps": [
     "cider",
@@ -11588,14 +11698,14 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "9dcc50da7ce6f3c10276c87f09022e80c03e8bef",
-   "sha256": "10b83yyhkppgzjxaqk8l1c2476x8cvnpn6vf1gj2v5y23c7s2mbs"
+   "commit": "9f3e7357117e96135de051b78deabc0a327c7b06",
+   "sha256": "1k9w8bzl92cz0dl7lly6ba3i2vcvdfngqk0abji00pmpgrkla1rk"
   },
   "stable": {
    "version": [
     2,
     5,
-    0
+    1
    ],
    "deps": [
     "cider",
@@ -11608,8 +11718,8 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "92d372393a031e5fa73ef926447afe72b574cb45",
-   "sha256": "0lnis1qwk1gyxgapl06d7ww1mlb9a8ahl8zwa7y2n3jrgfm25qp4"
+   "commit": "b24ce76acefe792975f00147c94b4dd784e65b80",
+   "sha256": "1pyskl9xcqrk6r2zbp5i9402inngqps7wwb4nbdbrgi4di9b8in7"
   }
  },
  {
@@ -11836,11 +11946,11 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20201126,
-    1558
+    20210322,
+    704
    ],
-   "commit": "53ef8ac076ae7811627fbdd408e519ab7fca9a0b",
-   "sha256": "0rhvrfmg6rgpas8v1hf5gmm9bqyk16nfjgcwl13fxzxsdyh0va7m"
+   "commit": "a14671e03c867c9d759ee9e59cdc5cecbf271245",
+   "sha256": "1jnqwcspm7c3v33wywvm605hsf6vp29ym3smy2jaq8j5vwywi8k3"
   },
   "stable": {
    "version": [
@@ -11860,14 +11970,14 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20200922,
-    656
+    20210322,
+    704
    ],
    "deps": [
     "clojure-mode"
    ],
-   "commit": "53ef8ac076ae7811627fbdd408e519ab7fca9a0b",
-   "sha256": "0rhvrfmg6rgpas8v1hf5gmm9bqyk16nfjgcwl13fxzxsdyh0va7m"
+   "commit": "a14671e03c867c9d759ee9e59cdc5cecbf271245",
+   "sha256": "1jnqwcspm7c3v33wywvm605hsf6vp29ym3smy2jaq8j5vwywi8k3"
   },
   "stable": {
    "version": [
@@ -12169,17 +12279,19 @@
     20210104,
     1831
    ],
-   "commit": "99e9167caa8fa65e72553fa38adb24071b51fd71",
-   "sha256": "0c0cxskd7nrswv3ihmkm9hgldfhw4grrsl2ihkw1idz5hj05y3rg"
+   "commit": "b22c800604e22a0ffdb13aa5fd4cfb7ee26896a4",
+   "sha256": "1gf0l4jwhm0xf4j1gnnb8158g8cycv2m2ijxbpc5fhwdbcfdfc13"
   },
   "stable": {
    "version": [
     3,
-    19,
-    4
+    20,
+    0,
+    -1,
+    5
    ],
-   "commit": "0c86d15459eeef2ddd15644b7bb3d7854f226334",
-   "sha256": "1m56r4glwzvy92hafb8kh16x4qa0dhp0v464p7n1hb18bb53xl8h"
+   "commit": "fab7fe7ef5a5462952297611c1dd668a603e3a36",
+   "sha256": "12v6v1hpw0ykkikj4qid3m4m7sb164rgpx6fxin4hvsm20pjcrd4"
   }
  },
  {
@@ -12697,8 +12809,8 @@
     20210107,
     2111
    ],
-   "commit": "71b72baed2008e38ad1eb6558934e64094351cd7",
-   "sha256": "1z39lha9jb1bxr1xlyy5clqqqvnafipx0rf8pdjw9qhbjh4kk2x1"
+   "commit": "1445a556af9da3681ae0e7e7242352e9fe39fe73",
+   "sha256": "1d6wxzw1wf378jzvlzfsdq5gqq2i196lr8dszj4df472vsiw1hqi"
   },
   "stable": {
    "version": [
@@ -13138,11 +13250,11 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20210122,
-    2314
+    20210327,
+    150
    ],
-   "commit": "5c25e114c3ac1bee3671abd47f46592a3151d549",
-   "sha256": "0y6gqc9w4zw1048hlyx0l46gcngbyrmdvzk30flwfphg1ancmcrj"
+   "commit": "7207cb143829edbcaa2a4b4c0011090747d2207c",
+   "sha256": "017rjccvidcjsc5pbb36hwdssnvpnfm4wjciv75aaq6d5jhj0889"
   },
   "stable": {
    "version": [
@@ -13280,8 +13392,8 @@
     "axiom-environment",
     "company"
    ],
-   "commit": "d9c1c85ea731a18f271bd003a5b1736e26fa172a",
-   "sha256": "1clcbgs5dk3jas6sclsfj6ibrb0n2508xapyp85lb0nm01i07jb9"
+   "commit": "ac8228a702290732ba12c5d13b38576a57afb0d6",
+   "sha256": "1nrlgrckvh2fiwis9bmr95h2bpxfkz1nknxdz61380f2caqwwhw7"
   }
  },
  {
@@ -13383,8 +13495,8 @@
   "repo": "cpitclaudel/company-coq",
   "unstable": {
    "version": [
-    20200729,
-    401
+    20210324,
+    1603
    ],
    "deps": [
     "cl-lib",
@@ -13393,8 +13505,8 @@
     "dash",
     "yasnippet"
    ],
-   "commit": "4da7b41e25943c0e30171ed25c761c5311999f0d",
-   "sha256": "1pmj4bdpnaydqai9lcxkjyik6yhbqjb2xb1wdfxpv1agzazmfyx1"
+   "commit": "7423ee253951a439b2491e1cd2ea8bb876d25cb7",
+   "sha256": "15rd9ga4ydhl6ljzdg26a3kcaqlhaygp67507wrrf8j3801ivks4"
   },
   "stable": {
    "version": [
@@ -13451,8 +13563,8 @@
   "repo": "tsukimizake/company-dcd",
   "unstable": {
    "version": [
-    20201009,
-    1328
+    20210307,
+    649
    ],
    "deps": [
     "cl-lib",
@@ -13462,8 +13574,8 @@
     "popwin",
     "yasnippet"
    ],
-   "commit": "26245d79b5ab38314dd3a90877e425b18854bcab",
-   "sha256": "1aqcbi99333qdyd27xw3x4n4r2q8yx0pb2wyzlff4qw1z90bpr9f"
+   "commit": "858500115d4f0285f963698ede9492f409a90e52",
+   "sha256": "1b7xcqx297dc5z1rc96gd7y9cx8a7yhgmqh5cpnwfb45hm5s71hs"
   }
  },
  {
@@ -13772,6 +13884,24 @@
   }
  },
  {
+  "ename": "company-ipa",
+  "commit": "4ba3b53bd37c252eed24a5e8c61b7d9c91f9e2ee",
+  "sha256": "0xxx0kzspcxk9lblhcw19bjzsv64jwdda8jvv6hf9liql3c3npp9",
+  "fetcher": "gitlab",
+  "repo": "mguzmann89/company-ipa",
+  "unstable": {
+   "version": [
+    20210307,
+    1838
+   ],
+   "deps": [
+    "company"
+   ],
+   "commit": "8634021cac885f53f3274ef6dcce7eab19321046",
+   "sha256": "0629my156zxjb3h636iirdd2rr58z3vsdinhq0w0y6f3544i05hx"
+  }
+ },
+ {
   "ename": "company-irony",
   "commit": "d2b6a8d57b192325dcd30fddc9ff8dd1516ad680",
   "sha256": "15adamk1b9y1i6k06i5ahf1wn70cgwlhgk0x6fk8pl5izg05z1km",
@@ -13880,19 +14010,18 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20171102,
-    1454
+    20210305,
+    1705
    ],
    "deps": [
     "company",
     "dash",
-    "dash-functional",
     "f",
     "lean-mode",
     "s"
    ],
-   "commit": "15bee87dc4080b87c543964375b7ce162317ab6f",
-   "sha256": "127b7ny5mr1y14yg54gy7an3lk3928w4y9a22295i4v4zgj704j4"
+   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
+   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
   }
  },
  {
@@ -13914,42 +14043,6 @@
   }
  },
  {
-  "ename": "company-lsp",
-  "commit": "5125f53307c1af3d9ccf2bae3c25e7d23dfe1932",
-  "sha256": "09nbi6vxw8l26gfgsc1k3bx4m8i1px1b0jxaywszky5bv4fdy03l",
-  "fetcher": "github",
-  "repo": "tigersoldier/company-lsp",
-  "unstable": {
-   "version": [
-    20190612,
-    1553
-   ],
-   "deps": [
-    "company",
-    "dash",
-    "lsp-mode",
-    "s"
-   ],
-   "commit": "f921ffa0cdc542c21dc3dd85f2c93df4288e83bd",
-   "sha256": "0dd2plznnnc2l1gqhsxnvrs8n1scp6zbcd4457wrq9z2f7pb5ig2"
-  },
-  "stable": {
-   "version": [
-    2,
-    1,
-    0
-   ],
-   "deps": [
-    "company",
-    "dash",
-    "lsp-mode",
-    "s"
-   ],
-   "commit": "4eb6949f19892be7bf682381cde005791a48583a",
-   "sha256": "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"
-  }
- },
- {
   "ename": "company-lua",
   "commit": "c8191ab2aaa72041be46091e363d216cf1b73fde",
   "sha256": "13sm7ya2ndqxwdjarhxbmg7fvr3413c7p3n6yf1i4rabbliqsf2c",
@@ -14102,8 +14195,8 @@
     "company",
     "native-complete"
    ],
-   "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
-   "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
+   "commit": "cf142e84eaa4dd91bc75d96a5d26dab5e38eba4c",
+   "sha256": "01li6c271v5j35chg3a8nl9az3bwq4hk1j8lfjq5a27p91iszpc0"
   }
  },
  {
@@ -14173,8 +14266,8 @@
     "company",
     "nixos-options"
    ],
-   "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
-   "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+   "commit": "053a2d5110ce05b7f99bcc2ac4804b70cbe87916",
+   "sha256": "05vxac2llww4ba5w0dmf0hza60l5i847hfabs0q5i8kzmw4f8s8z"
   },
   "stable": {
    "version": [
@@ -14207,8 +14300,8 @@
     "cl-lib",
     "company"
    ],
-   "commit": "33ed12bb2ec627a8a05360885f071e4a88fff399",
-   "sha256": "1ffayysbqh7vq65vhbmqg9yp03fqfnwj3drwyinr5ia81acp37nz"
+   "commit": "9770c95bf2df93d9cb0f200723b03b3d9a480640",
+   "sha256": "188z1i209z61nwfcgffgp90rdcsnl75izxpqv4x1vbaay5fvg33f"
   },
   "stable": {
    "version": [
@@ -14240,8 +14333,8 @@
     "company",
     "phpactor"
    ],
-   "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
-   "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
+   "commit": "80788a817b0257363c1eee11a57cc0f873f0eef1",
+   "sha256": "1w4zxp6j77xd9qcz9skpj8jbl8ink1fgdd5f1dhx0486g882mi2l"
   },
   "stable": {
    "version": [
@@ -14373,27 +14466,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200716,
-    1414
+    20210227,
+    600
    ],
    "deps": [
     "company",
     "prescient"
    ],
-   "commit": "42adc802d3ba6c747bed7ea1f6e3ffbbdfc7192d",
-   "sha256": "0v12707jwd2ynk8gp3shgarl6yp3ynal7d4jzds6l2lknr6wi50w"
+   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
+   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
   },
   "stable": {
    "version": [
     5,
-    0
+    1
    ],
    "deps": [
     "company",
     "prescient"
    ],
-   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
-   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+   "commit": "2c0e9fc061ab723ec532428f312974ca7d8def12",
+   "sha256": "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"
   }
  },
  {
@@ -14777,8 +14870,8 @@
   "repo": "TommyX12/company-tabnine",
   "unstable": {
    "version": [
-    20210208,
-    1808
+    20210310,
+    2247
    ],
    "deps": [
     "cl-lib",
@@ -14787,8 +14880,8 @@
     "s",
     "unicode-escape"
    ],
-   "commit": "235c99dc9fe629a42e6432d54d46310e2b5b426d",
-   "sha256": "1w8y9sv0k6r9q2d7a06bh6ackxckijyb9qd4w9s3lnbryrx1n6rk"
+   "commit": "98e9e8b38b6ca289fbe265b0a7b62c7fe38ed0e2",
+   "sha256": "162ca70xwmdd8lsdawzpykd6kaqfljflaxy2nwjn8f89f80ih3fg"
   }
  },
  {
@@ -15353,19 +15446,19 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20210212,
-    2204
+    20210323,
+    1627
    ],
-   "commit": "3bb31bd5f23a2c5fbc3b9d314e60f85b6f9e11c2",
-   "sha256": "1g6zgnbff6yqzz5wh4nqkbwzkrm96dmynfg0ak50lsy7brfyi1yh"
+   "commit": "19540d37783dc34bdb98d7cea24e8bb57090dab4",
+   "sha256": "0vsgxfxb9bhgncxyhrvxpaan4pwca2vwvpr4qjcgqh1bb147rrkr"
   },
   "stable": {
    "version": [
     0,
-    5
+    6
    ],
-   "commit": "947fa7067cb9a171251972f74b608d58df88faf5",
-   "sha256": "0840hm6nk6yzz8yp8xqzdrycf7wwklxaxp10q0d30wpxwcrsw5c2"
+   "commit": "3184edd6ccf9cfb300511feb297b9012ce902bbe",
+   "sha256": "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"
   }
  },
  {
@@ -15376,27 +15469,78 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20210210,
-    1821
+    20210301,
+    2310
    ],
    "deps": [
     "consult",
     "flycheck"
    ],
-   "commit": "3bb31bd5f23a2c5fbc3b9d314e60f85b6f9e11c2",
-   "sha256": "1g6zgnbff6yqzz5wh4nqkbwzkrm96dmynfg0ak50lsy7brfyi1yh"
+   "commit": "19540d37783dc34bdb98d7cea24e8bb57090dab4",
+   "sha256": "0vsgxfxb9bhgncxyhrvxpaan4pwca2vwvpr4qjcgqh1bb147rrkr"
   },
   "stable": {
    "version": [
     0,
-    5
+    6
    ],
    "deps": [
     "consult",
     "flycheck"
    ],
-   "commit": "947fa7067cb9a171251972f74b608d58df88faf5",
-   "sha256": "0840hm6nk6yzz8yp8xqzdrycf7wwklxaxp10q0d30wpxwcrsw5c2"
+   "commit": "3184edd6ccf9cfb300511feb297b9012ce902bbe",
+   "sha256": "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"
+  }
+ },
+ {
+  "ename": "consult-notmuch",
+  "commit": "e61a3f8cba4e5e303379f80c9fdd773fdde66406",
+  "sha256": "09kslrizpk5jh9czjn4xrcs1k9661dgly9z08dwsvb76pnjzd7wg",
+  "fetcher": "git",
+  "url": "https://codeberg.org/jao/consult-notmuch.git",
+  "unstable": {
+   "version": [
+    20210312,
+    2201
+   ],
+   "deps": [
+    "consult",
+    "notmuch"
+   ],
+   "commit": "67cf219fcce211237347a783ce6982402341d5fd",
+   "sha256": "03amdvzj09dsdjc7y6xvxn429by9vzyv5wghyairn9n0rf8c3r1m"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "deps": [
+    "consult",
+    "notmuch"
+   ],
+   "commit": "0bcdad24c8cc4ac530fcafd90ab728ed5dfbf0ed",
+   "sha256": "1s9glbwdwk29pp5nj4ab6giakhjqx4rcy4zbf7ml7h83qi59sd68"
+  }
+ },
+ {
+  "ename": "consult-spotify",
+  "commit": "fb515b013942cf5ef4590e7cbc17f11f10c7692f",
+  "sha256": "0y393qwvjv7blc8d4qih9ksm2521az28v29hgczjlady0fjp9bn9",
+  "fetcher": "git",
+  "url": "https://codeberg.org/jao/espotify",
+  "unstable": {
+   "version": [
+    20210220,
+    2229
+   ],
+   "deps": [
+    "consult",
+    "espotify",
+    "marginalia"
+   ],
+   "commit": "b70b4737ece5a081411069eb08103ddbbf8e584a",
+   "sha256": "1kplm8rhyp5fssfi8pswafnck96m6zjkyvqjcwil459liy8lpw46"
   }
  },
  {
@@ -15712,26 +15856,28 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210129,
-    1143
+    20210322,
+    24
    ],
    "deps": [
+    "ivy",
     "swiper"
    ],
-   "commit": "e0374dc0bbcd8ab0ec24baf308d331251d4f9c49",
-   "sha256": "1zvcp35vnnz5iybihrw0r21pvkghn73ni2m9jkgf352n8zza7z9g"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
   },
   "stable": {
    "version": [
     0,
     13,
-    0
+    4
    ],
    "deps": [
+    "ivy",
     "swiper"
    ],
-   "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
-   "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -15811,15 +15957,15 @@
   "repo": "hlissner/emacs-counsel-css",
   "unstable": {
    "version": [
-    20200331,
-    632
+    20210310,
+    452
    ],
    "deps": [
     "cl-lib",
     "counsel"
    ],
-   "commit": "6427dfcbda0d2bbd81db03f9d6b56b06c260ac02",
-   "sha256": "1g8gz5mz2qclia64qmgw02h5ivywgn46d6djlr7vcdfyp774cf64"
+   "commit": "f7647b4195b9b4e97f1ee1acede6054ae38df630",
+   "sha256": "06xvyf9cnyq9zlp7rkq0a0h85yk967icifhg1pfhsz17za97yg94"
   },
   "stable": {
    "version": [
@@ -15912,14 +16058,14 @@
   "repo": "redguardtoo/counsel-etags",
   "unstable": {
    "version": [
-    20210131,
-    824
+    20210226,
+    1218
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "305eaa4a1ad6487e22eaa7ad36c33fa0d4a9456d",
-   "sha256": "1649yhmiimi2fm8av22b7h1nlb7lm1j1g9wgbsb6fk9wpvndazfx"
+   "commit": "e41a39cd07c594b5fa1c6757e9464be56a3dadea",
+   "sha256": "1dcph2ak1r5yrw0hfygrb6d80y3jkx1fsj1rrp7sg3p37rnfhq94"
   },
   "stable": {
    "version": [
@@ -15979,15 +16125,15 @@
   "repo": "FelipeLema/emacs-counsel-gtags",
   "unstable": {
    "version": [
-    20201211,
-    1755
+    20210222,
+    1803
    ],
    "deps": [
     "counsel",
     "seq"
    ],
-   "commit": "e4a662c38cd217bae9c0bd80f2c9b53cc2cffcb7",
-   "sha256": "0gb8gbphckyk834mxl704fawvykigmk0cl8klmyfap0nb55h846b"
+   "commit": "1d52eaeffeb60266434d4f7416a108ca058fde91",
+   "sha256": "13jx6hscdcfqwzk1pcmzrv7frglcnd1ywl22ddxzzymi339r4lyj"
   },
   "stable": {
    "version": [
@@ -16288,16 +16434,16 @@
   "repo": "AdamNiederer/cov",
   "unstable": {
    "version": [
-    20201214,
-    550
+    20210320,
+    1641
    ],
    "deps": [
     "elquery",
     "f",
     "s"
    ],
-   "commit": "2f25d645448d64f2516f8f1181429c35cd214639",
-   "sha256": "0prhapqan96hha92sjfkhx3dv7zgxbrc7fcm8kk63z38psnx92zx"
+   "commit": "766b09cbe92cb5b689a36a9c136013a51da95712",
+   "sha256": "1p5b39574dpw0lljhm4l200if65fjpgnnbqsimf31r0y4rm1pr0d"
   }
  },
  {
@@ -16693,11 +16839,19 @@
   "repo": "Boruch-Baum/emacs-crossword",
   "unstable": {
    "version": [
-    20210212,
-    1602
+    20210216,
+    1703
    ],
-   "commit": "8da505a40d077f06afefb8c6de507a62f5b3ad9a",
-   "sha256": "0j7qzdxssp35n642caa5vdy4bs9p1sbhara21ncbsln09aisg78d"
+   "commit": "cb2e2a435ea9f4fa8c7517b4909af8b62bca8a3e",
+   "sha256": "18dk9623ff2kxfhbdnh4l68n5dfxqgrm6ilmv85dfj685kahd0d3"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "commit": "fa80bfef81168509ddbd840d95c6671efe91c253",
+   "sha256": "12kgzzsnh9bh6aiip53ib28yapajg326xd7g45apjkl8irazr4db"
   }
  },
  {
@@ -16708,14 +16862,14 @@
   "repo": "bbatsov/crux",
   "unstable": {
    "version": [
-    20201129,
-    1921
+    20210309,
+    838
    ],
    "deps": [
     "seq"
    ],
-   "commit": "ba4a1f38eee0ae7597f67a1424bbf5c0c09473bf",
-   "sha256": "0swykynbxsvxwxqjf41aqydkfrwy6f5ngl4pp8py5r5vh78a91ih"
+   "commit": "20c07848049716a0e1aa2560e23b5f4149f2a74f",
+   "sha256": "0v65zy9f5wsq9vpibfccyyv6ww4fwgyx3vc38vz83j0c5b2c9r6n"
   },
   "stable": {
    "version": [
@@ -16819,16 +16973,16 @@
   "repo": "emacs-csharp/csharp-mode",
   "unstable": {
    "version": [
-    20210128,
-    841
+    20210321,
+    914
    ],
    "deps": [
     "tree-sitter",
     "tree-sitter-indent",
     "tree-sitter-langs"
    ],
-   "commit": "09b4d57d020a97e1696e89baa6d9855ff5c86014",
-   "sha256": "1k8qz7fivwr8jli5xid156m0cb00mszfxskblylh2rs2fswpg3la"
+   "commit": "f977800161ccdb58d5650a8ca60017c83863d80a",
+   "sha256": "1j173ir1c95jhj5671yah6jmz2qfk3sfspl0naz48s0bs2n5bxcw"
   },
   "stable": {
    "version": [
@@ -16981,16 +17135,15 @@
   "repo": "neeasade/ct.el",
   "unstable": {
    "version": [
-    20210205,
-    1249
+    20210219,
+    1344
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "hsluv"
    ],
-   "commit": "356f6c765773b90e538f7801cb7281345cdbe4aa",
-   "sha256": "1m0mifqjsfr3487n1hypcxb5f0895y4xwkri7djwi3brv3nx52rv"
+   "commit": "c302ee94feee0c5efc511e8f9fd8cb2f6dfe3490",
+   "sha256": "0230h5qvg5jbpyry4xxmh41c0wpinmm04k5hc1qsc2mvqhv3n9n5"
   }
  },
  {
@@ -17066,19 +17219,19 @@
   "repo": "raxod502/ctrlf",
   "unstable": {
    "version": [
-    20210118,
-    132
+    20210308,
+    25
    ],
-   "commit": "928f98da5fdb8ca50c0957015f964dea8cde8b5f",
-   "sha256": "0sp09rk63dfvc1h40rmzwhac0dzp19w6zqzqigdsn6zrpk8g9vjg"
+   "commit": "f9ef7a5e1b53f5ea9d486c93d47806e7d7f432ef",
+   "sha256": "0b5kyfr7qyv5id61d16r07k37yn690sx42rjnj2jk6q2rwib5zj7"
   },
   "stable": {
    "version": [
     1,
-    2
+    3
    ],
-   "commit": "d398a9bfbd959489fd6515b62dbf818a61d0e4d6",
-   "sha256": "1f0k3432brc96am6az6xr1nks1vacqzixhdgwfn2xklb8if9a5xi"
+   "commit": "d7fad32584c3e569046691bf7f27b21e294c0a2a",
+   "sha256": "06wq6scqy2ax0h6aahy2r7hn3bbmkzl4w99bkrc3cqd4ij78sc8g"
   }
  },
  {
@@ -17279,6 +17432,45 @@
   }
  },
  {
+  "ename": "current-word-highlight",
+  "commit": "02d60c15b4624735ba7e62f7c27a27487f1c7caf",
+  "sha256": "0jrcgvc60hzcnd66b0na4rd0lnr92pgfrkwwfvih2qjzxf5lpl72",
+  "fetcher": "github",
+  "repo": "kijimaD/current-word-highlight",
+  "unstable": {
+   "version": [
+    20210323,
+    1401
+   ],
+   "commit": "d860f4e170ffa4cef840da93647f458cc409d554",
+   "sha256": "1mpimgsqkanvgmdvh9zm0vsyf6j4mhsf65p7kx389as82qb7hdy2"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    3
+   ],
+   "commit": "2d7c5547e4b0da361b1533d2ff30e3f62f4b682c",
+   "sha256": "1d1mz0j51i09g2fn25iik7wk0cc9i6ps8qviik73fy7ivvxjn0vp"
+  }
+ },
+ {
+  "ename": "curry-on-theme",
+  "commit": "a87da8c1522b826252193faa67c933a0eb3a3266",
+  "sha256": "08nfpzpg4q46p62l3kfxnfcmnmzjbi35vfgvlwl1aan29sw0ciid",
+  "fetcher": "github",
+  "repo": "mvarela/Curry-On-theme",
+  "unstable": {
+   "version": [
+    20210322,
+    1717
+   ],
+   "commit": "b53a61d443cc75906d9f97e19f19be71f1e19bc4",
+   "sha256": "1idh5by5fzndaywf86lckz7mxr5kxggbzlgpjjvmahlnma110a1j"
+  }
+ },
+ {
   "ename": "cursor-test",
   "commit": "6439f7561cfab4f6f3beb132d2a65e94b3deba9e",
   "sha256": "1c1d5xq4alamlwyqxjx557aykz5dw87acp0lyglsrzzkdynbwlb1",
@@ -17417,11 +17609,11 @@
   "repo": "mrkkrp/cyphejor",
   "unstable": {
    "version": [
-    20210111,
-    841
+    20210319,
+    1423
    ],
-   "commit": "037c0f2d0cd0e23acd2aacb621d7694080f5eef6",
-   "sha256": "16jca2abc66vcf92js5m5489np7a4ymb27i78rkqwsrwcniz178j"
+   "commit": "cf580995f891e339a9485ba91d6cb81a2abd61e4",
+   "sha256": "1k0zwgr80figw0xkni2ih87bi566q3j4009dhicq4ldv2lyaybl9"
   },
   "stable": {
    "version": [
@@ -17459,17 +17651,17 @@
     20190111,
     2150
    ],
-   "commit": "c2fea5bf4a6e011a039f8764862bb6338a2ae546",
-   "sha256": "114c7ilcim908664wp8llnnnf496l39bm7y0fprydh2zwn7cqdng"
+   "commit": "8609e0fa7d361f1392823ff6e1a618720cd62df3",
+   "sha256": "101nvcjf6x38fbcg8fhg5xryid3plncmj36i7137gnhsn1r9fsdv"
   },
   "stable": {
    "version": [
     0,
     29,
-    21
+    22
    ],
-   "commit": "976f5483c6df8570f34076ef25af7e7512dd9347",
-   "sha256": "1951kwfnngy2k7m3adqi17rb7f17yrr5n9zpvvmw7vxpfmca66ka"
+   "commit": "3e470fcc3a4e9a33b66d5db6ab761c773888a1ea",
+   "sha256": "1fbi0ladg9c37hw3js72i72nza8hfjzm5c8w95c6bmzsl22lszwi"
   }
  },
  {
@@ -17498,8 +17690,8 @@
     20210119,
     1853
    ],
-   "commit": "80fad305784b21a818683010bc27d48302ec7110",
-   "sha256": "0xz29ac8mpqkzgzdvhdv98aa4mrd6br4sr5fxwpb3kpidmqpa9h8"
+   "commit": "199743df55c6bfce3cdb08405bd8519768c8dfa9",
+   "sha256": "18jzrql5g2sd322w25phws7d1v8906lyc0ipn6cknlrv4pjmdazv"
   },
   "stable": {
    "version": [
@@ -17611,11 +17803,11 @@
   "repo": "rails-to-cosmos/danneskjold-theme",
   "unstable": {
    "version": [
-    20201120,
-    1520
+    20210325,
+    935
    ],
-   "commit": "412f5c80f3da1699ae69b878405fd71e65b6358a",
-   "sha256": "1icwdkaybs1cpqgvdzvgqickgcpm0ykpr4345jzhc193gfb1iccc"
+   "commit": "ca13f96e5dfa319ceb7b094ee452ddf55b67905c",
+   "sha256": "0cyl8g5gbdypj44yk91sq4frkqahpwkgvnk1i3zda79m453dzg06"
   }
  },
  {
@@ -17626,8 +17818,8 @@
   "repo": "jyp/dante",
   "unstable": {
    "version": [
-    20210101,
-    907
+    20210301,
+    1738
    ],
    "deps": [
     "company",
@@ -17638,8 +17830,8 @@
     "lcr",
     "s"
    ],
-   "commit": "7b32bf21d5b9f7232c4b5c3760abf306e9ed9a0c",
-   "sha256": "1if4p6ikj7dry2c0xyli4m02f6xabriddm25xp4nksm8mj9cjgby"
+   "commit": "8741419333fb85ed2c1d71f5902688f5201b0a40",
+   "sha256": "1i4rz1lp78wzn8x9xgjar8h66csdkf5836ny8lwd68m7z5gh0w21"
   },
   "stable": {
    "version": [
@@ -17667,21 +17859,21 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20210207,
-    1923
+    20210317,
+    151
    ],
    "deps": [
     "bui",
     "dash",
-    "dash-functional",
     "f",
+    "ht",
     "lsp-mode",
     "lsp-treemacs",
     "posframe",
     "s"
    ],
-   "commit": "5450af5c1cc7c46b1ecd47e9ba1ec2de9f62f9d9",
-   "sha256": "1mk5prfx0nsi1528ar3yw0sgkgyk60697w9i14ljq6lhbnz6cx8n"
+   "commit": "ae395aa991d55eaddb2d2b80cd469089b9d19bb7",
+   "sha256": "1bxpnaj466n6sw00zc4fbw7i7nmkr0b6g8qvai6vql503lmm5f89"
   },
   "stable": {
    "version": [
@@ -17868,11 +18060,11 @@
   "repo": "bradyt/dart-mode",
   "unstable": {
    "version": [
-    20190827,
-    2102
+    20210301,
+    0
    ],
-   "commit": "04fcd649f19d49390079fbf2920a10bf37f6a634",
-   "sha256": "1rpdrq8w8vishjpakxvj20dgnnp2qksi1nrd0qllllb5sjyih56d"
+   "commit": "43975c92080e307c4bc14a4773a61195d2062fd9",
+   "sha256": "0zpjrq3cra6q6pd52skm11wj0j75v8cnamv504hlq4rgd87vkz2p"
   },
   "stable": {
    "version": [
@@ -17934,20 +18126,20 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20210210,
-    1427
+    20210308,
+    2109
    ],
-   "commit": "be4e939b8982fa9a6ac5286027ea8ae1ff9b9b19",
-   "sha256": "1b0wpvwivzsym6hiaxybhfy8mvq8cbxi97dcm1ci2sc33fv6vq74"
+   "commit": "a17b6b5409825891423b3867cd7bea84852d6ddd",
+   "sha256": "0swjqkz5bq1f9vphjc6a1mwr7b3rlr8j9jg56f9gwj9gcv9mgjab"
   },
   "stable": {
    "version": [
     2,
-    17,
-    0
+    18,
+    1
    ],
-   "commit": "721436b04da4e2795387cb48a98ac6de37ece0fd",
-   "sha256": "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"
+   "commit": "1a53e13d7964c84cf756ead353eb6dc094b65fd5",
+   "sha256": "1cvfd36vv0wqb16bnqqxh99hy2yks0j2i4l8qjkg3bxjgk7ldmva"
   }
  },
  {
@@ -18007,26 +18199,26 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20210206,
-    1519
+    20210210,
+    1449
    ],
    "deps": [
     "dash"
    ],
-   "commit": "be4e939b8982fa9a6ac5286027ea8ae1ff9b9b19",
-   "sha256": "1b0wpvwivzsym6hiaxybhfy8mvq8cbxi97dcm1ci2sc33fv6vq74"
+   "commit": "a17b6b5409825891423b3867cd7bea84852d6ddd",
+   "sha256": "0swjqkz5bq1f9vphjc6a1mwr7b3rlr8j9jg56f9gwj9gcv9mgjab"
   },
   "stable": {
    "version": [
     2,
-    17,
-    0
+    18,
+    1
    ],
    "deps": [
     "dash"
    ],
-   "commit": "721436b04da4e2795387cb48a98ac6de37ece0fd",
-   "sha256": "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"
+   "commit": "1a53e13d7964c84cf756ead353eb6dc094b65fd5",
+   "sha256": "1cvfd36vv0wqb16bnqqxh99hy2yks0j2i4l8qjkg3bxjgk7ldmva"
   }
  },
  {
@@ -18037,14 +18229,14 @@
   "repo": "emacs-dashboard/emacs-dashboard",
   "unstable": {
    "version": [
-    20210125,
-    909
+    20210325,
+    757
    ],
    "deps": [
     "page-break-lines"
    ],
-   "commit": "18b38b49b60c005909f91f047c0507f47cc75fd3",
-   "sha256": "0ajw2wr02j0avjr5zdjllqhm7f1y27p6xjc6grgv90mmka926486"
+   "commit": "00f1dc84d3fbaf439d23645aa531eee59e28f688",
+   "sha256": "0afn7p79na8351gimmjrj2z4y3slyvsrinm8gx7qphflz2a13m2z"
   },
   "stable": {
    "version": [
@@ -18224,26 +18416,25 @@
   "repo": "doublep/datetime",
   "unstable": {
    "version": [
-    20200621,
-    2103
+    20210307,
+    2203
    ],
    "deps": [
     "extmap"
    ],
-   "commit": "c51eeb6df180f6c7d1676d1c0af78255bb0fdf95",
-   "sha256": "11w32jnkc596ybbhqih5d4rbvqk50cc6yyc9759acnzlqfd188xs"
+   "commit": "276f9d4304180301edabc160d5d17f46532489a1",
+   "sha256": "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"
   },
   "stable": {
    "version": [
     0,
-    6,
-    6
+    7
    ],
    "deps": [
     "extmap"
    ],
-   "commit": "55297bf409f35dbc4bcd26b458b83e349ed11452",
-   "sha256": "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"
+   "commit": "276f9d4304180301edabc160d5d17f46532489a1",
+   "sha256": "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"
   }
  },
  {
@@ -18384,8 +18575,8 @@
     "ccc",
     "cdb"
    ],
-   "commit": "1cd0f65e4e116aaa1dddce98e95ce79911ff85ac",
-   "sha256": "1w9k8gadkm0l39j8i9n5c3zwsgv1rqi9q3gpx050wn5mv33aryak"
+   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
+   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
   }
  },
  {
@@ -18427,16 +18618,16 @@
   "repo": "Wilfred/deadgrep",
   "unstable": {
    "version": [
-    20210113,
-    829
+    20210219,
+    748
    ],
    "deps": [
     "dash",
     "s",
     "spinner"
    ],
-   "commit": "3ea915f0c4f3b37a482cbf6faa070845d7ab1876",
-   "sha256": "1w922p46i3bf7mq5jj0i27b3ndiip2x46b1qy924y9874sc5ifxk"
+   "commit": "ca16c37ffa5caa5f698bc049012489a2e3071bcc",
+   "sha256": "055yxchqbqp4pbw9w9phibnp0a2qw1jsb1a5xbfc558phi2vbxdd"
   },
   "stable": {
    "version": [
@@ -18612,8 +18803,8 @@
     20201227,
     2319
    ],
-   "commit": "dd143e7e6cf5384d203a76e50fe677a77f1cd615",
-   "sha256": "1zpf35x1w4ldijqx3a2qlykhy9xgw3mqzxhfv0r3qn37k7lg0m58"
+   "commit": "e5aad0510139cca42b37614d3599951ac0a28ccc",
+   "sha256": "0kp3ngmdwip7c4c9mvw1l04p13gjjfaigwdiaycbzd5jzlgdh6rq"
   }
  },
  {
@@ -18976,6 +19167,29 @@
   }
  },
  {
+  "ename": "desktop-mail-user-agent",
+  "commit": "d0ac6ab8716a772a38e368bfe91229aa9bcbee29",
+  "sha256": "1w8yr1viwkcp3g499zgk20j0q38891s9smgwvn8bly25bas9z1x7",
+  "fetcher": "github",
+  "repo": "lassik/emacs-desktop-mail-user-agent",
+  "unstable": {
+   "version": [
+    20210309,
+    1355
+   ],
+   "commit": "64d0a75491414b119e044ea8fdf771753491a8cc",
+   "sha256": "0gkx1sdplnnihfvqj2cwnfdcd08s13zxv3in3a68fi8w2l6cn7ki"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "commit": "6b665208bd9471cd8e4b4a81237b22c93a734528",
+   "sha256": "0i2j4i6xv3nrkc0v9ch2f6vw9hfg54ghwb1yqmdg2j7wqh3mm0hq"
+  }
+ },
+ {
   "ename": "desktop-registry",
   "commit": "0fda2b54a0ff0b6fc3bd6d20cfcbbf63cae5380f",
   "sha256": "1sfj0w6hlrx37js63fn1v5xc9ngmahv07g42z68717md6w3c8g0v",
@@ -19094,11 +19308,11 @@
   "repo": "raxod502/diary-manager",
   "unstable": {
    "version": [
-    20200404,
-    1549
+    20210226,
+    416
    ],
-   "commit": "4f9d3104f0d89fe3e39c878d2035e6b6d9510659",
-   "sha256": "094x2n9nlqwxdppkw7wsyxwp34gf0b1dfyxp97nn712mfy98g1fc"
+   "commit": "12f194bd411e52b72bdf555e48e9a831e5ff8357",
+   "sha256": "0mn90abd2ak5f9b1s3q5h3l2lfhi91mwx4j50hs8q91s0r43hixz"
   },
   "stable": {
    "version": [
@@ -19227,8 +19441,8 @@
     20201006,
     1436
    ],
-   "commit": "940f967bca64a8012892040c2e2f262d8709c41a",
-   "sha256": "1pm4a3jx2aq1cz9s9nfs1zm0s4crqarai3hr6dyihjqyf0szwrvq"
+   "commit": "3fcf861f1f8b91d97000bda32345bc92df8e2d37",
+   "sha256": "0x0awnasdjkmmrm11dqs4spkx2j3prkiqrmf5w3lxp2v28i4m2qk"
   }
  },
  {
@@ -19239,14 +19453,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20210213,
-    41
+    20210318,
+    1413
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4c46b3b9851c85d15bff1e3ec92e5fc6043322bc",
-   "sha256": "1na2daa3d6hclj9hr8f9l029716c3pzky9ybwq08iv68msf3lvhn"
+   "commit": "1af31fe1c177646ef7419c95b5d9c25655187ceb",
+   "sha256": "10gh6fl0j41ga612kk2yh82zh67hbd86rg640r1fk6gc0lcmwqih"
   },
   "stable": {
    "version": [
@@ -19269,16 +19483,16 @@
   "repo": "dieggsy/difflib.el",
   "unstable": {
    "version": [
-    20171227,
-    1518
+    20210224,
+    2242
    ],
    "deps": [
     "cl-generic",
     "ht",
     "s"
    ],
-   "commit": "b08850251812d71e62fd6956081299590acdf37b",
-   "sha256": "03k5iy610f1m2nmkdk69p49fcfqfyxmy3h6fqvqsr2v1hix8i54a"
+   "commit": "646fc4388274fe765bbf4661e17a24e4d081250c",
+   "sha256": "1qagl3ffg01zjqrgpq32h4ya869066n8ll9yq8lk40argjm523fa"
   },
   "stable": {
    "version": [
@@ -19296,6 +19510,35 @@
   }
  },
  {
+  "ename": "diffpdf",
+  "commit": "6a084a863fa9c680997efc02fdf69c95bfc3fed3",
+  "sha256": "0bd7aj4fxb7rg88mlwxryli54p5mxrzir7zj23d7xcvf82wb4aqa",
+  "fetcher": "github",
+  "repo": "ShuguangSun/diffpdf.el",
+  "unstable": {
+   "version": [
+    20210307,
+    932
+   ],
+   "deps": [
+    "transient"
+   ],
+   "commit": "fdb37bb696aaec6cb2bcece3760866760e68edc4",
+   "sha256": "1ig7hk9vhlym91gzk4s6h2a6aj425nln29m6f2hpq9jh3qicgh9i"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "transient"
+   ],
+   "commit": "fdb37bb696aaec6cb2bcece3760866760e68edc4",
+   "sha256": "1ig7hk9vhlym91gzk4s6h2a6aj425nln29m6f2hpq9jh3qicgh9i"
+  }
+ },
+ {
   "ename": "diffscuss-mode",
   "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
   "sha256": "1mycjis38gqwha7jgj05fzv0041ghk6khy5d2dlcyy2nh3bb68rb",
@@ -19460,6 +19703,24 @@
   }
  },
  {
+  "ename": "dime",
+  "commit": "227c61618e491c4da2b2b48daf7f1bebd2271558",
+  "sha256": "1pd464l4rj1nychdhmi23m98cfxkhvdpxhzni33j275jqin335mp",
+  "fetcher": "github",
+  "repo": "dylan-lang/dylan-emacs-support",
+  "unstable": {
+   "version": [
+    20210319,
+    1414
+   ],
+   "deps": [
+    "dylan"
+   ],
+   "commit": "c51cdb2d947494d8161a429134f9e9d23070a173",
+   "sha256": "0p4kp2gp27xgs4fw0cfd4qz06yp6kvn0k1pq902arzcxkrqz6lj3"
+  }
+ },
+ {
   "ename": "diminish",
   "commit": "1bfb4acb381cada46458cf60eae9b88d007294d5",
   "sha256": "1h6a31jllypk47akjflz89xk6h47na96pim17d6g4rpqcafc2k43",
@@ -19741,20 +20002,20 @@
   "repo": "knu/dired-fdclone.el",
   "unstable": {
    "version": [
-    20180403,
-    608
+    20210226,
+    532
    ],
-   "commit": "903d7a736d240ef7352989a4e5d0ff9129c2ee3c",
-   "sha256": "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw"
+   "commit": "3ba369f5fc48a8fdf06d1c6ee1167b5a6eb7c1b3",
+   "sha256": "1qh19f0ry7ri7vibcsb9y36ni7k8spjlnl01knlx7cs65qza8mpf"
   },
   "stable": {
    "version": [
     1,
     5,
-    4
+    6
    ],
-   "commit": "903d7a736d240ef7352989a4e5d0ff9129c2ee3c",
-   "sha256": "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw"
+   "commit": "1473c20fe91ebbe8c44bf2c6551a5f76fbc3b65b",
+   "sha256": "0dca8arnh07mdvrwiaxfgfirrsjcwl4vdap7czd4rdkbmgvkv994"
   }
  },
  {
@@ -19840,11 +20101,11 @@
   "repo": "mattiasb/dired-hide-dotfiles",
   "unstable": {
    "version": [
-    20170314,
-    2039
+    20210222,
+    1919
    ],
-   "commit": "b715f643ec805b3b8aca334595e6589320f04a49",
-   "sha256": "1n6l25lrhp1x8nhc54kqal96wq96kkfyvz5yzvlw1qd3yk4s567i"
+   "commit": "6a379f23f64045f5950d229254ce6f32dbbf5364",
+   "sha256": "0cwsjndvnv9a62ism7ckj27jdqx362947lyizka78qvmv369avv3"
   },
   "stable": {
    "version": [
@@ -20122,11 +20383,11 @@
   "repo": "vifon/dired-rifle.el",
   "unstable": {
    "version": [
-    20200308,
-    2358
+    20210316,
+    1452
    ],
-   "commit": "99e4110c80d65ca43e2b0ec078e3202995e392d7",
-   "sha256": "034qak8kdp7laz1ylqy9np5ajhwf741mdl0bj5kb7rrrsijxada6"
+   "commit": "cc1af692bbac651f5e5111d9ab1c0805989d65e5",
+   "sha256": "08csqjpwlqln2yk5by9zwh6jsl5kn33jy240d7a1py1d892b7xy8"
   }
  },
  {
@@ -20191,26 +20452,26 @@
   "repo": "jojojames/dired-sidebar",
   "unstable": {
    "version": [
-    20210109,
-    1854
+    20210301,
+    2158
    ],
    "deps": [
     "dired-subtree"
    ],
-   "commit": "18986f015c993508af0b1b4e43e11dbd7af98057",
-   "sha256": "1zla8q26sif8795n5vncwgz2j7c45bh3gnjkwqgpdg4carrw5s60"
+   "commit": "92e7f77ec65c2089d75edb63ca312f55e3033be0",
+   "sha256": "0ad9r63jp257z95jb5537nbw64q6shdg4m5cmlx8asb7fp2wgsf8"
   },
   "stable": {
    "version": [
     0,
-    1,
+    2,
     0
    ],
    "deps": [
     "dired-subtree"
    ],
-   "commit": "347f56480228c2aac97e14f4f5a762c4582d1323",
-   "sha256": "1ahmvbwwdnjddn8qk6gq5gjfkvi1mvm13a968n7zpcpnphk6ygzb"
+   "commit": "cfc70763131ae668ff7b4884651f894fd102ffb6",
+   "sha256": "090dqaqyjmkzrz4szjpk1iip0bdvb0frp4l79393f8ki8w7c16c1"
   }
  },
  {
@@ -20311,11 +20572,11 @@
   "repo": "Boruch-Baum/emacs-diredc",
   "unstable": {
    "version": [
-    20210113,
-    1
+    20210316,
+    1841
    ],
-   "commit": "491308566832a38c0c49a894f7b12b8ff62e7aa6",
-   "sha256": "1pa9k4y74rihh8d4ij6pdnpybs0ib2vcxvjp7ldlndxqpfzxaxxd"
+   "commit": "dd945de3e0c66a164f003a96d473376b58fc6dc7",
+   "sha256": "1d4rdrc827nnb9p56la1sd9nzwjbxbnr8fgmcgardlz3qw97j3q1"
   },
   "stable": {
    "version": [
@@ -20337,8 +20598,8 @@
     20191227,
     2028
    ],
-   "commit": "cd052dfef602fe79d8dfbcf9f06e6da74412218b",
-   "sha256": "1zhnr4wkb0gifhf1gfssipanifaiixvz6wqlmscxyp7hdm8xjvad"
+   "commit": "4ca32658aebaf2335f0368a0fd08f52eb1aee960",
+   "sha256": "1dwzlxz0q9wqn1az1b0bfl8ywib4nd5grdfqaa06fqd63zlp71pg"
   },
   "stable": {
    "version": [
@@ -20713,11 +20974,11 @@
   "repo": "mnp/dispwatch",
   "unstable": {
    "version": [
-    20191130,
-    52
+    20210305,
+    342
    ],
-   "commit": "6abf276b8d66df4996c7e98e7a40cbad8747beb7",
-   "sha256": "17163bncxf11295bxzbmji09qy0klxzb0w8vxaazij6sxlk90mnm"
+   "commit": "03abbac89a9f625aaa1a808dd49ae4906f466421",
+   "sha256": "0wf3cyf5clkmh620q83x361nsnh60jhyfp90iqmabk3qs9x8amgs"
   }
  },
  {
@@ -20792,14 +21053,14 @@
   "repo": "unhammer/dix",
   "unstable": {
    "version": [
-    20200108,
-    1057
+    20210312,
+    1850
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "391832823f3f9835d957bc0224e122b376e5d825",
-   "sha256": "1h7wxi1nk6051arzx8671sf3m178ci9gs3a78h4hp8z0jrz364kz"
+   "commit": "17f33f9a8bb50156261e10c045d54eb866ea84fa",
+   "sha256": "1aajxj4xvi8jpskfhh52n6388w1skj1y9aq2xdvwj7cizy57lqn2"
   },
   "stable": {
    "version": [
@@ -20829,8 +21090,8 @@
     "dix",
     "evil"
    ],
-   "commit": "391832823f3f9835d957bc0224e122b376e5d825",
-   "sha256": "1h7wxi1nk6051arzx8671sf3m178ci9gs3a78h4hp8z0jrz364kz"
+   "commit": "17f33f9a8bb50156261e10c045d54eb866ea84fa",
+   "sha256": "1aajxj4xvi8jpskfhh52n6388w1skj1y9aq2xdvwj7cizy57lqn2"
   },
   "stable": {
    "version": [
@@ -21155,8 +21416,8 @@
   "repo": "Silex/docker.el",
   "unstable": {
    "version": [
-    20210208,
-    1500
+    20210313,
+    1943
    ],
    "deps": [
     "dash",
@@ -21166,8 +21427,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "0ca910badf86ff2e2dbfdf3f18819dd72a3198fc",
-   "sha256": "0n21nv79z356wmz2sryq1r0f68ds2kwkgivi8z82lqrv9ndni2xv"
+   "commit": "ed0cdf08597ceb3a1f85e065d1b2b7aefd7e35ee",
+   "sha256": "1p0281gaj09jpavlkv24dzvf0gdh9r7ki1z53x0q49dm1fcday6m"
   },
   "stable": {
    "version": [
@@ -21300,22 +21561,19 @@
   "repo": "spotify/dockerfile-mode",
   "unstable": {
    "version": [
-    20210106,
-    235
+    20210326,
+    1812
    ],
-   "commit": "58b7380189de21496235382900838aa0db2dcf92",
-   "sha256": "1n3kis5g7m25sl68iw9jw7jkfz7jab82v37xk492d77rr9cbvjwx"
+   "commit": "3b1374563f62d71aec11ebd33d37109459e54571",
+   "sha256": "1gvsibvg543jby99b7r13x0q4d9n21nl5sh0y2rb7alk0chx3pmx"
   },
   "stable": {
    "version": [
     1,
-    3
-   ],
-   "deps": [
-    "s"
+    4
    ],
-   "commit": "d31f7685ebc5832d957e25070a930aa42984327d",
-   "sha256": "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"
+   "commit": "ed1d04c89cd8b53963f2dcae7cb3a46967e0abbf",
+   "sha256": "1ypkihd9si769r6k0lfrv8jq8mjv4gyhiwyi820sayfppvma5rj0"
   }
  },
  {
@@ -21357,6 +21615,36 @@
   }
  },
  {
+  "ename": "docstr",
+  "commit": "d2638156924dc2a327dca5f20ca63479878690c2",
+  "sha256": "1kga9h5vy4nzwhcvshxk1lpg1n7lfbygxbdpln7vfizpw065f3m7",
+  "fetcher": "github",
+  "repo": "jcs-elpa/docstr",
+  "unstable": {
+   "version": [
+    20210317,
+    1612
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "5ce0d758dbabb6c250f761fcb6754930cd793c2a",
+   "sha256": "0x9sxcp40p83isjc6smhg00n42056q5dsf0w71gglb1gc5rqhhl6"
+  },
+  "stable": {
+   "version": [
+    5,
+    7,
+    0
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "63b0460a4785b4b4aee5cc072b52fb2d3a7eef6e",
+   "sha256": "0qw8ycb2jmv015agm0yc1p3aymxccv79wfczypf0ncrkv448sbvi"
+  }
+ },
+ {
   "ename": "doct",
   "commit": "f075d73b3269eec73dda992ce2bee67ccdfe4911",
   "sha256": "0z4h2pmlmzaz2726pmd2y7g63k5ncw4fwd5jh5rv744f5pxxfs2m",
@@ -21483,16 +21771,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20210124,
-    1610
+    20210322,
+    1517
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "116c733fd580f729e275d3b6b3954667d5dfdd5a",
-   "sha256": "0jx6ha2dg32mk5gy4p86ij61xssmd3q2za0xla9nfb23nrfm7g93"
+   "commit": "00bc89b8ded4c452ccf65edce5dce6f9a1e41611",
+   "sha256": "1k5qhxjh7h6hwdjxgjb1vxj9kclpli9wrrv350z5f40l4fwzawlw"
   },
   "stable": {
    "version": [
@@ -21536,14 +21824,14 @@
   "repo": "hlissner/emacs-doom-themes",
   "unstable": {
    "version": [
-    20210212,
-    1921
+    20210322,
+    1750
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "80cc62813bcb4e1f28b256a09d1e3d00a4b50b55",
-   "sha256": "1q2mv4w6bw8caaq25hzj5z45firll2h7cd0gxzsy53xm199sdi4g"
+   "commit": "4199e74db170200995ee8dfbb55ffae004d6e219",
+   "sha256": "0vfhnywww560rf0b7h2gc9w4x4738xwq12c8qi9y267110zg62mz"
   },
   "stable": {
    "version": [
@@ -21624,8 +21912,8 @@
     20190325,
     1917
    ],
-   "commit": "b61df3561ea9bed1848cf69b6bb53f7fdf6916dc",
-   "sha256": "063jw3b94l43j31piygjcjzqp2gf828xr3da1hd3qimp25c9fsv6"
+   "commit": "93d9b1ec833a871bde2fd0f78abc269872808048",
+   "sha256": "07sh6sskzx8cxf2z4z1xjnrbr440974024953m0w7rqm0gn4cb28"
   },
   "stable": {
    "version": [
@@ -21645,14 +21933,14 @@
   "repo": "zk-phi/download-region",
   "unstable": {
    "version": [
-    20200816,
-    1009
+    20210306,
+    415
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "0dca3b224649bba80a7e9ecbf1d1b6f6be962455",
-   "sha256": "1yka864dzz8nxskcllqyxk04313hlyfc9a4p0apmk56q19fcpwgn"
+   "commit": "e0a721858a22896fa1d7f1d5689dd0878dbc58fa",
+   "sha256": "1hvnwqx61g4idqww1axs4xa3jxrd68lvipgvca22ybr2fpdny1xx"
   }
  },
  {
@@ -21787,11 +22075,11 @@
   "repo": "dracula/emacs",
   "unstable": {
    "version": [
-    20201120,
-    758
+    20210220,
+    1358
    ],
-   "commit": "18e8aa5ed78d10b372414b7def917337224bf2f5",
-   "sha256": "0fw3qar6dwcq5ahf9ca2glshka1ddb4im21hfy069sbdaxdajj4d"
+   "commit": "b5e50ed1e30ee054fb6a0827e78382b038e83c46",
+   "sha256": "0bdlcvx95r0hwxpvdfac6xjcs59jn4mi29yny7bjz3x463czidcy"
   },
   "stable": {
    "version": [
@@ -22014,8 +22302,8 @@
   "repo": "dtk01/dtk",
   "unstable": {
    "version": [
-    20210209,
-    1841
+    20210227,
+    2121
    ],
    "deps": [
     "cl-lib",
@@ -22023,8 +22311,8 @@
     "s",
     "seq"
    ],
-   "commit": "270320f5a31dbef543f95b15608526629d613366",
-   "sha256": "1w6ylljrdrrp0087gkz83rf0fr1qnpqsm3lsg6k681wnvxz916gv"
+   "commit": "2a2a635e2b1d8243a41df0450e45fc8c75c6674b",
+   "sha256": "0kd8lkvaxqaz4ns8mwyczbbjyi68r3gicngnrichwlbl27am1zvm"
   }
  },
  {
@@ -22050,19 +22338,19 @@
   "repo": "jscheid/dtrt-indent",
   "unstable": {
    "version": [
-    20210205,
-    1727
+    20210307,
+    2140
    ],
-   "commit": "4a30d8edac7fbc5936fc07050e3ebfb94f97c1e7",
-   "sha256": "1k0kwg4yqa29pcn5zzkp16qm8i0zwlxsazng1hnb5nvvqirsxv7c"
+   "commit": "37529fc7a98564164c87103e5107a6dca32b0e44",
+   "sha256": "1h2j25b6qayydl841zwbh73fw1177xgskrqm27cqmfx0bcpx7qq3"
   },
   "stable": {
    "version": [
     1,
-    3
+    4
    ],
-   "commit": "854b9a1ce93d9926018a0eb18e6e552769c5407d",
-   "sha256": "0hw8md2qp8r89ndgz82yf4iydm5yc9cj2s3g75h6hm940mp4fgxm"
+   "commit": "95c08dc4841b37902fad63a5a976d20e7a5ce3b0",
+   "sha256": "11r68sh3yrrfib7pixnazispwsffrygmgplffrv8qq57xrqzyxih"
   }
  },
  {
@@ -22132,16 +22420,16 @@
   "repo": "jacktasia/dumb-jump",
   "unstable": {
    "version": [
-    20201205,
-    1625
+    20210303,
+    1714
    ],
    "deps": [
     "dash",
     "popup",
     "s"
    ],
-   "commit": "ff9fc9360d39f5e07c1f480f8b0656b49606781b",
-   "sha256": "13anm4wrm7v5x9wsv5h0bxsvr36h228afqp0zxyv008xghqmzwbv"
+   "commit": "8bc195000e17ce6c72755a8fb55ca0fcd36add76",
+   "sha256": "0dc31yy4r41nwwv57dzbd6zgwddizqh4q4qagpqx645l509s7k7i"
   },
   "stable": {
    "version": [
@@ -22185,17 +22473,17 @@
     20210213,
     757
    ],
-   "commit": "e1564823e86b797d41b2bb833c1f877f165df8d8",
-   "sha256": "05yl7p8f7l3gfyvxyjks2jcl9p6ghpxsia29903009ry5jiprjcr"
+   "commit": "a88ce5bbc996b550071c8df890276eb1b10e778c",
+   "sha256": "1957i1d2lv9jfd8ck22vj0wd59sk5gd04xi5qbvzw1y9dl9xshp7"
   },
   "stable": {
    "version": [
     2,
     8,
-    2
+    4
    ],
-   "commit": "6c471da57bea666267a8a63034aed57962f378b0",
-   "sha256": "0b7mqcns4n614fq3p9kisffks3j2wzawxp4xccka7wgyn1q2pgr8"
+   "commit": "b6a3f66fb15378fc7170e94778f4d2c0b142ad92",
+   "sha256": "1p3r197cfb96675n2s7mbggndqspcxxmk9lkncirixm3k7ww36l1"
   }
  },
  {
@@ -22236,20 +22524,20 @@
   "repo": "integral-dw/dw-passphrase-generator",
   "unstable": {
    "version": [
-    20201006,
-    1927
+    20210307,
+    1834
    ],
-   "commit": "9c989595536775b380d46f28452c136070b8e4ab",
-   "sha256": "0xhf8gik49gc8lb4i7wcff2c3554xkqav0wsy3qipm02npslxdax"
+   "commit": "8c5b5c9d435de97ce9b95b9280feb1c0a57a60f8",
+   "sha256": "1793bwfn3c2f9dxcs8mmps3riy25y5baz1fvbpdr9pq19sl58bj5"
   },
   "stable": {
    "version": [
     1,
     0,
-    0
+    1
    ],
-   "commit": "9c989595536775b380d46f28452c136070b8e4ab",
-   "sha256": "0xhf8gik49gc8lb4i7wcff2c3554xkqav0wsy3qipm02npslxdax"
+   "commit": "66d92f592b35fd168f23d7c58d698a1ed2dcaa0a",
+   "sha256": "1pfz1wwrdpdkd29309dryy7ficl1h1rfmgv7fbpy9p33vs9mdi9p"
   }
  },
  {
@@ -22271,18 +22559,18 @@
   }
  },
  {
-  "ename": "dylan-mode",
-  "commit": "94481ba3ebba6a99f11efab5a33e8bc6ea2d857a",
-  "sha256": "0kimvz8vmcvgxi0wvf7dqv6plj31xlksmvgip8h3bhyy7slxj3yy",
+  "ename": "dylan",
+  "commit": "227c61618e491c4da2b2b48daf7f1bebd2271558",
+  "sha256": "0i0139jv2l9yw82hpmavw0jkzi3jxbz663xls604nhdggi7kqgzg",
   "fetcher": "github",
-  "repo": "dylan-lang/dylan-mode",
+  "repo": "dylan-lang/dylan-emacs-support",
   "unstable": {
    "version": [
-    20201212,
-    2106
+    20210317,
+    1405
    ],
-   "commit": "6277d31e6ec896ceaa9533ed156cece26359ba17",
-   "sha256": "12wkm04smmd3hgx6k3waa0wma0p8r23nh1ksm484znd7gij2bcrl"
+   "commit": "c51cdb2d947494d8161a429134f9e9d23070a173",
+   "sha256": "0p4kp2gp27xgs4fw0cfd4qz06yp6kvn0k1pq902arzcxkrqz6lj3"
   }
  },
  {
@@ -22678,28 +22966,28 @@
   "repo": "masasam/emacs-easy-hugo",
   "unstable": {
    "version": [
-    20201205,
-    1908
+    20210303,
+    2352
    ],
    "deps": [
     "popup",
     "request"
    ],
-   "commit": "eacc00637380fbd9a2cc95821e91969ab75e76eb",
-   "sha256": "12vlkbi15c54wpy0ak5mq89x354f86qk1y9g413bacafg5hxnn95"
+   "commit": "b3c9ca2a4e1d90013a7d990056d56cdf2bdf8e40",
+   "sha256": "1g48c2142yqs8ir2872q0zdl46qprx2mhhhd9jvcscakm4xv3cdf"
   },
   "stable": {
    "version": [
     3,
     9,
-    50
+    55
    ],
    "deps": [
     "popup",
     "request"
    ],
-   "commit": "eacc00637380fbd9a2cc95821e91969ab75e76eb",
-   "sha256": "12vlkbi15c54wpy0ak5mq89x354f86qk1y9g413bacafg5hxnn95"
+   "commit": "b3c9ca2a4e1d90013a7d990056d56cdf2bdf8e40",
+   "sha256": "1g48c2142yqs8ir2872q0zdl46qprx2mhhhd9jvcscakm4xv3cdf"
   }
  },
  {
@@ -22823,16 +23111,15 @@
   "repo": "rexim/ebf",
   "unstable": {
    "version": [
-    20160211,
-    1758
+    20210225,
+    1211
    ],
    "deps": [
     "cl-lib",
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "4cd9c26354d8be6571354b2954d21fba882e78a2",
-   "sha256": "1pgn6fcg5cnbpk93hc2vw95sna07x0s1v2i6lq9bmij2msvar611"
+   "commit": "6cbeb4d62416f4cfd5be8906667342af8ecc44a6",
+   "sha256": "1d9vbn8gmiqcpxqmsv8ir3cc7clm7x1c6hz8drws3cakxk0wffn9"
   },
   "stable": {
    "version": [
@@ -22857,25 +23144,26 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20210110,
-    1450
+    20210316,
+    840
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "8a6e7ec3773ad0d87716bc0766eb1b4ff548f856",
-   "sha256": "012v001dy49cspak16cr90fwz0y6r2l01r3j25h0gdd5gm91dggv"
+   "commit": "1a23ce943991d5dce4a3c3d71d7b5d6b6f9897fe",
+   "sha256": "1wwgfgcr83mvjp9w1yizg49j85j92kd2fyiyyl6x9v8bs4xsn4pi"
   },
   "stable": {
    "version": [
     2,
-    29
+    30,
+    1
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "dd18665862413fc1e1aea0becb318a9e6d281d10",
-   "sha256": "1d0xnhdcsz2ysq145k2l0f2r4vb0pkai1v6wl6sfba7xi5fc323i"
+   "commit": "6a3351c4bee70517facf0eac457a17a1efc21144",
+   "sha256": "0ppp6a8qyllh1kjrh8fa8dvhv98wnq0w742mzh8gahkjbrsjdwcj"
   }
  },
  {
@@ -23345,14 +23633,15 @@
   "repo": "editorconfig/editorconfig-emacs",
   "unstable": {
    "version": [
-    20210209,
-    947
+    20210309,
+    1345
    ],
    "deps": [
-    "cl-lib"
+    "cl-lib",
+    "nadvice"
    ],
-   "commit": "f830b86316338fcc5b26a07eaeab6c34104b9ddc",
-   "sha256": "092cc8dgf1z1cxgjmkysca76z93xw1a1bjb5k4y0jiw6jsr4d1h0"
+   "commit": "9da2dab6474e1f735a2e9fbc7f26a553497c58c2",
+   "sha256": "0vpspvng3g0l2lqig3fvmxhxl4dqqs9zcyfgymjak03nfcilm394"
   },
   "stable": {
    "version": [
@@ -23494,8 +23783,8 @@
     20201122,
     25
    ],
-   "commit": "507a694fb778754f3967bf95d9e1c4e446725835",
-   "sha256": "1hvir0bxlh9jbd3781pdx72hkrrnai6qg56mskl30vdbjv0byhhh"
+   "commit": "537e2e165984b53b45cf760ea9e4b86794b8a09d",
+   "sha256": "07cnp40rbl2p4mn40cib6mvby1svxqd8kb3dxb3a8idb736nzqrp"
   }
  },
  {
@@ -23682,8 +23971,8 @@
     20200107,
     2333
    ],
-   "commit": "6a83f224a3cbe2d97c1641d49e443c503e54ddb6",
-   "sha256": "0r0ncy89h0gg8ah842rpmmkpn10xfgihh5bj3vswxi4g6b5mqqsz"
+   "commit": "df4e47f7c8adfe90d9bf408459772a6cb4e71b70",
+   "sha256": "1n0dcrhwpl24whxzwhxf7qjlqlllzl5aahdq8h2zdgb6xz912k64"
   },
   "stable": {
    "version": [
@@ -23703,8 +23992,8 @@
   "repo": "joaotavora/eglot",
   "unstable": {
    "version": [
-    20210203,
-    1041
+    20210326,
+    1008
    ],
    "deps": [
     "eldoc",
@@ -23713,8 +24002,8 @@
     "project",
     "xref"
    ],
-   "commit": "398b81eeec44b35b39480a38f1b1357bc8550a1c",
-   "sha256": "1w0ndyzdnjldpwgyb8dgfiyhxk2ks6vmxkk2v6y4kn7ch3qwbg8z"
+   "commit": "2fbcab293e11e1502a0128ca5f59de0ea7888a75",
+   "sha256": "0fsar0ab0wj74jkbgkbigcg4ia6hg574yvqr2wq2s8lw7m22j8c4"
   },
   "stable": {
    "version": [
@@ -23864,8 +24153,8 @@
   "repo": "millejoh/emacs-ipython-notebook",
   "unstable": {
    "version": [
-    20210211,
-    1542
+    20210322,
+    1150
    ],
    "deps": [
     "anaphora",
@@ -23876,8 +24165,8 @@
     "websocket",
     "with-editor"
    ],
-   "commit": "069e54cc1270ff4957699e5e9481b56b7b4bef8b",
-   "sha256": "0scl5lxl5dzcxbpw2xmqxcqpajfvvzl9zgmhl96i1q52f08mplhf"
+   "commit": "142ff5078b3074ce3ac8bf90abd8c38d9733253e",
+   "sha256": "05b4gqxfjap6bhfcxjj6v6kv2bhni5a1mzh9ylril5f81xj323gy"
   },
   "stable": {
    "version": [
@@ -23960,8 +24249,8 @@
     "direx",
     "spinner"
    ],
-   "commit": "6eecf51e4c5e6f7d24ab90e8def34f6cea4eda52",
-   "sha256": "0yk5bblrzf0bvnkzdkb0bzk8mfp4b6j84cjg60k3i4dyyp17h847"
+   "commit": "c24519e5b7fc1051257b0ec67fc6dec84d6b996e",
+   "sha256": "1qsps36cxvd8vpssr7xjydgmgq8zslck0j77920xm27wvfyrj2a2"
   },
   "stable": {
    "version": [
@@ -24157,11 +24446,11 @@
   "repo": "raxod502/el-patch",
   "unstable": {
    "version": [
-    20200716,
-    1428
+    20210226,
+    411
    ],
-   "commit": "a47067b4d63f3674d284a772bfe773021540c043",
-   "sha256": "17gpysk41qf40xa4vab79d3dmi7l3xay5gb27wn7fmj9nrzbm4sm"
+   "commit": "5e823dc9a29e3be22597d93912f06119c38030d6",
+   "sha256": "0i7gvjy97cbfll93h5b9zyr1p075lklx7rdahkdy46c4kw6vy5py"
   },
   "stable": {
    "version": [
@@ -24374,11 +24663,11 @@
   "repo": "Mstrodl/elcord",
   "unstable": {
    "version": [
-    20200611,
-    2314
+    20210323,
+    2234
    ],
-   "commit": "01b26d1af2f33a7c7c5a1c24d8bfb6d40115a7b0",
-   "sha256": "1lj87zfcvmzm34rlq5s4y4x2nwckwg5qxlhlgl4qry3bf16bmkcf"
+   "commit": "25531186c10b74a10ee24990f9e967296cc70342",
+   "sha256": "14lk3whvj45ilb7mv60dfpxhbw3jsddglz0mq5vhdgy6n8wkcpa9"
   }
  },
  {
@@ -24423,19 +24712,20 @@
   "repo": "doublep/eldev",
   "unstable": {
    "version": [
-    20210124,
-    1814
+    20210325,
+    2223
    ],
-   "commit": "dc8e1ebf0af386eee46097ee20c20b193d1d6a2d",
-   "sha256": "1rvnpysd0cwpg1n6fvg94a5s5psav6vn76v10pv8a2y1nqirjjc9"
+   "commit": "a7211e47c1dd543ca5d84b7b85ca205fc6315abe",
+   "sha256": "0806wzrmcl58rp1gs2d3z0dz68h3jigwi0azf8rypz1fp5dkks7j"
   },
   "stable": {
    "version": [
     0,
-    8
+    8,
+    1
    ],
-   "commit": "0cd211d21628ab35b21cd9ab0f16b0fc8438cac8",
-   "sha256": "1dfqajcghh9mww5c0hp9qya2nss87xd5x096bb17vgg5dpx5px3s"
+   "commit": "c4f9b7ff4d12c59cc80b4a67f856601ba7cff2cd",
+   "sha256": "19s45hdhcg5l608awfxvmhd61xzp7dd5pvviv89xzzksx74l1188"
   }
  },
  {
@@ -24446,11 +24736,11 @@
   "repo": "casouri/eldoc-box",
   "unstable": {
    "version": [
-    20200316,
-    1956
+    20210313,
+    1824
    ],
-   "commit": "c1a1b77ec0c7fff9ecf7122d10dcd16eebcd3829",
-   "sha256": "1gg3gxw5ks4fds7lgl9mqxyb2qjrdsdwyyc183nfz6aq0m4w91yb"
+   "commit": "d4574ee392b9a8c537bec895be37468b600c25ac",
+   "sha256": "08fscq9amwqap741i25j7swb0gwzipkczqrvrgg3430jb3i0d663"
   },
   "stable": {
    "version": [
@@ -24572,14 +24862,14 @@
   "repo": "davidshepherd7/electric-operator",
   "unstable": {
    "version": [
-    20201123,
-    836
+    20210320,
+    1511
    ],
    "deps": [
     "dash"
    ],
-   "commit": "9856ff8e1351086d0d738c1db300af63d6c085ba",
-   "sha256": "0wfgz1ry1gqwk941fs4i3z8gq6s53v1fr2lwhsi06hvgs8nxaqgm"
+   "commit": "ecc59d313dd9ddfc4d6a2a3c7a9374aaf214e653",
+   "sha256": "0qy8s0vqaxkksplasang3n9bqnq7q43lfyd0jl39nynlrg8avhpc"
   },
   "stable": {
    "version": [
@@ -24603,11 +24893,11 @@
   "repo": "xwl/electric-spacing",
   "unstable": {
    "version": [
-    20200607,
-    1405
+    20210313,
+    1118
    ],
-   "commit": "f039011edb922cdc56c1d2bd0e49bb4575c35ab3",
-   "sha256": "1qfjk928y8bnx2ksciv0f0ackahj78x3qsr84m9qcvsvlg9cql5p"
+   "commit": "fb1437a3386f55440abdbe7c107c86e5b028bdc5",
+   "sha256": "00pmp1596p24i7pasmm080aly8ifinp9hbvia2l4jf8mbfg2ndlw"
   }
  },
  {
@@ -24648,16 +24938,16 @@
   "repo": "freesteph/elescope",
   "unstable": {
    "version": [
-    20210128,
-    1509
+    20210312,
+    1147
    ],
    "deps": [
     "ivy",
     "request",
     "seq"
    ],
-   "commit": "cd3ce082e47c0c13cfce34e6f6957c2275f9416b",
-   "sha256": "1pk8avmvvcxmv2gsl5n8g66jjwi92py1r9f5h9c0wjq0nrazapy1"
+   "commit": "36566c8c1f5f993f67eadc85d18539ff375c0f98",
+   "sha256": "0qpgkv0h71pkbm006ni56hbimmn9wfvciaicxylhpbcqkd7n1gc1"
   },
   "stable": {
    "version": [
@@ -24705,20 +24995,20 @@
   "repo": "skeeto/elfeed",
   "unstable": {
    "version": [
-    20210212,
-    1601
+    20210309,
+    2323
    ],
-   "commit": "0b44362cb93ce49c36a94289d5fa5da8279c5f52",
-   "sha256": "1j96sq266511z9mfqqv3n50f8i1nqaxkwcy7jg7vg6sqhsf40sdd"
+   "commit": "e29c8b91450bd42d90041231f769c4e5fe5070da",
+   "sha256": "12m4q8zfmn6g0kz2v3vmch4kbmivxshj9xk58j2f3f3c8fvk6567"
   },
   "stable": {
    "version": [
     3,
     4,
-    0
+    1
    ],
-   "commit": "362bbe5b38353d033c5299f621fea39e2c75a5e0",
-   "sha256": "1y95410hrcp23zc84sn79bxla9xr2fqh7wwagza05iaprv7zbbw0"
+   "commit": "0ccd59aaace34546017a1a0d7c393749747d5bc6",
+   "sha256": "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"
   }
  },
  {
@@ -24824,26 +25114,26 @@
   "repo": "sp1ff/elfeed-score",
   "unstable": {
    "version": [
-    20210130,
-    159
+    20210302,
+    2051
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "43609d6fdf388caac91e848dc50d368f0bf83296",
-   "sha256": "075955i995d7xzd9cfyrpzyz0mfdvw95s0i00q85nb9wmxyijcb2"
+   "commit": "f59cbc38c83007e160722347c8cb5438d5fe13a0",
+   "sha256": "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"
   },
   "stable": {
    "version": [
     0,
     7,
-    1
+    7
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "795954c8afda6da0196267c3324290841fcc4647",
-   "sha256": "0mmfzn1ims4w7nqa65r2cm7vbx8v9269h3n4scmjgjhrzmxh41dj"
+   "commit": "f59cbc38c83007e160722347c8cb5438d5fe13a0",
+   "sha256": "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"
   }
  },
  {
@@ -24854,28 +25144,28 @@
   "repo": "skeeto/elfeed",
   "unstable": {
    "version": [
-    20210131,
-    143
+    20210226,
+    258
    ],
    "deps": [
     "elfeed",
     "simple-httpd"
    ],
-   "commit": "0b44362cb93ce49c36a94289d5fa5da8279c5f52",
-   "sha256": "1j96sq266511z9mfqqv3n50f8i1nqaxkwcy7jg7vg6sqhsf40sdd"
+   "commit": "e29c8b91450bd42d90041231f769c4e5fe5070da",
+   "sha256": "12m4q8zfmn6g0kz2v3vmch4kbmivxshj9xk58j2f3f3c8fvk6567"
   },
   "stable": {
    "version": [
     3,
     4,
-    0
+    1
    ],
    "deps": [
     "elfeed",
     "simple-httpd"
    ],
-   "commit": "362bbe5b38353d033c5299f621fea39e2c75a5e0",
-   "sha256": "1y95410hrcp23zc84sn79bxla9xr2fqh7wwagza05iaprv7zbbw0"
+   "commit": "0ccd59aaace34546017a1a0d7c393749747d5bc6",
+   "sha256": "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"
   }
  },
  {
@@ -24964,11 +25254,11 @@
   "repo": "xuchunyang/elisp-demos",
   "unstable": {
    "version": [
-    20201128,
-    1009
+    20210312,
+    542
    ],
-   "commit": "ed9578dfdbbdd6874d497fc9873ebfe09f869570",
-   "sha256": "1268wk05j0xjqah56x7mwxvkqbaal8nal894imy42ls043ppvqd3"
+   "commit": "924b07d28e4f5b82f0e1377bcde800068f0a6d9d",
+   "sha256": "1pf37rlpmr8fjaxqk47p7dv84nksgh3r63m23jpi1g49myvwfzgi"
   },
   "stable": {
    "version": [
@@ -25159,14 +25449,14 @@
   "repo": "elixir-editors/emacs-elixir",
   "unstable": {
    "version": [
-    20201216,
-    1838
+    20210324,
+    1605
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "9de08c17d54e190d220aa03cca58bd41497f44b6",
-   "sha256": "0v6w2qkw52zrq0wwly0dli7gii2g64194m5169zslfrhk9rymkyp"
+   "commit": "0212b06f079f4965b6032bbbe7f86876575770de",
+   "sha256": "0n9b901kzk95r28a17amx25xyffvxbfrxw62sakrn0q3pbq988s2"
   },
   "stable": {
    "version": [
@@ -25238,8 +25528,8 @@
   "repo": "jcollard/elm-mode",
   "unstable": {
    "version": [
-    20210106,
-    228
+    20210224,
+    2314
    ],
    "deps": [
     "dash",
@@ -25247,8 +25537,8 @@
     "reformatter",
     "s"
    ],
-   "commit": "706ffb8779c7ace330d6e020bb046e331266586a",
-   "sha256": "1rc6qdkiv13ggjwwcgzmri16i2g5x7jwbjc7g8590rndwbg9w9lc"
+   "commit": "e9fcf9cc2779cf7f5ae7ee4be339164b26755c69",
+   "sha256": "05g3r5hc6slaca8g7n6i6bk9lpq9jsb2kv2q5v8nbz96abqg56zm"
   },
   "stable": {
    "version": [
@@ -25537,11 +25827,11 @@
   "repo": "redguardtoo/elpa-mirror",
   "unstable": {
    "version": [
-    20210210,
-    339
+    20210325,
+    1219
    ],
-   "commit": "164b2034111535c727a9e5d2b7e12884c565923d",
-   "sha256": "0gidcdfm792513pz3mbydrm36zpjlcji88hlfhkvvxwvrzh7flxx"
+   "commit": "2d50b2861ab0ba6a2a518de44823869fb4b14dfc",
+   "sha256": "0x0sfim9l5xl4fysy61w7migf504ynnmnraiwisdxl9bap7iraw9"
   },
   "stable": {
    "version": [
@@ -25600,8 +25890,8 @@
   "repo": "jorgenschaefer/elpy",
   "unstable": {
    "version": [
-    20201115,
-    1811
+    20210227,
+    56
    ],
    "deps": [
     "company",
@@ -25610,8 +25900,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "4032c7251eb2d74ec8a301a3988b62b7a0f00932",
-   "sha256": "0bmfazghviwkn14vbk2iabgrnb0xk3xw8cp2cyrg68rxmbpvl527"
+   "commit": "c31cd91325595573c489b92ad58e492a839d2dec",
+   "sha256": "0myypqnb4001zf9rpn6sakq900kn6mqhyjkp8vvc5y3j6123gj07"
   },
   "stable": {
    "version": [
@@ -25913,11 +26203,11 @@
   "repo": "emacscollective/elx",
   "unstable": {
    "version": [
-    20200728,
-    819
+    20210228,
+    2103
    ],
-   "commit": "01ad699c562887dfe135f21dbf65d72cfe7d9cd9",
-   "sha256": "05r6y0sqfmxw6d8ngy3l3rz7v015v8hil834py1ghysnqq8farn3"
+   "commit": "de9d42c86fc3e71239492f64bf4ed7325b056363",
+   "sha256": "0778izaq1hjcc9i7d0v3p9xb08y6bwj9brcmpyd2yj3lfajbhxdx"
   },
   "stable": {
    "version": [
@@ -25930,6 +26220,24 @@
   }
  },
  {
+  "ename": "emacs-everywhere",
+  "commit": "12713e28c8c1fd736f06d4a3271d466941954665",
+  "sha256": "1ah5isnn6d934rqp0s0bby3k4w6fymjkbsxg8f1m7wckramdi8hn",
+  "fetcher": "github",
+  "repo": "tecosaur/emacs-everywhere",
+  "unstable": {
+   "version": [
+    20210303,
+    1507
+   ],
+   "deps": [
+    "cl-lib"
+   ],
+   "commit": "99997af93310128cc95b8ddceacb448daed2403a",
+   "sha256": "03syfvwsbrrmghdav3xkmpjvdfh1q1qr880a6f6wkri9iazg021g"
+  }
+ },
+ {
   "ename": "emacsc",
   "commit": "acc9b816796b9f142c53f90593952b43c962d2d8",
   "sha256": "1fbf9al3yds0il18jz6hbpj1fsjlpb1kgp450gb6r09lc46x77mk",
@@ -25937,20 +26245,20 @@
   "repo": "knu/emacsc",
   "unstable": {
    "version": [
-    20190917,
-    1102
+    20210302,
+    806
    ],
-   "commit": "57940b93881efabb375df18093b99800bfb5d5f7",
-   "sha256": "032g44dad90cas2b80cxhzbim2sxd8rliyxf65ccfrqi1xg3vkff"
+   "commit": "409fc548bb650c6e832b459c756b13de68147117",
+   "sha256": "04k3gnfhqy0i4vb03k1jr3r43sfpxs6dyx863gsgz6qnkkbqrydn"
   },
   "stable": {
    "version": [
     1,
     3,
-    20190917
+    20210302
    ],
-   "commit": "57940b93881efabb375df18093b99800bfb5d5f7",
-   "sha256": "032g44dad90cas2b80cxhzbim2sxd8rliyxf65ccfrqi1xg3vkff"
+   "commit": "409fc548bb650c6e832b459c756b13de68147117",
+   "sha256": "04k3gnfhqy0i4vb03k1jr3r43sfpxs6dyx863gsgz6qnkkbqrydn"
   }
  },
  {
@@ -26216,11 +26524,11 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210212,
-    1743
+    20210326,
+    1428
    ],
-   "commit": "3a9c581cb7518f738dce8d6a0f1d1eb6c78b6622",
-   "sha256": "1aik11mq5yqk9zwqqfizh9vsb8gglisrf02hlx28s32h2hybsd3n"
+   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
+   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
   },
   "stable": {
    "version": [
@@ -26239,15 +26547,15 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210212,
-    228
+    20210308,
+    1615
    ],
    "deps": [
     "consult",
     "embark"
    ],
-   "commit": "3a9c581cb7518f738dce8d6a0f1d1eb6c78b6622",
-   "sha256": "1aik11mq5yqk9zwqqfizh9vsb8gglisrf02hlx28s32h2hybsd3n"
+   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
+   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
   },
   "stable": {
    "version": [
@@ -26414,15 +26722,15 @@
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20210120,
-    1745
+    20210310,
+    2103
    ],
    "deps": [
     "cl-lib",
     "seq"
    ],
-   "commit": "ba16ff6dedf2de5dda219cf38b1d6d092b542de6",
-   "sha256": "0hvdd4mqghllnir88sszq54y8hss8dhkgc1p8082627bnqx4sbjb"
+   "commit": "de0c4079ccdf3e17b722e3ddf2a275e66703b6bb",
+   "sha256": "1m334c1c1b6jfh100xfdxfqs89i5q1vw6dwjf4alydl0d08q91lc"
   },
   "stable": {
    "version": [
@@ -26752,8 +27060,8 @@
     "ht",
     "seq"
    ],
-   "commit": "cfa00865388809363df3f884b4dd554a5d44f835",
-   "sha256": "0dw0wkirphwk7iv61b9z5qbg850nnyrivi6d2a80al1nmxkla2sg"
+   "commit": "1b726412f19896abf5e4857d4c32220e33400b55",
+   "sha256": "1g8dviwmwifzjvy9rvnhr9hsxwv37ksqikqccrbjyrpcyv57z1a5"
   },
   "stable": {
    "version": [
@@ -26809,8 +27117,8 @@
   "repo": "Wilfred/emacs-refactor",
   "unstable": {
    "version": [
-    20210110,
-    1928
+    20210301,
+    213
    ],
    "deps": [
     "cl-lib",
@@ -26823,8 +27131,8 @@
     "projectile",
     "s"
    ],
-   "commit": "d0540df81c1b5f9f75f69ff92331bbf4b16f2e2c",
-   "sha256": "1py0140pvi8vyy3digjsz3clp98md05mik8w2xnjb47mb4af39jb"
+   "commit": "648c2e87516fac37b84fd9bc34a6362d2a9001e2",
+   "sha256": "1crgj5skqckvw1l445ywkdq23bqkj6b6yf5y3pcyay1aasvjbhmb"
   },
   "stable": {
    "version": [
@@ -26929,6 +27237,21 @@
   }
  },
  {
+  "ename": "enlightened-theme",
+  "commit": "93728d3fe62331b49627c1cfa1c4273a43407da8",
+  "sha256": "18ry83hdmf3fx544s42rhkl5jnlvcvbfbardhwyciyp375jzam92",
+  "fetcher": "hg",
+  "url": "https://hg.sr.ht/~slondr/enlightened",
+  "unstable": {
+   "version": [
+    20210220,
+    2327
+   ],
+   "commit": "1bfebd8f47e8a8357c9e557cf6e95d7027861e6d",
+   "sha256": "10f8ccavmf4xz6fpd0psbvjdcxsrypswnhcqi92nirb2z72kq4hj"
+  }
+ },
+ {
   "ename": "enlive",
   "commit": "388fa2580e687d9608b11cdc069841831b414b29",
   "sha256": "1dyayk37zik12qfh8zbjmhsch64yqsx3acrlm7hcnavx465hmhnz",
@@ -27010,8 +27333,8 @@
     "inheritenv",
     "seq"
    ],
-   "commit": "a7c6ca84a2b0617c94594a23a0c05246f14fa4ee",
-   "sha256": "1dpwb5plymb13jv44rdxkg0lrc180076rcvricac6xk33pklsmbz"
+   "commit": "110a221f8205655a31fa51bffd45e1e9da056ffc",
+   "sha256": "1zjqkp701nlc0cldqxwj97jflz3imv1nzpq2sqjm4ir45lwp8jci"
   },
   "stable": {
    "version": [
@@ -27119,14 +27442,14 @@
   "repo": "emacscollective/epkg",
   "unstable": {
    "version": [
-    20210105,
-    1456
+    20210227,
+    1459
    ],
    "deps": [
     "closql"
    ],
-   "commit": "b9040a91412824d04134286f31fe287f19496184",
-   "sha256": "1ml6gyd1ad5n9fq5szrzjysa4nnapvszz5dd5qx68jrn1djg00jy"
+   "commit": "245157564b9bd1575480044c8b24007b2090dacb",
+   "sha256": "1bdbwbrrz4brkmg50808vsj70d5yaxb1a71n014nx1a09wnw1hmj"
   },
   "stable": {
    "version": [
@@ -27553,6 +27876,21 @@
   }
  },
  {
+  "ename": "erc-yank",
+  "commit": "0b66abddb134e0b4cc76ad73784fa529e6ea7312",
+  "sha256": "0rpn1zfn2g6lylicil3a4scvygqymb5pdmkyyy2r2mw4xlixh375",
+  "fetcher": "github",
+  "repo": "jwiegley/erc-yank",
+  "unstable": {
+   "version": [
+    20210220,
+    1815
+   ],
+   "commit": "55d96f18c5df9d8fce51fa073d7a12c47a46ac80",
+   "sha256": "1chigywld4v2shc7ij6gyxfq0xzwyms5nal85b3yh7km2pim5i8h"
+  }
+ },
+ {
   "ename": "erc-youtube",
   "commit": "a80ee9617a30a8ad1d457a0b0c7f35e6ec1c0bb2",
   "sha256": "12ylxkskkgfv5x7vlkib963ichb3rlmdzkf4zh8a39cgl8wsmacx",
@@ -27760,8 +28098,8 @@
     20200914,
     644
    ],
-   "commit": "e6862ebe3e8f2f29325378d820f7fa94656be479",
-   "sha256": "1iwi8jm3mp77zmcvn813mcnih1sq56mpl66r2qlkl72paqli790i"
+   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
+   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
   },
   "stable": {
    "version": [
@@ -27782,20 +28120,21 @@
   "repo": "erlang/otp",
   "unstable": {
    "version": [
-    20201215,
-    830
+    20210315,
+    1640
    ],
-   "commit": "26150b438fa1587506a020642ab9335ef7cd3fe2",
-   "sha256": "0m2csjqviqd219mg99wgb19whq12842hq9mpjc4nhg9bd5n9zrf9"
+   "commit": "94c9738e10326554af80d128c76e4bded1c7b983",
+   "sha256": "1vyk87yy9vpscrxvcd0f14fvbd200af0fiwgw26fdd5f5j6iz2hk"
   },
   "stable": {
    "version": [
-    23,
-    2,
-    4
+    24,
+    0,
+    -1,
+    1
    ],
-   "commit": "74d045d62e283948247e03a93d22171802997804",
-   "sha256": "0567gk8by1l4bfwk2j4l4s0z8xw2qz62km9anw0vkfbshlabhmp3"
+   "commit": "655bd1a27673720bcee187e9fd9f07d739860ad3",
+   "sha256": "00k0x24diq2z24582bjk65c07ky1kf5h1zihs06ndl782i5cqjfa"
   }
  },
  {
@@ -28101,14 +28440,14 @@
   "repo": "dieggsy/esh-autosuggest",
   "unstable": {
    "version": [
-    20190228,
-    401
+    20210224,
+    2242
    ],
    "deps": [
     "company"
    ],
-   "commit": "972094808d231a86dc6e43862191167b1997d840",
-   "sha256": "1nkf3n20bc8fhdw8vmmnrwhaddhmqpjsrxm304ci6r6b4zz71nq6"
+   "commit": "0f144815ebcc1f911a6a7e6df170f8cc10744c92",
+   "sha256": "1lss6q24pdkzbxdn3lj85xci1md9bs28j8ib3qsk1cmv6m691y28"
   },
   "stable": {
    "version": [
@@ -28364,11 +28703,11 @@
   "repo": "akreisher/eshell-syntax-highlighting",
   "unstable": {
    "version": [
-    20210117,
-    357
+    20210223,
+    936
    ],
-   "commit": "172c9fb80ba2bee37fbb067a69583a6428dcc0a4",
-   "sha256": "10f3sz0hlqfihq60zz3m3lxqz5xncjiyd8qdcslfxzl2rlwlgx77"
+   "commit": "eeace52ebb2c730f3665fb235017cd57dc6050a2",
+   "sha256": "1anlan2ldvx0qzj44dhb44flcs3h0d57v79qzn21jpy4d0y0m3kq"
   },
   "stable": {
    "version": [
@@ -28524,6 +28863,21 @@
   }
  },
  {
+  "ename": "espotify",
+  "commit": "fb515b013942cf5ef4590e7cbc17f11f10c7692f",
+  "sha256": "05kl2l272gafzp4c79f9fg63xc0rc9r5cjz32v7dhd2m0dv257vc",
+  "fetcher": "git",
+  "url": "https://codeberg.org/jao/espotify",
+  "unstable": {
+   "version": [
+    20210224,
+    126
+   ],
+   "commit": "b70b4737ece5a081411069eb08103ddbbf8e584a",
+   "sha256": "1kplm8rhyp5fssfi8pswafnck96m6zjkyvqjcwil459liy8lpw46"
+  }
+ },
+ {
   "ename": "espresso-theme",
   "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
   "sha256": "1njc1ppi1jvb3mdckr19kbk7g0a3dx8j4d6j101ygszzrr24ycmv",
@@ -28632,11 +28986,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20210210,
-    1202
+    20210326,
+    1730
    ],
-   "commit": "6dc683130466df1d2b437c6956ce26a910e47156",
-   "sha256": "0zsrwkr7zma8cb2v98wr1i7lxi2yqzhz3mm8jgb63hmq4042z2w3"
+   "commit": "c101d44bd70a3f51bf546e18e74e98f62f4a3eba",
+   "sha256": "06b056fmkbvsdzf0l7zywghkax3fqszbkywv822qr3hiwb62lc21"
   },
   "stable": {
    "version": [
@@ -28788,8 +29142,8 @@
     "f",
     "s"
    ],
-   "commit": "d4e5a340b7bcc58c434867b97923094bd0680283",
-   "sha256": "1yzki5f2k7gmj4m0871h4h46zalv2x71rbpa6glkfx7bm9kyc193"
+   "commit": "925cafd876e2cc37bc756bb7fcf3f34534b457e2",
+   "sha256": "1hb83cjr711yg4dphbyg9nfkdmd1a6bcsqw964nwdarflw6jss24"
   }
  },
  {
@@ -28800,15 +29154,15 @@
   "repo": "ShuguangSun/ess-view-data",
   "unstable": {
    "version": [
-    20201202,
-    1124
+    20210326,
+    1431
    ],
    "deps": [
     "csv-mode",
     "ess"
    ],
-   "commit": "9aeb18c0adc3e0fed75640a15500944becd5f3ef",
-   "sha256": "0mspy45wrc42r7agksyzrlf6ir3wqnyx19hfikm0fh81bn23im2h"
+   "commit": "283251e8ac19ac0c0f89a4b0f0eb38482167e52b",
+   "sha256": "0kp94y27csj08868rbiwdfzgjx9q71j7d0whpqhsh27qhc189crq"
   },
   "stable": {
    "version": [
@@ -28861,11 +29215,15 @@
   "repo": "tali713/esxml",
   "unstable": {
    "version": [
-    20201226,
-    2146
+    20210323,
+    1102
+   ],
+   "deps": [
+    "cl-lib",
+    "kv"
    ],
-   "commit": "f3d60206eda3cd66bea07c903198d12c4761e326",
-   "sha256": "1gyydxm1dja4qn9al7b5g9gm7y75qwbn516migxiy20vdzhvksfx"
+   "commit": "9f96449f6059cb75491dc812ddeb1b6200ec6740",
+   "sha256": "1xzxmgsg0j72sf1vjh9gjswz3c29js0kqhm7r3jrqrh3a5agdnml"
   },
   "stable": {
    "version": [
@@ -28955,15 +29313,15 @@
   "repo": "dieggsy/eterm-256color",
   "unstable": {
    "version": [
-    20190123,
-    401
+    20210224,
+    2241
    ],
    "deps": [
     "f",
     "xterm-color"
    ],
-   "commit": "0f0dab497239ebedbc9c4a48b3ec8cce4a47e980",
-   "sha256": "00ins8n92p5aspr6bjrvn5y5w0ximakk22yklsfmkav4h10al4as"
+   "commit": "05fdbd336a888a0f4068578a6d385d8bf812a4e8",
+   "sha256": "0ln1agcgr607n5akm0ax659g11kfbik7cq8ssnqpr3z7riiv95dm"
   },
   "stable": {
    "version": [
@@ -29215,15 +29573,15 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20210109,
-    807
+    20210325,
+    2108
    ],
    "deps": [
     "cl-lib",
     "goto-chg"
    ],
-   "commit": "cc9d6886b418389752a0591b9fcb270e83234cf9",
-   "sha256": "14nin675kb2q7fchawj5f2r7bdga9cxp7jbhmaa8vac03zs6xb4x"
+   "commit": "7eace67fc6d1f992e447f216baf9a8b7be634c1e",
+   "sha256": "13cgja2ss5afrpabz0rlhrh89vaw7dzaf1gh43b3hdbma8gh9li8"
   },
   "stable": {
    "version": [
@@ -29417,15 +29775,15 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20210209,
-    629
+    20210323,
+    310
    ],
    "deps": [
     "annalist",
     "evil"
    ],
-   "commit": "334670e29d964c5f591f75ccbf52b7b5faf4daba",
-   "sha256": "0drjcdclzy27ja95q9wp25p798nr2xwix2br50pp0s73rpfvv2sy"
+   "commit": "b45ec5b3156d27a18a949e4bf55643107a21abc2",
+   "sha256": "09sxky26kpdxjdc52vpabxq8h88fx9rnarykn1d2a063bpldz2rp"
   },
   "stable": {
    "version": [
@@ -29641,8 +29999,8 @@
     "cl-lib",
     "evil"
    ],
-   "commit": "3030e21ee16a42dfce7f7cf86147b778b3f5d8c1",
-   "sha256": "0zchmnzkq7bz2c4hl95xwnz5w243ya4ryi6hgbdss7mc9rnyyarh"
+   "commit": "ac50f21b29b6e3a111e10a9e88ae61c907ac5ee8",
+   "sha256": "0yl6lw2vz2qf97rvfmd83i3v41yl8bp7srhmxgxmhwksy589s5y9"
   }
  },
  {
@@ -29671,14 +30029,14 @@
   "repo": "Dewdrops/evil-extra-operator",
   "unstable": {
    "version": [
-    20161213,
-    403
+    20210225,
+    1239
    ],
    "deps": [
     "evil"
    ],
-   "commit": "e16a9b36f9901254da9af8a73871061616410fc3",
-   "sha256": "116srvfck3b244shxm9cmw3yvpprjgr840fvcv6jwwpfaphafxw4"
+   "commit": "fb249889acacc3e28869491195391fa6f617ae56",
+   "sha256": "049325xd7yk707mncz8mm8cshryh2ir1zf6ahwikr11iwsxgfajd"
   }
  },
  {
@@ -29983,14 +30341,14 @@
   "repo": "redguardtoo/evil-matchit",
   "unstable": {
    "version": [
-    20210201,
-    522
+    20210325,
+    123
    ],
    "deps": [
     "evil"
    ],
-   "commit": "cdb9b90381ac0a225b01fb99472f5b23b612eb6e",
-   "sha256": "0qf3583w082787hsp5ihj84w8k2d0pwpci6a9ig8qk9f4sk66v04"
+   "commit": "8c8c94bea899718f393ad041202a355e6f24ea19",
+   "sha256": "0vygxkvri6363wi3byjd2r23bjyvjkfy58n2kshslaq18z5vylzl"
   },
   "stable": {
    "version": [
@@ -30118,20 +30476,20 @@
   "repo": "redguardtoo/evil-nerd-commenter",
   "unstable": {
    "version": [
-    20210208,
-    530
+    20210311,
+    37
    ],
-   "commit": "2730820b9ccedf758c8a0428ee2c994c9fc415dd",
-   "sha256": "1y5pn3rkqj8dxp5c7dsci621vnv6hsia74w2c1hybkkrjbka851q"
+   "commit": "b8ac35fe019df5602c31912f65303a3d8ad0066c",
+   "sha256": "1vyl8lidhjph7k86n8q09mwqpasaxsmwb8vi5i2gcd6klds9hg0d"
   },
   "stable": {
    "version": [
     3,
     5,
-    3
+    4
    ],
-   "commit": "2730820b9ccedf758c8a0428ee2c994c9fc415dd",
-   "sha256": "1y5pn3rkqj8dxp5c7dsci621vnv6hsia74w2c1hybkkrjbka851q"
+   "commit": "b8ac35fe019df5602c31912f65303a3d8ad0066c",
+   "sha256": "1vyl8lidhjph7k86n8q09mwqpasaxsmwb8vi5i2gcd6klds9hg0d"
   }
  },
  {
@@ -30740,8 +31098,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "cc9d6886b418389752a0591b9fcb270e83234cf9",
-   "sha256": "14nin675kb2q7fchawj5f2r7bdga9cxp7jbhmaa8vac03zs6xb4x"
+   "commit": "7eace67fc6d1f992e447f216baf9a8b7be634c1e",
+   "sha256": "13cgja2ss5afrpabz0rlhrh89vaw7dzaf1gh43b3hdbma8gh9li8"
   },
   "stable": {
    "version": [
@@ -30771,8 +31129,8 @@
     "auctex",
     "evil"
    ],
-   "commit": "ac313efb22d621c093d8d30233bd7dc8b4cc54b4",
-   "sha256": "1wrx8ihimn1sx3vzzfppcwv0yfh3x95jrkxqvzj0ykckipm3zk0b"
+   "commit": "5f0d6fb11bce66d32c27c765e93557f6ca89cc7d",
+   "sha256": "1856liiy75w3r6s5ss6hnzcrypymfp6fpnw0i6ybrw351fkw4k9w"
   },
   "stable": {
    "version": [
@@ -31342,8 +31700,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "d14d6d2966efe5a1409f84a6b9d998268f74761d",
-   "sha256": "0jgy17s7gkjpdls8ql8qfpncd5vrwm50i3svmnlqic6ds4mkc7s0"
+   "commit": "bf4bdc8b8911e7a2c04e624b9a343164c3878282",
+   "sha256": "0b19lhidn2kvkc4aaa1x634y2biryq85di1iwxdh8070k4j2yw9s"
   },
   "stable": {
    "version": [
@@ -31448,8 +31806,8 @@
     20200304,
     1839
    ],
-   "commit": "ea6b4cbb9985ddae532bd2faf9bb00570c9f2781",
-   "sha256": "1pc3nnyb6cy4x6xnm25kdhmjmfm2rar7cnxsfck2wg5nm11p0klm"
+   "commit": "4b8322774d9c1d8b64a0049d1dbbc1e7ce80c1a0",
+   "sha256": "1x6sbychbz91q7mnfn882ir9blfw98mjcrzby38z1xlx3c9phwyi"
   },
   "stable": {
    "version": [
@@ -31529,11 +31887,11 @@
   "repo": "extemporelang/extempore-emacs-mode",
   "unstable": {
    "version": [
-    20200518,
-    1043
+    20210316,
+    205
    ],
-   "commit": "7d0ca861e6b483be1f4a08e63c5ade9cd07b4799",
-   "sha256": "0mw041jccyn8s1n3wpas397k2vrp9ryq9lfj16ipk9iqs4la6hlx"
+   "commit": "81d79cb2f611aef10fd7b05f6d47977a66502a08",
+   "sha256": "0bmpmiaz32id2yplfp2vmg3bjbfypg8k0mac8m7v6jclaprw3mal"
   }
  },
  {
@@ -31591,15 +31949,15 @@
   "repo": "ananthakumaran/exunit.el",
   "unstable": {
    "version": [
-    20210207,
-    1214
+    20210222,
+    1453
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "b341d3972af167ff82ad3dd41899c9367e12a7f7",
-   "sha256": "05nbjkj968gdgpphqn7pjqwv11vmvl30947yq2z024wkvm3vpfmj"
+   "commit": "5bb115f3270cfe29d36286da889f0ee5bba03cfd",
+   "sha256": "0xz7vnj2wjzih0rm1bsf1ynjy46wmm0aifa9g8362d8570anmkj5"
   }
  },
  {
@@ -32031,19 +32389,19 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20210128,
-    2108
+    20210324,
+    1332
    ],
-   "commit": "14a755f2f85e4db00978de76e1b7f404bfaa5e67",
-   "sha256": "0nxijsqwq3kvszv3f3r4z0vskxp9f0zjq5mx0c6gzfc4q82lvqkr"
+   "commit": "38cddb422572ca6f7dc004583bb8ba6a99b3315a",
+   "sha256": "19c0n5yjannz7sqwmw65j7clvwx6idnzy5lmc01ayghf3w2ksir2"
   },
   "stable": {
    "version": [
     2,
-    16
+    17
    ],
-   "commit": "e475a0805cd9f4bb0f7397e4d37b868f42d96c00",
-   "sha256": "1djgrjnqapxjpnjly3mk9xna27fgl53rj257slz2dm3svhyghk2n"
+   "commit": "2db5c559ca7356189083fb698a053bb1fee922a9",
+   "sha256": "1gk2dxmxv0sgkng7zgakz0gq9i0zh3wrwzsi785s338vjyypwm3g"
   }
  },
  {
@@ -32384,11 +32742,11 @@
   "repo": "yqrashawn/fd-dired",
   "unstable": {
    "version": [
-    20201217,
-    547
+    20210311,
+    321
    ],
-   "commit": "9fb966df33e7dde9360b8707f7a0197694f46abd",
-   "sha256": "0gx84kr8fnx8nic3iasqjdi1z6g9shfghin13kh5i9h7d8n83xkq"
+   "commit": "7d18938751d047eef18bfb5975195419f0d1e2d3",
+   "sha256": "0182hg9iayz371lv4flls3gwsvn7bad027h5bn7lizvxxmgg3c6s"
   },
   "stable": {
    "version": [
@@ -32506,11 +32864,11 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20201221,
-    543
+    20210322,
+    1527
    ],
-   "commit": "bebc9dd58a845928114082c5ab4538b9869b4fc7",
-   "sha256": "1dyzfxcaq0gzw957386gapha4kai2y0hv6qqpv7gs4hsilvr8vzb"
+   "commit": "ba14a7ddc21f8bc2b9bc58abd1655abbe12118d7",
+   "sha256": "0lypgn8hppivq3w8jddgbyfs7x67xjkbx2j0is96lfdb0zykp9b9"
   },
   "stable": {
    "version": [
@@ -32828,20 +33186,20 @@
   "repo": "redguardtoo/find-file-in-project",
   "unstable": {
    "version": [
-    20210212,
-    231
+    20210323,
+    118
    ],
-   "commit": "5bc4db49e9bfe33292d225e98ff2d7c31ac6d39c",
-   "sha256": "0grm9q224jmd2vbxfgv5h4nrfbj3arrym1pi6xxwgx13415z1ddz"
+   "commit": "595c6ac9d5e5b2dc138b472a40bc85c7f20a56c0",
+   "sha256": "1fqg4jg3x7vrcap46vbncazzjaj6yan57rdmi2n8xbhmw3jcc8z9"
   },
   "stable": {
    "version": [
     6,
     0,
-    0
+    3
    ],
-   "commit": "7cc9c05d05da5139e8361b72ca83ca30f44fae7d",
-   "sha256": "1iagywiihwv96y9p811xlx4cmbsj8h76niymprv1vm4fj6cmihr6"
+   "commit": "6a6328c59a96b09e771cbcc5f4188f20d0757aca",
+   "sha256": "17l5b9nibhfymyndppq0avbdr2rh20527fyr1q5i1c3xkn4d6wvp"
   }
  },
  {
@@ -32852,11 +33210,11 @@
   "repo": "h/find-file-in-repository",
   "unstable": {
    "version": [
-    20210128,
-    2102
+    20210301,
+    2202
    ],
-   "commit": "2dba14e8175b1107dc9d2860d26de628b7548dbf",
-   "sha256": "0gfrpqdhipa8xmp29f8yqik4vh83mkj5j9kccyq3g9rb0xwjhf0b"
+   "commit": "10f5bd919ce35691addc5ce0d281597a46813a79",
+   "sha256": "0x8f0nw7w9lvkcrxgyfmdb8apw5da57lkbkxxysc8z5z6qzngqrr"
   },
   "stable": {
    "version": [
@@ -33130,20 +33488,20 @@
   "repo": "wwwjfy/emacs-fish",
   "unstable": {
    "version": [
-    20200213,
-    2137
+    20210215,
+    1114
    ],
-   "commit": "db257db81058b0b12f788c324c264cc59b9a5bf4",
-   "sha256": "1f6viga13k90ws8v18az3vh3rdc5vd28xkpx9vfv3542bx1np1im"
+   "commit": "a7c953b1491ac3a3e00a7b560f2c9f46b3cb5c04",
+   "sha256": "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"
   },
   "stable": {
    "version": [
     0,
     1,
-    5
+    6
    ],
-   "commit": "688c82decad108029b0434e3bce6c3d129ede6f3",
-   "sha256": "1s961nhwxpb9xyc26rxpn6hvwn63sng452l03mm2ply32b247f9p"
+   "commit": "a7c953b1491ac3a3e00a7b560f2c9f46b3cb5c04",
+   "sha256": "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"
   }
  },
  {
@@ -33178,11 +33536,11 @@
   "repo": "mrkkrp/fix-input",
   "unstable": {
    "version": [
-    20190713,
-    1349
+    20210320,
+    1244
    ],
-   "commit": "7aef6fb29840a2f3c7e3c01eeeb7838a0e702050",
-   "sha256": "0hf4x16fr5z5l2ypp41sw78dz5qpi14pphpbh8zdg4ky5sa8d4fd"
+   "commit": "10b3aebc3d4411e6889f3428e8f097c0fbf8585c",
+   "sha256": "0c850rc9nnbvwf1sbp66xk6p246ylrfpqqhh6bcl7lm8b8v0kfzh"
   },
   "stable": {
    "version": [
@@ -33225,14 +33583,14 @@
   "repo": "mrkkrp/fix-word",
   "unstable": {
    "version": [
-    20190713,
-    1338
+    20210319,
+    1414
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "46487e5279a3079730e2d7146ace7c8ad42371ac",
-   "sha256": "0ij0bjrb446h07lyhflfk06sk802jylgdl11ib00r89zai8sq8r7"
+   "commit": "80cf4529915c34d2d39b4d3410781a19ef264e9f",
+   "sha256": "193bwcsj42w07aj8k32zl895yp0kw4rgrphn10dd81jv5411r6ij"
   },
   "stable": {
    "version": [
@@ -33523,15 +33881,15 @@
   "repo": "wanderlust/flim",
   "unstable": {
    "version": [
-    20201117,
-    825
+    20210324,
+    1102
    ],
    "deps": [
     "apel",
     "oauth2"
    ],
-   "commit": "068b35e863be9245e717e79def55f93580188bc8",
-   "sha256": "00jkappcri9y9yx35pg1gm1x81qmybkisc06rl4zxi9w76ch4rkk"
+   "commit": "ddf5b6eceb73d7dbf6ff3a2d5281a2957cc2b836",
+   "sha256": "1pf7jg0psirjm2s84hcmjxkhd5s8vlgprn1miykxks2yxkvk01xf"
   }
  },
  {
@@ -33691,11 +34049,11 @@
   "repo": "amake/flutter.el",
   "unstable": {
    "version": [
-    20201202,
-    138
+    20210304,
+    1341
    ],
-   "commit": "696228a619f6078b16f9f77071112f6ad2a25c4e",
-   "sha256": "0c39jgxykl1z74r0q7xiamwcnh6slidxrwg2f8ksdvyppgnqldwh"
+   "commit": "960b63576a13b7bd3495d0ad1883ed736873543b",
+   "sha256": "0l6k8ydrdbwms8va45jw88514ichj1qxbxkq8mfvvacb3rkb0gj0"
   }
  },
  {
@@ -33713,8 +34071,8 @@
     "flutter",
     "flycheck"
    ],
-   "commit": "696228a619f6078b16f9f77071112f6ad2a25c4e",
-   "sha256": "0c39jgxykl1z74r0q7xiamwcnh6slidxrwg2f8ksdvyppgnqldwh"
+   "commit": "960b63576a13b7bd3495d0ad1883ed736873543b",
+   "sha256": "0l6k8ydrdbwms8va45jw88514ichj1qxbxkq8mfvvacb3rkb0gj0"
   }
  },
  {
@@ -33824,8 +34182,8 @@
   "repo": "flycheck/flycheck",
   "unstable": {
    "version": [
-    20201228,
-    2104
+    20210321,
+    852
    ],
    "deps": [
     "dash",
@@ -33833,8 +34191,8 @@
     "pkg-info",
     "seq"
    ],
-   "commit": "01396a5eff9fa494285e0d3139838231c05e3948",
-   "sha256": "0s740sbchr84yddcg0zbs4v4s52smy178f8fq5y07i3vsdnfly8m"
+   "commit": "f8c679fff349850c80541a31de50009c3c15d4c9",
+   "sha256": "0v0zyq7zn89j036sp8ijxwpb0n435sf444ki618y7mv77k2qflxx"
   },
   "stable": {
    "version": [
@@ -33918,14 +34276,14 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20200830,
-    2357
+    20210213,
+    1822
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "99f5fa5b3d2f67807fba67754c77ddc63e9cf441",
-   "sha256": "09wx5xnjd1rrv1z1pv959wl67ihccvn7rbvjsrldar80jn4nhpmx"
+   "commit": "8cd2e747c3f3c1a0879f66b42db090b2878af508",
+   "sha256": "0m6s8kjk1xpr9pp1s7r39mmm5ry2sa05ync3vjr4kr2m7s5fqchh"
   }
  },
  {
@@ -33996,6 +34354,36 @@
   }
  },
  {
+  "ename": "flycheck-cfn",
+  "commit": "3ac23c6e0cceb3dd52519a9946dcd500936d8e97",
+  "sha256": "16ls9xbg7s8c4li51zvv9frlinrwflp6blgxw5psnvvdrm6gavi5",
+  "fetcher": "gitlab",
+  "repo": "worr/cfn-mode",
+  "unstable": {
+   "version": [
+    20201120,
+    2307
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "a4ca40978e680f9edc86c141e696e0ae57c63533",
+   "sha256": "0ggq4q2c1xi26m4rlvjm8f51wlj7h351pp6m20k6l25856858vhi"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "b4ffad5cabea7e858c66dc824d545653b1cdcb70",
+   "sha256": "1la7qhczg9bgs1klinwj21mjywsg1nm3sxd5cyc09bxjzbflzzz6"
+  }
+ },
+ {
   "ename": "flycheck-checkbashisms",
   "commit": "cdd1f8002636bf02c7a3d3d0a075758972eaf228",
   "sha256": "1gjfv3zkgc07wgrxia509pdl2z23a29m5x1p0w8bdjrp5zc4j7pw",
@@ -34523,27 +34911,27 @@
   "repo": "flycheck/flycheck-eldev",
   "unstable": {
    "version": [
-    20200614,
-    1904
+    20210305,
+    2231
    ],
    "deps": [
     "dash",
     "flycheck"
    ],
-   "commit": "c2e2bea1e69fe5f50a9629dec1d9b468ee92de54",
-   "sha256": "0rkzjzghfgypplnsx4w4ih9dh8xyysy9wb0jqmbg13zvc3jcb600"
+   "commit": "2ed17db874da51fba3d2991a1e05cf375fca9619",
+   "sha256": "0kzcx6sjwxzamal0za2vnll77kpvshr12zwxc9czxvc9vpckf921"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "dash",
     "flycheck"
    ],
-   "commit": "1bddbfaa1de22879ea2b900c9f8d6f16940ee9fb",
-   "sha256": "0ma26gk9a3lw60i172wcwdsyfa19j7fj579b4yb7gf9ibca2hs5m"
+   "commit": "d222ce6a8e59385ffeeee7c3a36ee41cf9a8561e",
+   "sha256": "0lipvy48ilc8cxkzk64j7384rx0w57hjcgxbn9dp31c8i5pygj6y"
   }
  },
  {
@@ -34785,21 +35173,21 @@
  },
  {
   "ename": "flycheck-grammarly",
-  "commit": "5fdf51167be86e0871125d5548bddc0c926b79dd",
-  "sha256": "0rdgb9ig3gda33xwl8p9c11gf274v02zibzd660ncp0cipapvqp7",
+  "commit": "81d4d4888a531dc4428b76bd1ebf0c008e7e5b0e",
+  "sha256": "11jhq2pw5pwlb7v78n963r8msy6lzj0naykn8iijqf68j9qazcsy",
   "fetcher": "github",
-  "repo": "jcs-elpa/flycheck-grammarly",
+  "repo": "emacs-grammarly/flycheck-grammarly",
   "unstable": {
    "version": [
-    20201028,
-    647
+    20210217,
+    909
    ],
    "deps": [
     "flycheck",
     "grammarly"
    ],
-   "commit": "64e8ffc0ddf05586398a49ae2ad5704cae6eb4c8",
-   "sha256": "1yd95pc00q838af9mwmifwh0ncbndv7jzyqi5l26jxv3zbhmkdq1"
+   "commit": "67c1135193f98cfa4ee1ff83cc502dc11f648334",
+   "sha256": "1ns5rrpxxwf1n0g568g1dajvpr5i49hnv8v4i4g2sfxyszkijyj7"
   },
   "stable": {
    "version": [
@@ -35019,8 +35407,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "e1c3adfc148caf721691a55cae686b5f31209204",
-   "sha256": "0b8hs7cdywqblbf5dkgck00x18xirlxi7kqd21cqfd276wvn8wyp"
+   "commit": "7febbea9ed407eccc4bfd24ae0d3afd1c19394f7",
+   "sha256": "1vvsswadiks9mpb49vz2q8z69wq0jalsvgalhn10k3pyz7p0abnd"
   },
   "stable": {
    "version": [
@@ -35177,8 +35565,8 @@
     "flycheck",
     "keg"
    ],
-   "commit": "10c70dba667752c3612e69a190e097677fef268d",
-   "sha256": "137xjq1ky9d9ddklzfmfnd5bz75bw0bkqr4ajq3m8al28wpld3k5"
+   "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
+   "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
   }
  },
  {
@@ -35471,8 +35859,8 @@
     "flycheck",
     "package-lint"
    ],
-   "commit": "64cf27d69051e02a32e3c517cbfea23f9d2d7557",
-   "sha256": "0m2bmdwrj7ccf6ndv089qbbrz1msbcgls0ckbbhzpxxq39as2rpv"
+   "commit": "303f9e0708292937a668e1145f5eaa19d7d374e2",
+   "sha256": "0xav8x3vs7i8kvvhnq86scahjzv6m9mnpiibapflc995wqs4yq02"
   },
   "stable": {
    "version": [
@@ -35507,24 +35895,6 @@
   }
  },
  {
-  "ename": "flycheck-perl6",
-  "commit": "2f6ecdb2ce6bc74a27dca01ab4942778e986ac8f",
-  "sha256": "0czc0fqx7g543afzkbjyz4bhxfl4s3v5swn9xrkayv8cgk8acvp4",
-  "fetcher": "github",
-  "repo": "hinrik/flycheck-perl6",
-  "unstable": {
-   "version": [
-    20180509,
-    2201
-   ],
-   "deps": [
-    "flycheck"
-   ],
-   "commit": "b804702305d7a6e26f762ff98cfdeec2e9dd4cb7",
-   "sha256": "0gys38rlx9lx35bia6nj7kfhz1v5xfrirgf8adwk7b2hfjazrsib"
-  }
- },
- {
   "ename": "flycheck-pest",
   "commit": "f0c1b89d79456ecaa22b95f3c292799f5d1aa133",
   "sha256": "06nvryshinagp26idjcb1r98k39x4k82cjj735l9kiwpiag53ash",
@@ -35728,15 +36098,15 @@
   "repo": "alexmurray/flycheck-posframe",
   "unstable": {
    "version": [
-    20201122,
-    2307
+    20210316,
+    618
    ],
    "deps": [
     "flycheck",
     "posframe"
    ],
-   "commit": "66b73ddb93b357fe9b849d2aa14d5cc9e89e9ffd",
-   "sha256": "0hggigwbpcq4w5nrjhp8g7vahl9zdixwrhga8ag8zvrdfr0g1cym"
+   "commit": "8f60c9bf124ab9597d681504a73fdf116a0bde12",
+   "sha256": "0qh9hzvs95jvfrspglzkwhfq6a5pinab94bbh5vzkg8jc2fq6drf"
   }
  },
  {
@@ -35888,6 +36258,24 @@
   }
  },
  {
+  "ename": "flycheck-raku",
+  "commit": "a285426ee792eab3138ceb012f3825d91a7c85b1",
+  "sha256": "13il1cl60rv18xnp381z57l4nv4jc4isavjsqbrrqpyjpi81c3g8",
+  "fetcher": "github",
+  "repo": "Raku/flycheck-raku",
+  "unstable": {
+   "version": [
+    20210316,
+    820
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "4163c0dcc1447bc98bb20b835eb23cb68a638ba9",
+   "sha256": "0z19zz5dq0pjkzrjg2fbrh9szlgd0lq2j9wmkf4pzkrcb519kchn"
+  }
+ },
+ {
   "ename": "flycheck-relint",
   "commit": "e20128460e942a78a88bd9e6389a8fcbb14343ad",
   "sha256": "1q443078jf6cxzwxz6mc4m9drzfcd86q0lcw5vszmfyzn35nwyzb",
@@ -35902,8 +36290,8 @@
     "flycheck",
     "relint"
    ],
-   "commit": "86ebb4dac919eda01341b15b9c896742b9d17c30",
-   "sha256": "1k638y125xyb0bc5i2zrkypwb770jn1ndky6qak31n4ws41xynbd"
+   "commit": "4d112871b82d5ea6d0d3e4aaacc55a45536707b7",
+   "sha256": "1plqica209q1x8kzyy4iz97bvd8vqxgv1l00mlf946q201ps7yb1"
   },
   "stable": {
    "version": [
@@ -36203,14 +36591,14 @@
   "repo": "Wilfred/flycheck-title",
   "unstable": {
    "version": [
-    20170216,
-    2346
+    20210321,
+    558
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "6faea67be8661faf8152217869d16e993cc2bc49",
-   "sha256": "08b2cq5bzmq9aa8b8glx5js2nhfpgdsd0r2sgvi0ij937yz8lf37"
+   "commit": "74e4375f372f7b9ce0fdfa34dc74a048376679ae",
+   "sha256": "0ivdv7gsbi3p6nzkyr0dl4iw3846dwys9mrx3pbnf9awzrcihnid"
   },
   "stable": {
    "version": [
@@ -36385,11 +36773,11 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20201212,
-    1038
+    20210213,
+    1822
    ],
-   "commit": "99f5fa5b3d2f67807fba67754c77ddc63e9cf441",
-   "sha256": "09wx5xnjd1rrv1z1pv959wl67ihccvn7rbvjsrldar80jn4nhpmx"
+   "commit": "8cd2e747c3f3c1a0879f66b42db090b2878af508",
+   "sha256": "0m6s8kjk1xpr9pp1s7r39mmm5ry2sa05ync3vjr4kr2m7s5fqchh"
   }
  },
  {
@@ -36661,20 +37049,20 @@
  },
  {
   "ename": "flymake-grammarly",
-  "commit": "1365aa5edc900493e930429eca4748bb8e6aaf69",
-  "sha256": "0ipap3vz40v90qlh1a3iiqm5934bsx5xk897m5r5q5ab63k5yq75",
+  "commit": "8271fbd6a4b47d0d3aa6f50547ac502c4f2a7e4a",
+  "sha256": "06va2zmg8m8al7rxpa7znvln9yhsjlxhnxgs8q76flx9fhg0pm2j",
   "fetcher": "github",
-  "repo": "flymake/flymake-grammarly",
+  "repo": "emacs-grammarly/flymake-grammarly",
   "unstable": {
    "version": [
-    20210127,
-    834
+    20210217,
+    909
    ],
    "deps": [
     "grammarly"
    ],
-   "commit": "c86109387e277251ba3d9aee4a71f0f452e9b401",
-   "sha256": "1bz0vs2l59ga7x1gqrywl1dhfs1ihbcsflaznmrvg7p7v9vdrmrc"
+   "commit": "41d10f26a76208612fa184d1155ab40130f4cbf0",
+   "sha256": "1f5vflanpq0kdqnp2jz6aj5v0v4wvmr01rlgxjz3yz31bp444a0d"
   },
   "stable": {
    "version": [
@@ -36852,8 +37240,8 @@
    "deps": [
     "flymake-easy"
    ],
-   "commit": "ae58795f948402e987cda4c15f10354f8ec2d0fd",
-   "sha256": "1hr35xxj6w34h7xs13n6sxs69j3z3i0r1qim3hgyiym797xjsa0p"
+   "commit": "03b4e5e7ad11938781257a783e717ab95fe65952",
+   "sha256": "1yayfh4j155fpwybh26w6hvdg1whrd8wmaz8w406s4rqpsw93q92"
   },
   "stable": {
    "version": [
@@ -36965,14 +37353,14 @@
   "repo": "juergenhoetzel/flymake-nasm",
   "unstable": {
    "version": [
-    20210107,
-    524
+    20210310,
+    1540
    ],
    "deps": [
     "flymake-quickdef"
    ],
-   "commit": "92b96ca659e88d25e21e711038332a5b4c199e61",
-   "sha256": "1s76s5y5lwdw84bkcbx3xawc748hm9p9g2sfpn33mmz1mc227kz5"
+   "commit": "27e58d7f3a48ca6fc12238fe6c888a3fdffc3f75",
+   "sha256": "0j4zai3par1i27szs2rws72qrqjcr3yz55pp56hl397r40kzwgmq"
   }
  },
  {
@@ -37066,10 +37454,10 @@
  },
  {
   "ename": "flymake-phpcs",
-  "commit": "6e4d444198f593cfb03c7ca84f3e90db13ef5a01",
-  "sha256": "0zzxi3c203fiw6jp1ar9bb9f28x2lg23bczgy8n5cicrq59jfsn9",
+  "commit": "a35c3043bfc1ce5a3e0fe1c472c6f494a413ba7c",
+  "sha256": "1gki8ljlq0x954a7fvsz4qj634w40dmlirjg5bm4585ssnsh04wc",
   "fetcher": "github",
-  "repo": "senda-akiha/flymake-phpcs",
+  "repo": "flymake/flymake-phpcs",
   "unstable": {
    "version": [
     20140713,
@@ -37340,11 +37728,11 @@
   "repo": "federicotdn/flymake-shellcheck",
   "unstable": {
    "version": [
-    20200921,
-    2341
+    20210314,
+    2048
    ],
-   "commit": "060da4097c1caadc1eb1d6feac4deaedaadb6dc0",
-   "sha256": "021qmkysx8gmwxnxcx6izs1q1h66ncvrwlvpk1wsxw9lf9symm7c"
+   "commit": "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7",
+   "sha256": "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"
   }
  },
  {
@@ -37609,11 +37997,11 @@
   "repo": "rolandwalker/flyspell-lazy",
   "unstable": {
    "version": [
-    20201028,
-    111
+    20210308,
+    1253
    ],
-   "commit": "d57382cf06462931cb354f5630469425fce56396",
-   "sha256": "0ahq75izwjmkzdkj25k3iml76csgkqav912dnlairqsnc9il6bj8"
+   "commit": "0fc5996bcee20b46cbd227ae948d343c3bef7339",
+   "sha256": "1r9sz6p8p2g3n59pqfqllr5324pg7q3fji6lki9qpy0l5yd6j1p4"
   },
   "stable": {
    "version": [
@@ -37680,16 +38068,15 @@
   "repo": "troyp/fn.el",
   "unstable": {
    "version": [
-    20170210,
-    204
+    20210304,
+    1812
    ],
    "deps": [
     "cl-lib",
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "f685fd0c08ec3b1d1b9974b37e62edd78a000cb8",
-   "sha256": "1k8pwlpcvlwr4pavg85ja8hdc7rrbafqs1mhhqr5gbq8cp822sja"
+   "commit": "98e3fe1b4785e162d9aca978a2db106baa79260f",
+   "sha256": "0qaxbqwqxxgvw1lb6icsv3mx215mg682n3jsrmqfsvgl9nc97ps6"
   },
   "stable": {
    "version": [
@@ -37980,8 +38367,8 @@
     20191004,
     1850
    ],
-   "commit": "e086c59a14701cd041641b51c952fa704ee963df",
-   "sha256": "0w1crw5lsk22jfw2w5qq6ab7zxdzp38akasvyvxakvpp1782xq9p"
+   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
+   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
   }
  },
  {
@@ -38058,8 +38445,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20210128,
-    812
+    20210314,
+    2238
    ],
    "deps": [
     "closql",
@@ -38071,8 +38458,8 @@
     "markdown-mode",
     "transient"
    ],
-   "commit": "8683b148d3ce1413aeb4b6dde1b6f55610b5aaf5",
-   "sha256": "1wgznm6qynz0vgylksgimlqawdv6cd8hi5zxw6cgxii2dgajpr1b"
+   "commit": "f4c95dd0e633b3dd332d6f91122c864ab3640912",
+   "sha256": "02jhimj1ykz0mfg63iwaaxg1i9fdijczcd1g5fz02zwj1v2dgqgh"
   },
   "stable": {
    "version": [
@@ -38127,28 +38514,28 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20210213,
-    804
+    20210315,
+    640
    ],
    "deps": [
     "inheritenv",
     "language-id"
    ],
-   "commit": "d64b8afc6dd91f7a990fe12799319c0f72534009",
-   "sha256": "0wsp0awq237xngmp8glakljdlrv8y107icwmz70avnn97vhikj9b"
+   "commit": "94239d35944830ce009d01ac3369e0d61f9723c2",
+   "sha256": "1q27yr916vhk0ah1406vs540f8hpp8bca1f118xwhyj1fw3yrbaw"
   },
   "stable": {
    "version": [
     0,
-    3,
+    4,
     0
    ],
    "deps": [
-    "cl-lib",
+    "inheritenv",
     "language-id"
    ],
-   "commit": "8c8c47a863a397d947999fff4358caf20bafca0a",
-   "sha256": "0ayb57p114z64ppf74g2wpm2g2iga2vrl8rhay7fnfv1j2i4xjss"
+   "commit": "caa0269ce89789a702823041ca7b309ddaffb5ce",
+   "sha256": "1y5a704xbnvb46rp1ra9cjjazzs795hvh3p0di2hr5jsql0a0zwa"
   }
  },
  {
@@ -38272,14 +38659,14 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20210131,
-    1220
+    20210225,
+    1517
    ],
    "deps": [
     "seq"
    ],
-   "commit": "b855c916bfe988246572d9982435c7c9837c983c",
-   "sha256": "15m7dihnnys9r2185bpdqd0iazdbccyrnkrdl7a067hygc3iilal"
+   "commit": "9b0079c10c73e5f0785a8e727c1240ea9a781a5d",
+   "sha256": "02qxrq582cmcc6wmflh314z724kzxfp2l31h5b71372lck3f0slq"
   },
   "stable": {
    "version": [
@@ -38755,16 +39142,16 @@
   "repo": "waymondo/frog-jump-buffer",
   "unstable": {
    "version": [
-    20201117,
-    1803
+    20210308,
+    2316
    ],
    "deps": [
     "avy",
     "dash",
     "frog-menu"
    ],
-   "commit": "39aeb02f5a38f3637b5e1d0560b366daa131d421",
-   "sha256": "1zgzvcrybcx5vvvqhxxhridsfcjggcyb2kxzsmp6fmd4bdhd4crx"
+   "commit": "3481626cccea8e77e4eee79b05f99c9171559f7b",
+   "sha256": "1v7p3ln8jw3qm2ka0jl55wq9smal5k31rzsina9i8c5mcslml1l2"
   }
  },
  {
@@ -38890,14 +39277,14 @@
   "repo": "factor/factor",
   "unstable": {
    "version": [
-    20200514,
-    1516
+    20210323,
+    1426
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "3654ddbd8b3d54258edcc0f4e30ec482cfa8a255",
-   "sha256": "0xk7n93m1qsp68jxva9sjaafr98rqhw2swa1d76yg01dbq5fk9pw"
+   "commit": "5bfeab6c0e13bfefddb98b30b6e60489a1574d8e",
+   "sha256": "193wbn2y0562gm08yaq8dim1y52vvxvz6vxh3gpxgk95zrr0ll1s"
   },
   "stable": {
    "version": [
@@ -38954,32 +39341,32 @@
  },
  {
   "ename": "fullframe",
-  "commit": "13d1dc5c39543b65c6bb4150c3690211872c00dc",
-  "sha256": "08sh8lmb6g8asv28fcb36ilcn0ka4fc6ka0pnslid0h4c32fxp2a",
-  "fetcher": "github",
-  "repo": "tomterl/fullframe",
+  "commit": "9eb2ecf435ad197ed6636ee5fb101375aa76d5b0",
+  "sha256": "01vwijpy10gxjwz9zkd2ri2dzhidrqsihpy90kwb5ip9kbgc4jhr",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tomterl/fullframe",
   "unstable": {
    "version": [
-    20201022,
-    939
+    20210226,
+    1057
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8cc4aebf4a1054812b34f9704c38c1616571078c",
-   "sha256": "13f1lhdsm2sx9h8k9iz3mv5xqfxkfwji2aa6855z0jwn8rqqzqsf"
+   "commit": "886b831c001b44ec95aec4ff36e8bc1b3003c786",
+   "sha256": "1q276p3bagx9fhzyzjmz449f95k1z287x4p34980d06klj11lrab"
   },
   "stable": {
    "version": [
     0,
     5,
-    0
+    1
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d6a5217f7f2a5a5edcb75140f3fa69b3a50f1cdd",
-   "sha256": "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"
+   "commit": "886b831c001b44ec95aec4ff36e8bc1b3003c786",
+   "sha256": "1q276p3bagx9fhzyzjmz449f95k1z287x4p34980d06klj11lrab"
   }
  },
  {
@@ -39092,19 +39479,19 @@
   "repo": "auto-complete/fuzzy-el",
   "unstable": {
    "version": [
-    20150730,
-    337
+    20210317,
+    140
    ],
-   "commit": "a36bde2f6e94d6b2bfaae68d73bbd39734e5b907",
-   "sha256": "1aj7r16bnx2jr2gpzwsmr3yqmfza5qbdcn78chcsfqxv5c8bgswa"
+   "commit": "edce468a3077d03ca63e1559f7ffebfa09c8effd",
+   "sha256": "126wbccdilqi7yf1w7z9gjr6zr4lmrrii6bz65jg5ffnpx8kj30d"
   },
   "stable": {
    "version": [
     0,
-    1
+    3
    ],
-   "commit": "939f4e9a3f08d83925b41dd3d23b2321f3f6b09c",
-   "sha256": "1g7my9ha5cnwg3pjwa86wncg5gphv18xpnpmj3xc3vg7z5m45rss"
+   "commit": "122939ee0a82efa1bcf405de3134debe34e4a0b6",
+   "sha256": "07kpixgqc6vky91bi7j4r0q78ccc3azydwmkaz4z7lr3ncbc6ymj"
   }
  },
  {
@@ -39282,25 +39669,25 @@
  },
  {
   "ename": "gams-mode",
-  "commit": "c895a716636b00c2a158d33aab18f664a8601833",
-  "sha256": "0hx9mv4sqskz4nn7aks64hqd4vn3m7b34abzhy9bnmyw6d5zzfci",
+  "commit": "0c7f6a46adc9bc4b256006e86653a77f8f891db6",
+  "sha256": "1qlzmrs8771cgp63agwr2j1826jck80420plqy704ckc24f85i00",
   "fetcher": "github",
   "repo": "ShiroTakeda/gams-mode",
   "unstable": {
    "version": [
-    20200131,
-    1335
+    20210227,
+    251
    ],
-   "commit": "bb4e8a223c8aac5ec9268d1cfcf1a9ea9b3d8a49",
-   "sha256": "084xjxj03d0ghh1lgrgwlkzf78y3szh47m3qva4r344yg0051yz3"
+   "commit": "52e984d64c48f518222e0f6bd326236f78d7bf7a",
+   "sha256": "0fjdm2mlwibi6cz0r7cm4ylxzg7i8fljkwfhflb84xqcaknwr2sk"
   },
   "stable": {
    "version": [
     6,
-    6
+    7
    ],
-   "commit": "bb4e8a223c8aac5ec9268d1cfcf1a9ea9b3d8a49",
-   "sha256": "084xjxj03d0ghh1lgrgwlkzf78y3szh47m3qva4r344yg0051yz3"
+   "commit": "52e984d64c48f518222e0f6bd326236f78d7bf7a",
+   "sha256": "0fjdm2mlwibi6cz0r7cm4ylxzg7i8fljkwfhflb84xqcaknwr2sk"
   }
  },
  {
@@ -39496,11 +39883,11 @@
   "repo": "jaor/geiser",
   "unstable": {
    "version": [
-    20210103,
-    953
+    20210303,
+    1351
    ],
-   "commit": "c7a427edf33ab1ebdca7d3df67d740f97037a950",
-   "sha256": "0lvgmfwlmyxgbyqlw8c79q79ramws88s746nckz0qyy5fckx0ri3"
+   "commit": "8e61c27b628373523b7c467d5f71aac8c873258b",
+   "sha256": "1hnfyr4sbznmmqamk6zwwyq8z4a8vi628a0wfxmj8lyzjb2dqyi1"
   },
   "stable": {
    "version": [
@@ -39560,6 +39947,24 @@
   }
  },
  {
+  "ename": "geiser-mit",
+  "commit": "a327661f80b577f53ae8874ce9ab499d95c442c8",
+  "sha256": "1zbisdf8mw183qxx7khlfni31lp6airza8q8vvcp5frz277kk9cg",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/mit",
+  "unstable": {
+   "version": [
+    20210308,
+    257
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "1caea838ddbbf3d8e0c6f39656f8ff3b445e371a",
+   "sha256": "0r3ycjcrqbfnlci31bzr7l4nqrfklj839k3ba0c19vfga8wyakfq"
+  }
+ },
+ {
   "ename": "gemini-mode",
   "commit": "4fd0ef91c2a4259d6e4e8833d687b6aeae14e65a",
   "sha256": "0a0g3rpvcixnch0903jggffv2wa4s9j91mfsga4yrvwlwzswz6rd",
@@ -39567,11 +39972,20 @@
   "url": "https://git.carcosa.net/jmcbray/gemini.el.git",
   "unstable": {
    "version": [
-    20210124,
-    1755
+    20210226,
+    1419
+   ],
+   "commit": "0a227125a4112266c06ed7247de039090314b525",
+   "sha256": "0fiix0ssaannim5kxpckhd5z6fssij3igv1dg9y7143dzxf274zz"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
    ],
-   "commit": "b4f2be4eec55f0c779311cf97ffd69122b161ac3",
-   "sha256": "1qvnr591vyd85gm8m0y0r88s3ik163lq55phs0kf0vr2k5xq10p7"
+   "commit": "0a227125a4112266c06ed7247de039090314b525",
+   "sha256": "0fiix0ssaannim5kxpckhd5z6fssij3igv1dg9y7143dzxf274zz"
   }
  },
  {
@@ -39707,8 +40121,8 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20210211,
-    1542
+    20210219,
+    806
    ],
    "deps": [
     "dash",
@@ -39716,8 +40130,8 @@
     "magit",
     "s"
    ],
-   "commit": "b1029914d6078e1883674d2f1e1af511202641d9",
-   "sha256": "0s69a83y629an7fj05gkf3qvzx7hwd6wyx62sw9h021d6xdlk5ap"
+   "commit": "19a8d6805541cede2523b70fa6601667b420f32f",
+   "sha256": "1aqcqyi4933p4cixrmjb2g1yghbdshir61q3l90igw6h6nfwbiiq"
   }
  },
  {
@@ -39778,18 +40192,18 @@
   "repo": "mkjunker/ggo-mode",
   "unstable": {
    "version": [
-    20130524,
-    1143
+    20210310,
+    1345
    ],
-   "commit": "e326899d9ed8217c7a4ea6cfdc4dd7aea61d6c1b",
-   "sha256": "0bwjiq4a4f5pg0ngvc3lmkk7aki8n9zqfa1dym0lk4vy6yfhcbhp"
+   "commit": "6a7617b5af3d13029e4d680a375e8107c40d0fac",
+   "sha256": "1l39j3vkjszn3xkg2dk7r8k4fy4hjn0gp5n3bm6wv25wc8946dx4"
   },
   "stable": {
    "version": [
-    20130521
+    20210310
    ],
-   "commit": "ea5097f87072309c7b77204888d459d084bf630f",
-   "sha256": "1m9ra9qp7bgf6anfqyn56n3xa9a25ran10k9wd355qknd5skq1zz"
+   "commit": "6a7617b5af3d13029e4d680a375e8107c40d0fac",
+   "sha256": "1l39j3vkjszn3xkg2dk7r8k4fy4hjn0gp5n3bm6wv25wc8946dx4"
   }
  },
  {
@@ -39975,15 +40389,15 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20201211,
-    1717
+    20210227,
+    1925
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "c46de21b8db1f17df126d5f5a361ed90cdd26f99",
-   "sha256": "0yiccv9813bxix60jx39jflx6vvrgxs8gfs7l8amlmy0h0kssp8g"
+   "commit": "f26c1f7e575209da047e77c18d415f9dc11015e2",
+   "sha256": "1cvsslki8nkfh7j7fy0j3f21mf0qc5cz7hv0dm3hw7k25wkrbvb9"
   },
   "stable": {
    "version": [
@@ -40341,16 +40755,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210206,
-    2245
+    20210309,
+    1106
    ],
    "deps": [
     "dash",
     "transient",
     "with-editor"
    ],
-   "commit": "47c57839b80c05f792de288da050fabac90639d6",
-   "sha256": "0bpcy6vxbqx50p2cqskpfrk2chnjp3025zmnx33kvq22860f7qi2"
+   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
+   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
   },
   "stable": {
    "version": [
@@ -40633,11 +41047,11 @@
   "repo": "sshaw/git-link",
   "unstable": {
    "version": [
-    20210121,
-    235
+    20210318,
+    313
    ],
-   "commit": "f76bffd42fb4ed8ffe09d48c084f6577b0b99fa6",
-   "sha256": "0l7xmvmj5s93hc39wjjv75f22zbhahnmcxpmvx3dfvsbig9pmk75"
+   "commit": "2b510cf3f28bed842853294fc4ee23c7f8b6435a",
+   "sha256": "0c5p5llxlgi09lymjnh0jpp36v5vfmi6rjb77123gcnsqi0031wn"
   },
   "stable": {
    "version": [
@@ -41083,8 +41497,8 @@
   "repo": "charignon/github-review",
   "unstable": {
    "version": [
-    20201012,
-    40
+    20210314,
+    2203
    ],
    "deps": [
     "a",
@@ -41093,8 +41507,8 @@
     "ghub",
     "s"
    ],
-   "commit": "d0c8234cf523818513f892f30153210606abb6be",
-   "sha256": "1d0g79mp14ngx5x0f8sc4lri40m3gh0ql6gzyqrl4c94lhq59cn7"
+   "commit": "341b7a1352e4ee1f1119756360ac0714abbaf460",
+   "sha256": "15lqiknl7ilskpy1s9qdfi0qjvrkvmj8nw110cf8ifwvvyxyqbhb"
   }
  },
  {
@@ -41332,14 +41746,14 @@
   "repo": "TxGVNN/gitlab-pipeline",
   "unstable": {
    "version": [
-    20200903,
-    201
+    20210322,
+    439
    ],
    "deps": [
     "ghub"
    ],
-   "commit": "ecb3a2277f6a1c7fed73f9381834724c143c85da",
-   "sha256": "1nqrim3fpgf5npzl14sd0h6dlhi925hns2f75l4arrhbcjgcn984"
+   "commit": "089400ac1d411a2b58cf1a64f28911079d5c898f",
+   "sha256": "0zck5488fswqcl7ahknm6nan5al8db73p2jbxnwcv2cxcia81qza"
   },
   "stable": {
    "version": [
@@ -41521,15 +41935,29 @@
   "url": "https://git.launchpad.net/global-tags.el",
   "unstable": {
    "version": [
-    20210122,
-    1606
+    20210225,
+    1553
    ],
    "deps": [
     "async",
+    "ht",
     "project"
    ],
-   "commit": "03bf9d9f92886bcc7b1b8dc45e3213d6e1be9df5",
-   "sha256": "13qczr2z83ggc2rw2rkzmsj1xgn4rqmg9mvfkp7wf7232d3hwpg8"
+   "commit": "344d084ec5ff6c99b31c5ea57e5352c85b57ae26",
+   "sha256": "0x8m3srxhy0bdl6wqvi7m3q9jai73m5bavij1jwqhr3pc2caxzxm"
+  },
+  "stable": {
+   "version": [
+    0,
+    7
+   ],
+   "deps": [
+    "async",
+    "ht",
+    "project"
+   ],
+   "commit": "344d084ec5ff6c99b31c5ea57e5352c85b57ae26",
+   "sha256": "0x8m3srxhy0bdl6wqvi7m3q9jai73m5bavij1jwqhr3pc2caxzxm"
   }
  },
  {
@@ -43083,21 +43511,21 @@
   "repo": "nlamirault/gotest.el",
   "unstable": {
    "version": [
-    20191128,
-    1111
+    20210221,
+    1905
    ],
    "deps": [
     "f",
     "go-mode",
     "s"
    ],
-   "commit": "70f63eafda1f6a2f0a01a9320cc4d2edee9a17b2",
-   "sha256": "090xf2w5zgffndpjvg4qfdm77cpsc8vpr00h6j0skjpr3bni79cx"
+   "commit": "9b1dc4eba1b22d751cb2f0a12e29912e010fac60",
+   "sha256": "0693fcli1nv9mn60gh30xspwiwhab8vxf09i1s9yxs80ai712i12"
   },
   "stable": {
    "version": [
     0,
-    14,
+    15,
     0
    ],
    "deps": [
@@ -43105,8 +43533,8 @@
     "go-mode",
     "s"
    ],
-   "commit": "8a5ef7363f83edb3b77c5e23876f13dd8c23b2b9",
-   "sha256": "1ksi37kmy9mnrjr5lf9f0ga5nvi3r2kc85g6yvdfj0mbsjm1pnp7"
+   "commit": "9b1dc4eba1b22d751cb2f0a12e29912e010fac60",
+   "sha256": "0693fcli1nv9mn60gh30xspwiwhab8vxf09i1s9yxs80ai712i12"
   }
  },
  {
@@ -43117,11 +43545,11 @@
   "url": "https://depp.brause.cc/gotham-theme.git",
   "unstable": {
    "version": [
-    20200506,
-    1250
+    20210318,
+    2207
    ],
-   "commit": "a549cd031859e24fd37a779323e1542aefe86d43",
-   "sha256": "0smjajazr86r8f1szw1xdrinfbn455xhl6bbhyhhmrk6sw0pnc6n"
+   "commit": "51876a72dbe5a16aeadde2e885da6bbf75909bd1",
+   "sha256": "042cpdl7srfj1ha3z27xj03bzp3vrz6ql4x0zzvjxsyj08z1q80y"
   },
   "stable": {
    "version": [
@@ -43141,11 +43569,11 @@
   "repo": "jcs-elpa/goto-char-preview",
   "unstable": {
    "version": [
-    20200927,
-    509
+    20210323,
+    332
    ],
-   "commit": "6209973933bec4081145dbcb8e3e442cb29a8c52",
-   "sha256": "1ckpdgfr7da37fwx9pw0vc8bdcmbpdpygfn8gkwwmz3yjk3021h7"
+   "commit": "6ab5128c028aac3ae070ba8df041b8039487253a",
+   "sha256": "0d8dihhl7cn3afwhn09drymm7c5hsf8v2m6rvpq5z7nkskkjw80v"
   },
   "stable": {
    "version": [
@@ -43228,11 +43656,11 @@
   "repo": "jcs-elpa/goto-line-preview",
   "unstable": {
    "version": [
-    20210113,
-    616
+    20210323,
+    422
    ],
-   "commit": "605a182c389b60b11dad0738babc66d227a4ed23",
-   "sha256": "1p5bpb5870mkfqgx8dqapx6mvfc6h2g8hzngljd71i3b5idlxx0s"
+   "commit": "c83688ea95b4308145555fea50e953a26d67b1b2",
+   "sha256": "0hi4jikr5hk4v28790mw1rj1myvr1pwldy7wh3n8bajhqdhbr59v"
   },
   "stable": {
    "version": [
@@ -43261,14 +43689,14 @@
     "magit-popup",
     "s"
    ],
-   "commit": "3f73f7597473434ef0b68fa7aa1d1b3ad775eb5a",
-   "sha256": "1zkpjf7kja4qpfzxz9l6kyzdmzn0w6xnbq2ks2d1szl7czmfvm12"
+   "commit": "7ce0a83a88e6cca59d10df0e7824739854558bd2",
+   "sha256": "0jhy8flny9dlddw8fhymxm7s5c9sl3yxnqh8icdwb9vhgq754wcy"
   },
   "stable": {
    "version": [
     0,
     24,
-    0
+    1
    ],
    "deps": [
     "dash",
@@ -43276,8 +43704,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "1ec59a7c0002598c594fb58e03907d7ff0ca84b4",
-   "sha256": "0bz01ybpj1lk7g34n6wwy53aaa4jvs3xhsv50y34z5wvxa8ypdsj"
+   "commit": "f49dcf5ec6e16562de30674b36b18e6bdcd47411",
+   "sha256": "1slw2pawlcx9zfvsazsir2kj32g30b80c7a0yiqyrd7cv1hjnr8g"
   }
  },
  {
@@ -43482,22 +43910,22 @@
  },
  {
   "ename": "grammarly",
-  "commit": "1bbf7e3434cea3d0f6f72747ea653188ce25f68f",
-  "sha256": "0h0gikvbyraflm921jmf2jkj1nfgxsdq1ybih449zbhxkvb494d4",
+  "commit": "6bfa47f73110bdf2ca1b223dbed16f73c08a12f2",
+  "sha256": "14cmvd50g3v7c6d96mqck4d0pbjvs92s4axkhwc9zw1h2sl4wni2",
   "fetcher": "github",
-  "repo": "jcs-elpa/grammarly",
+  "repo": "emacs-grammarly/grammarly",
   "unstable": {
    "version": [
-    20201028,
-    612
+    20210219,
+    1713
    ],
    "deps": [
     "request",
     "s",
     "websocket"
    ],
-   "commit": "cda079ea8e14455230108994c1bba53ba63a3bdc",
-   "sha256": "1c6c1bp23r6kpp5xk65njcc9prxgglkdzb9k4px961mbmc4s8hsl"
+   "commit": "e11a5a67307f05e08812be190b23460a1bf97687",
+   "sha256": "10ral5vipq3jvg3l8l2vgia97dpsjzkjvidp63n5z6mpjdwblka1"
   },
   "stable": {
    "version": [
@@ -43877,8 +44305,8 @@
     20200725,
     725
    ],
-   "commit": "7a37b76342ebcc30b08b1a6a7d8a043d7fede5b2",
-   "sha256": "0mcyj8g1d124zpif9m4x911d877fdf3hahdpp76grsvn2qpzq2az"
+   "commit": "98d566db769b865f102a0c6802a08ebce8ae5e7f",
+   "sha256": "0dh0a2msrbr31lzrp9b0xrp78g4h02qcsxjjzgmqyb6fqzhbr3kd"
   },
   "stable": {
    "version": [
@@ -44239,14 +44667,14 @@
   "repo": "tmalsburg/guess-language.el",
   "unstable": {
    "version": [
-    20210131,
-    1100
+    20210308,
+    1514
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "e423be90a4c517f8fb032ba4ea6d776a72db03f9",
-   "sha256": "12calq514nxd2vkskj497r38v887sz4bg2m4gp2lllw929wj4wpn"
+   "commit": "7e511d23ee4315a79081c53596398c471572fb0f",
+   "sha256": "03bm6j8d1v5z1gz1chlpp7s3jzi0lnq6nqdw8r7z1ik5si59dvj5"
   }
  },
  {
@@ -44321,8 +44749,8 @@
   "repo": "alezost/guix.el",
   "unstable": {
    "version": [
-    20201222,
-    907
+    20210224,
+    1601
    ],
    "deps": [
     "bui",
@@ -44331,8 +44759,8 @@
     "geiser",
     "magit-popup"
    ],
-   "commit": "bb2a0539f8d68b2292b3d0f3174c139b4c304028",
-   "sha256": "1qf584slf4lqg4qgxj7vblmx0f0jgas03m5cc93a3wfkgkfm19w6"
+   "commit": "8ce6d219e87c5097abff9ce6f1f5a4293cdfcb31",
+   "sha256": "0awbd8x154c4dk4av7inpgd63n07xzng84vvc8qckmgljknc0j7k"
   },
   "stable": {
    "version": [
@@ -44504,8 +44932,8 @@
    "deps": [
     "s"
    ],
-   "commit": "9079bc333e715a13e57ab366522b15d0307e32cd",
-   "sha256": "0qigmp1fwphp909vq0h4kj5m97knnwjvjw3w9d1i074gwdq54j9g"
+   "commit": "847fd910e9d0ac76e2cfeb87512e6923a39d7d5f",
+   "sha256": "1h2j1gbs47l5njny174146b2naf1wv3bgwv932abhjamj7vl06mq"
   },
   "stable": {
    "version": [
@@ -44551,11 +44979,11 @@
   "repo": "clarete/hackernews.el",
   "unstable": {
    "version": [
-    20210117,
-    1834
+    20210226,
+    1226
    ],
-   "commit": "c9c2bb0f13f5bd64c74dbdf945d9613192c0e454",
-   "sha256": "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"
+   "commit": "cea521750eddb3a70ccd38789d12b09bbdc7e906",
+   "sha256": "0mc9v8az97kap11f8np55xkbrl4mbiy6jfg76jaagkdsfizqpx5a"
   },
   "stable": {
    "version": [
@@ -44946,11 +45374,11 @@
   "repo": "haskell/haskell-mode",
   "unstable": {
    "version": [
-    20201230,
-    342
+    20210325,
+    2112
    ],
-   "commit": "3a019e65b504861d7ea23afbfecd14e5ef63e846",
-   "sha256": "011x9mp4ili0g9dq6ql33dq7xgv479di37phai0q282hkh5487q0"
+   "commit": "1baa12abfa2c81128e5b13d1351f2978a4a54b4f",
+   "sha256": "12lalrjbf018wkc40pqmpc2jrm64avk0smkili4cqkhspcidci8s"
   },
   "stable": {
    "version": [
@@ -44969,15 +45397,15 @@
   "repo": "haskell/haskell-snippets",
   "unstable": {
    "version": [
-    20160919,
-    22
+    20210228,
+    344
    ],
    "deps": [
     "cl-lib",
     "yasnippet"
    ],
-   "commit": "07b0f460b946fd1be26c29652cb0468b47782f3a",
-   "sha256": "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"
+   "commit": "1c29c4a68ce89848b8d371c6510d1de3b586c8b3",
+   "sha256": "1lwnggarmavyf164cfzbzzkq9ffahhd3bz7gw644czs49sndcawf"
   },
   "stable": {
    "version": [
@@ -45280,30 +45708,30 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20210212,
-    659
+    20210326,
+    1959
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "df4f34bc1d6d6478ad8ee543c358314da040fbe1",
-   "sha256": "17i50b87ycqvb8x69qxbk9zq44k2q7d308dm06ny774mafcprrj9"
+   "commit": "98af298c517148fbb31774a548c85ecdc1bcf8ab",
+   "sha256": "0gdi08krvk648fq4hk2b3aiks6plff9cpixghwsgin6rl3k33h67"
   },
   "stable": {
    "version": [
     3,
     7,
-    0
+    1
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "5ad6c83681fda7bfd5a745fedecaa924630253dd",
-   "sha256": "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y"
+   "commit": "8b0b9953a71ba07c24fdfc4d26fab21fb66e4d1f",
+   "sha256": "0b8sfpvy02ijk9xi9b44762b718jqfq063wcg75dk3q452d27s1h"
   }
  },
  {
@@ -45383,14 +45811,14 @@
   "repo": "emacsorphanage/helm-ag",
   "unstable": {
    "version": [
-    20200915,
-    1650
+    20210305,
+    334
    ],
    "deps": [
     "helm"
    ],
-   "commit": "db52f860b50aa4d5edfa1c6c97802d36aef7f78b",
-   "sha256": "1l95vskrvk88a2glpn2pdylcpy7qxqg5qgmjnh9w24xfyc77g513"
+   "commit": "51e164b4bb1a9826fe8b39c0d02b4064c9352b9f",
+   "sha256": "0371s2y06pipjn0ka8c1a0r6g8migz5sbm8hqqilng1cr1dm3x7a"
   },
   "stable": {
    "version": [
@@ -45430,14 +45858,14 @@
   "repo": "emacs-helm/helm-apt",
   "unstable": {
    "version": [
-    20200823,
-    1546
+    20210324,
+    1929
    ],
    "deps": [
     "helm"
    ],
-   "commit": "42923e367f6ccc1c94b1a5c070993e0ad96c9ea3",
-   "sha256": "1q5pxd0vjxqrvk0gf0nxbc9b77xidaijkddh6zz3j7fbjmzyrp4x"
+   "commit": "c952b5dc26015bc9c947973df99246212d276b63",
+   "sha256": "0k095s738vv3cgvs1p40ivh68kaslc0xb5kplxp67ic89rg49w9i"
   },
   "stable": {
    "version": [
@@ -45582,8 +46010,8 @@
     "cl-lib",
     "helm"
    ],
-   "commit": "94807a3d3419f90b505eddc3272e244475eeb4f2",
-   "sha256": "08wfvqdzs05bmfjjaqfxffjbl4j7632bnpncs9khrh6lifz03xh2"
+   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
+   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
   },
   "stable": {
    "version": [
@@ -46188,26 +46616,26 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20210211,
-    1417
+    20210324,
+    1445
    ],
    "deps": [
     "async"
    ],
-   "commit": "df4f34bc1d6d6478ad8ee543c358314da040fbe1",
-   "sha256": "17i50b87ycqvb8x69qxbk9zq44k2q7d308dm06ny774mafcprrj9"
+   "commit": "98af298c517148fbb31774a548c85ecdc1bcf8ab",
+   "sha256": "0gdi08krvk648fq4hk2b3aiks6plff9cpixghwsgin6rl3k33h67"
   },
   "stable": {
    "version": [
     3,
     7,
-    0
+    1
    ],
    "deps": [
     "async"
    ],
-   "commit": "5ad6c83681fda7bfd5a745fedecaa924630253dd",
-   "sha256": "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y"
+   "commit": "8b0b9953a71ba07c24fdfc4d26fab21fb66e4d1f",
+   "sha256": "0b8sfpvy02ijk9xi9b44762b718jqfq063wcg75dk3q452d27s1h"
   }
  },
  {
@@ -46695,15 +47123,15 @@
   "repo": "emacs-helm/helm-exwm",
   "unstable": {
    "version": [
-    20200325,
-    1022
+    20210215,
+    858
    ],
    "deps": [
     "exwm",
     "helm"
    ],
-   "commit": "00ddb4d2a127087a0b99f0a440562bd54408572d",
-   "sha256": "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"
+   "commit": "5b35a42ff10fbcbf673268987df700ea6b6288e8",
+   "sha256": "1j7a3jn1599cy7n2q42vqc9kwz252k018vy3sbj8a8v0cz2xvy5z"
   },
   "stable": {
    "version": [
@@ -47487,16 +47915,16 @@
   "repo": "yyoncho/helm-icons",
   "unstable": {
    "version": [
-    20210125,
-    1913
+    20210315,
+    1339
    ],
    "deps": [
     "dash",
     "f",
     "treemacs"
    ],
-   "commit": "14df05527e1c629d8eb8e5937de97fa13aeedbe8",
-   "sha256": "1ia72l8n9n59ikq4gcjqpc9asnyyykkg4nzs5bzw2wf6i41pn4dl"
+   "commit": "7e8d1e213a164aa63b868e610ef8a4fd1ff58769",
+   "sha256": "0g5n9f8vfv3zbylxh6w2xrym4fzd4jqx5n4g6gjp8sscaw5zaxkd"
   }
  },
  {
@@ -47723,16 +48151,16 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20200620,
-    915
+    20210305,
+    1705
    ],
    "deps": [
     "dash",
     "helm",
     "lean-mode"
    ],
-   "commit": "15bee87dc4080b87c543964375b7ce162317ab6f",
-   "sha256": "127b7ny5mr1y14yg54gy7an3lk3928w4y9a22295i4v4zgj704j4"
+   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
+   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
   }
  },
  {
@@ -47799,14 +48227,14 @@
   "repo": "emacs-helm/helm-ls-git",
   "unstable": {
    "version": [
-    20200519,
-    912
+    20210324,
+    1515
    ],
    "deps": [
     "helm"
    ],
-   "commit": "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed",
-   "sha256": "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"
+   "commit": "48696448e52d266f5b2cb5ee1390071dab4d16e8",
+   "sha256": "1nhza9af2xfwq1idk4g69kr4wyyf9samk3vi40jvkfnwap4w3ip4"
   },
   "stable": {
    "version": [
@@ -47878,16 +48306,16 @@
   "repo": "emacs-lsp/helm-lsp",
   "unstable": {
    "version": [
-    20200910,
-    518
+    20210226,
+    2027
    ],
    "deps": [
     "dash",
     "helm",
     "lsp-mode"
    ],
-   "commit": "fc09aa0903ee6abe4955e9a6062dcea667ebff5a",
-   "sha256": "1gcs6aky8h6g9wkrqjl8j50zm4lnvnjv4xcfxxg2z0j7vln81pbx"
+   "commit": "74a02f89088484c42ffc184ece338b73abd4d6f6",
+   "sha256": "1p130xj03wh3pqwf1bb3xl86pqnv1kpmn90mwfg0g52jwl0grv6b"
   },
   "stable": {
    "version": [
@@ -48115,8 +48543,8 @@
     "helm",
     "nixos-options"
    ],
-   "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
-   "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+   "commit": "053a2d5110ce05b7f99bcc2ac4804b70cbe87916",
+   "sha256": "05vxac2llww4ba5w0dmf0hza60l5i847hfabs0q5i8kzmw4f8s8z"
   },
   "stable": {
    "version": [
@@ -48202,14 +48630,14 @@
   "repo": "emacs-helm/helm-org",
   "unstable": {
    "version": [
-    20200311,
-    633
+    20210324,
+    1927
    ],
    "deps": [
     "helm"
    ],
-   "commit": "b7a18dfc17e8b933956d61d68c435eee03a96c24",
-   "sha256": "0sbk8c05v28xz7mdpzrlawn5iwf3hkkr1fj8lsi861l4fhjbmcap"
+   "commit": "d67186d3a64e610c03a5f3d583488f018fb032e4",
+   "sha256": "07wsz9hbv83m3k03cxvlr2hxd2lkxx9qpphn9j6axmysi9i5bc8q"
   },
   "stable": {
    "version": [
@@ -48231,8 +48659,8 @@
   "repo": "akirak/org-multi-wiki",
   "unstable": {
    "version": [
-    20210210,
-    1119
+    20210228,
+    1853
    ],
    "deps": [
     "dash",
@@ -48242,8 +48670,8 @@
     "org-multi-wiki",
     "org-ql"
    ],
-   "commit": "3b97aa047233d521e937b6040cf9085e77507f28",
-   "sha256": "0rq37k0ydksc2wsavy4g6wydr2hxcclbipab14qdldvrif35sr24"
+   "commit": "bf8039aadddaf02569fab473f766071ef7e63563",
+   "sha256": "0hmn9yy2d7wy6zz81ddd96rksmvs9k5529dfqrkrpl4v3bn3g52d"
   },
   "stable": {
    "version": [
@@ -48434,29 +48862,29 @@
   "repo": "emacs-helm/helm-pass",
   "unstable": {
    "version": [
-    20190315,
-    1335
+    20210221,
+    1655
    ],
    "deps": [
     "auth-source-pass",
     "helm",
     "password-store"
    ],
-   "commit": "ed5798f2d83937575e8f23fde33323bca9e85131",
-   "sha256": "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"
+   "commit": "4ce46f1801f2e76e53482c65aa0619d427a3fbf9",
+   "sha256": "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"
   },
   "stable": {
    "version": [
     0,
-    3
+    4
    ],
    "deps": [
     "auth-source-pass",
     "helm",
     "password-store"
    ],
-   "commit": "ed5798f2d83937575e8f23fde33323bca9e85131",
-   "sha256": "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"
+   "commit": "4ce46f1801f2e76e53482c65aa0619d427a3fbf9",
+   "sha256": "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"
   }
  },
  {
@@ -49155,8 +49583,8 @@
   "repo": "emacs-helm/helm-searcher",
   "unstable": {
    "version": [
-    20210124,
-    1648
+    20210221,
+    923
    ],
    "deps": [
     "f",
@@ -49164,8 +49592,8 @@
     "s",
     "searcher"
    ],
-   "commit": "3c0e4997126b5e7ba2db2dba8f1dbc5cb92d2459",
-   "sha256": "1fcinlxrvzmlrn17gfpv3n2wf9si084p6yi3jg0jzagnprris8lx"
+   "commit": "181f60cb8505aec05393a9dbf414733d19f76d2a",
+   "sha256": "06bnnbay56ngiddkvvwmy3fv4v2gjss8gm7gjcp2064m9njgw5mx"
   },
   "stable": {
    "version": [
@@ -49251,6 +49679,24 @@
   }
  },
  {
+  "ename": "helm-shell-history",
+  "commit": "93d2ca7bf89a96a8a2eac59d2a34d8f152fa9752",
+  "sha256": "1krb7i00rf9dwq9pq8zppiyhhahpk661qbg8hazg7bpsb58kxy8r",
+  "fetcher": "github",
+  "repo": "anoopemacs/helm-shell-history",
+  "unstable": {
+   "version": [
+    20210214,
+    948
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "0c861f3db721e54053fc65f5651cf548cc1cb600",
+   "sha256": "00dkwym5xkvxa3w4dgpbk22rhrwl7v73cv6ay3pqcv7rjcc2m3s8"
+  }
+ },
+ {
   "ename": "helm-slime",
   "commit": "c35d43a7a8219de4a7f675147f598966aaecb9db",
   "sha256": "0qv4c1dd28zqbjxpshga967szrh75a4k51n4x86xkbax7ycca4hh",
@@ -49742,16 +50188,16 @@
   "repo": "emacs-helm/helm-w3m",
   "unstable": {
    "version": [
-    20181029,
-    726
+    20210315,
+    723
    ],
    "deps": [
     "cl-lib",
     "helm",
     "w3m"
    ],
-   "commit": "c15d926631198d6d759ec8881837bcca5a64963b",
-   "sha256": "0qaqcwhwmckfmg3axiad35azn0l74k1niw4ix0v1bn2vqrxanqcw"
+   "commit": "0a25a2b1df9bc660a90d633beb301b3815556e4e",
+   "sha256": "0cdfk1r2rcc5hflwjpmsijss6xf5lwzn7x68jq4b4xdlckkqf9d7"
   },
   "stable": {
    "version": [
@@ -49941,18 +50387,17 @@
   "repo": "Wilfred/helpful",
   "unstable": {
    "version": [
-    20201012,
-    614
+    20210319,
+    802
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "elisp-refs",
     "f",
     "s"
    ],
-   "commit": "584ecc887bb92133119f93a6716cdf7af0b51dca",
-   "sha256": "04kk8rrkgkggjxqppivc4dbn13dkc786dv0masby0wy58vlxpsfv"
+   "commit": "7e4b1f0d5572a4e2b8ee7a9b084ef863d0315a73",
+   "sha256": "0qrz3klqs94aj6bxh49qymf9fvpa73xpp6djkxwpypgb2wv8hk6n"
   },
   "stable": {
    "version": [
@@ -50092,14 +50537,14 @@
   "repo": "jojojames/hg-histedit",
   "unstable": {
    "version": [
-    20190707,
-    11
+    20210302,
+    2334
    ],
    "deps": [
     "with-editor"
    ],
-   "commit": "2448d00bc390fed3e53091d968ec1222c8e7e35b",
-   "sha256": "0qp29yiyplv8h0z2yk5h0473a7nj401h14gi3fqsxqq9brx3s9jy"
+   "commit": "a05149483b9c5f7848ece0ba6028c900595a6a25",
+   "sha256": "04zps0d4s99f5a8ahrpyf8b6qw0c1y7rd1bsaq9nc6m4qblsvwc8"
   }
  },
  {
@@ -50110,11 +50555,11 @@
   "repo": "omajid/hgignore-mode",
   "unstable": {
    "version": [
-    20160501,
-    7
+    20210314,
+    431
    ],
-   "commit": "7aa9f3b8a9c610dbd80b952061b40194e1d9c5bd",
-   "sha256": "0l22sqi9lmy25idh231p0hgq22b3dxwb9wq60yxk8dck9zlkv7rr"
+   "commit": "2c5aa4c238848f5b4f2955afcfb5f21ea513653b",
+   "sha256": "0jn9rzhrmmv4lf7rdapdjclk6623d1mir2lq3c46428skhzjlph7"
   }
  },
  {
@@ -50434,11 +50879,11 @@
   "repo": "antonj/Highlight-Indentation-for-Emacs",
   "unstable": {
    "version": [
-    20201110,
-    1327
+    20210221,
+    1418
    ],
-   "commit": "4fc4e346c17e4e975a8c8ece3d4e7240357e2869",
-   "sha256": "1laj0h8vm058miwv0pl8hsh5pyfg98h4y9szzq03ilry4ifx9jz5"
+   "commit": "d88db4248882da2d4316e76ed673b4ac1fa99ce3",
+   "sha256": "02a3r3f6nd37yx1gsr6nv168wmx5r5c7b47a5r5fw16d2zlkfmix"
   },
   "stable": {
    "version": [
@@ -50512,10 +50957,10 @@
  },
  {
   "ename": "highlight-parentheses",
-  "commit": "7fabdb05de9b8ec18a3a566f99688b50443b6b44",
-  "sha256": "1d38wxk5bwblddr74crzwjwpgyr8zgcl5h5ilywg35jpv7n66lp5",
-  "fetcher": "github",
-  "repo": "tsdh/highlight-parentheses.el",
+  "commit": "40bb1119bea79bb9e91378c99e2aa60936de013a",
+  "sha256": "0ly9d01ja517psf1sqg12wyljykixi5c6qbhahyjy7n331kkpkmr",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tsdh/highlight-parentheses.el",
   "unstable": {
    "version": [
     20210104,
@@ -50524,8 +50969,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "013ac29970d5209c14da0af6c5bb9bbbcca40c02",
-   "sha256": "01p8j248vcmbcdskr3146ag979c0m74gddy3yzp3x8hz9a4mgqx0"
+   "commit": "723abf9b6092d7e19548316de1f907ed0d67c780",
+   "sha256": "1kkxxq5cw090vw3cddzdq51f208vxw326hsqb1zi8f6z3vsm2h7s"
   },
   "stable": {
    "version": [
@@ -50586,11 +51031,11 @@
   "repo": "zk-phi/highlight-stages",
   "unstable": {
    "version": [
-    20161212,
-    1457
+    20210306,
+    418
    ],
-   "commit": "29cbc5b78261916da042ddb107420083da49b271",
-   "sha256": "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"
+   "commit": "95daa710f3d8fc83f42c5da38003fc71ae0da1fc",
+   "sha256": "0yhwsbpnlsfnbppviwnn0y3gm02rds684841301sbmawplz457z7"
   }
  },
  {
@@ -50776,10 +51221,10 @@
  },
  {
   "ename": "history",
-  "commit": "f51d4cc6521546c99197adeb35459fcd53bd67d4",
-  "sha256": "0s8pcz53bk1w4h5847204vb6j838vr8za66ni1b2y4pas76zjr5g",
+  "commit": "d1172402073d66c671de75ddf5c9b6ac3f6d64cd",
+  "sha256": "14n0h6lca450w68lk20q98bdbkfadmsqmv1sb73m0pnvzyh5c04z",
   "fetcher": "github",
-  "repo": "boyw165/history",
+  "repo": "tcw165/history",
   "unstable": {
    "version": [
     20160821,
@@ -50887,11 +51332,11 @@
   "repo": "ideasman42/emacs-hl-block-mode",
   "unstable": {
    "version": [
-    20201126,
-    818
+    20210320,
+    1051
    ],
-   "commit": "82f42045c11ad8c6f13db3a32dcda970a378d164",
-   "sha256": "1ydks5mrzsxj7q3kvv8ji6vy4jxfra7lhd3vfyqldp3inhz3rpkz"
+   "commit": "717b4f743c633362a8b28c883c454c5ef3711722",
+   "sha256": "16b1hnxzfygn3pgck5d8m612iwn42bxsx0zhdqrzmjl9sjvvps4h"
   }
  },
  {
@@ -51060,16 +51505,16 @@
   "repo": "thanhvg/emacs-hnreader",
   "unstable": {
    "version": [
-    20200726,
-    654
+    20210319,
+    527
    ],
    "deps": [
     "org",
     "promise",
     "request"
    ],
-   "commit": "7ff808d4728ce4e269b6d99a73604063dd9b374a",
-   "sha256": "0kxx8pvl99qdbldsn6lvxj69j1jpmmc33wxcr2aw3h423ibcna3s"
+   "commit": "ae52af1424ccde2b20e88ff8c589eb772162a560",
+   "sha256": "12h1lvm6bwdln7jnl1adl1vqgi603yvsvb4dbg9yvy1np8b6mj7r"
   }
  },
  {
@@ -51140,16 +51585,16 @@
   "repo": "alhassy/holy-books",
   "unstable": {
    "version": [
-    20210114,
-    1607
+    20210227,
+    2225
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "3a31424fcf889e594067de314acb4fec238d510b",
-   "sha256": "1n69j4yx2dyyhvs649n17lqb1b5nwdrsfrj0a3vhyvd3q56j3fkl"
+   "commit": "53ee29d1b1a1a9cbd664c318b01aa1c13011efff",
+   "sha256": "0n7qnr23h22lsp2n19z3j30zq6l2rvqj1mldkaki0gvw5whi4r3w"
   }
  },
  {
@@ -51378,16 +51823,16 @@
   "repo": "thanhvg/emacs-howdoyou",
   "unstable": {
    "version": [
-    20210205,
-    1720
+    20210217,
+    1723
    ],
    "deps": [
     "org",
     "promise",
     "request"
    ],
-   "commit": "63addedefcad86fe3cd64b29d87a500849124d4b",
-   "sha256": "162sqbvxxh19fyg6is1hnqzck01mglw2cahs07lsxmfh58gw2lx6"
+   "commit": "27e9e015b930175896c07536c25e379a4e1997af",
+   "sha256": "14f3fqz8sjmjh7si5gk31fh7bnvc9p1rfd9p2l39zvasvk1sxki0"
   }
  },
  {
@@ -51398,14 +51843,14 @@
   "url": "https://scm.osdn.net/gitroot/howm/howm.git",
   "unstable": {
    "version": [
-    20201231,
-    1042
+    20210217,
+    1128
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c11a6b7ad3d683d2910572fa7f2a87ffdf503317",
-   "sha256": "0fjwgxaf7lzby6hz96xz9b97mv4vhczs14cq6j6vxygrkykafwam"
+   "commit": "bac98b873d07baf039fe252b9d67f71c235dca06",
+   "sha256": "0rhyhkm84fsff5lyvb0z9rnbhmqn4ix0d8wixzll2n2yclj9d9my"
   }
  },
  {
@@ -51856,11 +52301,11 @@
   "repo": "Riyyi/emacs-hybrid-reverse",
   "unstable": {
    "version": [
-    20210107,
-    1435
+    20210325,
+    2311
    ],
-   "commit": "30072ccf0a49bb47360dce12965db1b1e2f2b57d",
-   "sha256": "16p7k3lwlykpgrc2pkbdx7z209bzps9ksizjhgbcfbkn67xpavka"
+   "commit": "81e6651203ef666af4ddc63dc726cfb1443fe16b",
+   "sha256": "0m7k91kwhy8v602li3rfzmcb4qb443w2iv8qh38ncsl0l6bsc982"
   }
  },
  {
@@ -52025,14 +52470,14 @@
   "repo": "zzkt/i-ching",
   "unstable": {
    "version": [
-    20210208,
-    1251
+    20210222,
+    1519
    ],
    "deps": [
     "request"
    ],
-   "commit": "706052ba196797fd32e6d6d05e059b1f5dd4f2c9",
-   "sha256": "16kkdzd49b91dvby4mfghpq4phwilzyqaciar8jvk5sfiilyw7yi"
+   "commit": "51a3180ed07ae9f8b7ff3f2b822d998495864a07",
+   "sha256": "1rrykszzcyvrmks2clrpdq5kdldcqp38wc908bhq2b4qw7w3d7sw"
   }
  },
  {
@@ -52212,11 +52657,11 @@
   "repo": "jojojames/ibuffer-sidebar",
   "unstable": {
    "version": [
-    20180219,
-    131
+    20210215,
+    1849
    ],
-   "commit": "7ddf1b5a158b33e9a7d3fe5dad7ea626a464d2bc",
-   "sha256": "18rl379bfilzvyi4f4kmy74l4vq2q8hhy5i8kflcgvn0ibipwqjz"
+   "commit": "59e20690fc4f5ccd751e7a13a60664b97f053a1c",
+   "sha256": "1z6japr7n950222x33jinb34z7j6n5spj9cn8nq8f8yf8rgp6n2j"
   }
  },
  {
@@ -52310,11 +52755,11 @@
   "repo": "oantolin/icomplete-vertical",
   "unstable": {
    "version": [
-    20210212,
-    1737
+    20210227,
+    2146
    ],
-   "commit": "708d2b673f5e993c8894817b083dd08eef66cebe",
-   "sha256": "0hxsmk97cis6k34a0iq2pz97nkhpljkbf8x306ra2y5sf6a82rcf"
+   "commit": "e490b01f7420bc15bc8e7b4594964208c3d31107",
+   "sha256": "1b069vnjlwnwk62332ndwizjp44dhjxvajv2nndpxqrkpqg9s8jb"
   },
   "stable": {
    "version": [
@@ -52333,27 +52778,27 @@
   "repo": "plandes/icsql",
   "unstable": {
    "version": [
-    20210115,
-    137
+    20210304,
+    1843
    ],
    "deps": [
     "buffer-manage",
     "choice-program"
    ],
-   "commit": "41ca05a6d234c55c2963599648a9e3c433ad5902",
-   "sha256": "0skazm21xjp8w80g4iqpi1dj48xnhka03l46v6zz48v5686iqv5d"
+   "commit": "759a63d373681e09d71e0f5522d063a811d7127e",
+   "sha256": "191cwfjrcv2yvgh0f6n0f2s64w6r2v19vvc41x4g1x48szzrzbg2"
   },
   "stable": {
    "version": [
     0,
-    3
+    6
    ],
    "deps": [
     "buffer-manage",
     "choice-program"
    ],
-   "commit": "41ca05a6d234c55c2963599648a9e3c433ad5902",
-   "sha256": "0skazm21xjp8w80g4iqpi1dj48xnhka03l46v6zz48v5686iqv5d"
+   "commit": "bc600ecb6e6134e98dfb67f10301bde5a4e07adf",
+   "sha256": "0j27iiwgzysd9ymb4nc0m1300sqz0gqmri7ky9zfgv2g5gpjs4w0"
   }
  },
  {
@@ -52529,10 +52974,10 @@
   "stable": {
    "version": [
     1,
-    1
+    3
    ],
-   "commit": "ad9baaec10e06be3f85db97b6c8fd970cf20df77",
-   "sha256": "1ffmsmi31jc0gqnbdxrd8ipsy790bn6hgq3rmayylavmdpg3qfd5"
+   "commit": "d1244243e042b8d5b6b991db752a17a44ea169bc",
+   "sha256": "1gl646lj1i2yxmgrgwd0sz9abq3zqf9z4qkl6ilp49ijk4cks63g"
   }
  },
  {
@@ -52871,15 +53316,15 @@
   "repo": "idris-hackers/idris-mode",
   "unstable": {
    "version": [
-    20200522,
-    808
+    20210223,
+    850
    ],
    "deps": [
     "cl-lib",
     "prop-menu"
    ],
-   "commit": "b77eadd8ac2048d5c882b4464bd9673e45dd6a59",
-   "sha256": "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"
+   "commit": "80aabd2566082aa67d17eccdd80e9f1fb10c9ec8",
+   "sha256": "1cmmasfmgnzhixhczigz1c2jzhr9yj4v6mwvgxs99vbg2k3p9rcq"
   },
   "stable": {
    "version": [
@@ -53172,11 +53617,11 @@
   "repo": "QiangF/imbot",
   "unstable": {
    "version": [
-    20210210,
-    909
+    20210319,
+    126
    ],
-   "commit": "4083ad2e5a840467668a7c2fb809177726a7c519",
-   "sha256": "1hcfhlvnqbfkym96bl9qpvcarijbqva2q80ld8vi3hmr2ghrq30y"
+   "commit": "0fdc71bfa66ecc1f8a54cdcd2458eb47eab41ecd",
+   "sha256": "1ibd9i75x6gb0nprbdi0giklllfwsmvghi3fm19qm7hiw3kg9j3m"
   }
  },
  {
@@ -53241,25 +53686,25 @@
   "repo": "bmag/imenu-list",
   "unstable": {
    "version": [
-    20190115,
-    2130
+    20210325,
+    1536
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "46008738f8fef578a763c308cf6695e5b4d4aa77",
-   "sha256": "14l3yw9y1nk103s7z5i1fmd6kvlb2p6ayi6sf9l1x1ydg9glrpl8"
+   "commit": "b03b86aee6ac30067906dddc385db8188657d023",
+   "sha256": "0vi4cj6cijra3d0khiqc185iqzhkzillbwnhglxi82r4zrzwnyzg"
   },
   "stable": {
    "version": [
     0,
-    8
+    9
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "27170d27c9594989587c03c23f753a809f6a0e10",
-   "sha256": "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"
+   "commit": "6cded436010a39592175238e4d02263a7cdb44c4",
+   "sha256": "09x1n2bgwgximcmnrfn32d5hr6wa0iz8acaj78a93azzx065xxgk"
   }
  },
  {
@@ -53532,11 +53977,11 @@
   "repo": "jcs-elpa/indent-control",
   "unstable": {
    "version": [
-    20210117,
-    356
+    20210309,
+    1151
    ],
-   "commit": "ec9238bb204875d0d789e077c84c1d2ffe4e8173",
-   "sha256": "1r61jvbx57gqlfq2kkbxwz4rsidj6dig4czkxjnb01nigzp0y58c"
+   "commit": "383ea506a6e6145bbb6327a7b1e509b40edf446b",
+   "sha256": "1828wh72ij2dhrvlwzx70j6q2gjqs96dk2h6wk508pphqw3yn29x"
   },
   "stable": {
    "version": [
@@ -53688,8 +54133,8 @@
   "repo": "NicolasPetton/Indium",
   "unstable": {
    "version": [
-    20201103,
-    2040
+    20210309,
+    1210
    ],
    "deps": [
     "company",
@@ -53698,8 +54143,8 @@
     "json-process-client",
     "seq"
    ],
-   "commit": "b870d1ed6b350d3753e7a148c61c373ca76ba78a",
-   "sha256": "1fscqkpk3z6pxgy1kf548jbck5p57k02badm7j8ggixbvng63d3g"
+   "commit": "8499e156bf7286846c3a2bf8c9e0c4d4f24b224c",
+   "sha256": "1hii97gz1qpr9nbnpb6am4i6a6vwxnbzcy65gyjvsfc122m3qn03"
   },
   "stable": {
    "version": [
@@ -53741,14 +54186,14 @@
   "repo": "clojure-emacs/inf-clojure",
   "unstable": {
    "version": [
-    20200801,
-    1128
+    20210322,
+    1421
    ],
    "deps": [
     "clojure-mode"
    ],
-   "commit": "e291da3cd0c11271ad7372594139974057612172",
-   "sha256": "1cnr72s3d224l7wk742hlj5mlgr65pchfc2w6dz9gx3ww6by9b8l"
+   "commit": "1e99b8246bb1fe7666d613a9ae566e2a939fc2bb",
+   "sha256": "0bqznd3mn0fd8km5in9k2i87pxcjv6wszdgjp4ajzw742dznkb2f"
   },
   "stable": {
    "version": [
@@ -53794,6 +54239,30 @@
   }
  },
  {
+  "ename": "inf-elixir",
+  "commit": "9d4add1ea6aeca5f19e2827628751ea321912219",
+  "sha256": "0vaxp92d2v094gqwdw2xvfrh13iqshr94hab81135a9pgggy4rc9",
+  "fetcher": "github",
+  "repo": "J3RN/inf-elixir",
+  "unstable": {
+   "version": [
+    20210315,
+    1723
+   ],
+   "commit": "b526ce852886d1863163e054fcbbcbb83c55b32a",
+   "sha256": "1kmv2j1g299wb8dqq43zk61jigkfl9rnqxbfnclzsqfdlnhvw6ii"
+  },
+  "stable": {
+   "version": [
+    2,
+    1,
+    0
+   ],
+   "commit": "9c21ae6d7a1313c856fd508880ee121fbea99f4d",
+   "sha256": "0w6fj1sh1pdsrk5sis2zkbdz0ixbpndaizvlqv2riw3sgpnc41f3"
+  }
+ },
+ {
   "ename": "inf-mongo",
   "commit": "3416586d4d782cdd61a56159c5f80a0ca9b3ddf4",
   "sha256": "0f12yb3dgkjnpr4d36jwfnncqzz7kl3bnnrmjw7hv223p2ryzwpx",
@@ -53816,11 +54285,11 @@
   "repo": "nonsequitur/inf-ruby",
   "unstable": {
    "version": [
-    20201228,
-    1237
+    20210314,
+    123
    ],
-   "commit": "1fc972ecda6a2155806d75d202481327703a0681",
-   "sha256": "0kv98g30kgfpyd0ghiclk17ac2y17j7bi77km59gdw5i1b5k1a27"
+   "commit": "c6990a60c740b2d69495e34e95b29f13014b3cde",
+   "sha256": "05nz7hvly47n7d945gdb1x8xgzla5r9k629if81rgjh99w24dpgc"
   },
   "stable": {
    "version": [
@@ -54036,8 +54505,8 @@
     20210204,
     354
    ],
-   "commit": "13c0135ddd96519ddeb993ee21163d6e11b4f464",
-   "sha256": "1zwj26mxc4md4ar79pfdi8i4v2qr9bdrqjb8ykal524gqm79xsb9"
+   "commit": "7e4c8b0d0a43b6f1c6c4d6dbd2f3bf5ce7f20067",
+   "sha256": "1qc54wx5f1yvap9hxi1k5qqsascxxs9lq317qpzipmbazw7qk7ch"
   },
   "stable": {
    "version": [
@@ -54168,8 +54637,8 @@
     20210109,
     1112
    ],
-   "commit": "c010838770bad2a3fc37fcb5c497bf92d5aca27b",
-   "sha256": "0pf5q4n4p2szmvgh6zcfb7q9p58fac3k5bvqxq6wialz14m779lr"
+   "commit": "e8ae7b2345b8b21dd866fc043906ceecd40832c7",
+   "sha256": "19fxqb6x05480wa4dp4mv2a6cw5sgc8bsm3syqpbhmflymfvxnsy"
   }
  },
  {
@@ -54439,8 +54908,8 @@
     20191129,
     958
    ],
-   "commit": "383eb955bf0084a6e6ec03c9bd34511e20e0407d",
-   "sha256": "11bm00pw0bg8z6b5gyfmb2iss5libp6m4x0mc8agazabxzhmzyx9"
+   "commit": "e1791a96a2633a9f5ea99fc0a20ebacedcefdaaa",
+   "sha256": "1biysf8cqfw4q7d2dnlisviign3n5knvrb0g6zdalzv8pnd1cxqr"
   },
   "stable": {
    "version": [
@@ -54695,15 +55164,15 @@
   "repo": "Sarcasm/irony-mode",
   "unstable": {
    "version": [
-    20201018,
-    1707
+    20210321,
+    1750
    ],
    "deps": [
     "cl-lib",
     "json"
    ],
-   "commit": "76fd37f9616f5c851106654c8fb5eb98670d351f",
-   "sha256": "1kbskyfw04l8cra6phlxblhkn38p5l6mm2xyjdsxxlfhcc0vwi02"
+   "commit": "ec6dce7ee16ffaa9a735204534aa4aa074d14487",
+   "sha256": "0pabzcr06jywa3n4bax8dxxkmb1ffq3cpw1jnxnqpx18h96pfar2"
   },
   "stable": {
    "version": [
@@ -55018,20 +55487,20 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210202,
-    1423
+    20210311,
+    1638
    ],
-   "commit": "e0374dc0bbcd8ab0ec24baf308d331251d4f9c49",
-   "sha256": "1zvcp35vnnz5iybihrw0r21pvkghn73ni2m9jkgf352n8zza7z9g"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
   },
   "stable": {
    "version": [
     0,
     13,
-    0
+    4
    ],
-   "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
-   "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -55042,15 +55511,28 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200615,
-    938
+    20210310,
+    1230
    ],
    "deps": [
     "avy",
     "ivy"
    ],
-   "commit": "e0374dc0bbcd8ab0ec24baf308d331251d4f9c49",
-   "sha256": "1zvcp35vnnz5iybihrw0r21pvkghn73ni2m9jkgf352n8zza7z9g"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
+  },
+  "stable": {
+   "version": [
+    0,
+    13,
+    4
+   ],
+   "deps": [
+    "avy",
+    "ivy"
+   ],
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -55069,8 +55551,8 @@
     "cl-lib",
     "swiper"
    ],
-   "commit": "94807a3d3419f90b505eddc3272e244475eeb4f2",
-   "sha256": "08wfvqdzs05bmfjjaqfxffjbl4j7632bnpncs9khrh6lifz03xh2"
+   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
+   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
   },
   "stable": {
    "version": [
@@ -55397,28 +55879,28 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20200608,
-    1010
+    20210311,
+    1108
    ],
    "deps": [
     "hydra",
     "ivy"
    ],
-   "commit": "e0374dc0bbcd8ab0ec24baf308d331251d4f9c49",
-   "sha256": "1zvcp35vnnz5iybihrw0r21pvkghn73ni2m9jkgf352n8zza7z9g"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
   },
   "stable": {
    "version": [
     0,
     13,
-    0
+    4
    ],
    "deps": [
     "hydra",
     "ivy"
    ],
-   "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
-   "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -55603,27 +56085,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20200716,
-    1414
+    20210227,
+    600
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "42adc802d3ba6c747bed7ea1f6e3ffbbdfc7192d",
-   "sha256": "0v12707jwd2ynk8gp3shgarl6yp3ynal7d4jzds6l2lknr6wi50w"
+   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
+   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
   },
   "stable": {
    "version": [
     5,
-    0
+    1
    ],
    "deps": [
     "ivy",
     "prescient"
    ],
-   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
-   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+   "commit": "2c0e9fc061ab723ec532428f312974ca7d8def12",
+   "sha256": "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"
   }
  },
  {
@@ -55726,8 +56208,8 @@
   "repo": "jcs-elpa/ivy-searcher",
   "unstable": {
    "version": [
-    20210124,
-    1641
+    20210221,
+    923
    ],
    "deps": [
     "f",
@@ -55735,8 +56217,8 @@
     "s",
     "searcher"
    ],
-   "commit": "46a461eb873083bc53d7fd3a15b266c52b3cbfb4",
-   "sha256": "1qsbbpmk3211lm29mks7r3dfphyikbkkj94028748y6ngwqk1vb4"
+   "commit": "3a2f5073a0d5842a6b3c386e70cc484e3c4ea77b",
+   "sha256": "1bk8kaxqq1m76x1i4hy3jqcy05pr6dlzjd4dbyi8lrx9sxnfrnkk"
   },
   "stable": {
    "version": [
@@ -56232,14 +56714,14 @@
   "repo": "zk-phi/jaword",
   "unstable": {
    "version": [
-    20200816,
-    647
+    20210306,
+    420
    ],
    "deps": [
     "tinysegmenter"
    ],
-   "commit": "45e350895fc55f087a2102fded5b306811089a7d",
-   "sha256": "02ncm22wldx8g3iibdw92gk4hdig0209f7bmhxrhgdv8xp544c2h"
+   "commit": "783544a265f91b2e568b52311afb36e3691d5ad3",
+   "sha256": "09gn08c9wz60jc8jh5y3bv7qymp0ciz62bk5sjwkwgnq5mkpsf49"
   }
  },
  {
@@ -56525,20 +57007,19 @@
   "repo": "Emiller88/emacs-jest",
   "unstable": {
    "version": [
-    20201130,
-    1920
+    20210219,
+    1508
    ],
    "deps": [
     "cl-lib",
     "dash",
-    "dash-functional",
     "js2-mode",
     "magit-popup",
     "projectile",
     "s"
    ],
-   "commit": "b70698d25ffeaa99520d4571659abb3005657398",
-   "sha256": "1n3qn9zgc09bpblv7rmm7lxdaz2ii7wjws0vd30ppdc8dy301gfp"
+   "commit": "0fe875082e54bdbfe924808aa155b938ed90d401",
+   "sha256": "0dxzml0i4x072jwxsbv0nnj3ws1i3z1x2ybg3fqfnfvzy2vynx3w"
   }
  },
  {
@@ -56549,11 +57030,11 @@
   "repo": "rymndhng/jest-test-mode",
   "unstable": {
    "version": [
-    20200329,
-    506
+    20210228,
+    132
    ],
-   "commit": "f04d08db36715d7509fd68448f74f917c6c1a382",
-   "sha256": "1pmzls19wpg60ql0b5l6rhml8hh8mzpbc0dgylzhps1jghi055s1"
+   "commit": "fb2bacab9475410c79e6e4ca344f093f7698466d",
+   "sha256": "0m3p75659krzcyc54ri0x8bwr1zxhkrfmyz8z7z5mjpydb8qb1v8"
   }
  },
  {
@@ -56733,11 +57214,11 @@
   "repo": "Michael-Allan/Java_Mode_Tamed",
   "unstable": {
    "version": [
-    20210206,
-    1851
+    20210305,
+    646
    ],
-   "commit": "fd9be900549bb0c0a373d6fd1552295f1e8a1d08",
-   "sha256": "0g9bihlmq6bwbyzk9zr3gig5w0vaysz1gsdqacq604jls34ks491"
+   "commit": "2e5e85392532fea07848000089137d51d008f42a",
+   "sha256": "0dcgs0p01hk9aljmv8z36gxqcpcw4p77yl2nvz1gql66lb4p7h6s"
   }
  },
  {
@@ -57125,14 +57606,14 @@
  },
  {
   "ename": "js2-refactor",
-  "commit": "8935264dfea9bacc89fef312215624d1ad9fc437",
-  "sha256": "09dcfwpxxyw0ffgjjjaaxbsj0x2nwfrmxy1a05h8ba3r3jl4kl1r",
+  "commit": "974d846518908d21c0e8edfea6f26174ea044a0c",
+  "sha256": "09gdsy93vpmdk110yyljvbcalxhpwpxy8vgv1l1by11k0p10b7nc",
   "fetcher": "github",
-  "repo": "magnars/js2-refactor.el",
+  "repo": "js-emacs/js2-refactor.el",
   "unstable": {
    "version": [
-    20190630,
-    2108
+    20210306,
+    2003
    ],
    "deps": [
     "dash",
@@ -57141,8 +57622,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28",
-   "sha256": "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"
+   "commit": "a0977c4ce1918cc266db9d6cd7a2ab63f3a76b9a",
+   "sha256": "0pjadcb5i8g8wkaf4hvh270r5z3qcsksnpcq5gzacqbgz5j2qcaf"
   },
   "stable": {
    "version": [
@@ -57408,8 +57889,8 @@
     20190714,
     1521
    ],
-   "commit": "1623346b308dc8f593346dc947fdc4092d674834",
-   "sha256": "1kkn4xjn9i207x580902jfpcrhpkvpyzxk4jh1bclbryki9602zv"
+   "commit": "2f41d292b87916f6989e7ff5dc94da18ae6a9e4e",
+   "sha256": "1z5v7z98dinlayxzik45gjja93daxym75mh2shsy4wz8yclkw22p"
   },
   "stable": {
    "version": [
@@ -57553,11 +58034,11 @@
   "repo": "JuliaEditorSupport/julia-emacs",
   "unstable": {
    "version": [
-    20200917,
-    713
+    20210323,
+    612
    ],
-   "commit": "8ea90c7927f6d87a291cfb0216f34dacf43c722e",
-   "sha256": "1ymanbalx41xri5kiqs83a80a72yr9831if6cz2m24pg3g7rwr9c"
+   "commit": "fe6f6f7a80f8d60ecffa5b2cb43667bb9dc11705",
+   "sha256": "0afgdga2p7ipdimvi2xncmqxv87x2khg603iifyylfq26wyxscr7"
   },
   "stable": {
    "version": [
@@ -57664,14 +58145,14 @@
   "repo": "shg/julia-vterm.el",
   "unstable": {
    "version": [
-    20201223,
-    741
+    20210327,
+    657
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "c051cdc4ba574039b622fce37a5f61685dcc6d89",
-   "sha256": "0ixlh640106cdvdnnmr7p6n0c5bg5qzyk9mspylsnlgiws4gz1ff"
+   "commit": "1d70c7f9fb91654e38fc868baf0ef72399f75ded",
+   "sha256": "1zhc71vsc7xjkabqkpv3pbf8hippqiqrd3ng1ws4b9fn1kv68av3"
   },
   "stable": {
    "version": [
@@ -57846,6 +58327,30 @@
   }
  },
  {
+  "ename": "just-mode",
+  "commit": "4ae56fd7c24a37769aeaba2de086a126d6ff23d3",
+  "sha256": "0sm5l2jb0k17661738jfx6hz06j6kdadwsc86ck750mpw0pb391r",
+  "fetcher": "github",
+  "repo": "leon-barrett/just-mode.el",
+  "unstable": {
+   "version": [
+    20210311,
+    2359
+   ],
+   "commit": "45c248fe72d4a15c5a9f26bc0b27adb874265f53",
+   "sha256": "065nnm4r6n83lbsn47idrxn3j1vpwnik683fgc4afhi5mm4ij89b"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    4
+   ],
+   "commit": "8c0d9bec38f717be1549e74839360e35587739e0",
+   "sha256": "1568fwh6y9584lyx57iq9ncw0xn4j1ywdbq38sk9hlpgbpsy8ln4"
+  }
+ },
+ {
   "ename": "jvm-mode",
   "commit": "7cdb7d7d7b955405eb6357277b5d049df8aa85ce",
   "sha256": "1r283b4s0pzq4hgwcz5cnhlvdvq4gy0x51g3vp0762s8qx969a5w",
@@ -57883,14 +58388,14 @@
   "repo": "TxGVNN/emacs-k8s-mode",
   "unstable": {
    "version": [
-    20201215,
-    1656
+    20210219,
+    1317
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "9d37e64b9bdc1778481687ca04e2ee5a96bc0474",
-   "sha256": "054pasvk5xspdndsc962z3d3z5jgpd28ysag5pxa8dfh3yz65vxq"
+   "commit": "0df142ac98bcd072dd7017053c9c9c476345aeef",
+   "sha256": "1nxcp1hq9d1j7whfak60j4dmzsfmq2mgmdxxvlj3az7p7vannd2v"
   },
   "stable": {
    "version": [
@@ -58148,8 +58653,8 @@
     "parseedn",
     "s"
    ],
-   "commit": "1376d50f1fc91f9345351aeb4960b54bf83be59e",
-   "sha256": "06zp5kshcsxf91d4as0nw1ncxx1a8ii6npzvk485sjrghnldsccm"
+   "commit": "755b0dfb3bd676c769c4b4aeb81c2cd5828bd207",
+   "sha256": "1snrzah6pcxd9vm6crxz85c5nl6zfhfbc0581z765g2vg87qcb12"
   },
   "stable": {
    "version": [
@@ -58174,15 +58679,15 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20210206,
-    1553
+    20210315,
+    1754
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "097ffb434feb149bce548dfe4daf99d604abb1bd",
-   "sha256": "00svj1w9iyf7qh1s49d955j1q7ja8fcs5kwd6prjmg61whlqnyik"
+   "commit": "80d0a5824fedb332432d5999af9842316b7dc3f2",
+   "sha256": "0309vmrbw7a4r0gnsdd5jyfql2fl3lbh3gsnagynvq7rzv9ryr1c"
   },
   "stable": {
    "version": [
@@ -58270,11 +58775,11 @@
   "repo": "delaanthonio/kconfig-mode",
   "unstable": {
    "version": [
-    20200628,
-    1721
+    20210321,
+    1106
    ],
-   "commit": "d9fdf751646abe2b75b7bbeb46e7552e0f36f290",
-   "sha256": "0dhkggvni5k4rnj2m6lva99hj1925b4w24dh9nv3m9w0x7b49263"
+   "commit": "7d03fa239e6879854c3b26c8e750489eceb58503",
+   "sha256": "0j07h1g8xcs6lq6gyi594zb353x9igi9k9iz8nci8gy79l3n7l3m"
   }
  },
  {
@@ -58324,14 +58829,14 @@
   "repo": "conao3/keg.el",
   "unstable": {
    "version": [
-    20210201,
-    821
+    20210226,
+    2246
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "10c70dba667752c3612e69a190e097677fef268d",
-   "sha256": "137xjq1ky9d9ddklzfmfnd5bz75bw0bkqr4ajq3m8al28wpld3k5"
+   "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
+   "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
   }
  },
  {
@@ -58345,8 +58850,8 @@
     20200601,
     333
    ],
-   "commit": "10c70dba667752c3612e69a190e097677fef268d",
-   "sha256": "137xjq1ky9d9ddklzfmfnd5bz75bw0bkqr4ajq3m8al28wpld3k5"
+   "commit": "e4c7d9d8f823fa717df5f0e7039d525758429fc9",
+   "sha256": "0idr47ssysz3qp2cdrciapljwm7zh76fnj3vgpz9i2wdmgr12m2d"
   }
  },
  {
@@ -58841,14 +59346,14 @@
   "repo": "mrkkrp/kill-or-bury-alive",
   "unstable": {
    "version": [
-    20190713,
-    1340
+    20210320,
+    1231
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "7db85a3f3004ff400e24105d1875f4e3a6eec7a6",
-   "sha256": "02nv6hzzr60gn24ra88smrwmkfjcb33c987dcgxqv7rzjpdjagnx"
+   "commit": "388067e764bf3922234196e2e9dd9e8f664c634d",
+   "sha256": "0rxzl3rsa45jq8b8bjirsc6yry95zxlyp81v5r4hkvgyxqhcp3c1"
   },
   "stable": {
    "version": [
@@ -58956,11 +59461,11 @@
   "repo": "kivy/kivy",
   "unstable": {
    "version": [
-    20180702,
-    2029
+    20210318,
+    2106
    ],
-   "commit": "7f8a887e153e9924d260069c0184958c0b53e57b",
-   "sha256": "0hzmsr911y2r701l92hjx0nh1w58407jfkn8ky8mymvszb0qggy3"
+   "commit": "09c957050af1c37d381d855ac886fb2aa2896d39",
+   "sha256": "1lfbl1kvnw09qbcsxks14kj9ya1gsahs9wmgznn100d7nqnjwhsc"
   },
   "stable": {
    "version": [
@@ -58980,14 +59485,14 @@
   "repo": "stardiviner/kiwix.el",
   "unstable": {
    "version": [
-    20210113,
-    1834
+    20210219,
+    51
    ],
    "deps": [
     "request"
    ],
-   "commit": "e5821f5ccb34262aedcb4ea3a19e583c6a97e2f8",
-   "sha256": "1g9cn34r948a0g9wyda1kzlq33ddgmarl9j6wbb76g0fgkh7qjh9"
+   "commit": "0c5e1619f079df822686cf42af5859111b6afd44",
+   "sha256": "179wsr1ffsl4hm4vnb0zzbw338jni5pz8ndgkfq21jppgzk8mlna"
   },
   "stable": {
    "version": [
@@ -59019,17 +59524,17 @@
  },
  {
   "ename": "klere-theme",
-  "commit": "07a3e348d69738ae59fce3570a61b0cdc565fdb8",
-  "sha256": "1lgvk6q2853rpk15i91zf917r8wmrb7bnagp4x02fws49x83hqrs",
-  "fetcher": "github",
-  "repo": "WammKD/emacs-klere-theme",
+  "commit": "b6f489036d7d3d171f0ff2613e3192f73c956b3d",
+  "sha256": "0hqj3jf5l79gf59llx2qy6ml7r5bdwjnm8c7r0qfhyvrk0lp7smm",
+  "fetcher": "git",
+  "url": "https://codeberg.org/WammKD/emacs-klere-theme.git",
   "unstable": {
    "version": [
-    20180415,
-    1823
+    20210320,
+    1912
    ],
-   "commit": "c064f9e5c44173c239fce239a62c8d5e61827672",
-   "sha256": "1rfdk35k1cj1z5gnsckcy93mqgj1amqzb13b89k11bnzc2m6r7zl"
+   "commit": "f9eacacc00455e6c42961ec41f24f864c2a05ace",
+   "sha256": "10a84q8ilzs5b8f8yf2awlyfa8v3s6gr1lz459nlnkq9fflxwdj1"
   }
  },
  {
@@ -59244,8 +59749,8 @@
   "repo": "abrochard/kubel",
   "unstable": {
    "version": [
-    20210212,
-    2154
+    20210326,
+    2053
    ],
    "deps": [
     "dash",
@@ -59253,8 +59758,8 @@
     "transient",
     "yaml-mode"
    ],
-   "commit": "5d5639cac5d98bca74cad44b5a1e128df77050bd",
-   "sha256": "059yqvr36gycqdbnls2nbsd34q16wxyi2paxqlh7wc053h2y7zp3"
+   "commit": "91d1c8e97e4168fc49548c3449b4a60568c96790",
+   "sha256": "16s6iy3igb40r29x4bpb2x9763pf1fg5cygfdgabjq8xq36slmg8"
   },
   "stable": {
    "version": [
@@ -59286,8 +59791,8 @@
     "evil",
     "kubel"
    ],
-   "commit": "5d5639cac5d98bca74cad44b5a1e128df77050bd",
-   "sha256": "059yqvr36gycqdbnls2nbsd34q16wxyi2paxqlh7wc053h2y7zp3"
+   "commit": "91d1c8e97e4168fc49548c3449b4a60568c96790",
+   "sha256": "16s6iy3igb40r29x4bpb2x9763pf1fg5cygfdgabjq8xq36slmg8"
   },
   "stable": {
    "version": [
@@ -59310,16 +59815,16 @@
   "repo": "chrisbarrett/kubernetes-el",
   "unstable": {
    "version": [
-    20200911,
-    756
+    20210219,
+    625
    ],
    "deps": [
     "dash",
     "magit",
     "magit-popup"
    ],
-   "commit": "f4c763016620a4ddb41698bb8aa02b18e07ac509",
-   "sha256": "129qfb8c18lj6ln8brf9jqzp16vq930hf31rav7xqzsfp0h8ixwg"
+   "commit": "de4ff6ccdf58a939908d384efe9cf06b2bcabe12",
+   "sha256": "0nz34h601him6x1a6fkvzvr4r3f5d55cz520ddsmin9zwpq7rlhq"
   },
   "stable": {
    "version": [
@@ -59351,8 +59856,8 @@
     "evil",
     "kubernetes"
    ],
-   "commit": "f4c763016620a4ddb41698bb8aa02b18e07ac509",
-   "sha256": "129qfb8c18lj6ln8brf9jqzp16vq930hf31rav7xqzsfp0h8ixwg"
+   "commit": "de4ff6ccdf58a939908d384efe9cf06b2bcabe12",
+   "sha256": "0nz34h601him6x1a6fkvzvr4r3f5d55cz520ddsmin9zwpq7rlhq"
   },
   "stable": {
    "version": [
@@ -59465,6 +59970,68 @@
   }
  },
  {
+  "ename": "l",
+  "commit": "36d7dce3ad5cfc4047800c84945b714df2af0632",
+  "sha256": "0wkgl3sw7wr3fqlgb3hzw64fawha4lnxbh12w9d7196bfwnm3ny2",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tarsius/l",
+  "unstable": {
+   "version": [
+    20210214,
+    1130
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "518203abc6cee13c73c2d91282354ed59f00f15e",
+   "sha256": "1s3fndzjhz0xvbhdb0y7raa7zqrpws1xm79blgfcxcrv2fbmbzan"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "seq"
+   ],
+   "commit": "518203abc6cee13c73c2d91282354ed59f00f15e",
+   "sha256": "1s3fndzjhz0xvbhdb0y7raa7zqrpws1xm79blgfcxcrv2fbmbzan"
+  }
+ },
+ {
+  "ename": "laas",
+  "commit": "db04bf3e4da0a51cbbab7db4c6070f1d06053c90",
+  "sha256": "1cpd9zflk57fb70xjlkfwr9ghv11xmvad5px0fzb6gf51gqh3g6x",
+  "fetcher": "github",
+  "repo": "tecosaur/LaTeX-auto-activating-snippets",
+  "unstable": {
+   "version": [
+    20210308,
+    336
+   ],
+   "deps": [
+    "aas",
+    "auctex",
+    "yasnippet"
+   ],
+   "commit": "78b10f0e1629283f8ba0f5bd1e28cf9a606362fd",
+   "sha256": "077hnz3gzqzp1pnfksr88p2q33l4ghz6rlxlqajnmb42cv64rxv1"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "aas",
+    "yasnippet"
+   ],
+   "commit": "94be7523159ee261077a33094775c7f73218a900",
+   "sha256": "0qyj4xwsxhn78akkv08ka9k47aa3jssd4mgws7ccbnqj68fv78gg"
+  }
+ },
+ {
   "ename": "lab-themes",
   "commit": "c5817cb4cb3a573f93bacfb8ef340bef0e1c5df4",
   "sha256": "10gvrrbqp6rxc9kwk8315pa1ldmja42vwr31xskjaq0l4fd28kx0",
@@ -59541,16 +60108,16 @@
   "repo": "Deducteam/lambdapi",
   "unstable": {
    "version": [
-    20210208,
-    908
+    20210325,
+    1344
    ],
    "deps": [
     "eglot",
     "highlight",
     "math-symbol-lists"
    ],
-   "commit": "c05332eb20f98fd1dba05279a5a02a7c819aa342",
-   "sha256": "0fyrzpphs7lahzqgcljbfd4lgcj566f3wyc4ym8x5jl6vd6kdr0g"
+   "commit": "5a3c307928438afec317bbb88d56fd67ae89f87c",
+   "sha256": "1y3szymdb8xf6kv6g9hlmf89bcy3r8c1qzf9gh968yml2gqzrfhb"
   }
  },
  {
@@ -59926,11 +60493,11 @@
   "repo": "pekingduck/launchctl-el",
   "unstable": {
    "version": [
-    20200531,
-    1043
+    20210309,
+    1113
    ],
-   "commit": "96886b7e64d15ffd3319c8b4b04310ccdc648576",
-   "sha256": "0mw1c14ysh186lbgmmyp01hszdgjm605diqfq6a17a7dd7fn549a"
+   "commit": "86cbb8980de4641b552a792389cc2cb9b2718ee4",
+   "sha256": "08prmsx6ski5j1pnzr7v3hxvbdrb5by8x2dihwhz0wjgfsqj13mr"
   }
  },
  {
@@ -60038,11 +60605,11 @@
   "repo": "conao3/leaf.el",
   "unstable": {
    "version": [
-    20201211,
-    412
+    20210316,
+    1822
    ],
-   "commit": "e0c4b7484ab6ee3bbf8413f620ccb99af4328d2f",
-   "sha256": "18vvl8a5s6n1kky31n0khnv89998gy9vfk5q58hkczfadc6nss76"
+   "commit": "ab5cc26b56a6a53a3338ebfde17b746522c2c14c",
+   "sha256": "1ds545sh8hg2vg5l7fm4v6z31lzax14ivdni3a37278jfx82xxrx"
   },
   "stable": {
    "version": [
@@ -60075,6 +60642,25 @@
   }
  },
  {
+  "ename": "leaf-defaults",
+  "commit": "326fab332b9dec9660414906aafd220986372906",
+  "sha256": "1a08xjjjf9w3scw2bzbvlxak4nmjjia9icnf01ilhcfmlqa3rwdc",
+  "fetcher": "github",
+  "repo": "conao3/leaf-defaults.el",
+  "unstable": {
+   "version": [
+    20210301,
+    118
+   ],
+   "deps": [
+    "leaf",
+    "leaf-keywords"
+   ],
+   "commit": "96ce39d4f16736f1e654e24eac16a2603976c724",
+   "sha256": "1z56x3wnyakilgxak2yyf6rf35072996szxfz712lmdwqs6xfqv4"
+  }
+ },
+ {
   "ename": "leaf-keywords",
   "commit": "dfe671ccd5a87ba4157f55e2a16a39dfaa10c027",
   "sha256": "0i5hn1051hfbppbsv2m5p7h1rrn9pbvsps6vsk84ssqvhj7ryvyb",
@@ -60082,14 +60668,14 @@
   "repo": "conao3/leaf-keywords.el",
   "unstable": {
    "version": [
-    20201225,
-    1406
+    20210222,
+    1243
    ],
    "deps": [
     "leaf"
    ],
-   "commit": "64c5ec702b7fab83770c539d613d8c6610ce510d",
-   "sha256": "0qzmnbn91g02g6vhilx081xz6n1360a3ri64rpzd8avcgmrkb1vr"
+   "commit": "4146621f4ae80ef0c30160337119441c1f6334b6",
+   "sha256": "16iv1cvlky2gij1ndx2d6q8l35axm72bx52n6v5y3h21aibj197n"
   },
   "stable": {
    "version": [
@@ -60173,18 +60759,17 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20210209,
-    1734
+    20210305,
+    1705
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "f",
     "flycheck",
     "s"
    ],
-   "commit": "15bee87dc4080b87c543964375b7ce162317ab6f",
-   "sha256": "127b7ny5mr1y14yg54gy7an3lk3928w4y9a22295i4v4zgj704j4"
+   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
+   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
   }
  },
  {
@@ -60280,11 +60865,11 @@
   "repo": "ledger/ledger-mode",
   "unstable": {
    "version": [
-    20210118,
-    2040
+    20210322,
+    2306
    ],
-   "commit": "643f29cd618db5366fa8ff442548d124528355c6",
-   "sha256": "1vip1yc4vf4213kjxal1bff7bw776b8mhk8f3h56rnp7siah2m1n"
+   "commit": "32fef097970e66b6cc75ee8233a7edaeee6431df",
+   "sha256": "1yv2lb3wpnck5ig8n4z7nwlksi6frnfjlh6fqslwqnxyz5n3xsr0"
   },
   "stable": {
    "version": [
@@ -60329,8 +60914,8 @@
     "log4e",
     "spinner"
    ],
-   "commit": "5b17bc254e225b880e94ff5dad5caa60b270eecc",
-   "sha256": "18qnzgysdzadwy97s6fcfmcjs8gnrqkgqxfgq1130r1b36gjixqg"
+   "commit": "9c44791407c3f4f76d903ee43367547803ae9c32",
+   "sha256": "14nlmgbkb8vyb0r25sdg03lg2h38gj83vspp9v9vsqyiiirhnvnh"
   },
   "stable": {
    "version": [
@@ -60571,15 +61156,15 @@
   "repo": "tecosaur/lexic",
   "unstable": {
    "version": [
-    20210203,
-    358
+    20210318,
+    1315
    ],
    "deps": [
     "dash",
     "visual-fill-column"
    ],
-   "commit": "e59224cd5808af50e8b9ba8cce0a687cf09aacc1",
-   "sha256": "1si5ndfs8xbk96iiwcwlhi57k914jnsq3zdgvlb7xm3y8zjy2l6x"
+   "commit": "4ded6be2ce3e8dadc5635a534827181a8c8ab602",
+   "sha256": "116qjizqa83zy6xas5cah58sf22ha05pps2004wfgng487ln9n59"
   }
  },
  {
@@ -60593,8 +61178,8 @@
     20201007,
     2214
    ],
-   "commit": "89683794014cab79d2cb7362f901d03c6d3b8c00",
-   "sha256": "09cflqn4g9s6hz91882w9vnkwzpbba796jhcyvxr23qbv14q7257"
+   "commit": "339021e29a50c71045736f322e961efbfc37bd99",
+   "sha256": "0416fcd1jnvhfj1bm3x60yi8n9cbxyyz11ri5k1g7b454pw54yb5"
   },
   "stable": {
    "version": [
@@ -60830,6 +61415,30 @@
   }
  },
  {
+  "ename": "ligo-mode",
+  "commit": "c8a86d223f5e764419aaf964d69a30350f74f904",
+  "sha256": "1289n7xbpx6ppil6rixck81xw3x0acrpcnxchml5yrwqrbr8czli",
+  "fetcher": "gitlab",
+  "repo": "ligolang/ligo",
+  "unstable": {
+   "version": [
+    20210303,
+    1751
+   ],
+   "commit": "cadaa46a6eafa305e9b176f6decc649708e6fec9",
+   "sha256": "04imm0j7d8f7xcfbha8vhyf66hsq1sv0y3r1i582r91psrzhlai6"
+  },
+  "stable": {
+   "version": [
+    0,
+    12,
+    0
+   ],
+   "commit": "70d42b3922d152e8be946c2415151d0551b591d4",
+   "sha256": "17k0v1nfcsq5kdfk05cdkh8nbbi5bqniydqcr6whzw3aawnjryyc"
+  }
+ },
+ {
   "ename": "line-reminder",
   "commit": "6c2287c7b4c543e92ccfab120388b2c05174d2db",
   "sha256": "1s3ibn7c1j6m7wdkb0z37apgfc0g8vhhrqcnmldf19zi3k13bm0x",
@@ -60837,26 +61446,26 @@
   "repo": "jcs-elpa/line-reminder",
   "unstable": {
    "version": [
-    20200914,
-    611
+    20210216,
+    1451
    ],
    "deps": [
     "indicators"
    ],
-   "commit": "65332e11735e2b3321bcab8e1456c13b6b6c1aa5",
-   "sha256": "1wcfzpl0vnpw8bfqbxb4jqkiziwcivwh7rdg0kjai1c3xhzfpwds"
+   "commit": "bc488bbdba2172629183891758cfa9466a64182f",
+   "sha256": "1993rwd9bgr1lqxgxzwp6h2r57ljsbjh5r08f57jaalanjp4iq55"
   },
   "stable": {
    "version": [
     0,
     4,
-    4
+    5
    ],
    "deps": [
     "indicators"
    ],
-   "commit": "65332e11735e2b3321bcab8e1456c13b6b6c1aa5",
-   "sha256": "1wcfzpl0vnpw8bfqbxb4jqkiziwcivwh7rdg0kjai1c3xhzfpwds"
+   "commit": "bc488bbdba2172629183891758cfa9466a64182f",
+   "sha256": "1993rwd9bgr1lqxgxzwp6h2r57ljsbjh5r08f57jaalanjp4iq55"
   }
  },
  {
@@ -60870,8 +61479,8 @@
     20180219,
     1024
    ],
-   "commit": "3f42011e08dd4c15f20b620cdd5008cc1d9ef65f",
-   "sha256": "0fdl4prvhn905y8js8hd6dysxisrrvz51g5dqd22cs8w06zk6zis"
+   "commit": "a49afb9c168eaf8aaaf94f0c631b7b74db9a1d82",
+   "sha256": "0213ppx15rdb5cxg7w8978880fzv3dh2m9p6idkmlfj7bndfd411"
   },
   "stable": {
    "version": [
@@ -61099,20 +61708,20 @@
   "repo": "marcowahl/lisp-butt-mode",
   "unstable": {
    "version": [
-    20200727,
-    1441
+    20210215,
+    2206
    ],
-   "commit": "1b178fec96cb200574a17cb26ac0742d9df571a9",
-   "sha256": "01hj2kzy1mrzqc806jvgvkiyf7mkjacg944l3dblblyl7zgx8plx"
+   "commit": "2b719baf0ccba79e28fcb3c2633c4849d976ac23",
+   "sha256": "0rxqam6cgi404m8n45mw73j3jdd2gb3iwpmyyixbv3cxfb7y1b0l"
   },
   "stable": {
    "version": [
     2,
     0,
-    2
+    4
    ],
-   "commit": "008d2093608ee8fac184a6682e4ccf7b461dcaa1",
-   "sha256": "1kxvwd9y9q5ax9509b3xy3qqjpamfxzljyvbm1fc89qy50pdjxyr"
+   "commit": "2b719baf0ccba79e28fcb3c2633c4849d976ac23",
+   "sha256": "0rxqam6cgi404m8n45mw73j3jdd2gb3iwpmyyixbv3cxfb7y1b0l"
   }
  },
  {
@@ -61138,14 +61747,11 @@
   "repo": "lispunion/emacs-lisp-local",
   "unstable": {
    "version": [
-    20200409,
-    1330
-   ],
-   "deps": [
-    "cl-lib"
+    20210307,
+    1545
    ],
-   "commit": "ff745a937f79df51cac0209b3cc3c35ce1d1fc61",
-   "sha256": "0ffwjv5fpzia772iavn9ily5m7l73pxf0amgqizzmbx12rx3kkhg"
+   "commit": "3a3237a5c25db9526dfbe1b3ac1e7125f8f459b0",
+   "sha256": "1nm2kmilhk2hm9nfd1f6drhlpwkpk31s1072y8im16ci7i13lig4"
   },
   "stable": {
    "version": [
@@ -61459,14 +62065,14 @@
   "repo": "sulami/literate-calc-mode.el",
   "unstable": {
    "version": [
-    20201214,
-    1221
+    20210324,
+    1547
    ],
    "deps": [
     "s"
    ],
-   "commit": "1cf4fa18731248c6519667c16a6832b616b2b86f",
-   "sha256": "19icc2c3s4jmn0i55dfllpvbwm6f3wmscfp8nrgini2wk89260jl"
+   "commit": "211eec1e8b03503a53fa3eb4528375f36972f759",
+   "sha256": "1kawczbjdvjzyz3fflp1ij0vi9qcrl0yhrv7knx9j1zh187jp7z7"
   }
  },
  {
@@ -61506,11 +62112,11 @@
   "repo": "jingtaozf/literate-elisp",
   "unstable": {
    "version": [
-    20210130,
-    107
+    20210318,
+    350
    ],
-   "commit": "de73de9e8060574cb0c85be4ec3b5d8ff8a92b7b",
-   "sha256": "19kyrvpkmbgiygcxr3hyrba9smz33y0adz5fwh1kb5qhcyrq8jw7"
+   "commit": "6979fc6369d55519d52ca1e8f7d80d73ce54c383",
+   "sha256": "180lsghxcjrn21c79jl7g9kkvd4lf4xabgbwbqlck7barfj256jv"
   },
   "stable": {
    "version": [
@@ -61723,8 +62329,8 @@
    "deps": [
     "seq"
    ],
-   "commit": "fa28bed90b77487e275e3908c3bd0f00f94ab88b",
-   "sha256": "1f58d1y44m3ac2db8yddhrxjpv2503di08p0v46103pnlm7a245q"
+   "commit": "f2f1476e88153b167bf4ce755f7455fcb3f98458",
+   "sha256": "0qnzbamf763h8fwjsn7i47a1amb8nixl25zw58jh4hhl470czi2f"
   },
   "stable": {
    "version": [
@@ -61857,11 +62463,11 @@
   "repo": "fourier/loccur",
   "unstable": {
    "version": [
-    20191022,
-    1955
+    20210224,
+    2041
    ],
-   "commit": "284d7bb285bd382be6c1936077de7e2246fa2374",
-   "sha256": "16jslrdzxlcl6s5jiylqfv48xrm7fqk765jwcgzayjl94939r22l"
+   "commit": "01b7afa62589432a98171074abb8c5a1e089034a",
+   "sha256": "1b1x1xsiwqzsiss1jc6w990v1vfvbn5d5w67yzmx59s9ldjmdqq2"
   }
  },
  {
@@ -62235,8 +62841,8 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20210110,
-    15
+    20210313,
+    1940
    ],
    "deps": [
     "dap-mode",
@@ -62247,14 +62853,14 @@
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "69e36b6c824c165527a25b9e6e754eea659a878e",
-   "sha256": "1k4dxi1yv0w0k99qlpaz2wsvnb31p33ypqvbh9x3fqj6kp720biq"
+   "commit": "f3b70ec0e6adf3a51e15f9a3effb182c2363493d",
+   "sha256": "0iyp844wnvxjrp860dgkr10qrfsaj2rcssj8dv93hhv8pg91fhsk"
   },
   "stable": {
    "version": [
     1,
-    17,
-    12
+    18,
+    0
    ],
    "deps": [
     "dap-mode",
@@ -62265,8 +62871,8 @@
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "be9f979fa9cb098d064c3ab26d1f7ea7c65cbd23",
-   "sha256": "03g97sm3y5y1y8crwlc8kvpgrrljyym5yq6qz9llpwy8cg9srchw"
+   "commit": "f3b70ec0e6adf3a51e15f9a3effb182c2363493d",
+   "sha256": "0iyp844wnvxjrp860dgkr10qrfsaj2rcssj8dv93hhv8pg91fhsk"
   }
  },
  {
@@ -62277,15 +62883,15 @@
   "repo": "emacs-lsp/lsp-docker",
   "unstable": {
    "version": [
-    20201102,
-    1802
+    20210217,
+    1102
    ],
    "deps": [
     "dash",
     "lsp-mode"
    ],
-   "commit": "38f75193f7a8a0e095975104f3ff1c58b3c7c59c",
-   "sha256": "0ghbcih8hshiyw0mwr2qjhzjbs1sikxl1ih4m41fk4pzd86vjbm4"
+   "commit": "a5b9ae58fc46b683bccd97d6722f9bd1663fd79a",
+   "sha256": "0gddfn5rxf7n4l9llziad95cmnn2zlyam7fwh1jbirrhwidg024q"
   }
  },
  {
@@ -62321,6 +62927,46 @@
   }
  },
  {
+  "ename": "lsp-grammarly",
+  "commit": "ececaeddf8d7d17ddd9bb20401ff96edb707c06f",
+  "sha256": "1lwk5pwiglp6xzh8d7fwb0nzr3zaqxcbfx6h9wl7vlnz6sz29z4m",
+  "fetcher": "github",
+  "repo": "emacs-grammarly/lsp-grammarly",
+  "unstable": {
+   "version": [
+    20210317,
+    538
+   ],
+   "deps": [
+    "grammarly",
+    "ht",
+    "keytar",
+    "lsp-mode",
+    "request",
+    "s"
+   ],
+   "commit": "f5675c58ba80258331dda99072c5bfac524dbf48",
+   "sha256": "0ziv51c9fq4yv8ll7087cd2bwqkl309b1a0gds67d160pj9swwhh"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    1
+   ],
+   "deps": [
+    "grammarly",
+    "ht",
+    "keytar",
+    "lsp-mode",
+    "request",
+    "s"
+   ],
+   "commit": "739a7efc7de6e2b0eca9e72268790431a0fb3185",
+   "sha256": "1ksa685ggp9z0zndscwy9azxjibxd9l79qzvh50i7mz4x9xzdjbd"
+  }
+ },
+ {
   "ename": "lsp-haskell",
   "commit": "1a7b69312e688211089a23b75910c05efb507e35",
   "sha256": "0pdcxnfp8ng24bfk695wpx5wcdqnjrjsfpks0xicih3mcdm1x9l8",
@@ -62365,16 +63011,16 @@
   "repo": "emacs-lsp/lsp-ivy",
   "unstable": {
    "version": [
-    20201113,
-    2220
+    20210320,
+    913
    ],
    "deps": [
     "dash",
     "ivy",
     "lsp-mode"
    ],
-   "commit": "c70ee8b54357c56d1b972393ee53e57a2e545fbb",
-   "sha256": "01klra1yr3jk2fhk1s07ziygkfvv5qxgi8v30i8z13v5v4vi5mfx"
+   "commit": "515e5977b3d1f6cb521984f084868f28efd47e72",
+   "sha256": "1m05c80bf7d7kkk58c91c2f3lyln0wh6mvxbyi856fh1clb5gv13"
   },
   "stable": {
    "version": [
@@ -62398,13 +63044,12 @@
   "repo": "emacs-lsp/lsp-java",
   "unstable": {
    "version": [
-    20210122,
-    2024
+    20210309,
+    1856
    ],
    "deps": [
     "dap-mode",
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lsp-mode",
@@ -62412,8 +63057,8 @@
     "request",
     "treemacs"
    ],
-   "commit": "e56fb65bf17af46fa13d4527530c491dd798edcd",
-   "sha256": "0gp31yj65rs30a1a9wjidm6r6qkhpf5azpisdl2dvh4f2jypc2ll"
+   "commit": "542aaf16d6d3a410b0e41861d80f3fd6b5be7bb9",
+   "sha256": "07kpx8gx9v9v6zhpl7kyg3q4dgpkxk1n089cn1hdxr5vapw7xac9"
   },
   "stable": {
    "version": [
@@ -62492,15 +63137,15 @@
   "repo": "non-Jedi/lsp-julia",
   "unstable": {
    "version": [
-    20200912,
-    1106
+    20210310,
+    1116
    ],
    "deps": [
     "julia-mode",
     "lsp-mode"
    ],
-   "commit": "c523c250c4bd2777203101ab417e9b7312472f46",
-   "sha256": "0zgxgghsx9dw4b0i4p0l1kvp3bka7aw80iyr7x05sp1mwwchh2gb"
+   "commit": "c487ed715c49d863e8a8e76d13b37b6e694520d4",
+   "sha256": "0dqf34gq8rnskqj7m3vp8pxmzysg5bdchbyfhfz6h5yc0p52rvr4"
   },
   "stable": {
    "version": [
@@ -62554,21 +63199,20 @@
   "repo": "emacs-lsp/lsp-metals",
   "unstable": {
    "version": [
-    20201230,
-    706
+    20210217,
+    1027
    ],
    "deps": [
     "dap-mode",
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lsp-mode",
     "lsp-treemacs",
     "treemacs"
    ],
-   "commit": "c76eeb6b580fadf6a16357be8c22c197d22574fd",
-   "sha256": "0r1sihiximsgjf7dyh9rndxwy26d5kfz04y13b0gq2lhvrgjbbkv"
+   "commit": "51a89c1861eb505882c20393227f303ac33276e4",
+   "sha256": "1l4ic84qpcn2z54knzhw1mj61s699gpyg6a01vbq9mbpx1sxs9lf"
   },
   "stable": {
    "version": [
@@ -62597,20 +63241,19 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20210213,
-    910
+    20210326,
+    1728
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lv",
     "markdown-mode",
     "spinner"
    ],
-   "commit": "83334f62b58feed06c0438671bfc550efcbebe63",
-   "sha256": "1vkc2ffl08d36cgr69g3fl1lmkpr33qzzsxmm7zzaa0b6hzba58d"
+   "commit": "7d72c9e79b17bb96477326bc97a9251bf64eb0fb",
+   "sha256": "0ngz46b1b4zilgbf90ghzcni7qz9qdwhmng4jpdqs3hv9a4n5c15"
   },
   "stable": {
    "version": [
@@ -62758,16 +63401,16 @@
   "repo": "emacs-lsp/lsp-pyright",
   "unstable": {
    "version": [
-    20201014,
-    1620
+    20210220,
+    1714
    ],
    "deps": [
     "dash",
     "ht",
     "lsp-mode"
    ],
-   "commit": "71ff088ac4c93b0edd012f305a3dfd1602c5d21e",
-   "sha256": "03fgw10fq1s98xrmfzg8y9xv14yig3lgjc44x7mvlc5awsmv5lxa"
+   "commit": "65fb14128127fb1ddf68dd4cb3140d6c7911a093",
+   "sha256": "0qhs4cv01b7aqq5r6bk91xgwsp8yg1bpn68xk90iirsxlgfb1ffq"
   }
  },
  {
@@ -62778,14 +63421,14 @@
   "repo": "emacs-lsp/lsp-python-ms",
   "unstable": {
    "version": [
-    20210123,
-    1748
+    20210217,
+    1823
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "5470ada6cde6e68fe6ce13ff1146c89c3bae0cc8",
-   "sha256": "1m9nwnwyabbl7gxkyf43mvi76i6qnkqbpy7f5hvx84674pcjnh06"
+   "commit": "689f6cf815c8ee2ca2332f31dfda8ddefb0b7e26",
+   "sha256": "13vc2pwxl2cl2qa3gjkpa6si3760y7xyrlg1ygk3g1633w756h80"
   },
   "stable": {
    "version": [
@@ -62860,14 +63503,14 @@
   "repo": "merrickluo/lsp-tailwindcss",
   "unstable": {
    "version": [
-    20210208,
-    1458
+    20210315,
+    624
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "0558fd1cdbc31c48ca02308bee1b65c77f3fce3a",
-   "sha256": "0lbpwcf6vnk99rk3mzq3mbh4nxgl6prjrrak2aq9c789n7qainfr"
+   "commit": "d11cdc25be8e20400a1f9005f716648dd2ce4a3f",
+   "sha256": "1gls3c2ai2axnsl2dh4vy8l6hr1fyzv4hxi6yss5fw0xs8rqq7c5"
   }
  },
  {
@@ -62878,19 +63521,18 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20210131,
-    911
+    20210216,
+    1250
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "f",
     "ht",
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "10c34fc213f9aff29b5fe86b26bfc216b14c631e",
-   "sha256": "0l5473fa880993k02rz1bxwcp701q874bv1bx5caa4vygvm0rhiw"
+   "commit": "3bae4a91e05d55d5ca92da272ffcd497f370e9df",
+   "sha256": "03dvf5vf74p3vjzv98csidw6hzpx2w7f20xmyy12cpiip76wanf0"
   },
   "stable": {
    "version": [
@@ -62917,17 +63559,16 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20210202,
-    551
+    20210326,
+    507
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "732992aa41bb78b7341e28c980817de488b7a317",
-   "sha256": "1cmsyql92ldb0c4phdk8pws2whb6slhy3r52nf10v45bqh9n167m"
+   "commit": "1dbea9ff206a626d5c2d735e3f8fcdac59827963",
+   "sha256": "175am5hycgxmd4329mnwgcjfpyycxyjip5wl96n297zxnb4m94wb"
   },
   "stable": {
    "version": [
@@ -63259,6 +63900,25 @@
   }
  },
  {
+  "ename": "macrostep-geiser",
+  "commit": "2e154604ed9abf51f3779fdbff00850d13a91a9e",
+  "sha256": "09md4gmbk1lhrnj288vcq5apxjwys56np4msm2yfalfh2bhxzcg6",
+  "fetcher": "github",
+  "repo": "nbfalcon/macrostep-geiser",
+  "unstable": {
+   "version": [
+    20210324,
+    2141
+   ],
+   "deps": [
+    "geiser",
+    "macrostep"
+   ],
+   "commit": "8600fca05fd12a2e0ffe63238ddbfcb37c285dac",
+   "sha256": "1912hxbb7mbra91vjw1fnzbb4fd9ri59lc1hcrw196c7a4hzgv0y"
+  }
+ },
+ {
   "ename": "madhat2r-theme",
   "commit": "44a382a388821908306c0b8350fba91218515e1b",
   "sha256": "0y588skd6c2ykyp54d38ibwrqglnaanr15d45d51cvcvp9k7x508",
@@ -63329,14 +63989,14 @@
   "repo": "zk-phi/magic-latex-buffer",
   "unstable": {
    "version": [
-    20200816,
-    648
+    20210306,
+    422
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "8a6e33f79a930d2c1977409f1980afc4cc99b909",
-   "sha256": "1f052yx0fib6vv2kqr21fv1nlsxc1b0mlcxasppxr6kig1jbj2x9"
+   "commit": "903ec91872760e47c0e5715795f8465173615098",
+   "sha256": "0n2f3y6b6n8ipvk99ai1hwqddkwg5y97ks068wvp4rr4fspxkm9k"
   }
  },
  {
@@ -63371,8 +64031,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210212,
-    1313
+    20210326,
+    329
    ],
    "deps": [
     "dash",
@@ -63380,8 +64040,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "47c57839b80c05f792de288da050fabac90639d6",
-   "sha256": "0bpcy6vxbqx50p2cqskpfrk2chnjp3025zmnx33kvq22860f7qi2"
+   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
+   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
   },
   "stable": {
    "version": [
@@ -63416,8 +64076,8 @@
     "cl-lib",
     "magit"
    ],
-   "commit": "71b1522a2d681ab5653f48c7a13ad73330e7914f",
-   "sha256": "152sk0bm33i37ijvnr0427dvfwdzr0jl8s6bjhs9f3ii393k7mwn"
+   "commit": "870174f23faa00b003b3eb63452228511c2da597",
+   "sha256": "156d0gd0a2cx9rn0zb9i96s3l62rys1dpxcdix2j6aix6iv669ql"
   },
   "stable": {
    "version": [
@@ -63468,8 +64128,8 @@
     "magit",
     "xterm-color"
    ],
-   "commit": "fc4de96e3faa1c983728239c5e41cc9f074b73a2",
-   "sha256": "0gyjsjjjdbns8vlbja8wvmba8sq85ah7cawqqm0xjinrpfrhh8b7"
+   "commit": "1164a6c3e501e944f1a6a2e91f15374a193bb8d3",
+   "sha256": "1a24qpqdk00prprm5s4gwfi1hvdljp2808rg33qaaa1087zdavqj"
   }
  },
  {
@@ -63664,8 +64324,8 @@
    "deps": [
     "magit"
    ],
-   "commit": "f4b88f0c127faa154f138907bf4e98b1baf12fb6",
-   "sha256": "10l0z0c0q6sbf3id5dajws30cxzjvi5rgx1hl8jf6nxr5zcmcmm1"
+   "commit": "a6130871e5f4421618e66d9254d0b5df9f3a1ef2",
+   "sha256": "1zrgqcxp2jshp52m0sa73kk071hvisqlrk79k9is6smkjss97s8c"
   },
   "stable": {
    "version": [
@@ -63727,8 +64387,8 @@
     "libgit",
     "magit"
    ],
-   "commit": "47c57839b80c05f792de288da050fabac90639d6",
-   "sha256": "0bpcy6vxbqx50p2cqskpfrk2chnjp3025zmnx33kvq22860f7qi2"
+   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
+   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
   }
  },
  {
@@ -63763,10 +64423,10 @@
  },
  {
   "ename": "magit-p4",
-  "commit": "440d47ca465845eaa601ca8a6e4b15fc197e522b",
-  "sha256": "19p7h3a21jjr2h52ika14lyczdv6z36gl7hk1v17bffffac8q069",
+  "commit": "e6c16a59ca48a0b17cae90354e8929d31a5eef1f",
+  "sha256": "1c5qv1f2d8c114a5z21j0nkw285k3gx787l0c3cd9ls7awxfp1is",
   "fetcher": "github",
-  "repo": "qoocku/magit-p4",
+  "repo": "emacsorphanage/magit-p4",
   "unstable": {
    "version": [
     20170414,
@@ -63876,14 +64536,14 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210124,
-    1824
+    20210224,
+    1417
    ],
    "deps": [
     "dash"
    ],
-   "commit": "47c57839b80c05f792de288da050fabac90639d6",
-   "sha256": "0bpcy6vxbqx50p2cqskpfrk2chnjp3025zmnx33kvq22860f7qi2"
+   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
+   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
   },
   "stable": {
    "version": [
@@ -63957,14 +64617,14 @@
   "repo": "magit/magit-tbdiff",
   "unstable": {
    "version": [
-    20200519,
-    418
+    20210327,
+    350
    ],
    "deps": [
     "magit"
    ],
-   "commit": "e52e8ab4906996c410f6c6db890b9bfe0951d4ce",
-   "sha256": "0mp466bnm63pas8z0p6b0684i3rakb6cs5xzkz8jv3z3x34ak12c"
+   "commit": "99cb9c0501f0f1ea7ec3ebf0fb398f3d36cddafb",
+   "sha256": "189c4hrgbrwx44nidf4xv30yyb2y7lid57by0fn9hyi21nbk2gmx"
   },
   "stable": {
    "version": [
@@ -64205,15 +64865,15 @@
   "repo": "jerrypnz/major-mode-hydra.el",
   "unstable": {
    "version": [
-    20191030,
-    2354
+    20210221,
+    834
    ],
    "deps": [
     "dash",
     "pretty-hydra"
    ],
-   "commit": "20362323f66883c1336ffe70be24f91509addf54",
-   "sha256": "16krmj2lnk7j5ygdjw4hl020qqxg11bnc8sz15yr4fpy1p7hq5cz"
+   "commit": "84c1929a5153be169ca5c36737439d51dffde505",
+   "sha256": "1yw9xdyqbf285ljsspg8ajjx1bp1g27xpg85p84fsh88nr015rh5"
   },
   "stable": {
    "version": [
@@ -64672,19 +65332,19 @@
   "repo": "minad/marginalia",
   "unstable": {
    "version": [
-    20210210,
-    112
+    20210324,
+    906
    ],
-   "commit": "51f750994aaa0b6798d97366acfb0d397639af66",
-   "sha256": "0d6vif3ymwlddk3f8pg02h3s62kx9zzsbgyvc7cb76g6fk3b46kd"
+   "commit": "5ce5a0e6d23d92391167a49d994f093764ee0dee",
+   "sha256": "009ki4m5i0lvh9ml2jz93j4sbjab51c4qazz1858mq888hldpwr9"
   },
   "stable": {
    "version": [
     0,
-    3
+    4
    ],
-   "commit": "62ed158ff588900b9d3e56f3f05f659763c8c2ba",
-   "sha256": "1qihw1vq9sysrl6ha23ggycp0n2n1dx1ajkaqfm5vmv8480al07i"
+   "commit": "e741b243b30f6cfe85e568cc551acff9a1e5e74f",
+   "sha256": "0piwzxp1zmwp876kyca0xcgyxgn8bn4wh5fnn88dkvdzi8mcgmkh"
   }
  },
  {
@@ -64792,11 +65452,11 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20210210,
-    636
+    20210220,
+    1301
    ],
-   "commit": "d8267c17eb14d3db2ebd079094df524b547607b1",
-   "sha256": "0h8jpgg0dn8l56kq13gs3dlzr1b6d614gravwjqaywvswiiwnjzn"
+   "commit": "051734091aba17a54af96b81beebdbfc84c26459",
+   "sha256": "11qybgasg4im76j4kryynqvqbqpxm1xfs5dxgjhr3whn3wiqba51"
   },
   "stable": {
    "version": [
@@ -65164,16 +65824,15 @@
   "repo": "matsievskiysv/math-preview",
   "unstable": {
    "version": [
-    20210108,
-    1121
+    20210219,
+    1431
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "s"
    ],
-   "commit": "6c83ab7c6e3df95e60e942a9017d0c218228d429",
-   "sha256": "1v32nip530j4lvvm9gsjr9f6i0p0i59lx3f3j32m25q0yvv4s8z6"
+   "commit": "08aa7c47ffc85c9cba1c9812e1c14250cc4192e4",
+   "sha256": "1z371v68aw92iaj5mbsk47mfr44scgkwazbf9i6gzygq84fdm6dh"
   }
  },
  {
@@ -65222,11 +65881,11 @@
   "url": "https://git.code.sf.net/p/matlab-emacs/src",
   "unstable": {
    "version": [
-    20201204,
-    736
+    20210302,
+    1630
    ],
-   "commit": "935c67274b84503640a9f90cce87b533461385ca",
-   "sha256": "08xjcva2fryw81zw1hd0glvq9pzkpnkcrkwp2i19032zzk3hqcxm"
+   "commit": "a47515461ae22fcb90b6f8e45a6304bcb44b953c",
+   "sha256": "0wffq7hn5vmgvyysvhkgngcp77mq5fddia1q3n90rmb0ql2z2qg2"
   }
  },
  {
@@ -65743,16 +66402,16 @@
   "repo": "DogLooksGood/meow",
   "unstable": {
    "version": [
-    20210213,
-    654
+    20210326,
+    1659
    ],
    "deps": [
     "cl-lib",
     "dash",
     "s"
    ],
-   "commit": "cfcb0d457dd92afb511b9376c9f928f20ab96b89",
-   "sha256": "03sa5bh8ackmbc2gg4nwnc34ij0g4mcmizn7sf1z54lg0d585fdz"
+   "commit": "28b9f855f175b390cb00c35a0e55cc50725a0938",
+   "sha256": "12j1l48ahipw1w10kqg54ikfclib8a178cg9q6k9sn2q4v9bx0j6"
   }
  },
  {
@@ -65766,16 +66425,16 @@
     20210129,
     1443
    ],
-   "commit": "ecde6900bb9d6dee3683c214993375f65bb39c7c",
-   "sha256": "1fambd8n4hzbmizc04p5m8an84qklc4gpnhz957dpwd3x4prcx2s"
+   "commit": "cc17ed60630fb1831ad950fe62970b1c7a7f4c8b",
+   "sha256": "0mfvxg74h9mcs8pp9p3m498vflnpncvsa514qf36kajmbdbxn0sk"
   },
   "stable": {
    "version": [
     4,
-    0
+    1
    ],
-   "commit": "4b7c642c92ea6e6906709bb4656f6cf02ff35289",
-   "sha256": "0ylfp0750k79ylzwjd4f36hfh2jwxsvvi39v4bhc8xy9skl9b88q"
+   "commit": "ab02f60994c81166820791b5f465f467d752b8dc",
+   "sha256": "1lsrn6739736gr72c83hnxdynqmvjbs8pq3spb74v39k7xixmh99"
   }
  },
  {
@@ -65815,14 +66474,14 @@
   "repo": "abrochard/mermaid-mode",
   "unstable": {
    "version": [
-    20200819,
-    1759
+    20210327,
+    7
    ],
    "deps": [
     "f"
    ],
-   "commit": "6ec97ab934023a8aa094705bb1c9803fd85d24c1",
-   "sha256": "1hhpihmacbam3fgk7pjlzn7hnakz38ksds052nzirvw6a68ynzgk"
+   "commit": "b8847cc15eee1a7e3c7e0eefc91f2296256f84b9",
+   "sha256": "002bv1z8hr5h30dp9m8jq0h8lzi668lj2asx89jigfsrz4z6k4kg"
   }
  },
  {
@@ -65833,11 +66492,11 @@
   "repo": "wentasah/meson-mode",
   "unstable": {
    "version": [
-    20200907,
-    743
+    20210321,
+    1136
    ],
-   "commit": "d995dafa388ec03c0113cd1ac46403c20ad18ab0",
-   "sha256": "1swipsr9j0r2rpngz0dwykqnbs84j3pspx70dxmqyjm7qqabypnq"
+   "commit": "88717d5256d4cf47a85756dc5e204ea23eec165d",
+   "sha256": "1y8j8qgy6pw80ja4ppzkdrcnq3k6qwzc1i81g7399rkpbj62kd53"
   },
   "stable": {
    "version": [
@@ -65910,16 +66569,16 @@
   "repo": "seblemaguer/metal-archives.el",
   "unstable": {
    "version": [
-    20201214,
-    1027
+    20210223,
+    1638
    ],
    "deps": [
     "alert",
     "ht",
     "request"
    ],
-   "commit": "a7602a32e7fd3c7779bc5b5c5e398ea31713ee45",
-   "sha256": "0s7lzhnafw98447kgpwimlmvfwqaaljvnqwvqppgkqglk551lmd4"
+   "commit": "a218d63b990365edeef6a2394f72d1f2286aeeae",
+   "sha256": "1mpsc1xvgl6g3bz0dx10i3x5abivna01f1carwyz9w47zs599svk"
   }
  },
  {
@@ -65939,8 +66598,8 @@
     "metal-archives",
     "org-ml"
    ],
-   "commit": "a7602a32e7fd3c7779bc5b5c5e398ea31713ee45",
-   "sha256": "0s7lzhnafw98447kgpwimlmvfwqaaljvnqwvqppgkqglk551lmd4"
+   "commit": "a218d63b990365edeef6a2394f72d1f2286aeeae",
+   "sha256": "1mpsc1xvgl6g3bz0dx10i3x5abivna01f1carwyz9w47zs599svk"
   }
  },
  {
@@ -66362,14 +67021,14 @@
   "repo": "kiennq/emacs-mini-modeline",
   "unstable": {
    "version": [
-    20201221,
-    1825
+    20210312,
+    452
    ],
    "deps": [
     "dash"
    ],
-   "commit": "7dcd0ab81bb7c298377708061176f5c5a50f77db",
-   "sha256": "1bik23ci0h9gki7ysw7r5wj5z9ib56167qzk7sac2wqw9xmi8dbb"
+   "commit": "3e67b8e59d46659df4b37dedf75485a366c93600",
+   "sha256": "1iqdbm90qj90a522qmssbqn5im0kxdw1kxq7z821ss3fag960xw8"
   },
   "stable": {
    "version": [
@@ -66717,11 +67376,11 @@
   "repo": "Mulling/mlso-theme",
   "unstable": {
    "version": [
-    20200828,
-    1221
+    20210215,
+    1755
    ],
-   "commit": "b47243006470798caa4d3f8fe1af9bd5ef06bbee",
-   "sha256": "0gwa2izmi2ljh4avfpfq778ym1p91gsssbqz2q95m9py1vvb3xr7"
+   "commit": "177a269d1f16dc5902f08d56d12a084ea028c8ab",
+   "sha256": "000h78k729irpn31xykq1r6kdnrcfvv5m9cc8g9l1lfp6pjhmd9c"
   }
  },
  {
@@ -66791,14 +67450,14 @@
   "repo": "mrkkrp/mmt",
   "unstable": {
    "version": [
-    20190713,
-    1347
+    20210321,
+    1829
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d7729563e656a3e8adef6bce60348861ba183c09",
-   "sha256": "05f218f0lncgx2bbipjz7db09rrka8fq0qf5qkvbgssagxyl7rav"
+   "commit": "05cdbb643469676b91a44badecf84deccb50f262",
+   "sha256": "09zlqx9xrcj80vdd07yz9gzq5p8mayjlqkrcv7c8vm5wn5dl3gnq"
   },
   "stable": {
    "version": [
@@ -66953,11 +67612,11 @@
   "repo": "mrkkrp/modalka",
   "unstable": {
    "version": [
-    20190713,
-    1335
+    20210318,
+    1748
    ],
-   "commit": "4b2b92b14ed0b64fb0a0fa80a374ec9f87fbfeb6",
-   "sha256": "18dbnicaqryq4xhv4d7hds61k85kj3bnpcqv7rippvlyrqm2r6wx"
+   "commit": "0accefac11451b9c9196a56223b5fe1e26d75e6e",
+   "sha256": "04i776arnyg2gzzhiifarb73dr4w3sg38kw9cwp1bl1x5w49x47x"
   },
   "stable": {
    "version": [
@@ -67047,6 +67706,21 @@
   }
  },
  {
+  "ename": "mode-line-idle",
+  "commit": "6c854955505f809f7a70e8918ea3a0187e62257c",
+  "sha256": "0wvy7p27d4qa5f6cg1zqrm8wzfvd0wfwcc5aimcs1hkxlzl1kr6b",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-mode-line-idle",
+  "unstable": {
+   "version": [
+    20210215,
+    2345
+   ],
+   "commit": "02b1da6278e43cc9cc0356110cc6bfbb37eb8241",
+   "sha256": "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8"
+  }
+ },
+ {
   "ename": "modern-cpp-font-lock",
   "commit": "4bfc2386049adfe7a8e20da9b69fb73d6cb71387",
   "sha256": "0h43icb5rqbkc5699kdy2mrjs5448phl18jch45ylp2wy2r8c2qj",
@@ -67150,20 +67824,20 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20210213,
-    550
+    20210326,
+    1916
    ],
-   "commit": "2f80b40710d13017a0756830c9e314cf8e3dd82c",
-   "sha256": "0xd4w2aqil4dhv37d2a0h1jb2jsh8rz4zidsq2wznvvz4cylb8ay"
+   "commit": "e07461ca01b04a6536961eb538769f9889813852",
+   "sha256": "18gwyy5an1k9pf9n6ccygs4k7nbrv6scp7wyvaabayzxqv50lhsn"
   },
   "stable": {
    "version": [
     1,
-    1,
-    1
+    2,
+    3
    ],
-   "commit": "585659d36ac41dcc97ab335daa5bde566f088d4b",
-   "sha256": "1n716nasa1pccz7983kicagc9sqnxlyfmflvifqk4kza2ks0rh9m"
+   "commit": "0a36239baf908585cdf32c6188eb86713d9bf6c6",
+   "sha256": "1l392hz6zs6wg06x2zxnk7s0h5cpmvbkcynh68gjmqjj84l7mqrk"
   }
  },
  {
@@ -67174,11 +67848,11 @@
   "repo": "kuanyui/moe-theme.el",
   "unstable": {
    "version": [
-    20200930,
-    853
+    20210308,
+    1053
    ],
-   "commit": "76116f6eeb93c7902042f275a496629393730e08",
-   "sha256": "091wrp80y4k80w8wnv8pxipyf33dxb4qs0yn3m83bb1drn2x3g2p"
+   "commit": "b23975ba57a68f69551424552f484227db8a7b97",
+   "sha256": "0vr02ng574k1xfykxn2j2xhl78x4zsvzcszswqjrlps55bvxkm7b"
   },
   "stable": {
    "version": [
@@ -67458,20 +68132,20 @@
   "repo": "jessieh/mood-one-theme",
   "unstable": {
    "version": [
-    20200904,
-    1639
+    20210221,
+    18
    ],
-   "commit": "47f043c1a883e3b0fd550eafffe71b915eb892c1",
-   "sha256": "0zh0l2zpnms4s1c33ksj6rr8cc6bd9pxnc73cwvmaysak1650jfq"
+   "commit": "42e402a89473458f55a71c5bbe785575e9a927ba",
+   "sha256": "1ma5138src6iglkhd2h8w9k4gqqaxvsngz08cd4v2s8dhqkcayw8"
   },
   "stable": {
    "version": [
     1,
-    1,
-    0
+    2,
+    1
    ],
-   "commit": "82b471852a23bc4de972cac32da322c2b168ad9c",
-   "sha256": "09ykh1c21kphfzli1qzrlx13bn6p22873y6rwkx9fnj2232gv9vi"
+   "commit": "42e402a89473458f55a71c5bbe785575e9a927ba",
+   "sha256": "1ma5138src6iglkhd2h8w9k4gqqaxvsngz08cd4v2s8dhqkcayw8"
   }
  },
  {
@@ -67506,20 +68180,20 @@
   "repo": "takaxp/moom",
   "unstable": {
    "version": [
-    20210213,
-    721
+    20210324,
+    825
    ],
-   "commit": "2d7ca0b0ad76da4d11f8925e72904f03fd1c869e",
-   "sha256": "0cp8hm9vfb453h47vjxk549km51p06zzw6wjjag42ldj9hnba1v3"
+   "commit": "f94cf84138a81212ffe856599834f7824a1b6e95",
+   "sha256": "0rdvcv8hwrxxbb9s8sfx5331a08kdk28x8chnnq3pj58pxqvagy3"
   },
   "stable": {
    "version": [
     1,
-    4,
+    5,
     0
    ],
-   "commit": "42d809ed57ad6ed63dde61f75e4b535b2700aaca",
-   "sha256": "0ln8qa51v1r5m2z4cjz7kfdmvq48lwgsdf7z43zmb1nzvn10gcvg"
+   "commit": "d0076ea22b2afc4c3faeea2138e836b1c8f08988",
+   "sha256": "0hz525xmv6kslss3yn8ibj6bi2xp442knad0030px7giia6y1pf6"
   }
  },
  {
@@ -67838,11 +68512,11 @@
   "repo": "google/mozc",
   "unstable": {
    "version": [
-    20210109,
-    642
+    20210306,
+    1053
    ],
-   "commit": "6ac62d2e888cabb138c8427e6173c04e07bb60e0",
-   "sha256": "1zrhpiwfsxva5v7vdwilf50d8q8gl6kw1nydaika4f1a5321a35i"
+   "commit": "473a26ccd17304f6c64eaac8c61090659bcdb936",
+   "sha256": "114nimj1q9dn18in2bdzkswkxd3rm0xxzxiix4jv6hzhsm8rznw8"
   },
   "stable": {
    "version": [
@@ -68109,14 +68783,14 @@
   "repo": "andrmuel/mqtt-mode",
   "unstable": {
    "version": [
-    20180605,
-    1731
+    20180611,
+    1735
    ],
    "deps": [
     "dash"
    ],
-   "commit": "36d1d4296d79e17b8f35e8e14f2708980eb502db",
-   "sha256": "1116xvwpavg7icm263s0clgxhw3qqm4aqiw4ky94w9a8ydazx51l"
+   "commit": "613e70e9b9940e635e779994b5c83f86eb62c8e6",
+   "sha256": "1ci1w4yma6axiigz55b2ip0r7zy8v215532jc0rkb3wyn14nsrh7"
   },
   "stable": {
    "version": [
@@ -68393,15 +69067,15 @@
   "repo": "lordpretzel/mu4e-views",
   "unstable": {
    "version": [
-    20201229,
-    216
+    20210228,
+    1556
    ],
    "deps": [
     "ht",
     "xwidgets-reuse"
    ],
-   "commit": "55e5467a25d424b2c10b5392e68b370164efa230",
-   "sha256": "1gagaxpb4psshs8x61icilx4576al2qjs612d65ss857gfmzachi"
+   "commit": "1a0ceeb874e2a56b3ebe06c8375221031bb90a5c",
+   "sha256": "0v7d899pvpwvvp9x0yaskhjf1c6bjmqajk2mclfkykadrh89z61j"
   },
   "stable": {
    "version": [
@@ -68687,14 +69361,14 @@
   "repo": "magnars/multiple-cursors.el",
   "unstable": {
    "version": [
-    20201215,
-    1559
+    20210323,
+    1128
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a9d7764f80b241978f3d4e76bc981ef10bab5d70",
-   "sha256": "0r5dgzra3wimny5kaqhkfj1723mbwsdjabi26jp77hxkrhx7v905"
+   "commit": "7b13b03c995e13ad86e499d40ec49c4dc281f889",
+   "sha256": "1fysnjbh0dai1bzx4122fp4qhbyn82m8hh3smd0xhwphjwrbnl57"
   },
   "stable": {
    "version": [
@@ -68765,16 +69439,16 @@
   "repo": "Wilfred/mustache.el",
   "unstable": {
    "version": [
-    20210210,
-    643
+    20210224,
+    710
    ],
    "deps": [
     "dash",
     "ht",
     "s"
    ],
-   "commit": "ebecf704d1431e03f1be6df9e45e07944b359a56",
-   "sha256": "0bwdm1sx3r8fmc3hp278wqx3x9hxa5gjwywgsym4vfkg2jp3g7zn"
+   "commit": "6fcb31f5075edc5fc70c63426b2aef91352ca80f",
+   "sha256": "1rq2p376016y68w6447sd7h6zgzrxbb3skh7fjw7xfq1p6f19kr4"
   },
   "stable": {
    "version": [
@@ -68899,15 +69573,15 @@
   "repo": "agzam/mw-thesaurus.el",
   "unstable": {
    "version": [
-    20210106,
-    1857
+    20210224,
+    449
    ],
    "deps": [
     "dash",
     "request"
    ],
-   "commit": "cb0637bd3799820d6738f5d66b8bc2de2333e0e4",
-   "sha256": "1j5x1rfnxvghdmai7cv9sjqw1azq59pk8h5vm0krgnan2rpx5k4k"
+   "commit": "96f02694bc28f31c2a280a05d47e6ff589f525f3",
+   "sha256": "0gy3lyncyvwimkhfmd0qh1kkc0qgf7sgvbyr1aljdn9qh7n5l34k"
   }
  },
  {
@@ -69465,11 +70139,11 @@
   "repo": "CeleritasCelery/emacs-native-shell-complete",
   "unstable": {
    "version": [
-    20200814,
-    2301
+    20210315,
+    2048
    ],
-   "commit": "be7ced29c5a86e29c364f19d248634b8b54d0e52",
-   "sha256": "1lyad89byq54fva58njf7wiq2rw3767fxif1ykijirzx7q14ahxd"
+   "commit": "cf142e84eaa4dd91bc75d96a5d26dab5e38eba4c",
+   "sha256": "01li6c271v5j35chg3a8nl9az3bwq4hk1j8lfjq5a27p91iszpc0"
   }
  },
  {
@@ -69862,8 +70536,8 @@
   "repo": "felko/neuron-mode",
   "unstable": {
    "version": [
-    20210208,
-    1455
+    20210227,
+    1737
    ],
    "deps": [
     "company",
@@ -69871,8 +70545,8 @@
     "markdown-mode",
     "s"
    ],
-   "commit": "02fbfca98b5dfb09f09159914682efea6d6afb5a",
-   "sha256": "18xj8a5h9rrz134hac9qz8cpqswz79h3h24wb3bf89xvq2kyvq10"
+   "commit": "a968a923aad07ab15fb35deb79ac95581a427b4c",
+   "sha256": "1mb55bbsb32gxms488pjw9fsqiic2qfmwkhm3pwcgy194723vcaa"
   }
  },
  {
@@ -70042,6 +70716,30 @@
   }
  },
  {
+  "ename": "nikki",
+  "commit": "f1e2937a2b4947c922d42f0dea4e764d713a7c29",
+  "sha256": "0jfg1bziqhbgfrl77ddl2krkrd11xcpy6v2fqcpxmrd0i7jb17qc",
+  "fetcher": "github",
+  "repo": "th994/nikki",
+  "unstable": {
+   "version": [
+    20210227,
+    1707
+   ],
+   "commit": "b2ea20d04a061df88d72bd8dd0412a6e7876458d",
+   "sha256": "0a4kv2zb6wmacfjsihzr1ac6rsynay30zl2qiyzv21js6wmrwn9c"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    6
+   ],
+   "commit": "b2ea20d04a061df88d72bd8dd0412a6e7876458d",
+   "sha256": "0a4kv2zb6wmacfjsihzr1ac6rsynay30zl2qiyzv21js6wmrwn9c"
+  }
+ },
+ {
   "ename": "nikola",
   "commit": "2e8e1a5169f0841db4980aebe97235845bbe7183",
   "sha256": "1zdakql4p0h2l4i3gipzbx9kwmc41qq2zr0rx794722khcka4sz1",
@@ -70103,11 +70801,11 @@
   "repo": "m-cat/nimbus-theme",
   "unstable": {
    "version": [
-    20210115,
-    2034
+    20210318,
+    1654
    ],
-   "commit": "ca504e4387641b648e7bc6037fe515b03a90b801",
-   "sha256": "0gz2qrkr4gvy5wh44wiy7mhqwlxgfa8fyg0bincnba89161fnymk"
+   "commit": "a4d9d69442c9edac3f2cacabd2a7401dbefe7ff3",
+   "sha256": "1h828cxjacfqlhm719w2kwh91i0r1lai6wswpp7wp21wvvp28v5r"
   }
  },
  {
@@ -70121,8 +70819,8 @@
     20181024,
     1439
    ],
-   "commit": "9c66e698466ed29a493df8746b767558684205b2",
-   "sha256": "0lpzicxaj2nf4926j50x29sijgarkrj2wvsmnp1xfj1s38v9pyqd"
+   "commit": "8cd25aa78c2ff2ca8b3712f8c3630d1a095856d9",
+   "sha256": "0qq1p2pjpnvhrblbsh80k43ksrzb1nw48gw8srw32vih91pv02x5"
   },
   "stable": {
    "version": [
@@ -70244,15 +70942,15 @@
   "repo": "travisbhartwell/nix-emacs",
   "unstable": {
    "version": [
-    20191126,
-    759
+    20210325,
+    1622
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
-   "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+   "commit": "053a2d5110ce05b7f99bcc2ac4804b70cbe87916",
+   "sha256": "05vxac2llww4ba5w0dmf0hza60l5i847hfabs0q5i8kzmw4f8s8z"
   }
  },
  {
@@ -70281,8 +70979,8 @@
     20160209,
     1841
    ],
-   "commit": "977b9a505ffc8b33b70ec7742f90e469b3168297",
-   "sha256": "07vidk3bnby1ch51i67llfdx2q8xc4ax5hvlrc3f72y9gkcpir4x"
+   "commit": "053a2d5110ce05b7f99bcc2ac4804b70cbe87916",
+   "sha256": "05vxac2llww4ba5w0dmf0hza60l5i847hfabs0q5i8kzmw4f8s8z"
   },
   "stable": {
    "version": [
@@ -70311,8 +71009,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "213251f82a69edc033766ec96948e83aeb428cd2",
-   "sha256": "1hx13p9rs33j2ajbg0dp6a371hr0dcxbcyzr5xlvkg6gf746lmg8"
+   "commit": "0df268136d14f27770fa5bb3bdb991e987337cf4",
+   "sha256": "137hvv9ry2h5975v06x22bdirdn7ms0gv216wkz6y68897k7hv3p"
   },
   "stable": {
    "version": [
@@ -70404,18 +71102,17 @@
   "repo": "dickmao/nndiscourse",
   "unstable": {
    "version": [
-    20200829,
-    1751
+    20210219,
+    1949
    ],
    "deps": [
     "anaphora",
     "dash",
-    "dash-functional",
     "json-rpc",
     "rbenv"
    ],
-   "commit": "152f3176fff026572d2cfa22adaeb32f42410083",
-   "sha256": "1sljvp31jccffd6h21lf01lkr4qa093ia0bh7kakx9azvqdz55qf"
+   "commit": "c6074af3b60ef7af7d9c45b8ad1daa21296a5e04",
+   "sha256": "0hx8sg6wa688f2bzddbzl81b553vjv8aaafizns9r8icsws7acc0"
   }
  },
  {
@@ -70426,17 +71123,16 @@
   "repo": "dickmao/nnhackernews",
   "unstable": {
    "version": [
-    20210203,
-    240
+    20210219,
+    1948
    ],
    "deps": [
     "anaphora",
     "dash",
-    "dash-functional",
     "request"
    ],
-   "commit": "008d4a475dcf9432318d0baed53a0a196453ee75",
-   "sha256": "0s9wgq1k1f3dlx6rna67p2bpnpd6cn3x9wvi8dlg3wfckg652fjy"
+   "commit": "b5a221b63c8b311d50807fdfab4ae6b965844f06",
+   "sha256": "1lq3rh52x0f059lxk0cczins2vggiwjs5m1drj7dkb8lmlxc41y4"
   }
  },
  {
@@ -70828,17 +71524,17 @@
     20210205,
     1412
    ],
-   "commit": "8fb42948a209c54e3dcf832119d7f54e9cc0665a",
-   "sha256": "017fqgwvvrbb8i6bfaappimz8fv41b01ia06xq9fn0a2vzn1pf4r"
+   "commit": "4e209ca99ac8084a357c6fc8d7773f6207cfa16d",
+   "sha256": "07ygvb6skrz0vxvvswjf35qdgps2p8cfhmjxqprkj1x59k7dvwi6"
   },
   "stable": {
    "version": [
     0,
     31,
-    3
+    4
    ],
-   "commit": "d812256aeb91646b5b1c644fa67f07c483cca651",
-   "sha256": "1wm1myzacz1dcg7vdfd3akia3xan7ssfspf1fflrwm18hdalss5v"
+   "commit": "3a3208bb7b8bfca1c0bcaa5b45b6ef71aa768612",
+   "sha256": "04q9zwy6mpck82zk70xnx2knh2jmqhf676703kjw0fbvdrzw9qik"
   }
  },
  {
@@ -70938,15 +71634,15 @@
   "url": "https://depp.brause.cc/nov.el.git",
   "unstable": {
    "version": [
-    20201207,
-    3
+    20210323,
+    1105
    ],
    "deps": [
     "dash",
     "esxml"
    ],
-   "commit": "0ece7ccbf79c074a3e4fbad1d1fa06647093f8e4",
-   "sha256": "116klnjyggwfwvs9nqhpv97m00k63q6lg41ph41kywsqkfy42dlk"
+   "commit": "b3c7cc28e95fe25ce7b443e5f49e2e45360944a3",
+   "sha256": "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf"
   },
   "stable": {
    "version": [
@@ -71162,8 +71858,8 @@
     20210129,
     850
    ],
-   "commit": "72fac3d4b7a1c42a71cb396d20cc22fca8a52ed5",
-   "sha256": "17ks8cmnwc313q9vcxbrsv9xmji2hdnw18jczc3xrgl441vkzds1"
+   "commit": "2aa3a96abbc76f007923f3fbb19a5246e29ae500",
+   "sha256": "0lhl49cs0sdr7p22spxf83sixp1pzjiq11plmxc8i0lqv735b9sn"
   },
   "stable": {
    "version": [
@@ -71291,6 +71987,38 @@
   }
  },
  {
+  "ename": "numpydoc",
+  "commit": "e7e20f00482f143ac67589a48f7bc591e075b5da",
+  "sha256": "1p2ls9qmbl58p4cyrk4f769blc72lfgbwd3sy4hhkv75m4qj4lws",
+  "fetcher": "github",
+  "repo": "douglasdavis/numpydoc.el",
+  "unstable": {
+   "version": [
+    20210305,
+    2006
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "a8bc2a58220e7eb92d61a637c2c6d8cb2ccb270b",
+   "sha256": "1c2nhg00naqj2m4avjsk03bpdbkspsjkng5fdhf6nx58ny9xdj5p"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "1549f362fda96b75760f20cee9b471362823ef4e",
+   "sha256": "1d5ff42fifssb38qvmhr8p6rvgak7z1mjhandirla05bjb4cramp"
+  }
+ },
+ {
   "ename": "nv-delete-back",
   "commit": "7542fa39060b507a6f455225367e45e89d3e2f92",
   "sha256": "13izzym4alda05k7ra67lyjx6dx23fjqz2dqk7mrzhik9x552hsr",
@@ -71313,17 +72041,16 @@
   "repo": "rejeep/nvm.el",
   "unstable": {
    "version": [
-    20201005,
-    2328
+    20210217,
+    744
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "f",
     "s"
    ],
-   "commit": "f15334f78de7786617a15c9de54f4c79a92865fb",
-   "sha256": "10v4593yz3afrqj6zilq3dw2fngf0f20dy2mrgbcickvdbvkifby"
+   "commit": "6f47fac1bc42526a7474488f560d064c08f8dd6e",
+   "sha256": "01rfgxkahpx17q8k72hxibysysv8pgx6bfy5gbc6finm3f7ak6ia"
   },
   "stable": {
    "version": [
@@ -71411,6 +72138,25 @@
   }
  },
  {
+  "ename": "oauth2-request",
+  "commit": "d8fd29717d69408c845d44077b5223902051dbd9",
+  "sha256": "1yb9wgc1p6rbsarb7yhwwrpsjz2adnf9k590c9sif9vx3llras2g",
+  "fetcher": "github",
+  "repo": "conao3/oauth2-request.el",
+  "unstable": {
+   "version": [
+    20210215,
+    657
+   ],
+   "deps": [
+    "oauth2",
+    "request"
+   ],
+   "commit": "86ff048635e002b00e23d6bed2ec6f36c17bca8e",
+   "sha256": "0z9vkssdxkikwjcb3vrby5dfcixy4lw9r2jp7g9nls6w88l184jf"
+  }
+ },
+ {
   "ename": "ob-ammonite",
   "commit": "508358506a6994baf120be2acba86762f5727c6c",
   "sha256": "0wr7p3sfn9m8vz87lzas943zcm8vkzgfki9pbs3rh3fxvdc197lb",
@@ -71493,8 +72239,8 @@
    "deps": [
     "axiom-environment"
    ],
-   "commit": "d9c1c85ea731a18f271bd003a5b1736e26fa172a",
-   "sha256": "1clcbgs5dk3jas6sclsfj6ibrb0n2508xapyp85lb0nm01i07jb9"
+   "commit": "ac8228a702290732ba12c5d13b38576a57afb0d6",
+   "sha256": "1nrlgrckvh2fiwis9bmr95h2bpxfkz1nknxdz61380f2caqwwhw7"
   }
  },
  {
@@ -72148,6 +72894,24 @@
   }
  },
  {
+  "ename": "ob-reticulate",
+  "commit": "cccdf7cfda6b23877d0649145808f0a4e9321b1a",
+  "sha256": "0jjrdykpcswbwjvy4zzs7sfjyxnzvvc17wa67arharpxgg4d8083",
+  "fetcher": "github",
+  "repo": "jackkamm/ob-reticulate",
+  "unstable": {
+   "version": [
+    20210214,
+    2229
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "8109fb02fb6339b1cf9290df29fc0c1109a33c04",
+   "sha256": "1wr0acf0nhdz48n8p1q80sv0bd929n7v8ahcrx5zc7wcimbqshl1"
+  }
+ },
+ {
   "ename": "ob-rust",
   "commit": "843affc2fd481647c5377bf9a96b636b39718034",
   "sha256": "1syzwh399wcwqhg1f3fvl12978dr574wji7cknqvll3hyh0zwd65",
@@ -72500,17 +73264,17 @@
     20201204,
     945
    ],
-   "commit": "60678b05f75d660fcde4c1b991758af9620dcea8",
-   "sha256": "07xszr8405lcakzdl6c99x73a6zdfc43dr30rw9qpq4mrs6q5npz"
+   "commit": "448ac7c1496e2a6e83d63a7bcd9cf4e35bb2b1fb",
+   "sha256": "0rgh3c17h3k5bj897by7v64xbpf9pqpkg1kicka3w4g8gc0mb3v8"
   },
   "stable": {
    "version": [
     0,
-    16,
+    17,
     0
    ],
-   "commit": "101d2306f5b0b23bbc25e1155c1ffd51a0bbf61e",
-   "sha256": "0yf1kf3yhiw39qpybz2aszwl7kjshiv45d81gq7q7xgn9nqnf0z4"
+   "commit": "bfd6bbe95c614d1d982244c4fd0ba494275d2245",
+   "sha256": "0vy69sjl184czpwbhcbgzyh8kgj6n3jq8ckllcbwic859aq8lqvn"
   }
  },
  {
@@ -72694,26 +73458,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20210107,
-    1519
+    20210223,
+    1351
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "7edfa815105543a183b1503fa49531f77a713840",
-   "sha256": "09sl4bpd5k25cb82q57f39hb74hsilg9271zbs6nxvrshks23wy3"
+   "commit": "e880c4f65ad20e22ab845fc2918ca74cc37bf39a",
+   "sha256": "197fn08xhk6cbvi4hqf51v40x0ki5n8h1896g3bpl4fasfy5zicp"
   },
   "stable": {
    "version": [
     3,
-    15,
+    17,
     0
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "7edfa815105543a183b1503fa49531f77a713840",
-   "sha256": "09sl4bpd5k25cb82q57f39hb74hsilg9271zbs6nxvrshks23wy3"
+   "commit": "e880c4f65ad20e22ab845fc2918ca74cc37bf39a",
+   "sha256": "197fn08xhk6cbvi4hqf51v40x0ki5n8h1896g3bpl4fasfy5zicp"
   }
  },
  {
@@ -73041,8 +73805,8 @@
     "popup",
     "s"
    ],
-   "commit": "8ec59296b2e2a12d8ea146fb7056091fbb7bdd10",
-   "sha256": "02kx5gx1hk5r3lks3y9myq3x90zcz0snhckyf7sx45ydgnjxm5j4"
+   "commit": "5fad6835bee15792774183164dd423ba18cf1e01",
+   "sha256": "1ww202j6bh8ycw2wfngy9rw1hv5qrjg66bgp2yj28j12ag1qxn2r"
   },
   "stable": {
    "version": [
@@ -73386,11 +74150,11 @@
   "repo": "oantolin/orderless",
   "unstable": {
    "version": [
-    20210212,
-    1645
+    20210323,
+    2341
    ],
-   "commit": "edce950fe1353c2284516f7b01bd37bc2d7fa136",
-   "sha256": "0dgw51f5cp2yxvpq11xkbavbykkr9c275pizcj8d81zw8jrnbs79"
+   "commit": "44935d8962be5724d8a3a4358ce0a4222450ee26",
+   "sha256": "1f76k6cp0m6r47s91za3sad09vrka41x9vwxh40bi9achwc3538q"
   },
   "stable": {
    "version": [
@@ -73567,6 +74331,21 @@
   }
  },
  {
+  "ename": "org-appear",
+  "commit": "d4c5bea920593d5da72b4208c0727b5ced0a588a",
+  "sha256": "1b88r4nsvm1ndicwc2rgkznmfcyb6bz7fb05fw667dw6mzmlpxk1",
+  "fetcher": "github",
+  "repo": "awth13/org-appear",
+  "unstable": {
+   "version": [
+    20210307,
+    1335
+   ],
+   "commit": "0b3b029d5851c77ee792727b280f062eaf2c22c7",
+   "sha256": "136z40r0i9q9wqbj4yxa8d4c2ygx7dzp9i126ra56sm6cdkvz0cj"
+  }
+ },
+ {
   "ename": "org-attach-screenshot",
   "commit": "f545cd8d1da39e7fbd61020e178de30053ba774b",
   "sha256": "0108kahyd499q87wzvirv5d6p7jrb7ckz8r96pwqzgflj3njbnmn",
@@ -73574,11 +74353,11 @@
   "repo": "dfeich/org-screenshot",
   "unstable": {
    "version": [
-    20201130,
-    1607
+    20210221,
+    1336
    ],
-   "commit": "a467a1f04a416252f067b95c0f00a9f10d03c433",
-   "sha256": "1mi9h69zdm4yhvpsgiqvg214f5k818y3w1hz626cw0vr2jxmgdf2"
+   "commit": "6a5d5f8fd7cda1200cf088f415b9983e89a03075",
+   "sha256": "0gqqcgadlzzbqd4sqbwbwx41app6ryz2l3lrng8bz9hq9cx547jj"
   }
  },
  {
@@ -73589,26 +74368,26 @@
   "repo": "yilkalargaw/org-auto-tangle",
   "unstable": {
    "version": [
-    20210208,
-    847
+    20210214,
+    917
    ],
    "deps": [
     "async"
    ],
-   "commit": "5da721fff97a44a38a650b23bdf73b74f17d4a36",
-   "sha256": "0iydrx38ih8vrj7p3sn861ckn52sh8pvwjvl7s3287j3x81affnh"
+   "commit": "ea2ca74a68eb44d935b7240ffc8f19c8a4db334a",
+   "sha256": "0wskvkwrw0vgknq895by10bcwglaikgkrs1z54f6wyfyksa801ja"
   },
   "stable": {
    "version": [
     0,
     2,
-    10
+    13
    ],
    "deps": [
     "async"
    ],
-   "commit": "7bd6e9c934bc659b026b0d1497b2013da44597d8",
-   "sha256": "04wc7yc47csz1amzm7990f46pr89avcxrpf2kyiw02i1lc50cfpq"
+   "commit": "ea2ca74a68eb44d935b7240ffc8f19c8a4db334a",
+   "sha256": "0wskvkwrw0vgknq895by10bcwglaikgkrs1z54f6wyfyksa801ja"
   }
  },
  {
@@ -74038,11 +74817,11 @@
   "repo": "thisirs/org-context",
   "unstable": {
    "version": [
-    20200615,
-    1554
+    20210216,
+    1526
    ],
-   "commit": "8ef429124c13b1a68f7672cb6e6cb9c8b9d9db93",
-   "sha256": "178hpp3ylafmr2n3ydcqwqjxa8avlb8g1n3swzndc3jjk0gy6vck"
+   "commit": "a08f1f607f819791b9b95ad4f91c5eaa9fdbb091",
+   "sha256": "18ld5kqr0l7nklybdwbwrnkrh06w71myfynbwp9rh8q4lhzh73jc"
   }
  },
  {
@@ -74507,8 +75286,8 @@
   "repo": "kidd/org-gcal.el",
   "unstable": {
    "version": [
-    20201113,
-    2330
+    20210313,
+    420
    ],
    "deps": [
     "alert",
@@ -74516,8 +75295,8 @@
     "request",
     "request-deferred"
    ],
-   "commit": "0a6f9a7385410b70853eb65c14344ad76cc6815f",
-   "sha256": "0m6h2psshkr2kvckp2bmaj2y1cp3kbyw2nwwvwg2k3yymkqr8l7l"
+   "commit": "d38acdad70883dc3fe34a4cd41024e5a8099ddb2",
+   "sha256": "17lnsn045l99w787mbrq623div40w3c59rgryvx04px085bb2i5g"
   },
   "stable": {
    "version": [
@@ -74661,28 +75440,28 @@
   "repo": "marcIhm/org-id-cleanup",
   "unstable": {
    "version": [
-    20210212,
-    1158
+    20210320,
+    1023
    ],
    "deps": [
     "dash",
     "org"
    ],
-   "commit": "87752d5b4811f94d0e5b2cc220aa30147a89a7ea",
-   "sha256": "03c29app8n1a8grv2a7qlqgq7f90ql1raxfnm9slfwk1al3s8j8k"
+   "commit": "0877bd57f95ad96a342505a6ecef0c15977f6bd6",
+   "sha256": "02q343sznbw1ma9zcxnpa7sy37s85ph9phpg479pfz5c51kji09h"
   },
   "stable": {
    "version": [
     1,
     5,
-    5
+    7
    ],
    "deps": [
     "dash",
     "org"
    ],
-   "commit": "87752d5b4811f94d0e5b2cc220aa30147a89a7ea",
-   "sha256": "03c29app8n1a8grv2a7qlqgq7f90ql1raxfnm9slfwk1al3s8j8k"
+   "commit": "0877bd57f95ad96a342505a6ecef0c15977f6bd6",
+   "sha256": "02q343sznbw1ma9zcxnpa7sy37s85ph9phpg479pfz5c51kji09h"
   }
  },
  {
@@ -74717,30 +75496,30 @@
   "repo": "marcIhm/org-index",
   "unstable": {
    "version": [
-    20210208,
-    1405
+    20210320,
+    1013
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "b0a4892ca4f2f9791ebc78b472680465f5785fc6",
-   "sha256": "14xhbsar219kbgzg59ynynxx21723f7f0qr39p2ardi16b00pzvs"
+   "commit": "47dda7d3dce11e8ab9a3847f8c6a1cbb8345f861",
+   "sha256": "1s1y0xlin1yx716awzbq6lvzz5c3c5i9qvacgm006bypg8qlmz1a"
   },
   "stable": {
    "version": [
     7,
     1,
-    2
+    6
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "b0a4892ca4f2f9791ebc78b472680465f5785fc6",
-   "sha256": "14xhbsar219kbgzg59ynynxx21723f7f0qr39p2ardi16b00pzvs"
+   "commit": "47dda7d3dce11e8ab9a3847f8c6a1cbb8345f861",
+   "sha256": "1s1y0xlin1yx716awzbq6lvzz5c3c5i9qvacgm006bypg8qlmz1a"
   }
  },
  {
@@ -74800,16 +75579,16 @@
   "repo": "ahungry/org-jira",
   "unstable": {
    "version": [
-    20201119,
-    154
+    20210325,
+    424
    ],
    "deps": [
     "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "df45be17fb66490f625b60c99d9954e614885101",
-   "sha256": "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"
+   "commit": "7beb2023c36106aefe1a260a7618e285d52eb0a1",
+   "sha256": "0srn5z0r3g8mjb8pibwipzjm5p3w8dwzldfdmlyli1a6akcinsxv"
   },
   "stable": {
    "version": [
@@ -74834,14 +75613,14 @@
   "repo": "bastibe/org-journal",
   "unstable": {
    "version": [
-    20210204,
-    820
+    20210326,
+    1207
    ],
    "deps": [
     "org"
    ],
-   "commit": "f4b15499135d43e98244dda4606a5b97462b3f39",
-   "sha256": "140wfvj2cygpip75w60difg9gwvh5c53ds6zbysnj5zqsjm4zica"
+   "commit": "043bb9e26f75066dc1787cdc9265daca7a14dd4e",
+   "sha256": "0x4fvxdrllih2n643v3wgq0rl72dyhk11xqi2l1h718iaz4kqi5i"
   },
   "stable": {
    "version": [
@@ -74879,30 +75658,30 @@
   "repo": "gizmomogwai/org-kanban",
   "unstable": {
    "version": [
-    20200729,
-    2120
+    20210315,
+    28
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "70b4c9823b32ae299f3da521966b6c5abacf73e2",
-   "sha256": "159g13m1zpc1b2ggs9iw2l51pj0h433y1x00bgznhc9fvamysasd"
+   "commit": "198ffa2066aadcdd9530dcc9b82cb5626c49e257",
+   "sha256": "1lh7hgzbkmhv7hqc0fvgvivkihg96c41ms1v7rcknnp3f1kj195h"
   },
   "stable": {
    "version": [
     0,
     6,
-    1
+    3
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "fbb27c3983ad735a333c766815642a6615cea2ed",
-   "sha256": "0xclk323hq4lszqmvba4v8785v57bxfxln5n1hy0vaf0f45hfkjw"
+   "commit": "198ffa2066aadcdd9530dcc9b82cb5626c49e257",
+   "sha256": "1lh7hgzbkmhv7hqc0fvgvivkihg96c41ms1v7rcknnp3f1kj195h"
   }
  },
  {
@@ -74932,8 +75711,8 @@
   "repo": "yangsheng6810/org-latex-impatient",
   "unstable": {
    "version": [
-    20201123,
-    845
+    20210312,
+    2250
    ],
    "deps": [
     "dash",
@@ -74941,8 +75720,8 @@
     "posframe",
     "s"
    ],
-   "commit": "d8be05fd6857c72a1766e3fa9dafa1602ccf88e3",
-   "sha256": "0vidxcv07brz4adik1826g0v7zyyz80r84kzz01rcxcc471fl957"
+   "commit": "a27ec1491c7d897904e84d9b9db380e1a4c7914a",
+   "sha256": "0r0yn0z4d5y5mzc8awg8wcb3lvb058c7gk7v5mghnwln50zvqqia"
   }
  },
  {
@@ -74953,14 +75732,14 @@
   "repo": "stardiviner/org-link-beautify",
   "unstable": {
    "version": [
-    20210210,
-    1421
+    20210222,
+    227
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "bbf6257951cfcee7cb7850eca6af17d797555c86",
-   "sha256": "1sps2j096rhk0sfvl98lvvcqv8i9886xav7r9r7fw0qa1sc5337z"
+   "commit": "4662b3a7b9244aa35aae2f469f87be4a44a6b1bb",
+   "sha256": "1wb00rm6zdlb8hrhph783wi8zjra8m09gi6m2nnfr37al3986g0s"
   }
  },
  {
@@ -75031,15 +75810,14 @@
   "repo": "dfeich/org-listcruncher",
   "unstable": {
    "version": [
-    20210130,
-    1405
+    20210304,
+    1602
    ],
    "deps": [
-    "cl-lib",
     "seq"
    ],
-   "commit": "291a824d8da1c14a883e21281b596ce9dcd11e1b",
-   "sha256": "0bz57dvydz67bk704q2daxkfpdygxmz9jf6ilycjip2v16lx37i1"
+   "commit": "b0269843f317b6715dbde8a4e955aac9c38cbdb6",
+   "sha256": "1ywwngjqfvppxbb0dghqzr0kg9dxyqidjgjrh4ncc0zc9iamcx2w"
   }
  },
  {
@@ -75083,14 +75861,14 @@
   "repo": "org-mime/org-mime",
   "unstable": {
    "version": [
-    20201224,
-    1404
+    20210309,
+    1028
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b47811562ba5c0882e9bacf9124b18fb5d0f4a61",
-   "sha256": "0xnrgf5p9l920lfzfxa7msjfgm6ic7xfn4mycxjv9jmdnkdm85hw"
+   "commit": "eb21c02ba8f97fe69c14dc657a7883b982664649",
+   "sha256": "0bgrp39mi8pqfr8hfd2lgjil3br55bgilhj09hy3v6klzypbdviy"
   },
   "stable": {
    "version": [
@@ -75132,30 +75910,30 @@
   "repo": "ndwarshuis/org-ml",
   "unstable": {
    "version": [
-    20210203,
-    1452
+    20210224,
+    2308
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "5faf2bd099c51b51af241132578c1a4e06f73d57",
-   "sha256": "0f1ldhsjnfh1jn3zlgnmw22fml0y1dhvn7gsbf4x2szkcw1i9hfs"
+   "commit": "1b02583a5cdb8f6b7cd82b31ec80b53753cb7729",
+   "sha256": "1p1k5zmc0dklbvnck0zhsxqmndask822ikaa40d1ik105w1vx3bz"
   },
   "stable": {
    "version": [
     5,
-    5,
-    4
+    6,
+    1
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "1c7ace3d536f6f1b63410a63e52975dc37871b77",
-   "sha256": "0f1ldhsjnfh1jn3zlgnmw22fml0y1dhvn7gsbf4x2szkcw1i9hfs"
+   "commit": "4fe1f194a8eba00858b78d611ad8a7f14392722d",
+   "sha256": "1p1k5zmc0dklbvnck0zhsxqmndask822ikaa40d1ik105w1vx3bz"
   }
  },
  {
@@ -75184,11 +75962,11 @@
   "repo": "unhammer/org-mru-clock",
   "unstable": {
    "version": [
-    20210127,
-    1400
+    20210216,
+    1141
    ],
-   "commit": "75d4f32c2526f752bd121aa807ee9256e0e64441",
-   "sha256": "026p6sk02lk6cc4mrhpjqrfksfxfa1mmn0k68ipa3wgg1rizdhhi"
+   "commit": "99ac0c85060f9e4710de73db4a19120a0a23c39e",
+   "sha256": "1xqb9pcj6hw1z6anvy5hm78a90m442cg868d62yyynwkzjyns64q"
   },
   "stable": {
    "version": [
@@ -75226,8 +76004,8 @@
   "repo": "akirak/org-multi-wiki",
   "unstable": {
    "version": [
-    20210122,
-    552
+    20210324,
+    1820
    ],
    "deps": [
     "dash",
@@ -75235,8 +76013,8 @@
     "org-ql",
     "s"
    ],
-   "commit": "3b97aa047233d521e937b6040cf9085e77507f28",
-   "sha256": "0rq37k0ydksc2wsavy4g6wydr2hxcclbipab14qdldvrif35sr24"
+   "commit": "bf8039aadddaf02569fab473f766071ef7e63563",
+   "sha256": "0hmn9yy2d7wy6zz81ddd96rksmvs9k5529dfqrkrpl4v3bn3g52d"
   },
   "stable": {
    "version": [
@@ -75358,6 +76136,27 @@
   }
  },
  {
+  "ename": "org-notifications",
+  "commit": "cd49aa8b5692ce460f3a3e9f6310f82665de4a47",
+  "sha256": "03gbdn1igdhna7kpcvwwf21mkyp94fwv1glsajd1l88r1a9n3dss",
+  "fetcher": "github",
+  "repo": "doppelc/org-notifications",
+  "unstable": {
+   "version": [
+    20210310,
+    1149
+   ],
+   "deps": [
+    "alert",
+    "org",
+    "seq",
+    "sound-wav"
+   ],
+   "commit": "41a8a6b57e11a5b676b03925d473066655364808",
+   "sha256": "1fb4jm1zhfllzzrdbasgp1r3ggjs3xa4pfd5papi6mfcz9ypxqsh"
+  }
+ },
+ {
   "ename": "org-octopress",
   "commit": "fba6c3c645ba903f636814b5a2bb1baca0b5283b",
   "sha256": "0r6ms9j4xxsrik4206g7gz4wz41wr4ylpal6yfqs4hhz88yhxrhw",
@@ -76016,8 +76815,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20210210,
-    1810
+    20210324,
+    1337
    ],
    "deps": [
     "bibtex-completion",
@@ -76032,8 +76831,8 @@
     "pdf-tools",
     "s"
    ],
-   "commit": "32803203cc4b01e1d4436f0f65138bf569dad8ad",
-   "sha256": "09g9zblhkfcaks5m4h418v85cwbz308r7sh1qj2v8yxay1360v03"
+   "commit": "3ca9beb744621f007d932deb8a4197467012c23a",
+   "sha256": "1n262rsmil2n7dilf711gs8rciv8gd7wf3vadb0zcbkbn703jbk9"
   },
   "stable": {
    "version": [
@@ -76159,8 +76958,8 @@
   "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20210128,
-    1341
+    20210308,
+    457
    ],
    "deps": [
     "dash",
@@ -76170,8 +76969,8 @@
     "org",
     "s"
    ],
-   "commit": "b0fd12647b94ba6e3cf82a2a5b1ee7655ac07760",
-   "sha256": "0blpfwiff0sn39hfsk2zznmkj8ad0f4a65vcbgdqmmc9i56yahv1"
+   "commit": "8ad57b121831eda8d226faa14ff2ba7ab652849c",
+   "sha256": "162qhb6rkpl1n0l8yhnwgagsx56ykaj9lchsny1id5z1257kgw9w"
   },
   "stable": {
    "version": [
@@ -76199,28 +76998,29 @@
   "repo": "org-roam/org-roam-bibtex",
   "unstable": {
    "version": [
-    20210129,
-    954
+    20210322,
+    2231
    ],
    "deps": [
     "bibtex-completion",
+    "org-ref",
     "org-roam"
    ],
-   "commit": "c2b097e982108f53bb995c74dde3b1a9dd28cb5b",
-   "sha256": "0gv5a4bk333vg1xy9pys9j52ikp9n1y17x5mgm4w2gnf2q0s1sc8"
+   "commit": "ffe0cdbcfd7421c10268fb3437fc5bd6ceadcbd2",
+   "sha256": "1a9k9nxcqzyfip06m59la1rq8siswhg9zys3y6i3iz5wfy5vd0lk"
   },
   "stable": {
    "version": [
     0,
-    4,
+    5,
     0
    ],
    "deps": [
     "bibtex-completion",
     "org-roam"
    ],
-   "commit": "71da772469bcb49d4a93ee9d9704fbee9488aa28",
-   "sha256": "13pll793khyfncpwm2dg24w747sqp7kgf7m3fqw2xzhv9cx2g7nq"
+   "commit": "81b6fedf99996a78199067e61935964dea9389ee",
+   "sha256": "1xb7nskz73dfa2rgwmf4s3iq10f43zagggia3ddhx109wmy2m9a9"
   }
  },
  {
@@ -76231,8 +77031,8 @@
   "repo": "org-roam/org-roam-server",
   "unstable": {
    "version": [
-    20210201,
-    1122
+    20210321,
+    1040
    ],
    "deps": [
     "dash",
@@ -76242,8 +77042,8 @@
     "s",
     "simple-httpd"
    ],
-   "commit": "2093ea5a1a1f2d128dd377778472a481913717b4",
-   "sha256": "1jp8mkqx1l3w166b16l2d5zsqjcc836bkclplgjk4laysb6msry8"
+   "commit": "2122a61e9e9be205355c7e2c1e4b65986d6985a5",
+   "sha256": "05fh2065hl17vqsph5kgraaq303q2j48aqvll2mdpl666rhdlws8"
   },
   "stable": {
    "version": [
@@ -76447,17 +77247,16 @@
   "repo": "alhassy/org-special-block-extras",
   "unstable": {
    "version": [
-    20210208,
-    103
+    20210228,
+    212
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "org",
     "s"
    ],
-   "commit": "7b94dcb8daa2495348da0c4177af77e911e0fb3c",
-   "sha256": "0yvna55zl74q92hzrlmychmi0h1gzsz9kaciy517vgzc3ma8w348"
+   "commit": "143146d5bab10e32d4a24f4c3e5e30905b0f3176",
+   "sha256": "1wbb5isfm1ixv2zbys75cn276zcr2927j3h2crb081acygm78qqv"
   },
   "stable": {
    "version": [
@@ -76481,8 +77280,8 @@
   "repo": "ndwarshuis/org-sql",
   "unstable": {
    "version": [
-    20210121,
-    1746
+    20210306,
+    329
    ],
    "deps": [
     "dash",
@@ -76490,14 +77289,14 @@
     "org-ml",
     "s"
    ],
-   "commit": "9a2a753b41685b241fb3ba6cf5c01073b4648e0f",
-   "sha256": "1iy25j0qqqic6jzzppg0vq4990r97n9glikrmwzq6hwj9y901bj4"
+   "commit": "c93834332a333f6a602d3bbe0b39c79abb2f78cb",
+   "sha256": "1wp3d3b1wdw8v5drwbrfxrbq8psf82bs9cwjin2psfgb4n1166dy"
   },
   "stable": {
    "version": [
-    1,
-    1,
-    1
+    3,
+    0,
+    0
    ],
    "deps": [
     "dash",
@@ -76505,8 +77304,8 @@
     "org-ml",
     "s"
    ],
-   "commit": "9a2a753b41685b241fb3ba6cf5c01073b4648e0f",
-   "sha256": "1iy25j0qqqic6jzzppg0vq4990r97n9glikrmwzq6hwj9y901bj4"
+   "commit": "1cc854e814f86bc35f536563837a97a832a06122",
+   "sha256": "1wp3d3b1wdw8v5drwbrfxrbq8psf82bs9cwjin2psfgb4n1166dy"
   }
  },
  {
@@ -76517,15 +77316,14 @@
   "repo": "akirak/org-starter",
   "unstable": {
    "version": [
-    20201202,
-    234
+    20210314,
+    1558
    ],
    "deps": [
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "23368e36453ff15b2de06e85702d6f0e0bc9f098",
-   "sha256": "1iznmya5kk3y9irka7f6yyrnzv3b3zh6kdr2wvyir930kcv52n63"
+   "commit": "786257e682bf147022d5b19e6df6e7c9939193af",
+   "sha256": "1vfw06c08yhpc1dbqb4gprh9l3j0rgsyvhhgmvcv3y5cq2yaibhb"
   },
   "stable": {
    "version": [
@@ -76556,8 +77354,8 @@
     "org-starter",
     "swiper"
    ],
-   "commit": "23368e36453ff15b2de06e85702d6f0e0bc9f098",
-   "sha256": "1iznmya5kk3y9irka7f6yyrnzv3b3zh6kdr2wvyir930kcv52n63"
+   "commit": "786257e682bf147022d5b19e6df6e7c9939193af",
+   "sha256": "1vfw06c08yhpc1dbqb4gprh9l3j0rgsyvhhgmvcv3y5cq2yaibhb"
   },
   "stable": {
    "version": [
@@ -76581,20 +77379,20 @@
   "repo": "bastibe/org-static-blog",
   "unstable": {
    "version": [
-    20210211,
-    933
+    20210321,
+    2008
    ],
-   "commit": "a66d1e43882978a9da82c033a809765061c71052",
-   "sha256": "1xpwpfwbxblybj8h9dqd6d9s0xy95hpkfviviwzprcsrm9i7b971"
+   "commit": "e0265c97dd9d014760eb6280be6c8bb81793cdf5",
+   "sha256": "0g0mwgc5mrwchqj679b8jzxn2j4pfnysyp3xlpx41gk24hakpfqh"
   },
   "stable": {
    "version": [
     1,
-    4,
+    5,
     0
    ],
-   "commit": "58019b6dd1ae1323b72d491e65bf9636a9278dd6",
-   "sha256": "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"
+   "commit": "734dd263cf79e4d5a0077f8b5ce344ea45bf7f3d",
+   "sha256": "1p9v40mm8p25b9xgfahwqqx4c36aqnl9yyjjdhkp6x5xkhkdf7by"
   }
  },
  {
@@ -76671,26 +77469,26 @@
   "repo": "integral-dw/org-superstar-mode",
   "unstable": {
    "version": [
-    20210212,
-    1458
+    20210216,
+    1925
    ],
    "deps": [
     "org"
    ],
-   "commit": "84362aeccb7e1022f534e7face6aa5456ec9a787",
-   "sha256": "1700n0zxk58d9akkdhgjhdi9xya1b4x0cchdw42gxbwycrzsjnf3"
+   "commit": "9d64c42e5029910153ec74cb9b5747b074281140",
+   "sha256": "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"
   },
   "stable": {
    "version": [
     1,
-    4,
+    5,
     0
    ],
    "deps": [
     "org"
    ],
-   "commit": "94f35c20f8b84a63defa145e3e6ae735fa33dd5d",
-   "sha256": "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"
+   "commit": "9d64c42e5029910153ec74cb9b5747b074281140",
+   "sha256": "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"
   }
  },
  {
@@ -76806,15 +77604,15 @@
   "repo": "stardiviner/org-tag-beautify",
   "unstable": {
    "version": [
-    20210202,
-    628
+    20210304,
+    1124
    ],
    "deps": [
     "all-the-icons",
     "org-pretty-tags"
    ],
-   "commit": "4a6de709ee0d4ee719c83df6dce86f38f9db1f75",
-   "sha256": "02qw4b750p4rav9kw3qwcvmril8wxkgdfqklbrfbws6wz2sjjv3l"
+   "commit": "e655ced70140cbec8fe12f9207614ca2b3a6c37c",
+   "sha256": "0853avvi2qpr19ca6c9ix8ls7r2r5v5f38nzkr4lbindmmxl6kpv"
   }
  },
  {
@@ -77054,11 +77852,11 @@
   "repo": "takaxp/org-tree-slide",
   "unstable": {
    "version": [
-    20201215,
-    1117
+    20210224,
+    1213
    ],
-   "commit": "d6e8e91433dfe4968f1343b483f2680f45a77d52",
-   "sha256": "1zz12xk8vl2qic5hpvl0jcwysbmrfb6rfigvf8hr3nhdm9fp36aw"
+   "commit": "9d2ba1df456d8d7c6372c8c294dbe3ee81540b33",
+   "sha256": "145avv616k190wzirlrh7rljysfffhh3j37wr7p6sk13wayqc27h"
   },
   "stable": {
    "version": [
@@ -77147,8 +77945,8 @@
   "repo": "org-trello/org-trello",
   "unstable": {
    "version": [
-    20200508,
-    1705
+    20210314,
+    1856
    ],
    "deps": [
     "dash",
@@ -77157,8 +77955,8 @@
     "request-deferred",
     "s"
    ],
-   "commit": "56c519a00c6e3c8f6923cd0460342089d58c41c9",
-   "sha256": "09028167pi9pzgcb8fpvqgvzviq1fxvgby5lb99wvyy94vjxwnk2"
+   "commit": "0435d77cd32cf475ce71b81cda4bb48066c44f31",
+   "sha256": "1nnii5d5qf0bgfpywmhzprh6f1hk39k2wnhnjl0ahqm99bl46fps"
   },
   "stable": {
    "version": [
@@ -77188,8 +77986,8 @@
     20200919,
     1348
    ],
-   "commit": "e086c59a14701cd041641b51c952fa704ee963df",
-   "sha256": "0w1crw5lsk22jfw2w5qq6ab7zxdzp38akasvyvxakvpp1782xq9p"
+   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
+   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
   }
  },
  {
@@ -77277,17 +78075,16 @@
   "repo": "akhramov/org-wild-notifier.el",
   "unstable": {
    "version": [
-    20200926,
-    1502
+    20210308,
+    1348
    ],
    "deps": [
     "alert",
     "async",
-    "dash",
-    "dash-functional"
+    "dash"
    ],
-   "commit": "b83d31422abcf9527d5ec0344f2fa2df5b76a357",
-   "sha256": "0cdd93sqx0ijajqa2z91bg6h6m1njsaqzwygr8q28dd2pazxq5xc"
+   "commit": "b616924f9b6e2c26c21e07ad6bccfc26826b7be3",
+   "sha256": "0ps3kzi95ybr7adrspmhflw9jw3h5d6lf0kl5cn45myyyjapckjj"
   },
   "stable": {
    "version": [
@@ -77313,30 +78110,30 @@
   "repo": "marcIhm/org-working-set",
   "unstable": {
    "version": [
-    20210212,
-    1204
+    20210320,
+    1019
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "8e22ffe59d241a0f43395f2cd88589ffb0c7db23",
-   "sha256": "0vcawnrj5ap3h0cy5h1nsiki41scgdhxf83adnvv3lj6gwif1l9a"
+   "commit": "f5512304dccc152816f9957f5627c814bcb0f683",
+   "sha256": "0kg2bjwp66fml3836zfr15aadh5d7srg8ai69g0nxk1kmalbxkdv"
   },
   "stable": {
    "version": [
     2,
     4,
-    3
+    4
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "8e22ffe59d241a0f43395f2cd88589ffb0c7db23",
-   "sha256": "0vcawnrj5ap3h0cy5h1nsiki41scgdhxf83adnvv3lj6gwif1l9a"
+   "commit": "f5512304dccc152816f9957f5627c814bcb0f683",
+   "sha256": "0kg2bjwp66fml3836zfr15aadh5d7srg8ai69g0nxk1kmalbxkdv"
   }
  },
  {
@@ -77459,15 +78256,15 @@
   "repo": "ardumont/org2jekyll",
   "unstable": {
    "version": [
-    20200622,
-    1519
+    20210220,
+    1845
    ],
    "deps": [
-    "dash-functional",
+    "dash",
     "s"
    ],
-   "commit": "571249c977e0340edb3ef3af45b7841b62ec8065",
-   "sha256": "1hjqawygbmvdlvzi908b2l4k7ca3g0dg32mpk7vld8xwi49hb1kp"
+   "commit": "e469373e0c656cec475c145037be1902d2622f09",
+   "sha256": "1pqrvrs54ggm2hr7b7m9n4wglbmakw0q9651mwxylz6bwm66kcc1"
   },
   "stable": {
    "version": [
@@ -77618,15 +78415,15 @@
   "repo": "magit/orgit",
   "unstable": {
    "version": [
-    20200714,
-    1943
+    20210309,
+    1906
    ],
    "deps": [
     "magit",
     "org"
    ],
-   "commit": "ac9b1a42863a864fde9d225890ef5464bffdc646",
-   "sha256": "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"
+   "commit": "609fd0ccfb5268704b5bc7d7ac1014d4960b9707",
+   "sha256": "00rmp5pbn7bn4mrfzlkh9dc5m80qw72bs5jxdss9sk38v1gvxbr3"
   },
   "stable": {
    "version": [
@@ -77760,8 +78557,8 @@
     20201129,
     604
    ],
-   "commit": "69b2b5c3c6e581c3da56ec3ca4e2cd6c2e141c51",
-   "sha256": "0a87izghc9kjjbxylaqiy5ln6hzf4kjsn8fk7s4dpx0mqv5ps7y6"
+   "commit": "5c065aa584d18257a58cd7c5439df5ce23d989c3",
+   "sha256": "1pmkkihnrch7z705mc94dmr8bxb4mgg7c5iirmrar4hhg84l13q2"
   },
   "stable": {
    "version": [
@@ -77781,11 +78578,11 @@
   "repo": "tbanel/orgaggregate",
   "unstable": {
    "version": [
-    20200829,
-    708
+    20210315,
+    1415
    ],
-   "commit": "bab95388b182c07bc9f0679426514fe7e8c997d9",
-   "sha256": "18qasx17hgfrmzkljjpni4m2lgic3imyksjg6wa7xrjf0y3kwmgw"
+   "commit": "639ec296ccca4e2f7405e9ef72506fad609f2167",
+   "sha256": "0nkm6y851sm1bp8ch9d7dxi1z07qs1254ab8zjv16hvq8arp0s6c"
   }
  },
  {
@@ -77811,14 +78608,14 @@
   "repo": "tbanel/orgtbljoin",
   "unstable": {
    "version": [
-    20200825,
-    640
+    20210225,
+    923
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "e93e8eaeab2137bc391cf6d0643619ce6b066d19",
-   "sha256": "0rbcdgsb7vzsjiwk5zskv15sf8npxdsbvpzd9r6s7aib83mb5kqa"
+   "commit": "f411d38de5e36f65336a37e43cfe9a5125b6543a",
+   "sha256": "05m6xq1c3cc2vpwfgknjx6rad8lr2hd6prbziq04qxp8x8qcs3sj"
   }
  },
  {
@@ -78008,14 +78805,14 @@
   "repo": "xuchunyang/osx-dictionary.el",
   "unstable": {
    "version": [
-    20191206,
-    519
+    20210309,
+    115
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1b79ff64c72485cb078db9ab7ee3256b11a99f4b",
-   "sha256": "1lnjpsb09w48ibjvabqkxqh997mv61zpvqhx3d35q4lw5sirgjxg"
+   "commit": "4d4cc19fdd4ac8408bd5acc7694e7a7096b1e3b3",
+   "sha256": "1zmng3qx7i4wkz1vrxw0vw3kyirnb8a0pn46zq6zhzj33ybn9582"
   },
   "stable": {
    "version": [
@@ -78208,11 +79005,11 @@
   "repo": "tarsius/outline-minor-faces",
   "unstable": {
    "version": [
-    20201031,
-    1318
+    20210214,
+    1715
    ],
-   "commit": "a34602b59063dd22ca6877466b85b2728f03c242",
-   "sha256": "1k3zfcmlwfby7yixjdxfynhys2kyhggg0n3d251a9frzrkyg6gxb"
+   "commit": "bb6db842e4fc2ed4d635001938ebafe93925f48c",
+   "sha256": "0h54wdsh6g0wmqf356s6br08hq29p6cdrsd14q9w6qaxhmfzbs7m"
   },
   "stable": {
    "version": [
@@ -78240,21 +79037,6 @@
   }
  },
  {
-  "ename": "outlined-elisp-mode",
-  "commit": "ae918c301e1c0ae39574ae76d70059718724293b",
-  "sha256": "165sivmv5h4nvh08ampq95x6b0bkzxgrdjbxjxlq6rv00vaidn7v",
-  "fetcher": "github",
-  "repo": "zk-phi/outlined-elisp-mode",
-  "unstable": {
-   "version": [
-    20131108,
-    1127
-   ],
-   "commit": "c16cb02b540448919ad148f2be6a41523ee5489c",
-   "sha256": "0d9hfr4kb6rkhwacdn70bkfchgam26gj92zfyaqw77a2sgwcmwwv"
-  }
- },
- {
   "ename": "outlook",
   "commit": "c5ce3e6800213b117578a1022f25407f2ec1604f",
   "sha256": "0yq9zl7dr8kkm4rps5np4dwvjfhzsxq9wd1af7zwcmms4l3qry6k",
@@ -78514,6 +79296,36 @@
   }
  },
  {
+  "ename": "ox-bb",
+  "commit": "da730e416206f4cb7a2e1552a3079cec9af89ae5",
+  "sha256": "1gpx9kls1pmnbr5izv3qxlkd3bg7wbk4il3q3xw006lxcmwl48v8",
+  "fetcher": "github",
+  "repo": "mmitch/ox-bb",
+  "unstable": {
+   "version": [
+    20210222,
+    2002
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "a79dc519cd28c000ebca4254a4744ce2b9b82168",
+   "sha256": "1ffpslv58kzw9nhrfv2cp42vq0pdx5gm1bk20g6k697ijiz1r1jj"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "37e22316afac9dd73dec072ac6420e5c1c4471b6",
+   "sha256": "0a2vp4br1s4zjvjz7z7j3kzzlnb4rzmash1425rz55zg2v3zsi0a"
+  }
+ },
+ {
   "ename": "ox-bibtex-chinese",
   "commit": "6c09c708c4372451502923cd3cb756f4f98ba97b",
   "sha256": "0f3xigrkhc86vv23f76fdd4rjsspsd2ck5c65biq2ds247f4gm61",
@@ -78536,15 +79348,15 @@
   "repo": "jkitchin/ox-clip",
   "unstable": {
    "version": [
-    20210115,
-    2234
+    20210323,
+    2145
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "38b83ac6a70e9f1bc5cefb79a3b4e5397d11e467",
-   "sha256": "140yj6z9bz7i6ap7m9b465ambsczmx43zjp7887qjf77zbnf152b"
+   "commit": "2095537695135c7f1bc19db043925eb7d482907b",
+   "sha256": "0pingsmmdpw9g88rri7rkw8ajp1f982vx9rh97nfn51ppr94ihbw"
   }
  },
  {
@@ -78675,8 +79487,8 @@
    "deps": [
     "org"
    ],
-   "commit": "be1d5ddd8622d369cb5196b7f9e7d4b21a71a8f1",
-   "sha256": "0zs7izss7kpqwv5a7crbwbis9w71vkz9qwgbbzhs2my6wmcdyjxi"
+   "commit": "02140a294a8d0d15ca42a1956af794fd7ec18140",
+   "sha256": "1sjfiypk3707jh4r4ndym8chiahw0imlawkx7hsrv2ld65hc78lp"
   },
   "stable": {
    "version": [
@@ -79003,11 +79815,14 @@
   "repo": "DarkBuffalo/ox-report",
   "unstable": {
    "version": [
-    20201208,
-    1749
+    20210219,
+    2023
    ],
-   "commit": "b7b1d682a724ef4ea729327395aa6577cba27133",
-   "sha256": "1cznkrcxi0pfs7i1fvz6zg8b3z2axcmqmjw62s15p0fhn4d2czxf"
+   "deps": [
+    "org-msg"
+   ],
+   "commit": "7e135fb51f252ab1ec5a31e05a1c7e638b656b85",
+   "sha256": "1lg00p7nr3y5wjm7r53c93gx0ycqjgsrj4w5jxw6fzrdacqdnsz9"
   },
   "stable": {
    "version": [
@@ -79026,14 +79841,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20201211,
-    1518
+    20210215,
+    1605
    ],
    "deps": [
     "org"
    ],
-   "commit": "e8673f4825b1c6e97f8ba895ccaf8c460cba5a09",
-   "sha256": "08gsb4c7a3hvkp3vdzad2wbs3n6ldxddhqp7bxsgsw7z3gfb4snv"
+   "commit": "499c5777174dbc7318e3f32fd50357c2823b228a",
+   "sha256": "1sf7ksda0898lgig1qhdzqm9v2jgrr033ainpb9406ij1v63gsh7"
   }
  },
  {
@@ -79460,14 +80275,14 @@
   "repo": "melpa/package-build",
   "unstable": {
    "version": [
-    20210209,
-    1639
+    20210318,
+    1411
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d8ec8ddf5e39b61e9338de9a778633b7e01854cd",
-   "sha256": "1wdii6hlvd4pbgf7bp9d8ay0kd34nyxz2w7gyq2kx43hlcgxhyp1"
+   "commit": "0f13dd6655f6d4ff71b77c6d2c93727e5f43b254",
+   "sha256": "0l4qwz2s63r26y5v02yrpncjdiyspw7pill0bjjlcawvxffykw9i"
   },
   "stable": {
    "version": [
@@ -79504,15 +80319,15 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20210127,
-    158
+    20210326,
+    241
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "1dd52c65cf1431aec5b3dbbb16408f25559c5112",
-   "sha256": "0pq4ksipnli2798c7rvv2wlnk1nkd8j92vz7kpld8y0bgfr62mbr"
+   "commit": "16e589114cc1f2514d95a58d53e1ae7c2ce941b4",
+   "sha256": "03bcnxd39r9k63zwb6gnqrhs0q629izakj2hmhk83hiy1131v7jl"
   },
   "stable": {
    "version": [
@@ -79541,8 +80356,8 @@
    "deps": [
     "package-lint"
    ],
-   "commit": "1dd52c65cf1431aec5b3dbbb16408f25559c5112",
-   "sha256": "0pq4ksipnli2798c7rvv2wlnk1nkd8j92vz7kpld8y0bgfr62mbr"
+   "commit": "16e589114cc1f2514d95a58d53e1ae7c2ce941b4",
+   "sha256": "03bcnxd39r9k63zwb6gnqrhs0q629izakj2hmhk83hiy1131v7jl"
   },
   "stable": {
    "version": [
@@ -79594,14 +80409,14 @@
   "repo": "Silex/package-utils",
   "unstable": {
    "version": [
-    20180514,
-    1415
+    20210221,
+    822
    ],
    "deps": [
     "restart-emacs"
    ],
-   "commit": "5621b95c56b55499f0463fd8b29501da25d861bd",
-   "sha256": "1mhsf0l0253d9b7n3c68mw5kwnsk7wf217y7m2fiybh51bdgjfnd"
+   "commit": "6a26accfdf9c0f1cbceb09d970bf9c25a72f562a",
+   "sha256": "1gmr3ncr98fb7j3iwig9bbawkpj1f0vmq3nmapwqbaqv6gyy93h1"
   },
   "stable": {
    "version": [
@@ -79648,17 +80463,16 @@
   "repo": "codingteam/pacmacs.el",
   "unstable": {
    "version": [
-    20160131,
-    832
+    20210225,
+    1255
    ],
    "deps": [
     "cl-lib",
     "dash",
-    "dash-functional",
     "f"
    ],
-   "commit": "d813e9c62c2540fe619234824fc60e128c786442",
-   "sha256": "0zx72qbqy2n1r6mjylw67zb6nnchp2b49vsdyl0k5bdaq2xyqv6i"
+   "commit": "5e0bcba1eeb10a4218087ff9cd6217d662fb775b",
+   "sha256": "15w7wr3bdqmwg459nl6vyf4ymrhqxk9pvli5q55qyvy905n3281j"
   }
  },
  {
@@ -79711,8 +80525,8 @@
     20210104,
     2224
    ],
-   "commit": "69caea070379f3324c530e96e06625c3cd097cb9",
-   "sha256": "0plfyzmh93x1r3zgfjyx23cc7vi1pcniipclzlms1iwfkl7zsqvp"
+   "commit": "3b8549cd414d4d7ee0168ab9917124133566d3db",
+   "sha256": "1jdr9rl90vs78pjdnxcl2igc1ll97ryxxgbyqxzkhbivixi4v87n"
   },
   "stable": {
    "version": [
@@ -79764,14 +80578,14 @@
   "repo": "zainab-ali/pair-tree.el",
   "unstable": {
    "version": [
-    20210205,
-    1018
+    20210214,
+    1651
    ],
    "deps": [
     "dash"
    ],
-   "commit": "f45418560dfc7773ea896e34fb216f68b90c764d",
-   "sha256": "10bhwq7g16cvib8s4lg9skskbwp1bjyqrw8h0mip3sgvvjlhckfh"
+   "commit": "972ba441c40edf9b2c212f64fc6670104749662b",
+   "sha256": "1v4d17hdh3dvb2a4n10gxlr20zal8c7v456wiknkfrpv06d8awap"
   }
  },
  {
@@ -79915,28 +80729,27 @@
   "repo": "joostkremers/pandoc-mode",
   "unstable": {
    "version": [
-    20210201,
-    1150
+    20210317,
+    2340
    ],
    "deps": [
     "dash",
     "hydra"
    ],
-   "commit": "69ec31fc4da30dca2d223ac9ed1bcb5f9d3801ba",
-   "sha256": "0c4j95c2axbhw0jnqsj9qxc62cdqwk2w3g4a2zgi64m2qlf3q4c9"
+   "commit": "2ad3cfa3045e0a3bcbdee02819c6fd356a8bc40c",
+   "sha256": "1m6c5y95asrw7fkn9sah6a38glr66vb35d3g6gc8lcvh2ikmgjn1"
   },
   "stable": {
    "version": [
     2,
-    30,
-    1
+    31
    ],
    "deps": [
     "dash",
     "hydra"
    ],
-   "commit": "0630a112ae7d3eab1a4c47c7ef380915560a6bb2",
-   "sha256": "1k31pkvd9m798i6phcr0y3wd34fgq6ii41hx3lszmikvxb1yvm2y"
+   "commit": "500e80666fb779457be8771c5613c177187ba0cc",
+   "sha256": "1c3gay9fkikg7h46djw1nf86fzckmv7w1zbz5fbar20klcr12pbm"
   }
  },
  {
@@ -79973,8 +80786,8 @@
     20200510,
     5
    ],
-   "commit": "e086c59a14701cd041641b51c952fa704ee963df",
-   "sha256": "0w1crw5lsk22jfw2w5qq6ab7zxdzp38akasvyvxakvpp1782xq9p"
+   "commit": "331252334ea2e62d8e06b2dfa24be5dbd7f9c09f",
+   "sha256": "0gri6k1px53lmi5nq3zpv0m0kc3c8pbnc4h0zard5v449gmf1d5q"
   }
  },
  {
@@ -80195,38 +81008,6 @@
   }
  },
  {
-  "ename": "parinfer",
-  "commit": "470ab2b5cceef23692523b4668b15a0775a0a5ba",
-  "sha256": "05w4w7j6xyj19dm63073amd4n7fw4zm3qnn4x02fk2011iw8fq7i",
-  "fetcher": "github",
-  "repo": "DogLooksGood/parinfer-mode",
-  "unstable": {
-   "version": [
-    20201021,
-    254
-   ],
-   "deps": [
-    "cl-lib",
-    "dash"
-   ],
-   "commit": "8659c99a9475ee34af683fdf8f272728c6bebb3a",
-   "sha256": "06pz7ady4l05y56w3nr7bknv277jr949p9p9yy0dh8slii2acl77"
-  },
-  "stable": {
-   "version": [
-    0,
-    4,
-    10
-   ],
-   "deps": [
-    "cl-lib",
-    "dash"
-   ],
-   "commit": "5b3b247d68eeaf7404598cbcbf2158e07f16e65d",
-   "sha256": "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"
-  }
- },
- {
   "ename": "parinfer-rust-mode",
   "commit": "b35f28995db0c21ecaadd5504a10aa2ee5ac2070",
   "sha256": "06003hh19k1087s8lvsbl04as2yph1zw9qr844s4rbyi838d4pc1",
@@ -80234,20 +81015,20 @@
   "repo": "justinbarclay/parinfer-rust-mode",
   "unstable": {
    "version": [
-    20201124,
-    616
+    20210325,
+    1714
    ],
-   "commit": "67eed38129c28f087c0b5dffe8a790978d41a8c1",
-   "sha256": "074mx8dx4ja0bylsrf05d8n03a7ivix65iz3377h4p3ikmvppc3f"
+   "commit": "f130fa04ec75131686872f24a253d0a1d5522fa4",
+   "sha256": "1i85c00cjvj79i104xswg5xjz7wkvcgar04fgjc9zphrihnp409x"
   },
   "stable": {
    "version": [
     0,
     8,
-    2
+    3
    ],
-   "commit": "0953765ec361c1c0d6f36eb3c5dd706752af2482",
-   "sha256": "1d9885l1aifrdrg6c4m2kakhs3bbmfmsm02q96j0k0mzzwr7rs41"
+   "commit": "c825606e6aca4a2ed18c0af321df5f36a3c8c774",
+   "sha256": "1fix225ikfabsy9r4kc3znx6k4k5wbw5n45mkir3fdyis0pcwg6x"
   }
  },
  {
@@ -80291,32 +81072,32 @@
  },
  {
   "ename": "parse-it",
-  "commit": "3f163ca64c2533603410f320c7e9b9b1c2635458",
-  "sha256": "076b981jdhgv7kqdj6xnckp3x25wfymy0il9fffrpyfs7hrcdzgf",
+  "commit": "9e89bebbccf9ccf85841b00bf113925f8fb20775",
+  "sha256": "0l3h3sjr3xipj8lm7ph03jl326mcxscsbh0gx7gfrwfaynjb61kl",
   "fetcher": "github",
   "repo": "jcs-elpa/parse-it",
   "unstable": {
    "version": [
-    20210128,
-    1345
+    20210306,
+    821
    ],
    "deps": [
     "s"
    ],
-   "commit": "27a7b6ac6e92644160358958602aeae596ba8bad",
-   "sha256": "13hh3rfpfcmg6avakgb7rg4nrrifsj8s3yp359933axv2f622gbx"
+   "commit": "f910af3b1d98b88a0f41794bbe7fd57411e9b909",
+   "sha256": "02miw5sf4bbwmz58ya98ijjhqx92vamyzw8c5v2k6id3pxaypng4"
   },
   "stable": {
    "version": [
     0,
     2,
-    0
+    1
    ],
    "deps": [
     "s"
    ],
-   "commit": "580713c0c578f6c91f6851ae2120e8a9b7871bb0",
-   "sha256": "0c61gyks581xx47a4lrdjx64d1x1py7qmzsxklvwlcx0gq6pzalm"
+   "commit": "f910af3b1d98b88a0f41794bbe7fd57411e9b909",
+   "sha256": "02miw5sf4bbwmz58ya98ijjhqx92vamyzw8c5v2k6id3pxaypng4"
   }
  },
  {
@@ -80521,11 +81302,11 @@
   "repo": "vandrlexay/emacs-password-genarator",
   "unstable": {
    "version": [
-    20201123,
-    1610
+    20210224,
+    1705
    ],
-   "commit": "d754391d11d1d384833eb82fd34e02d2baec36cb",
-   "sha256": "1658mzzdk012rwn049dxzrqp1k4vfbvrsksnh06zdn8m6n7xqi28"
+   "commit": "778f98d507d337f916bb3251fae6e351ebe50aa2",
+   "sha256": "07k2jsjfl3cyk0piikvn03280hbmggvkwkfin8s1wz54495504g5"
   }
  },
  {
@@ -80536,11 +81317,11 @@
   "repo": "juergenhoetzel/password-mode",
   "unstable": {
    "version": [
-    20170412,
-    629
+    20210323,
+    1816
    ],
-   "commit": "ed764a4ec1011526457c71b7c37fa9a659a866ab",
-   "sha256": "102zydbkr2zrr7w0j11n7pivnsdmq3c6lykf3qc84jifp7j58pgr"
+   "commit": "114b721ebbf384b6af6fd46797e83896a9e14aca",
+   "sha256": "1zwc3wk770plfwlywqwiviqv9hiskf3fsl2nv9zp4gmvphzrqvql"
   }
  },
  {
@@ -80559,8 +81340,8 @@
     "s",
     "with-editor"
    ],
-   "commit": "f152064da9832d6d3d2b4e75f43f63bf2d50716f",
-   "sha256": "0qxzqiljiqxzi1jlgm0c5f1pjz1jnnhq74lm0x9q68cim1vch48n"
+   "commit": "918992c19231b33b3d4a3288a7288a620e608cb4",
+   "sha256": "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"
   },
   "stable": {
    "version": [
@@ -81184,8 +81965,8 @@
     20160321,
     2237
    ],
-   "commit": "1d410a4e48db07a942e54d3b83a85c7a7ec0aab3",
-   "sha256": "1b7csqypqkalkzq6vrbq5ry1gdk0qnhnk43rlj514mph0s1nywdd"
+   "commit": "29f6e7058f635b0084880a1f890a6c92501e8c29",
+   "sha256": "06lzb3mzrf2hqbdj4m8vfayf1xar9dgkwznzsqkbj6gjwxbz6xvd"
   }
  },
  {
@@ -81483,14 +82264,14 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20210104,
-    2243
+    20210310,
+    25
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d46082ca2adb8df3f6a7a422cff4af095878c2b6",
-   "sha256": "1vxnp6bzs1vlvh3cn56g64pb5zsy0ww1f50hlz7sklabc1mpp6sy"
+   "commit": "cbdc3e5dc77ccb681f8719db0a85af8850b757d2",
+   "sha256": "0q5sxwf0dkm1glnwsgm8387vzfxjj14g48ih72dpvarxysrrv2ql"
   },
   "stable": {
    "version": [
@@ -81692,14 +82473,14 @@
   "repo": "zk-phi/phi-autopair",
   "unstable": {
    "version": [
-    20200914,
-    355
+    20210306,
+    424
    ],
    "deps": [
     "paredit"
    ],
-   "commit": "8bebd5d3018746812847b6c47ab7c79a36382e7c",
-   "sha256": "1mf5blmws9kc3h4d9iy7r38w6kvi5w2gvmlbrxlwmh95a3y1n3nz"
+   "commit": "6a67c37d31a3ff9261fc9f812547a0c86721fc90",
+   "sha256": "0m1n77sq7cr1j6chf13zf4x34qyjycbimfpwk0msq1zc6cqjcm7n"
   }
  },
  {
@@ -81710,14 +82491,14 @@
   "repo": "zk-phi/phi-grep",
   "unstable": {
    "version": [
-    20200816,
-    1027
+    20210306,
+    425
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d9dbf69dcf0e06944dcfb89375b09d0d2b0ef4ee",
-   "sha256": "1lgixvg5668kb1y8a2xxm1nlbppj5a8sswjrcxasqnxmrif6lkls"
+   "commit": "7e2804c7ab4e875c7511917692c4b192662aa1ae",
+   "sha256": "1znim5mfd8s4dzwsg8gp2im1i837pw990r9r7mcv5zkzyll7wiq3"
   }
  },
  {
@@ -81942,20 +82723,20 @@
   "repo": "emacs-php/php-mode",
   "unstable": {
    "version": [
-    20210103,
-    1738
+    20210310,
+    1724
    ],
-   "commit": "8cdc727e6d4eef81655b90574784e9540f407cda",
-   "sha256": "1v09ldgdjayj66q8vn97n6hh0zqk3pxqg100ibbcyz6vfrsa5pdm"
+   "commit": "a2bca9be4c34a9dc38393602cb2708df24587838",
+   "sha256": "1rc67f3jzjhqykcn16s2ibviibxmr7b9y2c20hdwg49r41ax4f9v"
   },
   "stable": {
    "version": [
     1,
-    23,
+    24,
     0
    ],
-   "commit": "08c6e0f6719fafa60cf76f741d83524fd84163d6",
-   "sha256": "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"
+   "commit": "7e1b55354ce41043148ce2d3270b032c318f0f90",
+   "sha256": "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"
   }
  },
  {
@@ -82058,8 +82839,8 @@
   "repo": "emacs-php/phpactor.el",
   "unstable": {
    "version": [
-    20200618,
-    1845
+    20210311,
+    1615
    ],
    "deps": [
     "async",
@@ -82067,8 +82848,8 @@
     "f",
     "php-runtime"
    ],
-   "commit": "62d2372ea55c0c5fb4e77076988472ebb5d85f24",
-   "sha256": "1sfrdap157zc7lk9vwsy91p813ip8dmazgfjwh7jwzyvcj7dsimc"
+   "commit": "80788a817b0257363c1eee11a57cc0f873f0eef1",
+   "sha256": "1w4zxp6j77xd9qcz9skpj8jbl8ink1fgdd5f1dhx0486g882mi2l"
   },
   "stable": {
    "version": [
@@ -82283,11 +83064,11 @@
   "repo": "kljohann/pikchr-mode",
   "unstable": {
    "version": [
-    20201212,
-    2228
+    20210324,
+    2125
    ],
-   "commit": "dd4bb08f189c96039128dddceba26bfdabd1431b",
-   "sha256": "0w964qn9qag4pfwrs9pyv226ivmy1lw4s068hyi9f0jkm2fhd2za"
+   "commit": "5d424c5c97ac854cc44c369e654e4f906fcae3c8",
+   "sha256": "07qjz0mzl6cqgavv5sc9n1v7zq5q6f8is6nn126v0zk6rskp366q"
   }
  },
  {
@@ -82890,11 +83671,11 @@
   "repo": "thomasluquet/playerctl.el",
   "unstable": {
    "version": [
-    20180301,
-    1354
+    20210221,
+    1956
    ],
-   "commit": "3eee541423c2e5eb9f23a26fa9aa88c9c5a19ad1",
-   "sha256": "16qvn1mss5j8vpf1qpq4lwl4hwng64caw3c3shixsncfmgw25z6f"
+   "commit": "f480cd30bad76e4bc337e4be0cac6300e8154fce",
+   "sha256": "0f2f9dpi1yxckicybmdp7ns8x1hqhdygcvw8b7z0mhbwwxc7ml6m"
   }
  },
  {
@@ -83804,11 +84585,11 @@
   "repo": "baudtack/pomodoro.el",
   "unstable": {
    "version": [
-    20210111,
-    1934
+    20210225,
+    2018
    ],
-   "commit": "662b1f176d6faddd07be32ee6eb974ca02d5ec03",
-   "sha256": "02iji913mh03hdlzdl4m7lfzzqp3p7437cay5mn8ba4prpqqz76j"
+   "commit": "ed888b24d0b89a5dec6f5278b1064c530c827321",
+   "sha256": "0yv1339q5s31wxw8y34pb09b0rlvz9m3gzqb4dc1q8ncq8xb8wl5"
   }
  },
  {
@@ -83877,8 +84658,8 @@
     "yafolding",
     "yasnippet"
    ],
-   "commit": "a1583287cbafce053d4345a1531c6358ce970a77",
-   "sha256": "0pdimil370rilynz437xw7s1a323g00hmcinzpsfbnvq4k4ajk8s"
+   "commit": "91ca19b2a93029a393f8873e273777b553d308e1",
+   "sha256": "07sn00k8krsb0bikbbypznvwrk13k4jdk6d66iai0a66s9dr84ys"
   },
   "stable": {
    "version": [
@@ -83948,6 +84729,21 @@
   }
  },
  {
+  "ename": "popper",
+  "commit": "fd5bfc5df356ea6c91f2fd120b8f912d093a0de6",
+  "sha256": "0iz784hzrhmxr7zv1jx13fk0k9h1c15rbgakry0nyjm4x366rmhj",
+  "fetcher": "github",
+  "repo": "karthink/popper",
+  "unstable": {
+   "version": [
+    20210326,
+    2042
+   ],
+   "commit": "096078acea59df6109906641e9dd44893ed4f6a2",
+   "sha256": "1cvb40ad3zazfqjzwqgz4bnn9a2pl8yi52b0qfd56ccp32b24n91"
+  }
+ },
+ {
   "ename": "popup",
   "commit": "083fb071191bccd6feb3fb84569373a597440fb1",
   "sha256": "151g00h9rkid76qf6c53n8bncsfaikmhj8fqcb3r3a6mbngcd5k2",
@@ -83955,14 +84751,11 @@
   "repo": "auto-complete/popup-el",
   "unstable": {
    "version": [
-    20210108,
-    1821
-   ],
-   "deps": [
-    "cl-lib"
+    20210317,
+    138
    ],
-   "commit": "bd5a0df7e5bc68af46eef37afe9e80764a1d4fd8",
-   "sha256": "1y9wv5c9x1rsfdhh3r7mah7yyx2cs7asjzhgsn1pbq7zdjpv5p0p"
+   "commit": "866a091b83369873b4d1c5d62a590fbb0a150bd0",
+   "sha256": "059x15zlc6c17yg5ahdca3bryr10nh9xbb61dv0gdc2wg2c0pzzi"
   },
   "stable": {
    "version": [
@@ -84100,11 +84893,11 @@
   "repo": "emacsorphanage/popwin",
   "unstable": {
    "version": [
-    20200908,
-    816
+    20210215,
+    1849
    ],
-   "commit": "215d6cb509b11c63394a20666565cd9e9b2c2eab",
-   "sha256": "1x1iimzbwb5izbia6aj6xv49jybzln2qxm5ybcrcq7xync5swiv1"
+   "commit": "1184368d3610bd0d0ca4a3db4068048c562c2b50",
+   "sha256": "0inm6wbfkw6b9bwikd77d0zmk6ma9fzfs11acblp5imq202v76ra"
   },
   "stable": {
    "version": [
@@ -84201,11 +84994,11 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20210208,
-    229
+    20210311,
+    937
    ],
-   "commit": "3454a4cb9d218c38f9c5b88798dfb2f7f85ad936",
-   "sha256": "039a84gwb0phjm7jcklmji1pcpbxmp4s40djhac8sbzmwdv39zi4"
+   "commit": "fff21ccb706b576f4074883f9fa87d2bcc534096",
+   "sha256": "1r9i3jsdvzvbr8kggfradvk65i1d0wq96shs4dhfsr3pw7phaxv3"
   },
   "stable": {
    "version": [
@@ -84296,14 +85089,14 @@
   "repo": "milkypostman/powerline",
   "unstable": {
    "version": [
-    20201129,
-    2306
+    20210317,
+    110
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b293abf83c0a2b2988af19dd0ef0426c3b1d1501",
-   "sha256": "01nqff1pg9nxv49g2mmapnrjl8978wwyr6afkr3rm7zlnjz1cjas"
+   "commit": "cfff1cfe63793ea1a8bcfcae50c296558384cf08",
+   "sha256": "12s3mp2dyslq1ilah64gpz7a2j0ca9yls7wvj9kcmjca1931s8s3"
   },
   "stable": {
    "version": [
@@ -84484,19 +85277,19 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20210101,
-    2227
+    20210227,
+    600
    ],
-   "commit": "42adc802d3ba6c747bed7ea1f6e3ffbbdfc7192d",
-   "sha256": "0v12707jwd2ynk8gp3shgarl6yp3ynal7d4jzds6l2lknr6wi50w"
+   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
+   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
   },
   "stable": {
    "version": [
     5,
-    0
+    1
    ],
-   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
-   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+   "commit": "2c0e9fc061ab723ec532428f312974ca7d8def12",
+   "sha256": "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"
   }
  },
  {
@@ -84552,15 +85345,15 @@
   "repo": "jscheid/prettier.el",
   "unstable": {
    "version": [
-    20210129,
-    826
+    20210313,
+    1047
    ],
    "deps": [
     "iter2",
     "nvm"
    ],
-   "commit": "61f135a82156712b9226d9bf23156c0cce9d5c98",
-   "sha256": "0z0nrhajx4xs6miaixhb0syzp7ilbbm71qcbvqqdk1fr9819nhgl"
+   "commit": "5232b886bb6a4fb3848d63db1bcfcb30487a180f",
+   "sha256": "0sbka039sccqip36y98s1b5z6rd5w5q0jzl5kbdq4wmzi7j823ri"
   },
   "stable": {
    "version": [
@@ -84614,17 +85407,16 @@
   "repo": "jerrypnz/major-mode-hydra.el",
   "unstable": {
    "version": [
-    20190930,
-    2106
+    20210221,
+    834
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "hydra",
     "s"
    ],
-   "commit": "20362323f66883c1336ffe70be24f91509addf54",
-   "sha256": "16krmj2lnk7j5ygdjw4hl020qqxg11bnc8sz15yr4fpy1p7hq5cz"
+   "commit": "84c1929a5153be169ca5c36737439d51dffde505",
+   "sha256": "1yw9xdyqbf285ljsspg8ajjx1bp1g27xpg85p84fsh88nr015rh5"
   },
   "stable": {
    "version": [
@@ -85118,14 +85910,14 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20210125,
-    726
+    20210309,
+    722
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "fd5994762a90c2311e8aa40c37373f24e1743a55",
-   "sha256": "1vlry2pa45v0l3g0lrhi6sp24cf8i0s76nz1pm92iwgk6hpdz560"
+   "commit": "1528ed4f082e7aaca19f22394eb4bed879645b7c",
+   "sha256": "04x9gjjw1c4fiy631fkvwdp677s1p0yj1s4d5bw68832i1i5fq8y"
   },
   "stable": {
    "version": [
@@ -85198,8 +85990,8 @@
   "repo": "asok/projectile-rails",
   "unstable": {
    "version": [
-    20201004,
-    1011
+    20210325,
+    2120
    ],
    "deps": [
     "f",
@@ -85208,13 +86000,13 @@
     "projectile",
     "rake"
    ],
-   "commit": "7a256b1b1444fe0001f97095d99252e946dd9777",
-   "sha256": "1d8wcjrhw0k4ws0bdl1q37pm0cz1smqink1d8hi8fs505brbpfdp"
+   "commit": "f1fe6e8eff485dc560e6ffe7f0b9c46a61509a58",
+   "sha256": "1b9wsn6mm1ajh81f6bmp3ajxch3j05bzslzxjakw93gjg69w74y1"
   },
   "stable": {
    "version": [
     0,
-    20,
+    21,
     0
    ],
    "deps": [
@@ -85224,8 +86016,8 @@
     "projectile",
     "rake"
    ],
-   "commit": "228f6316f2da229bc82fbbcf52323da951a17871",
-   "sha256": "1l9l0hza6p1l750i7lvys6gnrdy2j0dmlg6nbb6zr2cq6jbf1lkd"
+   "commit": "8d6b3734958f5dc7a620dc1b44754986d3726f3d",
+   "sha256": "03cj0cpmqyxcvqscnjcgcfz5k1ga6knr5jcb5prnv9hfjfqgk3pb"
   }
  },
  {
@@ -85449,11 +86241,11 @@
   "repo": "chuntaro/emacs-promise",
   "unstable": {
    "version": [
-    20200727,
-    900
+    20210307,
+    727
    ],
-   "commit": "d7b59805e7a8da1f5edea9313b6e2d0f1115fec0",
-   "sha256": "08f30fwwh86mnymbjxr9gswkgvsfdxa1mqajsmsbkk5nvmz1jx0n"
+   "commit": "cec51feb5f957e8febe6325335cf57dc2db6be30",
+   "sha256": "1kxsdgg5byw9zddf8jkc3h87mb4k5pnjdpskaagkahc0xg3w18d7"
   },
   "stable": {
    "version": [
@@ -85529,11 +86321,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20210131,
-    2042
+    20210321,
+    2132
    ],
-   "commit": "89300b579aea2471448b8871b94c0e5982c7c059",
-   "sha256": "0097gkhb9lw8rl1pqk0fchpgkvfynvgvkz7rgwp4dqifn63krq1j"
+   "commit": "f0f0476d07401aba2cf428a71f7ee960cd1b3154",
+   "sha256": "1h6bwk1l3fm34xx8nbwh2s3g8ab5zbnx1givgaf64hf3z7r44xic"
   },
   "stable": {
    "version": [
@@ -85636,8 +86428,8 @@
     20200619,
     1742
    ],
-   "commit": "aee143afe8c17a3d2c7e88b70ffa6e08a73e2683",
-   "sha256": "184fg4x1v2yyzh5z47mj0shmq45v1cb8d8pdqbrx7ffxr4lmyn74"
+   "commit": "aedb8d726c8d2a371d999354d44ca7e1bdbb1e73",
+   "sha256": "1qw9mmkxrv78062zw8bvrhp4nc4mhz8j76j534flvdy5w5cwv38q"
   },
   "stable": {
    "version": [
@@ -85733,20 +86525,19 @@
   "repo": "purescript-emacs/psc-ide-emacs",
   "unstable": {
    "version": [
-    20200702,
-    1540
+    20210219,
+    2247
    ],
    "deps": [
     "company",
     "dash",
-    "dash-functional",
     "flycheck",
     "let-alist",
     "s",
     "seq"
    ],
-   "commit": "663f4e2cf9cbafdd4b9a60c34346596e2a40c87c",
-   "sha256": "06zgi5inlg244qhabsp4a24kda83i6rdpxf78qb7ygpxwdj4hf44"
+   "commit": "ce97d719458ea099b40c02f05b6609601c727e66",
+   "sha256": "0xfw93pdf744h2yswc53qwyawfzkc31rv8dmha3irq7k1nklhq6y"
   }
  },
  {
@@ -85880,14 +86671,14 @@
   "repo": "nbfalcon/ptemplate",
   "unstable": {
    "version": [
-    20210204,
-    1306
+    20210324,
+    1446
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "0d03fe3b2c608ab31bda309ef8e7a7d076bb0069",
-   "sha256": "18lb3an90py39lmxk05fw5ppxa3xqrhck2qz27a0zaxvd6y3hqmx"
+   "commit": "b81cc7be8865745c3a60177a244d2a69729ab21b",
+   "sha256": "1j6lgb7knnnydyd1jryai8vlr7i5jc2d7l693yyhs79jdypzss4c"
   }
  },
  {
@@ -85898,14 +86689,14 @@
   "repo": "nbfalcon/ptemplate-templates",
   "unstable": {
    "version": [
-    20210204,
-    1308
+    20210324,
+    1443
    ],
    "deps": [
     "ptemplate"
    ],
-   "commit": "66bcd5d16289809ac771a7f25bd62b6eaa1ab022",
-   "sha256": "0bz1ipf7spch9fh1dwgnypka0199yfl07avrsg19y2lpbwi7mg0k"
+   "commit": "3788387973dde3101f9a3f2064572be033c59ad6",
+   "sha256": "17jc7gjawbj7b5v2i2jfxwnjgi023xrr28dyigzv6yw72fzqcnlh"
   }
  },
  {
@@ -86065,14 +86856,14 @@
   "repo": "voxpupuli/puppet-mode",
   "unstable": {
    "version": [
-    20200505,
-    344
+    20210305,
+    645
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "0e2e32a3b1644edd8010bd3d44e83def683348b3",
-   "sha256": "082r71wn5klihv8npc8qsvsyw4jyib5mqpnqr029kv7cvlcyfghk"
+   "commit": "ab25cf379236f4e1bd4bc9c1d77a93c95800e9bf",
+   "sha256": "0djrq3wl7crpjd2p1zzzz1spqfdrfzf7991g5fi8zwbf3pi79gpd"
   },
   "stable": {
    "version": [
@@ -86097,8 +86888,8 @@
     20210109,
     244
    ],
-   "commit": "8410baff69ba934b64d78340c7fd20aa1e67dbfb",
-   "sha256": "1gc5rg5rggljmcfz93kz03fy21455nvp7vz79pknqyf8k67aah4h"
+   "commit": "0acd1af446424ba855153161fe07a20f67dc0a89",
+   "sha256": "0rxdsmx8826az4blhnnvqrx7bjky9hwph6gkyrh33sck26xhh3g5"
   }
  },
  {
@@ -86493,31 +87284,27 @@
   "repo": "tumashu/pyim",
   "unstable": {
    "version": [
-    20210109,
-    1118
+    20210319,
+    1102
    ],
    "deps": [
     "async",
-    "popup",
-    "pyim-basedict",
     "xr"
    ],
-   "commit": "09a3b590cd83bf94b92ea772765db581e3aeb2f1",
-   "sha256": "0v5b7p8icn9gvdqmbh7xy79xnqi80qhskg00ag8zabmg624mpn2x"
+   "commit": "f48c3edee78ba5f020bcb42830db99a14761f176",
+   "sha256": "1ld3bqvfrda6fa4dv3g0wilznrdrsv544sr370sn3a9xlmy4fwp9"
   },
   "stable": {
    "version": [
-    2,
-    0
+    3,
+    2
    ],
    "deps": [
     "async",
-    "popup",
-    "pyim-basedict",
     "xr"
    ],
-   "commit": "e9b46009c0e80f45ad95c64237bf69cb28dc12e7",
-   "sha256": "06ahzyi2h353xj17mzsm9fxmkc6cyzd1mjzmvqfw8cyv538nijc0"
+   "commit": "0c8cd00d2da981e3833bface7d0c476cbb3e93d2",
+   "sha256": "102ns8vjmpb56afc3vyd62zfvvrnjdclm1fsn4jzj45b2in5wmxx"
   }
  },
  {
@@ -86528,11 +87315,11 @@
   "repo": "tumashu/pyim-basedict",
   "unstable": {
    "version": [
-    20190719,
-    1252
+    20210311,
+    159
    ],
-   "commit": "d499104189a9462cb80f8efd9713e4064dc7093d",
-   "sha256": "0k1afdknyham46z6fv001rnlsxzl50183fz9skw3y0wxxv2v04r4"
+   "commit": "7495c974ada99f9fed96d8e85d8b97dabce9532c",
+   "sha256": "02asrh0adgjc5nn1ps7dq5zr38hkscnzc04sdpyjzvnmfcqsw7qb"
   },
   "stable": {
    "version": [
@@ -86649,8 +87436,8 @@
     20200503,
     1624
    ],
-   "commit": "d825c21e18de5618cfcacea0fd818efa80a6b0fe",
-   "sha256": "0riipssdnhys8qijayz1syk1haw1z915c0pplv50qi9nf7lli95j"
+   "commit": "5d5f65727829240ffcb84b7be8c5d1e4dcefa0ed",
+   "sha256": "1j4a7fwbsyjsz0lh7vrw2kyw8khqbaskzqnx03a91br8q3dv0xba"
   }
  },
  {
@@ -86891,11 +87678,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20201230,
-    2132
+    20210301,
+    812
    ],
-   "commit": "41b123b4d4906cce7591900a952bb75a38c5296c",
-   "sha256": "1dl6vpwqxrdy26gh8kw5xkyj1ka88plm60c6ka2g6ji2s851b6ki"
+   "commit": "fe7656a7c701eb988c2ec9192f1ce298818b5a92",
+   "sha256": "1ds4avwadwv20r8ihallyhg79r8cshgxnb2dv7kj0dgn9401djqj"
   },
   "stable": {
    "version": [
@@ -86915,18 +87702,17 @@
   "repo": "wbolster/emacs-python-pytest",
   "unstable": {
    "version": [
-    20210111,
-    1046
+    20210219,
+    1947
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "projectile",
     "s",
     "transient"
    ],
-   "commit": "3fadf1f8bc363d57c54eedd1bf98e6d9db9f0a62",
-   "sha256": "0ij72rjf3qnsbg3zripxyx3lwzliplm24pfrg867dr6lxczkxwv2"
+   "commit": "31ae5e0e6813de8d889103f7b8dde252b04b1ae4",
+   "sha256": "1kf62adlm5nf7r3qar8h1cx11xxrz95bfqii62i9xqdi3i8z7b2l"
   },
   "stable": {
    "version": [
@@ -87022,8 +87808,8 @@
     "f",
     "s"
    ],
-   "commit": "e0e5cc882f2f1316268ec461a34d4be8abc313b7",
-   "sha256": "0hbvy8wdi5dgxn86j8z54y2fhcvm605xxm6xv054nl6fw2hh2h5h"
+   "commit": "fe75bc17baae314bf8f5e0b12aad3fccfc6c5397",
+   "sha256": "1g5mfn37d01259s2xii2d41027xpif4czxipq4sa7d6sfyq50h7h"
   },
   "stable": {
    "version": [
@@ -87070,11 +87856,11 @@
   "repo": "psaris/q-mode",
   "unstable": {
    "version": [
-    20201231,
-    140
+    20210307,
+    2102
    ],
-   "commit": "3fef8d74bb45ec82f3c317d904a570c3b3318ce2",
-   "sha256": "03n6cyg1qkn2hglvv0iynlmq1gwhxgd59jil9rc1qka60pislpgz"
+   "commit": "a30a84afae9bb72bc601b213ae68821479b0bb03",
+   "sha256": "1q85vxvv76vmb9zhc91p2aqh333h1p48737spriv5sw9wvis0gdm"
   }
  },
  {
@@ -87208,11 +87994,11 @@
   "repo": "quelpa/quelpa",
   "unstable": {
    "version": [
-    20210208,
-    716
+    20210317,
+    1221
    ],
-   "commit": "8c25a40d07c08a6a9754b3ae12174664e8ed7871",
-   "sha256": "05yl7ivr6rq6gry0ik4qg2pxsw07byqwz9sn58hpsx8v7blxwxln"
+   "commit": "ec61039dfd50967ca545cb955bf1dd349682dcf3",
+   "sha256": "0hlcckp9vc5rpxp7w30l25ncz7wxywx5jkr12836zcz2mzc8jbhp"
   },
   "stable": {
    "version": [
@@ -87374,11 +88160,11 @@
   "repo": "emacsorphanage/quickrun",
   "unstable": {
    "version": [
-    20201130,
-    952
+    20210327,
+    141
    ],
-   "commit": "80087806741a4d7fd5ce0f74c8e27f4779a737d9",
-   "sha256": "19i07v4m3rss9ici3j5iayn717kbr8pmxss5iinzgdf4bi1yx293"
+   "commit": "57db985c6d293747dc8c40c4e08b465e148613a8",
+   "sha256": "02fzzfq5z4qabas75ihfbvz9pkz9ya2rblrzck8wk0fswzdq32nw"
   },
   "stable": {
    "version": [
@@ -87500,8 +88286,8 @@
   "repo": "racer-rust/emacs-racer",
   "unstable": {
    "version": [
-    20210119,
-    225
+    20210307,
+    243
    ],
    "deps": [
     "dash",
@@ -87510,8 +88296,8 @@
     "rust-mode",
     "s"
    ],
-   "commit": "f17f9d73c74ac86001a19d08735e6b966d6c5609",
-   "sha256": "1hi0ackw5pfqak5yl4z804z2vajhg7wkvzz20w9kbzcighz6vccq"
+   "commit": "1e63e98626737ea9b662d4a9b1ffd6842b1c648c",
+   "sha256": "12a429lajk09qp1jxgig54p8z6wndfgr4jwdmgkc9s2df9sw02d3"
   },
   "stable": {
    "version": [
@@ -87536,15 +88322,15 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20210213,
-    24
+    20210326,
+    1308
    ],
    "deps": [
     "faceup",
     "pos-tip"
    ],
-   "commit": "c73c3fcbe135f6cda7abc246e01bc5dc6b310462",
-   "sha256": "0crzdaqr1yjziv3dswxa9nn1dirq4pa8rhd0mda09bipvxfjirhp"
+   "commit": "5115c4786075b39525008755a5fb843c397ca743",
+   "sha256": "0am68bv4wg1lw20k9y83529zkg5d7ql8q9ibgpw1qlx2ll4zxgla"
   }
  },
  {
@@ -88677,8 +89463,8 @@
     20201202,
     126
    ],
-   "commit": "d0e61f19a29108d676849e0925f00d002a26d32d",
-   "sha256": "1r3fmc5c2aqfqpfzdxkj6qi86j8vwmrj1gk3xz263pl3q96pzcya"
+   "commit": "f831f61797e03a0a1df8d99637a8738ba84d7cdd",
+   "sha256": "0lfpqzbrxs261cpb1hpmszcck13zkmqs67qf736cg2zx9ypfhx1g"
   }
  },
  {
@@ -88788,6 +89574,27 @@
   }
  },
  {
+  "ename": "reddigg",
+  "commit": "ec2ec4f094e1faee764ad73a5f9addfbd47117df",
+  "sha256": "04gzhbflh8q5bnyfsw769dlv9s4y2kkqnix3p9pzqz6inmbabg3w",
+  "fetcher": "github",
+  "repo": "thanhvg/emacs-reddigg",
+  "unstable": {
+   "version": [
+    20210301,
+    2307
+   ],
+   "deps": [
+    "ht",
+    "org",
+    "promise",
+    "request"
+   ],
+   "commit": "196200eeccc4e821c5200c2e04429aeaafe4d536",
+   "sha256": "06q6vb0gxq323zhrq3im7xadgxgb9b8h0bxqak8xfmcnny0mcjlr"
+  }
+ },
+ {
   "ename": "redis",
   "commit": "10fbb970956ee19d812c17900f3c01c5fee0c3f2",
   "sha256": "1awnilb8bk0izp6yw0187ybh9slf1hc51014xvvmj90darxby79a",
@@ -88963,8 +89770,8 @@
     20200814,
     435
    ],
-   "commit": "5aa8c1867950b9b2ba6e583271f9c0d715853c5a",
-   "sha256": "1aypb17k408i4lg9v3fnb5q2n8m3iry4ca4c7axjbvax09dawznk"
+   "commit": "576d339aa80f40c6053592988001bdb285c1cf21",
+   "sha256": "1hdr5vr5xzlpj5xyapgbm9drrham6r776lmj8sjqaqrdffgxj8dh"
   },
   "stable": {
    "version": [
@@ -89265,32 +90072,32 @@
  },
  {
   "ename": "repl-toggle",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "16k9fk1nl2llk9qli52kiirlx9rlz8yhjh3cy6v5y2b3k0y1cf0b",
-  "fetcher": "github",
-  "repo": "tomterl/repl-toggle",
+  "commit": "ce2df1e493e3bcd63dfb07c3c5475d2dbf410fb8",
+  "sha256": "099sz9c0fl7b65qahc3gf2hlzmrm19spzm8bsl30wyc9vycik9yk",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~tomterl/repl-toggle",
   "unstable": {
    "version": [
-    20210114,
-    932
+    20210226,
+    1055
    ],
    "deps": [
     "fullframe"
    ],
-   "commit": "091aea753f59f2af5c581e73d15b4dd7ee394d94",
-   "sha256": "0r2zr6dxzml418rmar5v6yw6x1wfbrk89lqqvgsbjfps3yk9b27a"
+   "commit": "7028ae65f136215f8e07a43afc33a6b99fe82857",
+   "sha256": "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"
   },
   "stable": {
    "version": [
     0,
-    6,
+    7,
     1
    ],
    "deps": [
     "fullframe"
    ],
-   "commit": "a36caac7649fbffbe30f7b06541c9efd723563fc",
-   "sha256": "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"
+   "commit": "7028ae65f136215f8e07a43afc33a6b99fe82857",
+   "sha256": "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"
   }
  },
  {
@@ -89447,11 +90254,11 @@
   "repo": "tkf/emacs-request",
   "unstable": {
    "version": [
-    20210212,
-    505
+    20210214,
+    37
    ],
-   "commit": "c5a10680f38cd9b60057a7d213eb9bc7dcec918b",
-   "sha256": "16vs9ifnsa76kikz64jawwkpfck15xm8cdd3ndi4hl4g6ff8a92s"
+   "commit": "accd430ee706f5b10fb20003b06bd8209bcdaa82",
+   "sha256": "0ffbc6x340whbrcfi5n0k81134x6knfc9g7z299fn47b2ihgd6jc"
   },
   "stable": {
    "version": [
@@ -89471,15 +90278,15 @@
   "repo": "tkf/emacs-request",
   "unstable": {
    "version": [
-    20181129,
-    317
+    20210214,
+    37
    ],
    "deps": [
     "deferred",
     "request"
    ],
-   "commit": "c5a10680f38cd9b60057a7d213eb9bc7dcec918b",
-   "sha256": "16vs9ifnsa76kikz64jawwkpfck15xm8cdd3ndi4hl4g6ff8a92s"
+   "commit": "accd430ee706f5b10fb20003b06bd8209bcdaa82",
+   "sha256": "0ffbc6x340whbrcfi5n0k81134x6knfc9g7z299fn47b2ihgd6jc"
   },
   "stable": {
    "version": [
@@ -89767,6 +90574,15 @@
     20200520,
     853
    ],
+   "commit": "2db53105f2f8ee533df903b7482e571e28ce3c7b",
+   "sha256": "19mjwk24nwhwn0ylr7m2f9vbyf91ksicznxj1w41jp5slh5h7pr0"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    7
+   ],
    "commit": "90add9a1f8c4a3c78029d38087ff4d22fe5372d3",
    "sha256": "05k2zp2hldzq5h6nl8gx79dd8lvfn507ad4x3naichdqgn2013nn"
   }
@@ -89795,6 +90611,21 @@
   }
  },
  {
+  "ename": "revert-buffer-all",
+  "commit": "02ff00238a8af45d9e26e0b7b6b19a507ea06f86",
+  "sha256": "1lyxwh3kjlhyi5ln2lmbhyn28fxdd3l58djc9mqbzwdfm81qprsv",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-revert-buffer-all",
+  "unstable": {
+   "version": [
+    20210322,
+    159
+   ],
+   "commit": "14efdbf24ebe0d743ccb3f0d43acae98939c94fd",
+   "sha256": "1kimlfq98a8gym0kb6z8b5mys0gsqz8iywnxrbh5s3ck6s911dn7"
+  }
+ },
+ {
   "ename": "review-mode",
   "commit": "f2f9e2667389577d0703874ca69ebe4800ae3e01",
   "sha256": "0wapicggkngpdzi0yxc0b24s526fs819rc2d6miv6ix3gnw11n0n",
@@ -89859,28 +90690,28 @@
   "repo": "dajva/rg.el",
   "unstable": {
    "version": [
-    20210209,
-    1953
+    20210305,
+    1621
    ],
    "deps": [
     "transient",
     "wgrep"
    ],
-   "commit": "a1bc7036dc662b8c38aaac0b4e2ea3bb5934a688",
-   "sha256": "1q8z71b9vwq1v1n36byr1qqb3h7sjrvkds2yzbs3vvm1mzzl3qa3"
+   "commit": "10e64887c224002572e1f1e19c74453cba606c3f",
+   "sha256": "1519lh5j5zki2dfzd1a1hl1d24nap99hv80647rvpr3mzbcsg29s"
   },
   "stable": {
    "version": [
     2,
     0,
-    2
+    3
    ],
    "deps": [
     "transient",
     "wgrep"
    ],
-   "commit": "2ec8d1d36cfb9750c9a65c4a2687ea76399fccb3",
-   "sha256": "15qcnsnbni0aincm9pxpfhff3c5ivd5zs2s2qchjzhcn4kdm6kxr"
+   "commit": "bb89400d4d5e4eb22917f7048256745ea566a844",
+   "sha256": "0d8habjr4nv0xbgsk7nj5zid5zywf00vbl5zcx7anda5w1cy2zvr"
   }
  },
  {
@@ -90025,8 +90856,8 @@
     "popup",
     "posframe"
    ],
-   "commit": "edcb6278b1a864d28ed96375e18ff77def09feb0",
-   "sha256": "1g8ns518yn30838by7nd13k73nz8k6wk580jcsfjqpwjig8vr5as"
+   "commit": "519e6eb3b5e8e668c2835d27f54fcf5776242576",
+   "sha256": "1q0kzdy3nxswsriq4fxr00wmw43x737dd7pnkf9g6v8hd7gsqkzc"
   },
   "stable": {
    "version": [
@@ -90237,8 +91068,8 @@
    "deps": [
     "inf-ruby"
    ],
-   "commit": "3ef165c5c99aebfd811a0f18ea7f8c983d4ab152",
-   "sha256": "1vwwchgd45a0lin4n04ffwz021889ps4vcj787iy5ijw34pi8zrj"
+   "commit": "126650a06224f1a616b10c02bd9ad8a763a512ef",
+   "sha256": "11yhl9dpf7ni4l9qpr8akpzr2y6j99n3w5hx4yp8v9gppgb1q37w"
   },
   "stable": {
    "version": [
@@ -90324,10 +91155,10 @@
  },
  {
   "ename": "ron-mode",
-  "commit": "67c658fe2ee340f3902c7ff5c0138995e69fe5dc",
-  "sha256": "1w0zicbva3xvqi1qz87fbr4ciq28hg70f0n2q70drh4nqb4ahwm2",
+  "commit": "e61a3f8cba4e5e303379f80c9fdd773fdde66406",
+  "sha256": "19hb9snfkm8fdbn8i9whvq0g85xlr4l6hbjyf1vb8355yrwsdcvs",
   "fetcher": "git",
-  "url": "https://codeberg.org/Hutzdog/ron-mode",
+  "url": "https://codeberg.org/Hutzdog/ron-mode.git",
   "unstable": {
    "version": [
     20200830,
@@ -90429,14 +91260,14 @@
   "repo": "zk-phi/rpn-calc",
   "unstable": {
    "version": [
-    20200816,
-    545
+    20210306,
+    426
    ],
    "deps": [
     "popup"
    ],
-   "commit": "1554be19acc2644898a2175fa277d1159327c8dc",
-   "sha256": "1b4v9x8f9ykz2dqiv7p7c2f6kbl374i2723idmnvm2c9bc0hbpyv"
+   "commit": "320123ede874a8fc6cde542baa0d106950318071",
+   "sha256": "0fq7ym2wyfb5pgm75llc8wzyzr3kb5s3i2mw3ry076yk5c4gjsi2"
   }
  },
  {
@@ -90572,26 +91403,26 @@
  },
  {
   "ename": "rubocop",
-  "commit": "6440f81aed1fcddcaf7afeedb74520e605211986",
-  "sha256": "07ma4fv015wzpj5j4rdb0ckwwmhkxs3k5vy33qxgwghqmn6xby6x",
+  "commit": "d30b73ad1fea01f4f3a2c4f00f7119c6f52fa7e6",
+  "sha256": "1gc9z5pwjapq2jiykb1ry31wl8n4fsy4g8zbpy7g4z4rqikf32gn",
   "fetcher": "github",
-  "repo": "rubocop-hq/rubocop-emacs",
+  "repo": "rubocop/rubocop-emacs",
   "unstable": {
    "version": [
-    20190326,
-    1424
+    20210309,
+    1241
    ],
-   "commit": "03bf15558a6eb65e4f74000cab29412efd46660e",
-   "sha256": "0bl1l2qbpdknn93wr95a49gdnpl3pwpjj3rka3s44hvihny9p8q0"
+   "commit": "f5fd18aa810c3d3269188cbbd731ddc09006f8f5",
+   "sha256": "1kwxqryhhdj83jism19jw8fz0bgwxrmgq7f887yyjsm7b5glzvhx"
   },
   "stable": {
    "version": [
     0,
-    5,
+    6,
     0
    ],
-   "commit": "980bedb455e3551d35a212fae515c054888907c1",
-   "sha256": "152ara2p59imry2ymfnk5mycbc07rblcmfmqjgm5fijb2x94xv8p"
+   "commit": "608a3c1dccab9a3af467ce75d94dedfbfd37b21d",
+   "sha256": "0bxz80j7bnrlrd6gd548rvd5jf6m36wyxfc4vzxbcim1xcfjyp09"
   }
  },
  {
@@ -90888,11 +91719,11 @@
   "repo": "bard/emacs-run-command",
   "unstable": {
    "version": [
-    20210207,
-    1145
+    20210323,
+    1742
    ],
-   "commit": "a504d6d5f978e9e133daa901eda6c1420e19f307",
-   "sha256": "02md9ayraclj97jyjs5pz9xnw32j5wr86zjbaly1dwm87avs27g6"
+   "commit": "92b70a1ed0aa9bdbed3915efe47b3ba92fe2cb74",
+   "sha256": "1jvclzlr9lhvb05zdnqw2l3y2m1nca2m5z8m1a7rmq9bk1wwl4pa"
   }
  },
  {
@@ -90903,11 +91734,11 @@
   "repo": "ideasman42/emacs-run-stuff",
   "unstable": {
    "version": [
-    20201109,
-    351
+    20210308,
+    453
    ],
-   "commit": "54787de62839c48428f2e1edc4e2aa64851e9849",
-   "sha256": "0zbf2nvnwx6yyjjk4xfdpn15bna6r32n02q32qzk6bnqipw54ca3"
+   "commit": "e5ee96c50c350cf860982b7b5deff1ed8d488c8a",
+   "sha256": "0g60kk49dbn331z06gpi3c8pqjsb780iwd07bl87bgbcxcpa2fg9"
   }
  },
  {
@@ -90994,11 +91825,11 @@
   "repo": "rust-lang/rust-mode",
   "unstable": {
    "version": [
-    20201204,
-    1527
+    20210226,
+    1106
    ],
-   "commit": "c5c7ed31a2e1106ab4835b135618a34570796dc7",
-   "sha256": "1r2qm3n4788pyyglp23ghzbfq8xzni1vb2jgzc6v65x1047j5rl3"
+   "commit": "e9e9e32c4f82a9b895543c120b327ab5536ec42b",
+   "sha256": "0f63lms4arkqj6161v2787dgfra23a01vi82s9dcylk9z6bqyz4v"
   },
   "stable": {
    "version": [
@@ -91041,8 +91872,8 @@
   "repo": "brotzeit/rustic",
   "unstable": {
    "version": [
-    20210201,
-    1846
+    20210315,
+    1728
    ],
    "deps": [
     "dash",
@@ -91055,8 +91886,8 @@
     "spinner",
     "xterm-color"
    ],
-   "commit": "61d600e5598a37034b8b539bd50966c3eb557f10",
-   "sha256": "0d5z6wab62g5xyb2bpmpprny22gy7rm11vsgij0phhnsqb8fqiig"
+   "commit": "d97ec8623c4c7e7ad3bb32e3d3773ba29a34bb0d",
+   "sha256": "1mimrn4aaplmdrwmgp6wax489vp0njd7j95abdnjf0ggc7qbgzcv"
   }
  },
  {
@@ -91431,14 +92262,11 @@
   "repo": "nicolaisingh/saveplace-pdf-view",
   "unstable": {
    "version": [
-    20201216,
-    934
-   ],
-   "deps": [
-    "pdf-tools"
+    20210217,
+    1312
    ],
-   "commit": "b0370912049222f3a4c943856de3d69d48d53a35",
-   "sha256": "1ky1d3aycc1r96z3fy484p99xlmry9y9z61s7l7mw0m231k7kpbd"
+   "commit": "54ed966b842501c3c092dbf57b372e37b033c578",
+   "sha256": "0i03qb6qc2agp9s5s7l08f1wl8anqndh6xshg1c3w357vd1whv7i"
   }
  },
  {
@@ -91502,11 +92330,11 @@
   "repo": "hvesalai/emacs-sbt-mode",
   "unstable": {
    "version": [
-    20201021,
-    1937
+    20210306,
+    1603
    ],
-   "commit": "7b121fce50430a44bd743583c87d7645bf157be2",
-   "sha256": "0jqq2a5rp6nfi4n2rpdxd8yzc01jhm2mfg3lmn7aacmnwi6554ji"
+   "commit": "0bdc36ba3b3955c1106a5cda69be98bd38195cb6",
+   "sha256": "03wikgh94a0qc3xyvrvzxi4rrrd713ykpgva8z4ly85mh193215s"
   },
   "stable": {
    "version": [
@@ -91529,8 +92357,8 @@
     20200830,
     301
    ],
-   "commit": "1a814450162a2a8d0dde107f5a72d6152efbb63a",
-   "sha256": "0zpmsga0y1sgdm22w9k790mm44y4xc1hjcnlf6byhm1raf7yairg"
+   "commit": "3413825c2de675c087fbb39f9aeec4145495fad1",
+   "sha256": "036ffrfkdakix7z8ksfw78wk1plqnkcf26acn9sksbxcyk4lbjnk"
   }
  },
  {
@@ -91541,14 +92369,14 @@
   "repo": "zk-phi/scad-preview",
   "unstable": {
    "version": [
-    20200816,
-    549
+    20210306,
+    426
    ],
    "deps": [
     "scad-mode"
    ],
-   "commit": "75fe00a9aaf875ac97930bdb334aef9e479e41d5",
-   "sha256": "0vdb9ib76fjdvm3f13v3kh7x04izq993crrzsqp0vs5nilbkrs8c"
+   "commit": "8b2e7feb722ab2bde1ce050fe040f72ae0b05cad",
+   "sha256": "13hsd3sh1azcrbdbjnr1z5q0n5xw3ifzhvsnfqbqdz2pkpr5mfig"
   }
  },
  {
@@ -91562,8 +92390,8 @@
     20210205,
     851
    ],
-   "commit": "402d6df56457e9c512c3d77c7bcb0d04c77715f1",
-   "sha256": "018c668i1cv6a22gvvbzgn8111wh9zbk6yr41cj9xb1pwg0y373d"
+   "commit": "1ab5f645606e40db07b813a1600835d1442c060a",
+   "sha256": "1hzlgypb5pp8rpylm8qbbcqya5b0kjgq44m4n2wq6bix77iphsd8"
   },
   "stable": {
    "version": [
@@ -91724,14 +92552,14 @@
   "url": "https://git.sr.ht/~technomancy/scpaste",
   "unstable": {
    "version": [
-    20200731,
-    1520
+    20210223,
+    1902
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "779b94d1159bba8dbcf2b1081df7c54a15577066",
-   "sha256": "02zsknby258l62vga5p7gzbx12aj6cs4ypmrf7acv5pvliwd9wl6"
+   "commit": "4ec352fb9fe261ffb8b78449dea986dc34d337b3",
+   "sha256": "0219jzj3rwcx4k6f4grzrarq0v05jgmmracis3jb25rv0cln3i9r"
   },
   "stable": {
    "version": [
@@ -91846,14 +92674,14 @@
   "repo": "zk-phi/scratch-palette",
   "unstable": {
    "version": [
-    20200816,
-    551
+    20210306,
+    427
    ],
    "deps": [
     "popwin"
    ],
-   "commit": "c39cacb11992383887fa096ace85510baed94aef",
-   "sha256": "1va9c97cvdqf6404kixvgk0qwrlnc1lrz6khpkdp2w7w1brhf2f7"
+   "commit": "e4642ed8a2b744ba48a8e11ca83861f8e4b9c5b3",
+   "sha256": "1cvcsj6ayhfwdpp2mb75ja8bif33z085dip76bvyqliwjnjl2sgn"
   }
  },
  {
@@ -91916,8 +92744,8 @@
     20201013,
     123
    ],
-   "commit": "3cd1e1801aaddd011992d284280b5b43ccbee17b",
-   "sha256": "0mgc3wc1kga7n3zwy7i338vdxy0nfhv61ra9708lc14rx6zjwk9f"
+   "commit": "ad94790492d0d66686f3457cea1caeba8bbbdc51",
+   "sha256": "1b725iz5xhqki33jydq9vrxvrbfraxq2q79jdbrjy548rbsxzyjf"
   }
  },
  {
@@ -92114,10 +92942,10 @@
  },
  {
   "ename": "searchq",
-  "commit": "9738c1be0511540bfd8f324334518c72c9c38c94",
-  "sha256": "0flsc07v887pm62mslrv7zqnhl62l6348nkm77mizm1592q3kjgr",
+  "commit": "cd08b1a89eba9dcc0ed7f6d6ccb783b6ba0c00ca",
+  "sha256": "0n3azkzfflxi8fif4m3q886l5gp33z2ylfl2j3h0w36xlgc9h58l",
   "fetcher": "github",
-  "repo": "boyw165/searchq",
+  "repo": "tcw165/searchq",
   "unstable": {
    "version": [
     20150829,
@@ -92196,6 +93024,21 @@
   }
  },
  {
+  "ename": "seen-mode",
+  "commit": "f29f5a7850d058984a39ecf6aaa81a9e465356f6",
+  "sha256": "0v2qjqf89fz9ss4m39zwrhpijk1flglmyys9wm4nxi5dp32pppji",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~shiorid/seen.el",
+  "unstable": {
+   "version": [
+    20210311,
+    1935
+   ],
+   "commit": "57c960d76ad3dc551ac5a57ebe8682ef9fdc6d31",
+   "sha256": "1bn6jrvnz4bh7jm0a4g9z29zld5lm6jc77gh0i5m9ia38wzr00jx"
+  }
+ },
+ {
   "ename": "seethru",
   "commit": "7945732d9789143b386603dd7c96ef14ba68ddaf",
   "sha256": "1lcwslkki9s15xr2dmh2iic4ax8ia0j20hjnjmkv612wv04b806v",
@@ -92318,19 +93161,19 @@
   "repo": "raxod502/selectrum",
   "unstable": {
    "version": [
-    20210212,
-    1714
+    20210325,
+    1415
    ],
-   "commit": "a2ba6333e59ddc853318ece229f34016400ca033",
-   "sha256": "1agpcazga6gxl6k28bdski1sx046699cici8a9hz0nj7s8rkx1zm"
+   "commit": "f5a1f6b6c89719f80c29388c2c784d6b4e346081",
+   "sha256": "1p3da5pzmzhbqgcgzkii6hh1klrdfch6fnq4g3pa9mxrnis8v4py"
   },
   "stable": {
    "version": [
     3,
-    0
+    1
    ],
-   "commit": "bec406a47bd95f5b7363be239783a01631858520",
-   "sha256": "0j10yxlikyg7qxcmp4fnddyd5nc3hlz080d1zcbijq020a08k86g"
+   "commit": "a9ecaa018f249c15fae8e1af5d4df337e846e92f",
+   "sha256": "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"
   }
  },
  {
@@ -92341,27 +93184,27 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20201214,
-    227
+    20210321,
+    1927
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "42adc802d3ba6c747bed7ea1f6e3ffbbdfc7192d",
-   "sha256": "0v12707jwd2ynk8gp3shgarl6yp3ynal7d4jzds6l2lknr6wi50w"
+   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
+   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
   },
   "stable": {
    "version": [
     5,
-    0
+    1
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "3f53946e6aa97c1e1783be74e5b71dfbd4b54fcc",
-   "sha256": "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"
+   "commit": "2c0e9fc061ab723ec532428f312974ca7d8def12",
+   "sha256": "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"
   }
  },
  {
@@ -92406,15 +93249,15 @@
   "repo": "wanderlust/semi",
   "unstable": {
    "version": [
-    20201115,
-    116
+    20210214,
+    853
    ],
    "deps": [
     "apel",
     "flim"
    ],
-   "commit": "f279ebe1c1f9c14bdd5d3da01af24277a6167b69",
-   "sha256": "1a387s4h167lsray5k5gzm8jpnrg5az7y982iamk67rz5i1ccgz5"
+   "commit": "20d75302509b5fba9849e74b61c1ce93e5819864",
+   "sha256": "14qy9k64fi8asd4ka9hv5v0aa7mkdnx6252n02gldg760janr7xl"
   }
  },
  {
@@ -92526,16 +93369,30 @@
   "repo": "twlz0ne/separedit.el",
   "unstable": {
    "version": [
-    20210210,
-    1411
+    20210323,
+    905
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "edit-indirect"
    ],
-   "commit": "cc1145bde8b1868322ea799a90e38a1295089ada",
-   "sha256": "0m429i3zy5aik0q91r6sbr5xpqh4fgx984szp01p8fmbyb7wsh67"
+   "commit": "bebc27121d6d2da900810d552cd5e423ca870bee",
+   "sha256": "1b87pqvx4p8kwmc63scw9n4v1qj2rp0avx32jl5v3lbgbhvsr3zz"
+  }
+ },
+ {
+  "ename": "sequed",
+  "commit": "340eeeb2c21e313fedab8e1a28a1257374a7aea1",
+  "sha256": "1vym45gax05ay0naspwyqc1h48iwmqaq7b6vzxabsc72w8kw4sgs",
+  "fetcher": "github",
+  "repo": "brannala/sequed",
+  "unstable": {
+   "version": [
+    20210315,
+    2012
+   ],
+   "commit": "50c5dca413a12fe2d8a89eae833f10967c2f38d2",
+   "sha256": "16hsjk04xw88ddr2gbwlb4v8didqmk7ffwphp1iqy3a02wf4kif6"
   }
  },
  {
@@ -92878,6 +93735,21 @@
   }
  },
  {
+  "ename": "shades-of-purple-theme",
+  "commit": "fec35f46d061fdd454de7406253a1e24b2b501ed",
+  "sha256": "1gff2c53wvcfdvh1vx35rm3njp2y5742jkmfm0lbi6q68fz19d3j",
+  "fetcher": "github",
+  "repo": "arturovm/shades-of-purple-emacs",
+  "unstable": {
+   "version": [
+    20210213,
+    1939
+   ],
+   "commit": "96c58f2421165d67f300cc5014715fc0517e8f8c",
+   "sha256": "17cnwc235wm6la3wh1wcrs621jqzka7xnrrbcsk4kv8fnidi81n4"
+  }
+ },
+ {
   "ename": "shadowenv",
   "commit": "b2651055ab67448f90a93cf594342b8212202b82",
   "sha256": "1qxnbvpnvk3666hwfrh4pnfgb2mrfha6hiri8zfdspdh8g535ygq",
@@ -92885,11 +93757,11 @@
   "repo": "Shopify/shadowenv.el",
   "unstable": {
    "version": [
-    20190903,
-    1907
+    20210216,
+    2031
    ],
-   "commit": "5f24c90bb8e7333ee4315619672dc2ec69d198be",
-   "sha256": "0msrhh41nyvyy17skd5y5lzdz7a6lxnlqnflgz4xf2qpnc390kd6"
+   "commit": "e4563469fe20b9e6e63d7b19c86ac8b8b615df1d",
+   "sha256": "1p7a4lps2w6dnc5i1fiwx22ij4in70a0h0bl5bp7ab5ba6l22kaw"
   }
  },
  {
@@ -93225,8 +94097,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "465dc1fcaeed778b504d3d349a30e611368dcc00",
-   "sha256": "1gzky5xs63y7xl7j2hs81aja8qq6c5l3vk07hh050flw4yfxyi23"
+   "commit": "49c9e11567874bc4c5c4b3578a6b8f6b1948c691",
+   "sha256": "002y0ci1hh55qhyyp1m6gw5d9ncbcfk9bhk6qg30s3x1g1dhq2bi"
   },
   "stable": {
    "version": [
@@ -93290,11 +94162,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20201021,
-    552
+    20210218,
+    2329
    ],
-   "commit": "54c3ccd9b3fa9becc4b108046b117ccd6384449d",
-   "sha256": "024drmvh1qv2sbl5nxvyrqbwlk4wk8bfsa08rn21rhlbnwknb5ip"
+   "commit": "7da7afc51aec1ab02056512b921e29a8c68615c9",
+   "sha256": "1fcfmzahmamrxrklbwrrig4gv745lpznpbxx5rlmb7wpndf2cpdy"
   }
  },
  {
@@ -93480,15 +94352,15 @@
   "repo": "chenyanming/shrface",
   "unstable": {
    "version": [
-    20210213,
-    531
+    20210321,
+    844
    ],
    "deps": [
     "language-detection",
     "org"
    ],
-   "commit": "46573b3823be1f5ea57603a0e4855279848ad037",
-   "sha256": "12v1snjw4adrnbz6d0f4xkbr8k2kxa4xfkx32zwqp4bvsgi80arv"
+   "commit": "a73268705e3558ee91dc05674c5c3bed7fe28202",
+   "sha256": "1jjs0pclv0ya4d65wzafkvgb7lmg7f13jj0pihs1ch507fyiw3gp"
   },
   "stable": {
    "version": [
@@ -93569,18 +94441,17 @@
   "url": "https://git.savannah.nongnu.org/git/emacs-shroud.git",
   "unstable": {
    "version": [
-    20200124,
-    1833
+    20210220,
+    1952
    ],
    "deps": [
     "bui",
     "dash",
-    "dash-functional",
     "epg",
     "s"
    ],
-   "commit": "bf8a854ecd440c525b870f9439f6785700af80d3",
-   "sha256": "1rfmykbv2jipkb8by9jsx51gdh62spilffj3c49h3rfcllqnbv2g"
+   "commit": "2e6ff2bab4a1e798c090c9d7fbd90b7f3463d5c5",
+   "sha256": "08nnpzdrh4sq3vddfcdagaxvn4liprmc3dd17lbrvw5qlcadrbvg"
   },
   "stable": {
    "version": [
@@ -93756,11 +94627,11 @@
   "repo": "mswift42/silkworm-theme",
   "unstable": {
    "version": [
-    20191005,
-    1903
+    20210215,
+    1120
    ],
-   "commit": "6cb44e3bfb095588aa3bdf8d0d45b583521f9e2c",
-   "sha256": "0w5h1gl8npmwmpvhhwchrknd977w4l3vvd2lib7qphinj117fhzv"
+   "commit": "ff80e9294da0fb093e15097ac62153ef4a64a889",
+   "sha256": "09zrhfk6w74kc4sml20k6vhnd8b07yppn69rffan5mhr3qr69176"
   },
   "stable": {
    "version": [
@@ -93871,19 +94742,19 @@
   "repo": "gexplorer/simple-modeline",
   "unstable": {
    "version": [
-    20201218,
-    840
+    20210312,
+    1048
    ],
-   "commit": "38973dec2912e2136d8fde5f2667063863fee15a",
-   "sha256": "0y70hc3x8rxr8b5x8d0a23gpcadzrn43wmrsvqqxmmkqqp45n7gj"
+   "commit": "119d8224a8ae0ee17b09ac1fed6cdb9cb1d048fd",
+   "sha256": "1rnzrx7gcaw056cqvnb1wai4hala0r0gpk3a4kyyghyp9hmrxbb5"
   },
   "stable": {
    "version": [
     1,
-    2
+    4
    ],
-   "commit": "f0b983ba3b5b44390ba2dbd419bb6f29908f95fb",
-   "sha256": "164f95pj38a9hz315fs91ppvgn32a26v7vjz1pnrsvmllricm4zp"
+   "commit": "119d8224a8ae0ee17b09ac1fed6cdb9cb1d048fd",
+   "sha256": "1rnzrx7gcaw056cqvnb1wai4hala0r0gpk3a4kyyghyp9hmrxbb5"
   }
  },
  {
@@ -94112,6 +94983,29 @@
   }
  },
  {
+  "ename": "sketch-themes",
+  "commit": "d1b2026ff5fe7a2893dd4c71d9089e97c4fd48f1",
+  "sha256": "18n6blkrn72zyjj4ik3f6w2axmn0rwk8lpbcaynl3y7v7ij35m0r",
+  "fetcher": "github",
+  "repo": "dawranliou/sketch-themes",
+  "unstable": {
+   "version": [
+    20210325,
+    1700
+   ],
+   "commit": "407094c03e934043aa6d70369bf3e1bd841d1c91",
+   "sha256": "1glm8cxd91kq6910rrzgh3xaas67fylvgqxq2ld6gzcgmxzhv8yl"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "commit": "df8182628052bf55e7779fb6967383629059b5c0",
+   "sha256": "0184vmhl3m84qavx1vnrp16fwfpd1fpynfb5vwaa4nvg55ly247i"
+  }
+ },
+ {
   "ename": "skewer-less",
   "commit": "fb63f7417f39bd718972f54e57360708eb48b977",
   "sha256": "0fhv5cnp5bgw3krfmb0jl18kw2hzx2p81falj57lg3p8rn23dryl",
@@ -94315,15 +95209,15 @@
   "repo": "slime/slime",
   "unstable": {
    "version": [
-    20210202,
-    1426
+    20210214,
+    2243
    ],
    "deps": [
     "cl-lib",
     "macrostep"
    ],
-   "commit": "f135f69c5c97bb1f2456d05ee1e84ad6b4495ca3",
-   "sha256": "0xx4zm0anp9vvhl5j1xvq039jyhs96fbbq21pap0c4h1rfv5mgin"
+   "commit": "68c58c0194ff03cd147fcec99f0ee90ba9178875",
+   "sha256": "0lammq7116hm79nldxlghi978m7bldccfdc9vy1rlfjj4mhnrlq0"
   },
   "stable": {
    "version": [
@@ -94540,11 +95434,11 @@
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20210207,
-    940
+    20210303,
+    1148
    ],
-   "commit": "3278819ddf71d16444e6cea293dd41ca83ea9bae",
-   "sha256": "1acq2jsk3hbk3lq5klwf825kykyvqrrzicawy5wvssmbvxcgpy8s"
+   "commit": "5966d68727898fa6130fb6bb02208f70aa8d5ce3",
+   "sha256": "00yk9g0gi4gsa99n2gsq41mkwgvmih52mngmk4g8ajzxsv0pbwq0"
   },
   "stable": {
    "version": [
@@ -94564,15 +95458,15 @@
   "repo": "mmgeorge/sly-asdf",
   "unstable": {
    "version": [
-    20200306,
-    433
+    20210308,
+    332
    ],
    "deps": [
     "popup",
     "sly"
    ],
-   "commit": "32ce14994e8faee9321605cec36d156b02996c46",
-   "sha256": "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"
+   "commit": "bcaeba9b73b582ae1c4fadc23c71ee7e38d9a64e",
+   "sha256": "09gs99244g45v4bkvl4a5wshjr24cvwd8dg2w7y6j6aw2aikczrh"
   },
   "stable": {
    "version": [
@@ -94810,11 +95704,11 @@
   "repo": "jojojames/smart-jump",
   "unstable": {
    "version": [
-    20210110,
-    214
+    20210304,
+    844
    ],
-   "commit": "947499023b7c31b99fc172e2a4c1a105ad9c8555",
-   "sha256": "1yyyh1507lr4dlp39k8slwfz0fdjh2hx5ypn5zx5hyjjncw7x2r7"
+   "commit": "3392eb35e3cde37e6f5f2a48dc0db15ca535143c",
+   "sha256": "14yhln54mnh7257q49r86zypg04jy5bf6ahvmm1cbv6n25npawk5"
   }
  },
  {
@@ -95048,15 +95942,15 @@
   "repo": "Fuco1/smartparens",
   "unstable": {
    "version": [
-    20201229,
-    1937
+    20210213,
+    1851
    ],
    "deps": [
     "cl-lib",
     "dash"
    ],
-   "commit": "63695c64233d215a92bf08e762f643cdb595bdd9",
-   "sha256": "0yx9xamrpjpn6qshcdzc43pj3avb0nq4q40nmid28vb4giab4927"
+   "commit": "fb1ce4b4013fe6f86dde9dd5bd5d4c032ab0d45b",
+   "sha256": "0wl3fg761ddigqfcbgprgn8d03qapbsh803qp36pq09mgi29s161"
   },
   "stable": {
    "version": [
@@ -95491,21 +96385,6 @@
   }
  },
  {
-  "ename": "snippet",
-  "commit": "855ea20024b606314f8590129259747cac0bcc97",
-  "sha256": "1yld7y1hsrqs0f0iq7zfwknil5zqv65npm67nh548hbyy3rhgd68",
-  "fetcher": "github",
-  "repo": "pkazmier/snippet.el",
-  "unstable": {
-   "version": [
-    20130210,
-    2315
-   ],
-   "commit": "11d00dd803874b93836f2010b08bd2c97b0f3c63",
-   "sha256": "1nyrfbjrg74wrqlh8229rf7ym07k2a0wscjm0kbg3sam9ryc546y"
-  }
- },
- {
   "ename": "snitch",
   "commit": "8d08307e483c328075bbf933b2ea0c03bffe8b7c",
   "sha256": "1zck9r251jj3q6q1glxj20812yhkv630qnd2y7q1kkjgp68gby7g",
@@ -95678,14 +96557,14 @@
   "repo": "hlissner/emacs-solaire-mode",
   "unstable": {
    "version": [
-    20201006,
-    22
+    20210309,
+    2115
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c697925f7e03819a4046a233f6ab31664aca9d6a",
-   "sha256": "1fwyranv159sgfsc07h7vjn7c2js95zk2hw06d1dr1ddnl5hgrvf"
+   "commit": "a8fe09d8f5a9cb541c59dcd75a136f1d2a06b8bd",
+   "sha256": "1fwjy5m66nz2ipshmr7dky8v4pdwynq54282anb0rfa34dim4mrh"
   },
   "stable": {
    "version": [
@@ -96421,11 +97300,11 @@
   "repo": "condy0919/spdx.el",
   "unstable": {
    "version": [
-    20210206,
-    728
+    20210306,
+    1600
    ],
-   "commit": "7cb1809498442b1e52f586bcde36b387777ec316",
-   "sha256": "0zqczxnrjwl9y0q54gsxz906cds8q9bk7mhlplsgnlm7w9aipr2l"
+   "commit": "b9f49bab9551e8ca1232582acffdd0a90aaa35f3",
+   "sha256": "0k9dlkxns8yhv1yzfjlr5gkfc26ihhqjfsjchqg9fvfxqnd39pic"
   }
  },
  {
@@ -96552,11 +97431,11 @@
   "repo": "ideasman42/emacs-spell-fu",
   "unstable": {
    "version": [
-    20201006,
-    1441
+    20210324,
+    1207
    ],
-   "commit": "a7db58747131dca2eee0e0757c3d254d391ddd1c",
-   "sha256": "05f58nz2bhb5bzy06glpv7pjfqpalv5pyggm43zsh1kl2pxwzb9a"
+   "commit": "30c5eea9440915c2795670ecdbf836f3cb9dcc1b",
+   "sha256": "0h2gsq4ms1236nzardhd06b2090v21i0xyljri0lkpj0p3f6p986"
   }
  },
  {
@@ -96567,16 +97446,16 @@
   "repo": "naiquevin/sphinx-doc.el",
   "unstable": {
    "version": [
-    20160116,
-    1117
+    20210213,
+    1250
    ],
    "deps": [
     "cl-lib",
     "dash",
     "s"
    ],
-   "commit": "f39da2e6cae55d5d7c7ce887e69755b7529bcd67",
-   "sha256": "1wif9wf8hwxk0q09cdnrmyas7zjg8l5b8jd6sjxd40ypn6dmz2ch"
+   "commit": "1eda612a44ef027e5229895daa77db99a21b8801",
+   "sha256": "0q72i95yx3xa57jlgr7dik6prf20hi8bp8xf3f5c6ificv7i5378"
   },
   "stable": {
    "version": [
@@ -96979,22 +97858,25 @@
   "repo": "purcell/sqlformat",
   "unstable": {
    "version": [
-    20200327,
-    2329
+    20210305,
+    209
    ],
    "deps": [
     "reformatter"
    ],
-   "commit": "9e6351dc97a6f58f221d6e1baa7bab292309c437",
-   "sha256": "1r49c8ick1vk7zl4h0472z0p6j3d5b839al3s687acgqdymb24kk"
+   "commit": "0351dad6bec06a381484c0c95309d46a7a8acdb4",
+   "sha256": "0hra8lrg4fkqr6x6cq9mbqx8y7fkbccgzxmqfngy8cj2dbcvp9k9"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
-   "commit": "b70b05bf469a27c1a2940eeaa1a5c8cc93d805fd",
-   "sha256": "14n2yjmi4ls8rmpvvw6d7cz5f6dcg7laaljxnhwbagfd5j4sdfrm"
+   "deps": [
+    "reformatter"
+   ],
+   "commit": "0cdb882874ba0853f4f831a07a85b511258472b2",
+   "sha256": "07ka6fqcbvbvzsdmwris89cj3dpg3qcfhmww2h6qs69za3h7mify"
   }
  },
  {
@@ -97137,11 +98019,11 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20210212,
-    2231
+    20210325,
+    445
    ],
-   "commit": "537b4c350e562660aa406b99660f80275254714e",
-   "sha256": "1ihyrdpsqf06d4s91hnd9lgwsas5r2pajdinj1jydqdy6z7g0bba"
+   "commit": "633a0ff419438987f6271ff5a5da26307950a3cd",
+   "sha256": "070p4wyphhm7115afvq7lhxkb69c7l7fz3q5nkwbpjsdp5s8isns"
   },
   "stable": {
    "version": [
@@ -97254,11 +98136,11 @@
   "repo": "jhgorrell/ssh-config-mode-el",
   "unstable": {
    "version": [
-    20210127,
+    20210217,
     1051
    ],
-   "commit": "7539916b1eb4f44b2a682111424f3aca1233c482",
-   "sha256": "04hmf8haqpvd0vjrmr65rnh6xd3pginpg7330r1gsbhkbhpy3p53"
+   "commit": "820f60af17e71898303f4f3c2576f0619528a492",
+   "sha256": "1haypfhpbxsv2rm1wpskjdm0ddv34qvaiiyw8qhy1nn64q4b5xx0"
   }
  },
  {
@@ -97514,14 +98396,14 @@
   "repo": "Kungsgeten/steam.el",
   "unstable": {
    "version": [
-    20190916,
-    627
+    20210307,
+    1756
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f32951f4e0a4bc92813d0121d9df0257101b8992",
-   "sha256": "1fl4875992xxv0amcqj7b516f35k19h8fd7pij0by5b808k5ls6x"
+   "commit": "b0b79d9bd8f1f15c43ab60997f5a341a769651af",
+   "sha256": "144kkh1k09hfi7c8rn750m7p70jka4m0h8cakr16avkprrrpmxxc"
   }
  },
  {
@@ -97565,8 +98447,8 @@
     20200606,
     1308
    ],
-   "commit": "11aa5944459e464a96f41d934e23da5320c13333",
-   "sha256": "0nc388hi362rks9q60yvs2gbbf9v6qp031c0linv29wdqvavwva1"
+   "commit": "c0a2d92567d024c2136e9a25ce720fb0b565d31c",
+   "sha256": "192c1j33d6b1j2wdz6js70lql4ysl6d3vjnw3sqzcp22cgjlb2pp"
   },
   "stable": {
    "version": [
@@ -97908,11 +98790,11 @@
   "repo": "PythonNut/su.el",
   "unstable": {
    "version": [
-    20200820,
-    57
+    20210226,
+    42
    ],
-   "commit": "eadfacdbcb8d54d83f6f6cfe7990b492f7217453",
-   "sha256": "0xwkkzs4pl3wgjq7n43klkh814h3kzh0mwnka07dbb0gv1xmaigl"
+   "commit": "787f78989253f4568942a4cece5f135f005e135f",
+   "sha256": "1sr6lwjd2py0pncbx4qxa8wfxa3fnmfhxr944aid672hba2pdx7s"
   }
  },
  {
@@ -98015,6 +98897,24 @@
   }
  },
  {
+  "ename": "subsonic",
+  "commit": "2aae45d7195a93eab44fc5fec2285a5f9d8187de",
+  "sha256": "19v5qv6pf21f9nddzl3jka75k5x4c81i4ywvy2arqq2nz5avqvlf",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~amk/subsonic.el",
+  "unstable": {
+   "version": [
+    20210321,
+    1937
+   ],
+   "deps": [
+    "transient"
+   ],
+   "commit": "cb7c6c14f00367188a5565fed9c23a857f27a4d0",
+   "sha256": "1k69c0zhfjy90y7hvvlsppjvan5zrif4p48i4ih7wiy47giwicb4"
+  }
+ },
+ {
   "ename": "sudden-death",
   "commit": "3f20f389a2d7ddf49ca64d945b41584a7c120faf",
   "sha256": "1wrhb3d27j07i64hvjggyajm752w4mhrhq09lfvyhz6ykp1ly3fh",
@@ -98326,11 +99226,11 @@
   "repo": "leafOfTree/svelte-mode",
   "unstable": {
    "version": [
-    20210111,
-    1314
+    20210222,
+    1037
    ],
-   "commit": "266db1fc882efe17bba7033d69ec663ab4cca5f9",
-   "sha256": "0v1brx89qswf9803spxi9rb02mfppg1fhx7azd9q7wvh4r1n98v3"
+   "commit": "25d0018036f44ff9bd685a1c9a76d8ba57c1024d",
+   "sha256": "070i3k5djw2m1763ihqngpxfmdxq7gs058fvjaaf62dpkqy9vv3a"
   }
  },
  {
@@ -98371,11 +99271,11 @@
   "repo": "rougier/svg-tag-mode",
   "unstable": {
    "version": [
-    20201129,
-    608
+    20210301,
+    2205
    ],
-   "commit": "87489d28450559078aa15b4a435143a297508e48",
-   "sha256": "0gyhmv60dx0zxx4bmhzsd7q5vfnkpfwlj6539bn272fwcr7zncp8"
+   "commit": "95b5404997d7194b4946df0a475fd93203a36cb9",
+   "sha256": "06j19jx3bkdsds5rjqdvaqxfq42gsn8yanqd6jrd8rysncds8an0"
   }
  },
  {
@@ -98633,26 +99533,26 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210202,
-    2312
+    20210310,
+    1230
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "e0374dc0bbcd8ab0ec24baf308d331251d4f9c49",
-   "sha256": "1zvcp35vnnz5iybihrw0r21pvkghn73ni2m9jkgf352n8zza7z9g"
+   "commit": "47b496544e238041bca5e3c9ca55848648344312",
+   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
   },
   "stable": {
    "version": [
     0,
     13,
-    0
+    4
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "cd634c6f51458f81898ecf2821ac3169cb65a1eb",
-   "sha256": "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"
+   "commit": "8cf3f1821cbd1c266296bbd5e59582ae6b8b90a6",
+   "sha256": "1k8ja0cjdb13xi5b05rab3r0z53qkhjwjagxzw3fpzlyd7rxzi14"
   }
  },
  {
@@ -98955,11 +99855,10 @@
   "repo": "countvajhula/symex.el",
   "unstable": {
    "version": [
-    20210113,
-    1943
+    20210327,
+    20
    ],
    "deps": [
-    "dash-functional",
     "evil",
     "evil-cleverparens",
     "evil-surround",
@@ -98967,20 +99866,17 @@
     "lispy",
     "paredit",
     "seq",
-    "smartparens",
     "undo-tree"
    ],
-   "commit": "c535794b539627b26b7e73481e41f3c870d4b33e",
-   "sha256": "0pyyjbwcacql4l45fi6jxxvrm4alz9rm8pp6abikh5di98yidjm6"
+   "commit": "a3d6d74089e0fa0031cdef5114393d2f569d68d9",
+   "sha256": "1qfn95mbq92p31g9yw68sf8854v3jk2251xy6asxqv8n9ckkhji9"
   },
   "stable": {
    "version": [
-    0,
-    8,
-    1
+    1,
+    0
    ],
    "deps": [
-    "dash-functional",
     "evil",
     "evil-cleverparens",
     "evil-surround",
@@ -98991,8 +99887,8 @@
     "smartparens",
     "undo-tree"
    ],
-   "commit": "2c9d94cf44ffc1337729db13f7ea3e3e8c470dbd",
-   "sha256": "02848n7b0gswdv01mk85xz3khkf24c4y1c0rsw09arnjjkhjgzwh"
+   "commit": "d37532a9dcff8ec5a2fdc54f27b517890f972bfb",
+   "sha256": "19ffgdvmnys2hby1iwb85kwr74iadnp8mfd0816jlaafjsga7inf"
   }
  },
  {
@@ -99344,6 +100240,54 @@
   }
  },
  {
+  "ename": "tab-bar-echo-area",
+  "commit": "82df49c34664a5078d92e6015abc6f965d34791e",
+  "sha256": "0y91iyllpy4hf2y9saw4p3rj1q34fziw40f64glcsbnv37jkifp3",
+  "fetcher": "github",
+  "repo": "fritzgrabo/tab-bar-echo-area",
+  "unstable": {
+   "version": [
+    20210315,
+    1609
+   ],
+   "commit": "d2ff6b1acb553bf1546e730640397b9e33ca5279",
+   "sha256": "1agjb68bjfjzgacrip2mjwzfdbvj3xn8cs3f6q5kdjg5v7lg9c9h"
+  }
+ },
+ {
+  "ename": "tab-bar-groups",
+  "commit": "7c3efd2b2a7030a45244adf07ec9014c6e4540e9",
+  "sha256": "0c1a26ynjbf6dp2g7lx6iwnrqhri93k57fhfb2dvkb7ya58df7v3",
+  "fetcher": "github",
+  "repo": "fritzgrabo/tab-bar-groups",
+  "unstable": {
+   "version": [
+    20210321,
+    2129
+   ],
+   "deps": [
+    "s"
+   ],
+   "commit": "b83315c9a63ba2f6bbeaaa449a3b78b84a87ec1c",
+   "sha256": "03pc85g5f5ys0s45ccg3z7dni4cxngs3532xf9ng94a421yhxmkr"
+  }
+ },
+ {
+  "ename": "tab-bar-lost-commands",
+  "commit": "6f2d6b740ab3a35d111381f3358b9f6b52c3df7c",
+  "sha256": "149rf304ylksdv5l23gz4zkx42cv5ym286j2k0qbj51gfg73kks4",
+  "fetcher": "github",
+  "repo": "fritzgrabo/tab-bar-lost-commands",
+  "unstable": {
+   "version": [
+    20210215,
+    1412
+   ],
+   "commit": "e587cdb5d6d2c8d509c43db4b5bb285415916c4e",
+   "sha256": "1bnpcfh0lzjz4f1lbj2jqz7ly6d3bv8jhi4lxr5pj3g21437xf4y"
+  }
+ },
+ {
   "ename": "tab-group",
   "commit": "ad758d865bde8c97d27c0d57cabe1606f8b36974",
   "sha256": "1i5lxpf3wmqnqj9mzgcn4gp1gjxp737awrzl1dml5wnarbbj4fs9",
@@ -99596,11 +100540,11 @@
   "repo": "saf-dmitry/taskpaper-mode",
   "unstable": {
    "version": [
-    20210120,
-    2015
+    20210310,
+    1632
    ],
-   "commit": "6ef30c69be9da77f0750880da27bab5d81006c6a",
-   "sha256": "0wfrmp3rix3jxiiq1aijl0k73l8qxi9fp41faxyabr2cqx2pzzsv"
+   "commit": "d6edb345f31a13918d603d44b90a4ce30b34632b",
+   "sha256": "0jx095yjpsh28r6a23w2fxqv0rysbwz49c22vri2s8hzw011m55p"
   },
   "stable": {
    "version": [
@@ -99787,28 +100731,28 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20210212,
-    1021
+    20210326,
+    1352
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "f1bb443ce1d24f00203c67b7ebca536832286704",
-   "sha256": "14ghyvpiwqlrxn76zq6jbwwh3lmp542kaixncwm26ljvmgq22b6p"
+   "commit": "c047b20cf3c367d06fba097e4c8a58967524d7ab",
+   "sha256": "0h29jscvmyw4s11wkpy538v71c87badz6ac8whs6nk3g04scsv8n"
   },
   "stable": {
    "version": [
     0,
     7,
-    20
+    22
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "0ed5173a2eaf1c049f3393c1518bb534a3a9ac94",
-   "sha256": "0g0ffxd9p0l772p6bc3s2sr3rlvgmds5jvr0fn6fnv9sypvzplfq"
+   "commit": "3ed57544faf0fdd17dd8762126466b15dc471f8f",
+   "sha256": "1frljw1gipsr9l6cpb1skwi5b566x9yx3dhcc7bxfq11inh7bc74"
   }
  },
  {
@@ -99842,16 +100786,16 @@
   "repo": "dbordak/telephone-line",
   "unstable": {
    "version": [
-    20210211,
-    117
+    20210322,
+    2248
    ],
    "deps": [
     "cl-generic",
     "cl-lib",
     "seq"
    ],
-   "commit": "2fbcdb44a9dfa608c44b19e731d15438b4b03d87",
-   "sha256": "0y7zak23cri9glysdmx035fvzrcpzr0fzsvjx9vcanlivq94v7fq"
+   "commit": "aebac4658e553902369a3bf465bacc1f07a01106",
+   "sha256": "1kbxhrlg3pddg10zb9h3ky72f6l67nb5cziv17i3d0shx2z0sw17"
   },
   "stable": {
    "version": [
@@ -99875,11 +100819,11 @@
   "repo": "lassik/emacs-teletext",
   "unstable": {
    "version": [
-    20201019,
-    700
+    20210312,
+    1951
    ],
-   "commit": "e674ff636e9d15cade171ef432aaeead8109dc48",
-   "sha256": "0ws2b1kmhrbnhmy2ld7kjkximqpbb8cdcpvz33638ylcvb46vd1x"
+   "commit": "7ec1118b9e4a8663fe9ec933e9e13f7c2d57e986",
+   "sha256": "1ffnxb088kvr3g0kjjwr6hdxd20pmlbi52bhpla3phmyzl8vz38k"
   }
  },
  {
@@ -99926,20 +100870,20 @@
   "repo": "clarete/templatel",
   "unstable": {
    "version": [
-    20210210,
-    1359
+    20210319,
+    2222
    ],
-   "commit": "a3458234b8e0e83c46c6aca11a757c1134752c09",
-   "sha256": "0l5j2a44sslq1qm0sjaqcnca0y89faxw6ic19zzv5z836m83hl9d"
+   "commit": "ef93f4190c785166b49a310bf2d8695d3227ab40",
+   "sha256": "13hwa7v5yyji98g9rz2m4ql89nx2wi0hhhikm9y552l25qayrgxz"
   },
   "stable": {
    "version": [
     0,
     1,
-    4
+    5
    ],
-   "commit": "1a7784e5ec9a5e43adae56674aa63e8b3cf7a2cd",
-   "sha256": "1k33h503038l2bcr8gs020z2cjxfs94lamkdgv52cvd9i20d0kqq"
+   "commit": "971153aa43addf88bfe0922bcac19cb0edd3f86d",
+   "sha256": "0ldb01sxzrvchjy160karvmksinicw3d14jazriy84dxks8i6w8a"
   }
  },
  {
@@ -100386,11 +101330,11 @@
   "repo": "TxGVNN/terraform-doc",
   "unstable": {
    "version": [
-    20200803,
-    1545
+    20210322,
+    837
    ],
-   "commit": "d609290021ea7f2d10caadffc9131663838f8ad4",
-   "sha256": "1gvydmi37d7jxibn7nfg1rhb6phfn3kgrlmq250g7321g15j1q3v"
+   "commit": "77181c75cbde5954542688659cd4f2352ed29fbe",
+   "sha256": "1bcwja7hm11hxd1nmf1z93hkzcvkkpxavvbivg6j336ygzr1r82g"
   },
   "stable": {
    "version": [
@@ -100689,6 +101633,21 @@
   }
  },
  {
+  "ename": "theme-anchor",
+  "commit": "74f79dc5db5246a2f70e4d4ad76601be8b5c79d8",
+  "sha256": "15819kkxvhk03yfzd0qp78d5ayc33cm064gy7fdpi0aq28nbw6ba",
+  "fetcher": "github",
+  "repo": "GongYiLiao/theme-anchor",
+  "unstable": {
+   "version": [
+    20210327,
+    340
+   ],
+   "commit": "a6f5986a9569a4647fd4e3b6533b50efaf5aa1fd",
+   "sha256": "10fg2si0s5lavk8ljnycb0942fkl3dpkny5n6arir3jd17ypp3sv"
+  }
+ },
+ {
   "ename": "theme-changer",
   "commit": "d08b24a2aec1012751054c68f7d55bac1bd1fd11",
   "sha256": "1qbmsghkl5gs728q0gaalc7p8q7nzv3l045jc0jdxxnb7na3gc5w",
@@ -100863,18 +101822,18 @@
     20200212,
     1903
    ],
-   "commit": "a983a4a27a9e49f9ea7f990e260214a3d2473b61",
-   "sha256": "0cnasic4xk9x5s81i36dprmg93csmil5p8fadfpmdsfpi83cb9i9"
+   "commit": "3b42e95dc9167a28554991af0d172543475f2003",
+   "sha256": "1gw54kpzqdldivr4kyw08n12mpqkg303wxhc2wqjnn95dhmxql07"
   },
   "stable": {
    "version": [
     2021,
-    2,
-    8,
+    3,
+    15,
     0
    ],
-   "commit": "38468becbbda1488b2b204b209a4dac3352d1791",
-   "sha256": "1z2s12rqgzi4cx77mmim25rh9xgna9i10vv7wljkkfwncnf1xlin"
+   "commit": "6d68811e7ee75f8e0b450b9b1778bfad2c44c715",
+   "sha256": "16yixl9qq6zh47zjnad9rv2vbjq936ms212j0wfdax7qhg094af8"
   }
  },
  {
@@ -100930,20 +101889,20 @@
    "deps": [
     "haskell-mode"
    ],
-   "commit": "8cf18c6a8b1b4c825bdacbdd913d1c355c15bf11",
-   "sha256": "05ffyh4a9cmv14a64xxscp303wddhi1264xgsiyvllfasz14vjj1"
+   "commit": "f26eb3062cca9369b2a05bd208633e8b4f91c28e",
+   "sha256": "0vx4nfpcan9c6qi9x0z1a03sm33ifrclnvd0rs43fjb6s05xhwwq"
   },
   "stable": {
    "version": [
     1,
     7,
-    1
+    2
    ],
    "deps": [
     "haskell-mode"
    ],
-   "commit": "8cf18c6a8b1b4c825bdacbdd913d1c355c15bf11",
-   "sha256": "05ffyh4a9cmv14a64xxscp303wddhi1264xgsiyvllfasz14vjj1"
+   "commit": "223b0f4388dce62c82eb2fb86cf1351d42aef198",
+   "sha256": "0k93i9smhw5bws2xiybha15g26mwyq0zj6xzxccwh0bfpl76xzqq"
   }
  },
  {
@@ -100954,8 +101913,8 @@
   "repo": "ananthakumaran/tide",
   "unstable": {
    "version": [
-    20210211,
-    1055
+    20210323,
+    1647
    ],
    "deps": [
     "cl-lib",
@@ -100964,8 +101923,8 @@
     "s",
     "typescript-mode"
    ],
-   "commit": "7f7334b42a40dd3093b830e887c36cdb4ef40858",
-   "sha256": "0krixylc58lglpi6kgwlxfd47c90vmck3cml0h3awplbyyr8b5vg"
+   "commit": "2a3ac4f38472d66e2d8a6bbe5dadb52bc008acbd",
+   "sha256": "1fj2fghiycnzds2zxfxgj1d9mdzsvs9rvl9bwy2f1vwawqk1m48w"
   },
   "stable": {
    "version": [
@@ -101281,8 +102240,8 @@
    "deps": [
     "request"
    ],
-   "commit": "269bda7001613c0b70c0662d2a74d200765c1dcb",
-   "sha256": "0z8hkp15sdb0x0g67v6xa8ds28awz4i2vcbryj5zfpl15d0fiqc2"
+   "commit": "d59405bd72f3379417b9e73f06e8848b43cb021d",
+   "sha256": "19yb4cxcaif73yvf62d4891l5rvp8ynhxl0f2wc9lvssg0lpx5y0"
   }
  },
  {
@@ -101342,11 +102301,11 @@
   "repo": "snosov1/toc-org",
   "unstable": {
    "version": [
-    20201105,
-    826
+    20210323,
+    1256
    ],
-   "commit": "aef220c266f53d36055f74f4a243c6483c563d2a",
-   "sha256": "1gknxlypzgmyi30mdii94018mk5z28xqbla4hb5p1ihhl7p32r1p"
+   "commit": "c4c61c5a382f94a3a4537e254243006dec2dcca4",
+   "sha256": "00a2al7ghrlabf65kfj1mk30p2pl37h6ppwlgghbgiy7rwlzkdbm"
   },
   "stable": {
    "version": [
@@ -101440,8 +102399,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "19e2f1766b4a845ce5a4ccc87de62608f385bd11",
-   "sha256": "1gpzi092732chg0mvrwmr01c2njip1d2m15lj9fa1ii6sddfpand"
+   "commit": "74e1fcbeca25734235afec9c6a4d0cf73736b62c",
+   "sha256": "0yrcsr4360v222klahbccfq3vb4kp5xdsibydwircv36xhxplzq3"
   }
  },
  {
@@ -101740,8 +102699,8 @@
    "deps": [
     "w32-ime"
    ],
-   "commit": "077dfb87054a20a1bbec8d6d0f282f64c6722999",
-   "sha256": "066vl2qvz14ds66vvyj6cabmf4fbc8x4p12ph340kj4yjncpqcqs"
+   "commit": "8fd8ae64f71d1d69d7e1bcc47a6f65aa7f8e6993",
+   "sha256": "020qvjszwkx5klgh865vs5z17ym651i4zzq7c4sz6qwv361ygfm8"
   },
   "stable": {
    "version": [
@@ -101809,8 +102768,8 @@
     20201101,
     1045
    ],
-   "commit": "265f36c1e6c8db598742778dc64f9799896f5dc1",
-   "sha256": "0vf76rrgkpybi67n14g6gn1a7by7b90gxa8rz2m50xl3vdphnibk"
+   "commit": "e67e2d1149ebf3e79cd2162e78802af3ed5f82da",
+   "sha256": "0jrpa8kndq2v69nr9jva970q0n3662x2g0chg89nd2d3gbv693mw"
   },
   "stable": {
    "version": [
@@ -101913,20 +102872,20 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20210117,
-    2008
+    20210315,
+    1902
    ],
-   "commit": "94582a3fd96450072ab1b7a4e65802dbdb00aebc",
-   "sha256": "0p96vsva9y6w8fa69vhzzakb9c2sfzihlk9789z3gs5nw88qwkly"
+   "commit": "cc16a5eaa73617a281b0bbf71b24432c38994e30",
+   "sha256": "15ah0h7i96wn4w5321gydr6pxahb8mc8dk58b9paqv06klp5q2cd"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
-   "commit": "a269614c69ad8b2703e6e5093d0017d6afad6cca",
-   "sha256": "0w50sh55c04gacx2pp19rvi0fwj9h19c9gzd8dpa82zjiidfxckr"
+   "commit": "9ca983bab26d1a8e189a8c44471d9575284b268d",
+   "sha256": "0g694ydmb9zjn99hxgfjd3m73kpmnkbrgqhr73b4crbxza5sl29c"
   }
  },
  {
@@ -101974,14 +102933,14 @@
   "repo": "holomorph/transmission",
   "unstable": {
    "version": [
-    20210203,
-    2107
+    20210218,
+    2015
    ],
    "deps": [
     "let-alist"
    ],
-   "commit": "e3c1fb176c6d91a8378426e3ea5e6c036f321746",
-   "sha256": "1dlm3hi22cyw6d0c7i36wkr186v7ll840s1dm4zpd12k11m9sbks"
+   "commit": "b5c1d391b4be469a07536e901e54a8680387025f",
+   "sha256": "1z3gzax6i9cwipmi64hg3h98haimlb0xsz4zm1ggqwwq1zd5csvp"
   },
   "stable": {
    "version": [
@@ -102127,14 +103086,14 @@
   "url": "https://git.sr.ht/~tarsius/tray",
   "unstable": {
    "version": [
-    20210209,
-    1655
+    20210214,
+    1119
    ],
    "deps": [
     "transient"
    ],
-   "commit": "ba04344c90094910cfa4f2f5e56b0b33934cebf7",
-   "sha256": "1bgshgqwidkk14vq0jmi42wfa81y0bd9rq1r6gzqw024g8syhv47"
+   "commit": "e2b169daae9d1d6f7e9fc32365247027fb4e87ba",
+   "sha256": "1wrip00q6lbpllhaz0c7llnm774dq2mizr39ynfssvsdci38z1lm"
   }
  },
  {
@@ -102160,26 +103119,26 @@
   "repo": "ubolonton/emacs-tree-sitter",
   "unstable": {
    "version": [
-    20210116,
-    621
+    20210320,
+    1052
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "04994785c4ca865bcd4b841d39f40664458b1ec1",
-   "sha256": "0hyk12s336snwxiz6ca64d3nfyjf70s626rir61ly42m2cyb6ql2"
+   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
+   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
   },
   "stable": {
    "version": [
     0,
-    13,
+    15,
     1
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "d569763c143fdf4ba8480befbb4b8ce1e49df5e2",
-   "sha256": "1rw21nc78m4xngl3i3dmlzrzlqb8rgvlpal6d4f50zdlfbn4pa4v"
+   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
+   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
   }
  },
  {
@@ -102190,45 +103149,57 @@
   "url": "https://codeberg.org/FelipeLema/tree-sitter-indent.el.git",
   "unstable": {
    "version": [
-    20210116,
-    1930
+    20210322,
+    2033
    ],
    "deps": [
     "seq",
     "tree-sitter"
    ],
-   "commit": "7ce723730993ca7879c8660f5ae78c69193a1451",
-   "sha256": "069851611i4ra8kjknn9nyzrj2xy9qax4f69jxnf99cimw2xd8gr"
+   "commit": "18d263720c5a8f7fde0db368c7c36ea70437fc0b",
+   "sha256": "0iwi44309837hx0sl8py175ayn7haannp1sz2d0jk7binka7n4md"
+  },
+  "stable": {
+   "version": [
+    0,
+    3
+   ],
+   "deps": [
+    "seq",
+    "tree-sitter"
+   ],
+   "commit": "831a48571ccf14b8a8c607504a6e8e9263ff6dd4",
+   "sha256": "1dfmlmmf13qzzfpmpc6lgwjhz8hnz5ys2fw4w3rrz6swfaa2vr53"
   }
  },
  {
   "ename": "tree-sitter-langs",
-  "commit": "18f57da9ff7c07ce05c9dbd23eba87f2f34e17f3",
-  "sha256": "147p5hmpys4qhg5ymsmgbc3wx3x2jjw625waprfph7sr6h2cfrps",
+  "commit": "4029e21f74841db0c82f4a343a3b51b09cae2f25",
+  "sha256": "0jygxdlh94blfn5gxn949ic2v2x49cvl0rfzmvig3igyfwmm33sp",
   "fetcher": "github",
-  "repo": "ubolonton/emacs-tree-sitter",
+  "repo": "ubolonton/tree-sitter-langs",
   "unstable": {
    "version": [
-    20210212,
-    1035
+    20210314,
+    1704
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "04994785c4ca865bcd4b841d39f40664458b1ec1",
-   "sha256": "0hyk12s336snwxiz6ca64d3nfyjf70s626rir61ly42m2cyb6ql2"
+   "commit": "5d362ce98dcf656d7a55fcad6ae21c0a2caca861",
+   "sha256": "11nfyyzyz9x4w4l4hpz0y27awknlwx3kn9dwvkzdn174jk2kxp9a"
   },
   "stable": {
    "version": [
     0,
-    13,
-    1
+    10,
+    0
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "d569763c143fdf4ba8480befbb4b8ce1e49df5e2",
-   "sha256": "1rw21nc78m4xngl3i3dmlzrzlqb8rgvlpal6d4f50zdlfbn4pa4v"
+   "commit": "5d362ce98dcf656d7a55fcad6ae21c0a2caca861",
+   "sha256": "11nfyyzyz9x4w4l4hpz0y27awknlwx3kn9dwvkzdn174jk2kxp9a"
   }
  },
  {
@@ -102275,22 +103246,21 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210201,
-    1800
+    20210324,
+    2101
    ],
    "deps": [
     "ace-window",
     "cfrs",
     "cl-lib",
     "dash",
-    "f",
     "ht",
     "hydra",
     "pfuture",
     "s"
    ],
-   "commit": "332d4e0f1f606c472dd083c9cdd4f143ee23020a",
-   "sha256": "1bgkw8yrjhdpwsjs87yi3hldpvjkl6rpqfd8bpcs6q6anx5dcxxd"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -102319,15 +103289,15 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210118,
-    1808
+    20210324,
+    2101
    ],
    "deps": [
     "all-the-icons",
     "treemacs"
    ],
-   "commit": "332d4e0f1f606c472dd083c9cdd4f143ee23020a",
-   "sha256": "1bgkw8yrjhdpwsjs87yi3hldpvjkl6rpqfd8bpcs6q6anx5dcxxd"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   }
  },
  {
@@ -102345,8 +103315,8 @@
     "evil",
     "treemacs"
    ],
-   "commit": "332d4e0f1f606c472dd083c9cdd4f143ee23020a",
-   "sha256": "1bgkw8yrjhdpwsjs87yi3hldpvjkl6rpqfd8bpcs6q6anx5dcxxd"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -102375,8 +103345,8 @@
    "deps": [
     "treemacs"
    ],
-   "commit": "332d4e0f1f606c472dd083c9cdd4f143ee23020a",
-   "sha256": "1bgkw8yrjhdpwsjs87yi3hldpvjkl6rpqfd8bpcs6q6anx5dcxxd"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -102407,8 +103377,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "332d4e0f1f606c472dd083c9cdd4f143ee23020a",
-   "sha256": "1bgkw8yrjhdpwsjs87yi3hldpvjkl6rpqfd8bpcs6q6anx5dcxxd"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -102440,8 +103410,8 @@
     "persp-mode",
     "treemacs"
    ],
-   "commit": "332d4e0f1f606c472dd083c9cdd4f143ee23020a",
-   "sha256": "1bgkw8yrjhdpwsjs87yi3hldpvjkl6rpqfd8bpcs6q6anx5dcxxd"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -102473,8 +103443,8 @@
     "perspective",
     "treemacs"
    ],
-   "commit": "332d4e0f1f606c472dd083c9cdd4f143ee23020a",
-   "sha256": "1bgkw8yrjhdpwsjs87yi3hldpvjkl6rpqfd8bpcs6q6anx5dcxxd"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   }
  },
  {
@@ -102492,8 +103462,8 @@
     "projectile",
     "treemacs"
    ],
-   "commit": "332d4e0f1f606c472dd083c9cdd4f143ee23020a",
-   "sha256": "1bgkw8yrjhdpwsjs87yi3hldpvjkl6rpqfd8bpcs6q6anx5dcxxd"
+   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
+   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
   },
   "stable": {
    "version": [
@@ -102599,11 +103569,11 @@
   "repo": "ianpan870102/tron-legacy-emacs-theme",
   "unstable": {
    "version": [
-    20200601,
-    533
+    20210315,
+    712
    ],
-   "commit": "af17842821400a6fd466bb2769d13606e98550c0",
-   "sha256": "19pabaiza0lrvqa8yi0p83rffm9g44n6789m395iayfcxq49lylq"
+   "commit": "4d543fbb9cb2098af1be0f5b10e1e4cd5245a9d0",
+   "sha256": "0fyprvi4s331r6a54xa4dljw0k330kiyhzcfnnjhbsqxc86264pz"
   },
   "stable": {
    "version": [
@@ -102747,20 +103717,20 @@
   "repo": "ubolonton/emacs-tree-sitter",
   "unstable": {
    "version": [
-    20210116,
-    621
+    20210320,
+    1052
    ],
-   "commit": "04994785c4ca865bcd4b841d39f40664458b1ec1",
-   "sha256": "0hyk12s336snwxiz6ca64d3nfyjf70s626rir61ly42m2cyb6ql2"
+   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
+   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
   },
   "stable": {
    "version": [
     0,
-    13,
+    15,
     1
    ],
-   "commit": "d569763c143fdf4ba8480befbb4b8ce1e49df5e2",
-   "sha256": "1rw21nc78m4xngl3i3dmlzrzlqb8rgvlpal6d4f50zdlfbn4pa4v"
+   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
+   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
   }
  },
  {
@@ -102830,14 +103800,14 @@
   "repo": "ocaml/tuareg",
   "unstable": {
    "version": [
-    20200518,
-    1820
+    20210320,
+    1929
    ],
    "deps": [
     "caml"
    ],
-   "commit": "ccde45bbc292123ec20617f1af7f7e19f7481545",
-   "sha256": "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac"
+   "commit": "37a673020152ae0dbcaa250118b155d84e448f68",
+   "sha256": "0b9bnfwcnxkwjrdb4vm7y8wznqz4z990pv1s473gs97l7p04b1j9"
   },
   "stable": {
    "version": [
@@ -103129,15 +104099,15 @@
   "repo": "mrkkrp/typit",
   "unstable": {
    "version": [
-    20200217,
-    2059
+    20210318,
+    1747
    ],
    "deps": [
     "f",
     "mmt"
    ],
-   "commit": "f567867a0a519e17ad3552837b48d3d45fb73aa5",
-   "sha256": "0a5xds0mhfnq6kyc13s385vf4x4cqqpk2jiw1in7qg382fl8w2p0"
+   "commit": "fa125bf43757737fbcf91958b76c38b440d54b4c",
+   "sha256": "1l0qb8gjgsmjjdvxlma7g6fn2z6rj246p2kczrikq8ajg1xh61sr"
   },
   "stable": {
    "version": [
@@ -103494,8 +104464,8 @@
     20200701,
     1435
    ],
-   "commit": "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca",
-   "sha256": "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"
+   "commit": "f4db4c9b9875134df6f5279281099361ae11c2e9",
+   "sha256": "0s88mz3x9iwz4hj1n4l4nmya473hcv8wsps8dyx4mmgzgpdb1lvf"
   }
  },
  {
@@ -103509,8 +104479,8 @@
     20201218,
     400
    ],
-   "commit": "702210384a0c68f04aabc23e08ebd4d6f43ea2c7",
-   "sha256": "0brd92jln528j7hh8gyv5wz451cfpayvkz9fic7b0wisnwgvq26b"
+   "commit": "a0389147365c10c974ad68b797b185affb935fe3",
+   "sha256": "0qdls5h0ryh93ziwd5gibhknz8n9v66fyp55iwjk8zblgahnm6ym"
   }
  },
  {
@@ -103569,8 +104539,8 @@
     20210106,
     220
    ],
-   "commit": "8375d87ec184fbe964189e2f9b7263cdb1396694",
-   "sha256": "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"
+   "commit": "eef1614c79eb259cb782437a25680246793a924d",
+   "sha256": "0vx0sv8595lbx8x23ly3dg6zb73skp4cxi8l6m2h4l4v8fs6r0fl"
   },
   "stable": {
    "version": [
@@ -104378,8 +105348,8 @@
     20210124,
     138
    ],
-   "commit": "727aa7809b2e3ea09a36c61740d04e316ee21070",
-   "sha256": "1c83gialj6ydm1h4075fk70yr84199s6235jfzc9c7h44jf88gvn"
+   "commit": "d4b2014c5684b33ff73b4940bdff7b1138c1f85d",
+   "sha256": "00cx125pq6jad1v8pxq016hzg6wz1d06l4pc6z9r60l89y2m9hm2"
   }
  },
  {
@@ -104528,14 +105498,14 @@
   "repo": "dougm/vagrant-tramp",
   "unstable": {
    "version": [
-    20200118,
-    2324
+    20210217,
+    704
    ],
    "deps": [
     "dash"
    ],
-   "commit": "f67925928dd844b74e4002f433e6f0ebd3aae357",
-   "sha256": "1s022vcjzm78v1j7z29pda3lk9x93fvks4qw5v9kh2yzsrxdq4h8"
+   "commit": "5f00b42a0c023c461cef7af4de7652d90c788b4d",
+   "sha256": "1mshxcbwdjs2fs7lzqhs3pqbmdmy2fyzkf9b6r8rsxqlisa4x6sn"
   }
  },
  {
@@ -104643,11 +105613,11 @@
   "repo": "thisirs/vc-auto-commit",
   "unstable": {
    "version": [
-    20170107,
-    1333
+    20210216,
+    1517
    ],
-   "commit": "446f664f4ec835532f4f18ba18b5fb731f6030aa",
-   "sha256": "18jjl656ps75p7n3hf16mcjrgiagnjvb8m8dl4i261cbnq98qmav"
+   "commit": "56f478016a541b395092a9d3cdc0da84a37b30a1",
+   "sha256": "1aw5j6akrkzr4pgf10scbfqr9axny3pf3k7yslg7g5ss1fd71afl"
   }
  },
  {
@@ -104658,11 +105628,11 @@
   "repo": "thisirs/vc-check-status",
   "unstable": {
    "version": [
-    20170107,
-    1334
+    20210216,
+    1525
    ],
-   "commit": "37734beb16bfd8633ea328059bf9a47eed826d5c",
-   "sha256": "0mspksr2i6hkb7bhs38ydmn0d2mn7g1hjva60paq86kl7k76f7ra"
+   "commit": "d95ef8f0799cd3dd83726ffa9b01b076f378ce34",
+   "sha256": "10sr9qxfx64f7a2kj93vi7lmm1pdj6qf81ci0ykkmrffmjdlf846"
   }
  },
  {
@@ -104834,11 +105804,11 @@
   "repo": "plapadoo/vdf-mode",
   "unstable": {
    "version": [
-    20200713,
-    1838
+    20210303,
+    714
    ],
-   "commit": "8fbf6157440345879a0543bcab233e790a7b60ee",
-   "sha256": "1m237py9jcxkm6z3wgsxzhikc3lidd28gfflcmr0wm588sdx48sl"
+   "commit": "0910d4f847e9c817eb8da5434b3879048ec4ac92",
+   "sha256": "0a69crh9m447kxy4g47y02lymdcp5abbsfh9v68hnwydwnwjxyap"
   },
   "stable": {
    "version": [
@@ -105062,15 +106032,15 @@
   "repo": "applied-science/emacs-vega-view",
   "unstable": {
    "version": [
-    20200520,
-    1202
+    20210227,
+    1507
    ],
    "deps": [
     "cider",
     "parseedn"
    ],
-   "commit": "8a9e3f9344fd1b81ec52ea9655313c0490ab5d7b",
-   "sha256": "1b49lszx5gs9yc1zisklqqgijygdnfy2zryhipn7i1nvmpjzglv9"
+   "commit": "bb8159ad25886d81fcc2d3a9ec5af7ef669a87a6",
+   "sha256": "18g0fygi8dgwj2harnrqvilv0v3rrrdphqybmnshjmnfngkak55s"
   }
  },
  {
@@ -105081,11 +106051,11 @@
   "repo": "federicotdn/verb",
   "unstable": {
    "version": [
-    20210112,
-    2239
+    20210315,
+    1753
    ],
-   "commit": "91827971f655936d8a8df95c9d2f39eaee667c97",
-   "sha256": "1bvvj25shkasy4b14ifkvh195w401xggmhjkflld5frzp7pm6zvp"
+   "commit": "9c5e9baf43388d5a69ea2fb216d9936628b36a84",
+   "sha256": "1jl4b1ka1xaavfm4gpqgg01f76mlvy0g0rdifmwwz9w8apw306j0"
   },
   "stable": {
    "version": [
@@ -105578,11 +106548,11 @@
   "repo": "joostkremers/visual-fill-column",
   "unstable": {
    "version": [
-    20201229,
-    2303
+    20210323,
+    2039
    ],
-   "commit": "5b08b9ae9da5b95e42e94e4c9ec01d63e8848ea2",
-   "sha256": "1zg69lqg7yxxr4bw5lhcs5r8pljqalxqqbzvv3zrcifx7n24qzi9"
+   "commit": "a93dc5fc64340d8abda1272f67d46d4cc09a4c85",
+   "sha256": "1csybmfm5zgn2jpl9g3cb49vd26ds7x972wxiig3ri4zrmyn7y2l"
   },
   "stable": {
    "version": [
@@ -105844,11 +106814,11 @@
   "repo": "ianpan870102/vscode-dark-plus-emacs-theme",
   "unstable": {
    "version": [
-    20201116,
-    749
+    20210325,
+    917
    ],
-   "commit": "4a4c7502ceda44d189a5fb09018ef2bc3f3c8d5f",
-   "sha256": "0vgg301za0bgdgcj8kfniysvjq1iyia3jk6lvi6vwrzc8sy9hx6z"
+   "commit": "6e7a02b624628d05fd5cfb5f26d044618a00c905",
+   "sha256": "1xdb6pwl8p6rzb7l6qf8nz2rn6ggjg9krimqsl167551bkjri4gw"
   },
   "stable": {
    "version": [
@@ -105883,11 +106853,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20210209,
-    356
+    20210326,
+    1458
    ],
-   "commit": "a3fadd28370aa43f03d4f7b197be8fa074f311f5",
-   "sha256": "02vy7kxpv3k1viyf977apk0nmr53wb988h8zv19w1llp9lwa578f"
+   "commit": "1bc4516f53955dcbf397cf999f38e67eec835d8c",
+   "sha256": "0lvdr7ifb3cb5ll8pl0lyw4qzg0v1plzl4fg5drn3z6aanznva38"
   }
  },
  {
@@ -105898,14 +106868,14 @@
   "repo": "jixiuf/vterm-toggle",
   "unstable": {
    "version": [
-    20210130,
-    1149
+    20210313,
+    305
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "277a2071426562c385f87ef265dfafaf5051afb3",
-   "sha256": "10y2qxz3rz746sbfmkff0rh1vcjjdlkc9dw5gy5k1qnj8b3mi8pg"
+   "commit": "a0429842e6197a6ec83c0de30701127a4edb9e92",
+   "sha256": "1h0ssi84b0amhdjxjw6xyjb525d67b4jx0qpqk3fr08s9c87z8k9"
   }
  },
  {
@@ -105989,8 +106959,8 @@
   "repo": "mihaiolteanu/vuiet",
   "unstable": {
    "version": [
-    20210208,
-    827
+    20210323,
+    911
    ],
    "deps": [
     "bind-key",
@@ -105999,8 +106969,8 @@
     "s",
     "versuri"
    ],
-   "commit": "7063ccde4269925827283553f794bfe48866ffda",
-   "sha256": "1bkwlwa95v967bpafzkgjv0ac4h8nknjlwdsgslvanfxz046py15"
+   "commit": "16f9d9ee4744f4170ab9eab361783e3e32e3b627",
+   "sha256": "19pfxdg4kmvir6fgn9i4mqqlqk7lq77170kva6avxz12jz36i22r"
   },
   "stable": {
    "version": [
@@ -106019,6 +106989,39 @@
   }
  },
  {
+  "ename": "vulpea",
+  "commit": "cd29b11820d9d35717a9a03a7ed5b8f53cbe7bdb",
+  "sha256": "00kxpvysyzmc43d1pb8cdzp1nrwlzbl6wx9fw9c0sssjanchm3xn",
+  "fetcher": "github",
+  "repo": "d12frosted/vulpea",
+  "unstable": {
+   "version": [
+    20210314,
+    1818
+   ],
+   "deps": [
+    "org",
+    "org-roam",
+    "s"
+   ],
+   "commit": "ee35c562768a3a46b9d2c2f28dd2def105c05446",
+   "sha256": "19gx5i6jdb8dgpwaw0vmmla1v451svixahyf1pnfk6615rsb3m08"
+  },
+  "stable": {
+   "version": [
+    0,
+    1
+   ],
+   "deps": [
+    "org",
+    "org-roam",
+    "s"
+   ],
+   "commit": "4088c95bdd64ca1afbc59bacee571c7260988175",
+   "sha256": "03kynwkl4q91xz9wsmyx8g3aqgls1r8p5dxhixg586sr9xr4xck0"
+  }
+ },
+ {
   "ename": "vyper-mode",
   "commit": "492d42d60bc188a567c5e438b838a275a124c699",
   "sha256": "0mf1w4mw0ijmd9zxip1df85cp15fbvv9j5dqjmb8lfm4m43wpd96",
@@ -106085,11 +107088,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20210201,
-    2305
+    20210321,
+    2346
    ],
-   "commit": "54c3ccd9b3fa9becc4b108046b117ccd6384449d",
-   "sha256": "024drmvh1qv2sbl5nxvyrqbwlk4wk8bfsa08rn21rhlbnwknb5ip"
+   "commit": "7da7afc51aec1ab02056512b921e29a8c68615c9",
+   "sha256": "1fcfmzahmamrxrklbwrrig4gv745lpznpbxx5rlmb7wpndf2cpdy"
   }
  },
  {
@@ -106310,16 +107313,16 @@
   "repo": "wanderlust/wanderlust",
   "unstable": {
    "version": [
-    20210209,
-    1125
+    20210312,
+    843
    ],
    "deps": [
     "apel",
     "flim",
     "semi"
    ],
-   "commit": "3a3530b1c4e2a2aa02d683d166cf123e9cc16a0a",
-   "sha256": "09px7ns1k03frxx02gvkhjzbygz9sp214xq5qnain5mnz4vglcih"
+   "commit": "6e189fc944a9bbde76c5a6d9b6a38d57e85e6390",
+   "sha256": "0yphp7bqgmhd89hgqy8rg6kmkkzmhz3sjkzm9b1paic7fx9s0maj"
   }
  },
  {
@@ -106648,11 +107651,14 @@
   "repo": "eschulte/emacs-web-server",
   "unstable": {
    "version": [
-    20201217,
-    1252
+    20210209,
+    58
+   ],
+   "deps": [
+    "cl-lib"
    ],
-   "commit": "4d865cc4720f668aed7a8c3bcfddfbf534ecfb67",
-   "sha256": "14kx3anbffs53hdcq7347b3rd33lk6ajvwrz5mhnnj1kmdxy7dxh"
+   "commit": "3aa5084bcb733aa77997b9210b4437903f6f29ce",
+   "sha256": "1cg27byi1g0s3yfzdkji4xzc15ci5kqb2j0mj5dfdms4db12dir4"
   }
  },
  {
@@ -106699,14 +107705,14 @@
   "repo": "emacs-love/weblorg",
   "unstable": {
    "version": [
-    20210211,
-    255
+    20210308,
+    109
    ],
    "deps": [
     "templatel"
    ],
-   "commit": "95ee894dea36ac1f0d39266169123ee1ba7674ed",
-   "sha256": "1ap1nk9f560qvggvpknnk33xjbk7n4hisiv98xin20s60vjwspx3"
+   "commit": "faf78dfe01f25a3f32d6dcf199b5944cfc46b2c7",
+   "sha256": "0j9hnk5kymwq81qskn5l319qiilk5zck9134r44z0wx3bl0rc5gf"
   },
   "stable": {
    "version": [
@@ -106729,28 +107735,28 @@
   "repo": "etu/webpaste.el",
   "unstable": {
    "version": [
-    20201129,
-    1909
+    20210306,
+    1215
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "a9c4aa418526dbaf19348325ca30c249e2cf8440",
-   "sha256": "1lwv4zqws7kkxzbcgppgsn93vv6njc4qfh9i15bxjsj7jx3lwkgm"
+   "commit": "87ea8b15f417037bb1a46ac849b2f60f08c0bfeb",
+   "sha256": "1ixvkxdf8sz2xxdjb28pc9bdnz321m736b1riffhfh4w755z7vzp"
   },
   "stable": {
    "version": [
     3,
     2,
-    0
+    1
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "9662b1c9c40e822d90842c82a778f65c709d3358",
-   "sha256": "08545ihkzflw80rwklnxiswrpdrl8kr74xzxm5wsgrf36fkj9rn2"
+   "commit": "b063ddde87226281ce95f8ff0d7ce32d5dea29aa",
+   "sha256": "1d481pdnh7cnbyka7wn59czlci63zwfqms8n515svg92qm573ckd"
   }
  },
  {
@@ -106885,11 +107891,11 @@
   "repo": "jstaursky/weyland-yutani-theme",
   "unstable": {
    "version": [
-    20210212,
-    1514
+    20210327,
+    311
    ],
-   "commit": "2c0ade85ef96ce311dcf10f915af5c3696c333bf",
-   "sha256": "173csa3pv5230q9r9iz5j3nf34m8kd9jcrcvc17yv5bp7njmak4d"
+   "commit": "782b45736c36dcd48e614167d46ff7fc0edd2a7b",
+   "sha256": "0m6mpwvhvhb02rk2lkylw5w7q9nqm3sqdyzyz5bcqm3layck4pcv"
   }
  },
  {
@@ -106900,11 +107906,11 @@
   "repo": "mhayashi1120/Emacs-wgrep",
   "unstable": {
    "version": [
-    20200217,
-    1030
+    20210322,
+    2207
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -106930,8 +107936,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -106960,8 +107966,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -106984,14 +107990,14 @@
   "repo": "mhayashi1120/Emacs-wgrep",
   "unstable": {
    "version": [
-    20200128,
-    109
+    20210322,
+    2148
    ],
    "deps": [
     "wgrep"
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -107020,8 +108026,8 @@
    "deps": [
     "wgrep"
    ],
-   "commit": "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f",
-   "sha256": "1si1nng38ccciy0774gmf4wmz6x199cif357yjqibz1fk31lvk9p"
+   "commit": "f9687c28bbc2e84f87a479b6ce04407bb97cfb23",
+   "sha256": "090k2kznhdmzzd4hrs834mbr8kwady2ks1684kgzqjzvwhv36v6i"
   },
   "stable": {
    "version": [
@@ -107059,11 +108065,11 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20210131,
-    1837
+    20210324,
+    1821
    ],
-   "commit": "c0608e812a8d1bc7aefeacdfaeb56a7272eabf44",
-   "sha256": "1g07i6hyv9glhk6xq1z9vn81vi2f0byy7dp3rg4gw22sm6f6d1al"
+   "commit": "c632dbf27a77c1c73ce559041b3a78ec5f78b187",
+   "sha256": "1dsr7x0mbw8jmdm26278a9lqmh3mkrkzr24fp6ssf316hh51cc3v"
   },
   "stable": {
    "version": [
@@ -107174,8 +108180,8 @@
     20200304,
     2227
    ],
-   "commit": "c344cfd78df23980ee48fb85fbc16989b7d4cffe",
-   "sha256": "1jwz89j6v8mmdim8knnwjz2ip0cwn5lq6x8nz78xns1ba5fg293b"
+   "commit": "3c5a7161c0dd0caa65e9a61640b06aff101be848",
+   "sha256": "1i4xnl178lbaqnrxxk9qxzz3v0krj4wawh8zyprh2xirgxqspks8"
   },
   "stable": {
    "version": [
@@ -107247,8 +108253,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "4a1d44ec7b1421913cb39a6e83854329be910e68",
-   "sha256": "0az61n9c4mf2l68y67lmp34d678n13s06kpx62r4v5kaar2vhz8i"
+   "commit": "3c1a55103e52c7a3010ee0043af22484d23a441e",
+   "sha256": "0bkfx18jpy8b91yq917va5x2mkrzqlyi6a38bi90zfqhxz5h69g4"
   },
   "stable": {
    "version": [
@@ -107318,8 +108324,8 @@
     "makey",
     "s"
    ],
-   "commit": "a0d8456b9f71fcb40a28ec9235132df506aa6ecc",
-   "sha256": "1bndpdzscb917sp32khmifk7vdkj4psh7c8rf4j5s5zs7033qwka"
+   "commit": "58a0e556b4b96e1d23082a7ec2e8c0d4183a1a24",
+   "sha256": "0nvyacv711bb56cj9zrja6svzwhmdw22qg1c1bwprnh4nig43a03"
   }
  },
  {
@@ -107399,8 +108405,8 @@
     "org",
     "wikinfo"
    ],
-   "commit": "d1a95a62e90cff70d83a6a2ce611aa895adb9a58",
-   "sha256": "196hhbqpx233av4zfcz0ig5r0rbp6annr8w88j5i6bqrk0yzm2ws"
+   "commit": "2eb31ab00e4c8ad53dc15234f29527b9f0f54d71",
+   "sha256": "0sghvnvbbv3d7kdvcv2dbbzbv38b3jjzbrhjv6fn5lynyr929vqr"
   }
  },
  {
@@ -107570,15 +108576,15 @@
   "repo": "bmag/emacs-purpose",
   "unstable": {
    "version": [
-    20210211,
-    1713
+    20210315,
+    1848
    ],
    "deps": [
     "imenu-list",
     "let-alist"
    ],
-   "commit": "76b2298c27e69941ed5200363fbcac7487875f83",
-   "sha256": "0slbhn09vbv10mxmgym0fmk4yf28q9aj2bnmkf2fh3p766ps9n1a"
+   "commit": "aa4e7376ab72b7f67cf8ad46b67a2eaec2f8cd61",
+   "sha256": "1l7nrms211jslxibq18wxxdx7rv6i18by8lzhk692fp6s5af2fi3"
   },
   "stable": {
    "version": [
@@ -107796,11 +108802,11 @@
   "repo": "magit/with-editor",
   "unstable": {
    "version": [
-    20210117,
-    2008
+    20210319,
+    1930
    ],
-   "commit": "2848a90addae086b657605b84a7fbecf2c4c1c65",
-   "sha256": "0pcy9w0q4jlwcf4hhcdm2cjgpj9ca4b04cydwlv5pnm0qrnlrzpc"
+   "commit": "ebcbd3b137154e6c5a2b976bacbb89d48ddfa242",
+   "sha256": "0qir7kzvnlchpvmpl8gj11yqly6j5m260mmxny9xxwx0dzwaya4k"
   },
   "stable": {
    "version": [
@@ -108123,8 +109129,8 @@
   "repo": "abo-abo/worf",
   "unstable": {
    "version": [
-    20210128,
-    1005
+    20210309,
+    1513
    ],
    "deps": [
     "ace-link",
@@ -108132,8 +109138,8 @@
     "swiper",
     "zoutline"
    ],
-   "commit": "718ad44ff340e0298ee843130067f42d799350a4",
-   "sha256": "16nqx4ridk6asibxhp9l8pw33kc862i42wkjm14m8r5y6gi67k7d"
+   "commit": "fff12d4d3bb1ddf70cd0abb78aecd9133b367990",
+   "sha256": "1fbi0rv9pvh9bf72fjc3pfql9xfnw7zif0rsw0r2gn4sdn7202id"
   },
   "stable": {
    "version": [
@@ -108173,11 +109179,11 @@
   "repo": "pashinin/workgroups2",
   "unstable": {
    "version": [
-    20201217,
-    1159
+    20210325,
+    939
    ],
-   "commit": "c9403c68a7e6491134110d7cacc130c34eae85a0",
-   "sha256": "0zkg6b45nc8ap8c8r95r25wyxymnslp3k1x2mmnmj0ivyi0bxjib"
+   "commit": "808248353b7617fd5b307defc3e1e8ccfed45045",
+   "sha256": "1akxxh3400j9rd7zagmhjfrvvg14g4mlzzgbc1y0n2l33k690fz4"
   },
   "stable": {
    "version": [
@@ -108413,11 +109419,11 @@
   "repo": "redguardtoo/wucuo",
   "unstable": {
    "version": [
-    20210129,
-    407
+    20210316,
+    156
    ],
-   "commit": "4f1a63bf990c06942c5c290d5d146f8545f43b95",
-   "sha256": "0awa2zhnmm49sdvxwzhbnzcynk4qsbpsrmqmh9xi9rw20711iwjr"
+   "commit": "d66e6808367048b7694383cf545102e7cad6ba8c",
+   "sha256": "0ahz85n49x2579hpzir2xsqwm0mwlv9x2h91haq0w0l73llnj35q"
   },
   "stable": {
    "version": [
@@ -108430,6 +109436,21 @@
   }
  },
  {
+  "ename": "wwg",
+  "commit": "f2428271e2ad88d1349cf25aa18144491a1b95b8",
+  "sha256": "02wld1rxj6kcmrmcvx2v5ah068hk6c66bv9xs94sysvx3l6za18z",
+  "fetcher": "github",
+  "repo": "ag91/writer-word-goals",
+  "unstable": {
+   "version": [
+    20210314,
+    2101
+   ],
+   "commit": "d62ece22ab7c8c46d874f5ae61712aa517b25ce2",
+   "sha256": "16m77snvipr7blwsd12p7biqxqq9hchq3qmd0h79h9kci1990j2r"
+  }
+ },
+ {
   "ename": "wwtime",
   "commit": "28f034fbabe9de76e2e4ae44be8c8240b08f0535",
   "sha256": "0n37k23lkjgaj9wxnr41yk3mwvy62mc9im5l86czqmw5gy4l63ic",
@@ -108582,11 +109603,11 @@
   "repo": "xahlee/xah-fly-keys",
   "unstable": {
    "version": [
-    20210212,
-    2334
+    20210319,
+    1553
    ],
-   "commit": "3e5c9db36b9a01b485fffd12219a1685ea1e1fc6",
-   "sha256": "03496m1vs7kkh2rwymj5nbr2cv07s3vdlic9mm30rim0cpw3gax6"
+   "commit": "f35ef2e8cb8208c30a7ba02df52f32d915073fe6",
+   "sha256": "13xf12ci1anm6r8j90i6mj8pfmb8ffvhyzinz42046achhpymwnl"
   }
  },
  {
@@ -109049,20 +110070,20 @@
  },
  {
   "ename": "xref-js2",
-  "commit": "b5dab444ead98210b4ab3a6f9a61d013aed6d5b7",
-  "sha256": "1mfyszdi1wx2lqd9fyqm0ra227dcsjs8asc1dw2li0alwh7n4xs3",
+  "commit": "940abb73967f518c5ff2724bfa1adabbe6ed8f0d",
+  "sha256": "08az9z1ahs0x8307zrxc1yrvbqj26y4ipcxzgbdbbcil36c27z63",
   "fetcher": "github",
-  "repo": "NicolasPetton/xref-js2",
+  "repo": "js-emacs/xref-js2",
   "unstable": {
    "version": [
-    20190915,
-    2032
+    20210310,
+    1238
    ],
    "deps": [
     "js2-mode"
    ],
-   "commit": "6f1ed5dae0c2485416196a51f2fa92f32e4b8262",
-   "sha256": "0pbnhliq3zivijksdhdqd7m3ndc3z7kw2g21zwihq28faps96ikj"
+   "commit": "fd6b723e7f1f9793d189a815e1904364dc026b03",
+   "sha256": "0iny4qswyicrax36d4sgyfrw3giwjd1440bmlksd36y8zjkqqym0"
   },
   "stable": {
    "version": [
@@ -109084,11 +110105,11 @@
   "repo": "ideasman42/emacs-xref-rst",
   "unstable": {
    "version": [
-    20210110,
-    640
+    20210320,
+    1123
    ],
-   "commit": "3e7360553f46461cbcacdb18cbb7a214d55b89f7",
-   "sha256": "1cqp0azbnhsi7l2xis6b0pwcpn4v40cqx5p79ymhhza8ch8q7rx6"
+   "commit": "f5bcb89e026562abb8da4ea337457d43fed2e71b",
+   "sha256": "0hhhah6aq5wc6jqvf836h8ysmym1jk78acrdf6n486ck537zh5i3"
   }
  },
  {
@@ -109356,8 +110377,8 @@
     20200511,
     2005
    ],
-   "commit": "91159ce448e3bc9cc5759051e2b126599567893e",
-   "sha256": "1f0zb417y40iwx3x116lyp74hv9x6z5c500ydvig3qsjf7l82dx2"
+   "commit": "96068216a4f0c4894bf780cd36164fe840cf81d5",
+   "sha256": "11wrvmnr74pqga8a00gd4zskan8wkgah9fyn0bwgp0x4qx4xni17"
   }
  },
  {
@@ -109376,6 +110397,21 @@
   }
  },
  {
+  "ename": "yaml",
+  "commit": "b96babefbbaf18adcbe7db6065766fd6ba5aa016",
+  "sha256": "057v3magsdhxbb3n9z09cli48f56kzlqyiwwg3009nfvpkf5vm2q",
+  "fetcher": "github",
+  "repo": "zkry/yaml.el",
+  "unstable": {
+   "version": [
+    20210326,
+    533
+   ],
+   "commit": "9ebddb55238d746dc5a5d46db04c9f360c140b99",
+   "sha256": "124lv7jjscaq7pgn72gk7zhrl54c27zqnyh8z51mn8j8mbpvf68a"
+  }
+ },
+ {
   "ename": "yaml-imenu",
   "commit": "71e7c2df9e34093ad2634d5a56133fa30126fb5c",
   "sha256": "03r7020gyr96m1z7p947nb7z8szzlkqv21g1hm10sqa8qp7k0qli",
@@ -109981,11 +111017,11 @@
   "repo": "ryuslash/yoshi-theme",
   "unstable": {
    "version": [
-    20210201,
-    605
+    20210324,
+    1847
    ],
-   "commit": "77036b1067c16451cbc9fdca254f31b6725b795b",
-   "sha256": "0dm9rd0dr1dv6adq4rmj3z9l94y2jq1kd8p1d2r3qw6jqz8w035d"
+   "commit": "4ea0f4d8128951432169b1e6db3dd4ac42492e93",
+   "sha256": "177zh0d6ax9j1fdv569b0adnb873b2913b9pmj26y8ipsbg4iwa6"
   },
   "stable": {
    "version": [
@@ -110039,11 +111075,11 @@
   "repo": "spiderbit/ytdious",
   "unstable": {
    "version": [
-    20210207,
-    1841
+    20210228,
+    2111
    ],
-   "commit": "6005ff920b7df97724094b1afa2a6a3d0fcc6a60",
-   "sha256": "17dp67awxpv8zi961rbhzgzkyxvnj2498p6ld0bjh3v7nqg0zfwg"
+   "commit": "941460b51e43ef6764e15e2b9c4af54c3e56115f",
+   "sha256": "0ihqzxahqvk8jnn05k06lzhi6pd9c1a2q7qqybnmds85amkwmsad"
   }
  },
  {
@@ -110268,10 +111304,10 @@
  },
  {
   "ename": "zenscript-mode",
-  "commit": "2879811c121d24f14f23fb45afabd31fbd4246e1",
-  "sha256": "141im3qrpssjzlpiy72zzdyhqdcshpn68yvdqdvcxajrakkh8d0w",
+  "commit": "c991dec83a2fdf5c9cdb4c291a8c80246591abef",
+  "sha256": "1vff9ax25j68gzdcnainynk55cb0brkg9rrv25ng9g6lixbrjs8a",
   "fetcher": "github",
-  "repo": "eutropius225/zenscript-mode",
+  "repo": "eutro/zenscript-mode",
   "unstable": {
    "version": [
     20210102,
@@ -110360,25 +111396,25 @@
   "repo": "NicolasPetton/zerodark-theme",
   "unstable": {
    "version": [
-    20210212,
-    956
+    20210216,
+    1640
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "744c1a5b06277f0f9b70abb30a93b35818773532",
-   "sha256": "1v5by5kq7ifqz172x80y3ddlkywl3dccvqvz6skxq7rz8w4gx5d3"
+   "commit": "ee49ea9e875d7a3da63386880ca3a9e10b1051e5",
+   "sha256": "06q1v0fkxyxadrpgy28gh85j19vi4ars2xrbbm1bz28xrcbnps04"
   },
   "stable": {
    "version": [
     4,
-    6
+    7
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "df22536a244293591575e56970bf83814faa7c14",
-   "sha256": "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"
+   "commit": "342055346446bb8306ac2d3d2ac1f4236c84a404",
+   "sha256": "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"
   }
  },
  {
@@ -110389,15 +111425,15 @@
   "repo": "EFLS/zetteldeft",
   "unstable": {
    "version": [
-    20201230,
-    2127
+    20210326,
+    942
    ],
    "deps": [
     "ace-window",
     "deft"
    ],
-   "commit": "09d31b083e0d08bd4dda3e60af44711c090140b0",
-   "sha256": "14hawr28rcr4scjchjx71g6wvvnym9ai20iz615a751iilg4mw7a"
+   "commit": "293d406203c5c060ceb64874812bc193ac91fb74",
+   "sha256": "08r0ipi6wbqfna4jwpvyp64vkzy3jdrjy0vac43gi2s3cbxl3wmg"
   },
   "stable": {
    "version": [
@@ -110551,14 +111587,14 @@
   "repo": "sshirokov/ZNC.el",
   "unstable": {
    "version": [
-    20160627,
-    2032
+    20210304,
+    2337
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ce468d185e4a949c45fdd7586313144bc69d4fe5",
-   "sha256": "0jh11lbzsndsz9i143av7510417nzwy4j3mmpq7cjixfbmnxdq06"
+   "commit": "e795739ec182d217ffaf3c595819c308911540ee",
+   "sha256": "108bw2k255rkngfkp5iff1frsirc06j70ar1gcrh9lc3fcxdawlp"
   }
  },
  {
@@ -110796,15 +111832,15 @@
   "repo": "egh/zotxt-emacs",
   "unstable": {
    "version": [
-    20210115,
-    456
+    20210222,
+    347
    ],
    "deps": [
     "deferred",
     "request"
    ],
-   "commit": "87d8c4836c5f43530db8f00a66b7b69087236875",
-   "sha256": "01w529yr96kx7xg2w670ci61aljd1alrbqy1qxnj9yiymqsnmys1"
+   "commit": "a760009b9ecfa0b3362e77a6b44453821768d02e",
+   "sha256": "0vfdpgb0ln3xrx4i32mqisaj7qm2yx73rhagx6adr8hjw78gysfy"
   },
   "stable": {
    "version": [
@@ -110902,14 +111938,14 @@
   "repo": "fourier/ztree",
   "unstable": {
    "version": [
-    20210210,
-    2022
+    20210215,
+    2111
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6eee81d2691009ce60b2edf7c298b227caf1b0d6",
-   "sha256": "1xmimjflylssx63g1kpd5n34gdlpivgg9ih8nwplad57bxiy2yqb"
+   "commit": "dc5f76923436ea87b802b56a54185b6888177a8c",
+   "sha256": "17y1hjhygh2kq487ab1s8n2ba9npdmqg6354jv3gha6ar3mib1qi"
   }
  },
  {
@@ -110959,15 +111995,15 @@
   "repo": "mrkkrp/zzz-to-char",
   "unstable": {
    "version": [
-    20190713,
-    1344
+    20210321,
+    1707
    ],
    "deps": [
     "avy",
     "cl-lib"
    ],
-   "commit": "b0a50b8cb6925c3184405f81be9ef9be9da69f09",
-   "sha256": "003rg7x1vfv946j1m6yalzsgr88wvm3443pqf9yqwnzl2a3djq0g"
+   "commit": "18d26571b91a9c56b6a7e0d2a58188e833ab5d0f",
+   "sha256": "0cl76m06cm0wmb8bx6g6xrxaks2vr6zqpibc9d94gbkr5jzccg9k"
   },
   "stable": {
    "version": [
diff --git a/pkgs/applications/editors/emacs/26.nix b/pkgs/applications/editors/emacs/26.nix
deleted file mode 100644
index a151006a995..00000000000
--- a/pkgs/applications/editors/emacs/26.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-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 9377d3ba89c..6726790d50f 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
@@ -130,7 +136,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
       else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
              "--with-gif=no" "--with-tiff=no" ])
     ++ lib.optional withXwidgets "--with-xwidgets"
-    ++ lib.optional nativeComp "--with-nativecomp"
+    ++ lib.optional nativeComp "--with-native-compilation"
     ++ lib.optional withImageMagick "--with-imagemagick"
     ;
 
@@ -159,6 +165,14 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
   '' + lib.optionalString (nativeComp && withNS) ''
     ln -snf $out/lib/emacs/*/native-lisp $out/Applications/Emacs.app/Contents/native-lisp
   '' + lib.optionalString nativeComp ''
+    echo "Generating native-compiled trampolines..."
+    # precompile trampolines in parallel, but avoid spawning one process per trampoline.
+    # 1000 is a rough lower bound on the number of trampolines compiled.
+    $out/bin/emacs --batch --eval "(mapatoms (lambda (s) \
+      (when (subr-primitive-p (symbol-function s)) (print s))))" \
+      | xargs -n $((1000/NIX_BUILD_CORES + 1)) -P $NIX_BUILD_CORES \
+        $out/bin/emacs --batch -l comp --eval "(while argv \
+          (comp-trampoline-compile (intern (pop argv))))"
     mkdir -p $out/share/emacs/native-lisp
     $out/bin/emacs --batch \
       --eval "(add-to-list 'comp-eln-load-path \"$out/share/emacs/native-lisp\")" \
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/formiko/default.nix b/pkgs/applications/editors/formiko/default.nix
new file mode 100644
index 00000000000..53fee165f5e
--- /dev/null
+++ b/pkgs/applications/editors/formiko/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, wrapGAppsHook
+, gobject-introspection
+, gtk3
+, docutils
+, gtksourceview
+, gtkspell3
+, librsvg
+, pygobject3
+, webkitgtk
+}:
+
+buildPythonApplication rec {
+  pname = "formiko";
+  version = "1.4.3";
+
+  src = fetchFromGitHub {
+    owner = "ondratu";
+    repo = "formiko";
+    rev = version;
+    sha256 = "0n7w585gbrpn2xcd5n04hivrjarpr2wj260y2kpxpgh93vn52sdi";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    gobject-introspection
+    gtk3
+  ];
+  propagatedBuildInputs = [
+    docutils
+    gobject-introspection
+    gtk3
+    gtksourceview
+    gtkspell3
+    librsvg
+    pygobject3
+    webkitgtk
+  ];
+
+  # Needs a display
+  doCheck = false;
+
+  meta = with lib; {
+    description = "reStructuredText editor and live previewer";
+    homepage = "https://github.com/ondratu/formiko";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/editors/fte/default.nix b/pkgs/applications/editors/fte/default.nix
index 3814c8a879f..4f78267dbe5 100644
--- a/pkgs/applications/editors/fte/default.nix
+++ b/pkgs/applications/editors/fte/default.nix
@@ -3,7 +3,8 @@
 stdenv.mkDerivation rec {
   name = "fte-0.50.02";
 
-  buildInputs = [ unzip perl libX11 libXpm gpm ncurses slang ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ perl libX11 libXpm gpm ncurses slang ];
 
   ftesrc = fetchurl {
     url = "mirror://sourceforge/fte/fte-20110708-src.zip";
diff --git a/pkgs/applications/editors/ghostwriter/default.nix b/pkgs/applications/editors/ghostwriter/default.nix
index 23a81c9cb00..2249009af77 100644
--- a/pkgs/applications/editors/ghostwriter/default.nix
+++ b/pkgs/applications/editors/ghostwriter/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "ghostwriter";
-  version = "2.0.0-rc4";
+  version = "2.0.0-rc5";
 
   src = fetchFromGitHub {
     owner = "wereturtle";
     repo = pname;
     rev = version;
-    sha256 = "07547503a209hc0fcg902w3x0s1m899c10nj3gqz3hak0cmrasi3";
+    sha256 = "sha256-Gc0/AHxxJd5Cq3dBQ0Xy2TF78CBmQFYUzm4s7q1aHEE=";
   };
 
   nativeBuildInputs = [ qmake pkg-config qttools ];
diff --git a/pkgs/applications/editors/glow/default.nix b/pkgs/applications/editors/glow/default.nix
index 06013b50d63..81cba221622 100644
--- a/pkgs/applications/editors/glow/default.nix
+++ b/pkgs/applications/editors/glow/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "glow";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "glow";
     rev = "v${version}";
-    sha256 = "1y5cdqmyc2z2qk74l0r2c4mnw0jfibrf2ry7qcnmh96nhalq9m7j";
+    sha256 = "13ip29yxjc2fhsk12m6hj6mswrgc9a4m8gf0hiffd1nh5313mqxi";
   };
 
-  vendorSha256 = "11x6hshbqg1a39a1hwpfivgrhyk7ykw2aqylira3dqv039b1f639";
+  vendorSha256 = "0i49b1yq9x5n59k29yacxyif928r0w7hl6azfvr5k3rssg0y4l7f";
 
   doCheck = false;
 
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/gophernotes/default.nix b/pkgs/applications/editors/gophernotes/default.nix
index e48ee4dd13c..161acb54bba 100644
--- a/pkgs/applications/editors/gophernotes/default.nix
+++ b/pkgs/applications/editors/gophernotes/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gophernotes";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "gopherdata";
     repo = "gophernotes";
     rev = "v${version}";
-    sha256 = "0hs92bdrsjqafdkhg2fk3z16h307i32mvbm9f6bb80bgsciysh27";
+    sha256 = "sha256-EEMKV+k5qcep4z7J5r1nSLxmb0fbfpJOPmz5bE91cd8=";
   };
 
-  vendorSha256 = "1ylqf1sx0h2kixnq9f3prn3sha43q3ybd5ay57yy5z79qr8zqvxs";
+  vendorSha256 = "sha256-Wy4HcPlrlYUjRQHhw+UPAa+Rn1FvJobWGxgFiJKJTAg=";
 
   meta = with lib; {
     description = "Go kernel for Jupyter notebooks";
diff --git a/pkgs/applications/editors/greenfoot/default.nix b/pkgs/applications/editors/greenfoot/default.nix
index 324d8b13f21..34f489bfba3 100644
--- a/pkgs/applications/editors/greenfoot/default.nix
+++ b/pkgs/applications/editors/greenfoot/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     description = "A simple integrated development environment for Java";
     homepage = "https://www.greenfoot.org/";
     license = licenses.gpl2ClasspathPlus;
-    maintainers = [ maintainers.charvp ];
+    maintainers = [ maintainers.chvp ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/editors/hecate/default.nix b/pkgs/applications/editors/hecate/default.nix
index 5429497d209..29a3e1ff1ca 100644
--- a/pkgs/applications/editors/hecate/default.nix
+++ b/pkgs/applications/editors/hecate/default.nix
@@ -21,6 +21,5 @@ buildGoPackage rec {
     longDescription = "The Hex Editor From Hell!";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ramkromberg ];
-    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/applications/editors/jed/default.nix b/pkgs/applications/editors/jed/default.nix
index 7b197be0e6f..29c8bc258cc 100644
--- a/pkgs/applications/editors/jed/default.nix
+++ b/pkgs/applications/editors/jed/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlags = [
-    "CC=cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
     "--with-slang=${slang}"
     "JED_ROOT=${placeholder "out"}/share/jed"
   ];
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 7d030c8445f..e7628715a21 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv, callPackage, fetchurl
-, python
 , jdk, cmake, libxml2, zlib, python3, ncurses5
 , dotnet-sdk_3
 , vmopts ? null
@@ -199,7 +198,7 @@ let
         platforms = platforms.linux;
       };
     }).override {
-      propagatedUserEnvPkgs = [ python ];
+      propagatedUserEnvPkgs = [ python3 ];
     };
 
   buildRider = { name, version, src, license, description, wmClass, ... }:
@@ -270,12 +269,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "1jfvwir79s0kcqmlx6bbkmc42bplgl7814mnqfcsdzni1qv62pws"; /* updated by script */
+      sha256 = "10s0jkxi892pg7d2slh7cvrd0ch2223qms3c9v1ax0n6ymfkcw14"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -283,12 +282,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "0jk7ywxk983ld5x71a59dh1hvlnli3sbvg7fbicahas5ml8clxfv"; /* updated by script */
+      sha256 = "1wjaavgslwpz4jniszswdy10rk3622i1w3awdwhgjlcc6mwkwz1f"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -296,12 +295,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.4"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "12gi1a2bmafmy7qgqwv3a7b5b46dlhw4ahmkm5pkq6pmxl4y6dmk"; /* updated by script */
+      sha256 = "148rs9w0fqr5xzhnq5bd473j4vnb69kf8yxxjmwdp25z2d7x47ip"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -309,12 +308,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "0zkjmvi27b69xrkn4s6f5788n5yn044phgf48kamfqfs37q4xf1d"; /* updated by script */
+      sha256 = "1msfl8qq0aday4ssip73r0y096mrb89mr7z2j4mpqhkzgsmvpjk0"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -322,12 +321,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
-      sha256 = "1vac21d9p52z4k1dl903rc2dbbcf873xbg8rx1fp9nsaaphnc9lq"; /* updated by script */
+      sha256 = "0szq8lqp1h7kci8kqd1bb3g16j3p5f4dfmbccbyrrwsram3hvjgi"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -335,12 +334,12 @@ in
 
   mps = buildMps rec {
     name = "mps-${version}";
-    version = "2020.3"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "Create your own domain-specific language";
-    license = lib.licenses.unfree;
+    license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/mps/2020.3/MPS-${version}.tar.gz";
-      sha256 = "0dr1z2sxarz1xif4swxx28hpzsyjd86m0c3xdaw5lmpqwqlzvc5h"; /* updated by script */
+      sha256 = "0vskzia48jq50bjdqw993gizvvd59f3qlszbsdp7xg5a3afbk7p3"; /* updated by script */
     };
     wmClass = "jetbrains-mps";
     update-channel = "MPS RELEASE";
@@ -348,12 +347,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "1c5j3mbg8scsl4c90cjahdk5gs5q72y5a8fhkqa9zmy6di42k99x"; /* updated by script */
+      sha256 = "0arff0882xw1azbxpn1n3wbc5ncg8gmfim3jf6rq2dky8kp9ylkm"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -361,12 +360,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.4"; /* updated by script */
     description = "PyCharm Community Edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1z3w6aah635fdrhrzp5af6sgj269jk7mv8vgdd83gxillkx9vq9k"; /* updated by script */
+      sha256 = "0xh0hb0v3ilgqjljh22c75hkllqgqbpppplni2dz2pv9rb3r5dv5"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -374,12 +373,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.4"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1fbb8v40q7vgn5v5dyxb211abr8swnxa3gw18kh3vlk6yc2crzfw"; /* updated by script */
+      sha256 = "18gkjc52qpghs721rkbsj03kaf6n8c8sxg57b2d82hjckjgm6q10"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -387,12 +386,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.4"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "1dkgbd2nqkjcswf7j3pnrsaq9n5wk42abz2c4wgkrh1zrpgihd0j"; /* updated by script */
+      sha256 = "1v99yqj83aw9j400z3v24n7xnyxzw5vm0b3rwd4yb8w3ajl59gq1"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
@@ -400,12 +399,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2020.3.1"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "0drxzz6k0cmhir4szg8nwmsi9qh380vrryghmpvx9w83yrcain4c"; /* updated by script */
+      sha256 = "17x3sz4jkz2px25gj813xqrrb2cm7mdl6m5a22zg086phym66g3c"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine RELEASE";
@@ -413,12 +412,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2020.3.2"; /* updated by script */
+    version = "2020.3.3"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "1jpa4gfy0xmmscjqca4pvvwvh4h3lg02nbf1m5wcsjdcywbk9y40"; /* updated by script */
+      sha256 = "0szq7qz5p1ksmqdy1rma5rfl0d9dy9qmhz8k5id4zdpyz2jsacfb"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm RELEASE";
diff --git a/pkgs/applications/editors/jetbrains/update.pl b/pkgs/applications/editors/jetbrains/update.pl
index b4a96228db4..6f0a451849a 100755
--- a/pkgs/applications/editors/jetbrains/update.pl
+++ b/pkgs/applications/editors/jetbrains/update.pl
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i perl -p perl perlPackages.LWPProtocolhttps perlPackages.FileSlurp
+#!nix-shell -i perl -p perl perlPackages.LWPProtocolHttps perlPackages.FileSlurp
 
 use strict;
 use List::Util qw(reduce);
diff --git a/pkgs/applications/editors/jucipp/default.nix b/pkgs/applications/editors/jucipp/default.nix
index 95b41ba5caf..7304219e236 100644
--- a/pkgs/applications/editors/jucipp/default.nix
+++ b/pkgs/applications/editors/jucipp/default.nix
@@ -15,6 +15,9 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ xnwdd ];
+    # error: token ""1.1"" is not valid in preprocessor expression
+    # TODO: fix pname being different from the attribute name
+    broken = true;
   };
 
   src = fetchgit {
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/kakoune/plugins/aliases.nix b/pkgs/applications/editors/kakoune/plugins/aliases.nix
new file mode 100644
index 00000000000..5ff2a03441d
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/aliases.nix
@@ -0,0 +1,46 @@
+# Deprecated aliases - for backward compatibility
+
+lib: overriden:
+
+with overriden;
+
+let
+  # Removing recurseForDerivation prevents derivations of aliased attribute
+  # set to appear while listing all the packages available.
+  removeRecurseForDerivations = alias: with lib;
+    if alias.recurseForDerivations or false then
+      removeAttrs alias ["recurseForDerivations"]
+    else alias;
+
+  # Disabling distribution prevents top-level aliases for non-recursed package
+  # sets from building on Hydra.
+  removeDistribute = alias: with lib;
+    if isDerivation alias then
+      dontDistribute alias
+    else alias;
+
+  # Make sure that we are not shadowing something from
+  # all-packages.nix.
+  checkInPkgs = n: alias: if builtins.hasAttr n overriden
+                          then throw "Alias ${n} is still in kakounePlugins"
+                          else alias;
+
+  mapAliases = aliases:
+     lib.mapAttrs (n: alias: removeDistribute
+                             (removeRecurseForDerivations
+                              (checkInPkgs n alias)))
+                     aliases;
+
+  deprecations = lib.mapAttrs (old: info:
+    throw "${old} was renamed to ${info.new} on ${info.date}. Please update to ${info.new}."
+  ) (builtins.fromJSON (builtins.readFile ./deprecated.json));
+
+in
+mapAliases ({
+  kak-auto-pairs         = auto-pairs-kak; # backwards compat, added 2021-01-04
+  kak-buffers            = kakoune-buffers; # backwards compat, added 2021-01-04
+  kak-fzf                = fzf-kak; # backwards compat, added 2021-01-04
+  kak-powerline          = powerline-kak; # backwards compat, added 2021-01-04
+  kak-prelude            = prelude-kak; # backwards compat, added 2021-01-04
+  kak-vertical-selection = kakoune-vertical-selection; # backwards compat, added 2021-01-04
+} // deprecations)
diff --git a/pkgs/applications/editors/kakoune/plugins/build-kakoune-plugin.nix b/pkgs/applications/editors/kakoune/plugins/build-kakoune-plugin.nix
new file mode 100644
index 00000000000..f35a175312c
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/build-kakoune-plugin.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, rtpPath ? "share/kak/autoload/plugins" }:
+rec {
+  buildKakounePlugin = attrs@{
+    name ? "${attrs.pname}-${attrs.version}",
+    namePrefix ? "kakplugin-",
+    src,
+    unpackPhase ? "",
+    configurePhase ? "",
+    buildPhase ? "",
+    preInstall ? "",
+    postInstall ? "",
+    path ? lib.getName name,
+    ...
+  }:
+    stdenv.mkDerivation ((builtins.removeAttrs attrs [ "namePrefix" "path" ]) // {
+      name = namePrefix + name;
+
+      installPhase = ''
+        runHook preInstall
+
+        target=$out/${rtpPath}/${path}
+        mkdir -p $out/${rtpPath}
+        cp -r . $target
+
+        runHook postInstall
+      '';
+    });
+
+  buildKakounePluginFrom2Nix = attrs: buildKakounePlugin ({
+    buildPhase = ":";
+    configurePhase = ":";
+  } // attrs);
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/case.kak.nix b/pkgs/applications/editors/kakoune/plugins/case.kak.nix
deleted file mode 100644
index 3fa91113bba..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/case.kak.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchFromGitLab }:
-
-stdenv.mkDerivation {
-  name = "case.kak";
-  version = "unstable-2020-04-06";
-
-  src = fetchFromGitLab {
-    owner = "FlyingWombat";
-    repo = "case.kak";
-    rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
-    sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc/case.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib; {
-    description = "Case convention conversion for Kakoune";
-    homepage = "https://gitlab.com/FlyingWombat/case.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platform = platforms.all;
-  };
-}
-
diff --git a/pkgs/applications/editors/kakoune/plugins/default.nix b/pkgs/applications/editors/kakoune/plugins/default.nix
index 950229baee0..1fe16a4e60c 100644
--- a/pkgs/applications/editors/kakoune/plugins/default.nix
+++ b/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -1,17 +1,25 @@
-{ pkgs, parinfer-rust, rep }:
+{ callPackage, config, kakouneUtils, lib }:
 
-{
-  inherit parinfer-rust rep;
+let
 
-  case-kak = pkgs.callPackage ./case.kak.nix { };
-  kak-ansi = pkgs.callPackage ./kak-ansi.nix { };
-  kak-auto-pairs = pkgs.callPackage ./kak-auto-pairs.nix { };
-  kak-buffers = pkgs.callPackage ./kak-buffers.nix { };
-  kak-fzf = pkgs.callPackage ./kak-fzf.nix { };
-  kak-plumb = pkgs.callPackage ./kak-plumb.nix { };
-  kak-powerline = pkgs.callPackage ./kak-powerline.nix { };
-  kak-prelude = pkgs.callPackage ./kak-prelude.nix { };
-  kak-vertical-selection = pkgs.callPackage ./kak-vertical-selection.nix { };
-  openscad-kak = pkgs.callPackage ./openscad.kak.nix { };
-  quickscope-kak = pkgs.callPackage ./quickscope.kak.nix { };
-}
+  inherit (kakouneUtils.override {}) buildKakounePluginFrom2Nix;
+
+  plugins = callPackage ./generated.nix {
+    inherit buildKakounePluginFrom2Nix overrides;
+  };
+
+  # TL;DR
+  # * Add your plugin to ./kakoune-plugin-names
+  # * run ./update.py
+  #
+  # If additional modifications to the build process are required,
+  # add to ./overrides.nix.
+  overrides = callPackage ./overrides.nix {
+    inherit buildKakounePluginFrom2Nix;
+  };
+
+  aliases = lib.optionalAttrs (config.allowAliases or true) (import ./aliases.nix lib plugins);
+
+in
+
+plugins // aliases
diff --git a/pkgs/applications/editors/kakoune/plugins/deprecated.json b/pkgs/applications/editors/kakoune/plugins/deprecated.json
new file mode 100644
index 00000000000..0967ef424bc
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/deprecated.json
@@ -0,0 +1 @@
+{}
diff --git a/pkgs/applications/editors/kakoune/plugins/generated.nix b/pkgs/applications/editors/kakoune/plugins/generated.nix
new file mode 100644
index 00000000000..4fada31a0f5
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/generated.nix
@@ -0,0 +1,211 @@
+# This file has been generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!
+{ lib, buildKakounePluginFrom2Nix, fetchFromGitHub, overrides ? (self: super: {}) }:
+let
+  packages = ( self:
+{
+  active-window-kak = buildKakounePluginFrom2Nix {
+    pname = "active-window-kak";
+    version = "2020-05-13";
+    src = fetchFromGitHub {
+      owner = "greenfork";
+      repo = "active-window.kak";
+      rev = "988db69cfbb88bd741d089bb43b0be551693e7c1";
+      sha256 = "1fv1cp9q212gamf9z2papl5xcl2w31fpcmbgdzbxcxdl1pvfsqp8";
+    };
+    meta.homepage = "https://github.com/greenfork/active-window.kak/";
+  };
+
+  auto-pairs-kak = buildKakounePluginFrom2Nix {
+    pname = "auto-pairs-kak";
+    version = "2020-10-04";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "auto-pairs.kak";
+      rev = "fd735ec149ef0d9ca5f628a95b1e52858b5afbdc";
+      sha256 = "07795kv9njlnp6mckwv141ny2ns6wyf5r0dfjaxh9ngd105zgif1";
+    };
+    meta.homepage = "https://github.com/alexherbo2/auto-pairs.kak/";
+  };
+
+  connect-kak = buildKakounePluginFrom2Nix {
+    pname = "connect-kak";
+    version = "2021-02-24";
+    src = fetchFromGitHub {
+      owner = "kakounedotcom";
+      repo = "connect.kak";
+      rev = "a536605a208149eed58986bda54f3dda215dfe61";
+      sha256 = "1svw64zk28sn271vjyzvq21zaln13vnx59rxnxah6adq8n5nkr4a";
+    };
+    meta.homepage = "https://github.com/kakounedotcom/connect.kak/";
+  };
+
+  fzf-kak = buildKakounePluginFrom2Nix {
+    pname = "fzf-kak";
+    version = "2021-03-15";
+    src = fetchFromGitHub {
+      owner = "andreyorst";
+      repo = "fzf.kak";
+      rev = "4e6c9a857511fccdbbc835a1c9acb205b6486a4c";
+      sha256 = "0syhhdlsm7vg6hcd2n2acag9g562z49rbb5smh5p2gnplhmp93i0";
+    };
+    meta.homepage = "https://github.com/andreyorst/fzf.kak/";
+  };
+
+  kakoune-buffer-switcher = buildKakounePluginFrom2Nix {
+    pname = "kakoune-buffer-switcher";
+    version = "2020-12-27";
+    src = fetchFromGitHub {
+      owner = "occivink";
+      repo = "kakoune-buffer-switcher";
+      rev = "6a27c45db87a23070c34fab36d2f8d812cd002a6";
+      sha256 = "1rmwy317908v8p54806m721bpzm8sgygb9abri34537ka6r05y5j";
+    };
+    meta.homepage = "https://github.com/occivink/kakoune-buffer-switcher/";
+  };
+
+  kakoune-buffers = buildKakounePluginFrom2Nix {
+    pname = "kakoune-buffers";
+    version = "2020-06-11";
+    src = fetchFromGitHub {
+      owner = "Delapouite";
+      repo = "kakoune-buffers";
+      rev = "67959fbad727ba8470fe8cd6361169560f4fb532";
+      sha256 = "09prhzz4yzf6ryw0npd1gpcfp77681vgawpp1ilfvbf25xgbbz33";
+    };
+    meta.homepage = "https://github.com/Delapouite/kakoune-buffers/";
+  };
+
+  kakoune-easymotion = buildKakounePluginFrom2Nix {
+    pname = "kakoune-easymotion";
+    version = "2020-03-09";
+    src = fetchFromGitHub {
+      owner = "danr";
+      repo = "kakoune-easymotion";
+      rev = "0ca75450023a149efc70e8e383e459b571355c70";
+      sha256 = "15czvl0qj2k767pysr6xk2v31mkhvcbmv76xs2a8yrslchms70b5";
+    };
+    meta.homepage = "https://github.com/danr/kakoune-easymotion/";
+  };
+
+  kakoune-extra-filetypes = buildKakounePluginFrom2Nix {
+    pname = "kakoune-extra-filetypes";
+    version = "2021-01-15";
+    src = fetchFromGitHub {
+      owner = "kakoune-editor";
+      repo = "kakoune-extra-filetypes";
+      rev = "c6f8aaccd8c9cd6b487964c8943416e21fbe7c18";
+      sha256 = "1vkff8xbycfgxv8x09cvc79qcg5fdzn2x77mbmifmkq236khrwrg";
+    };
+    meta.homepage = "https://github.com/kakoune-editor/kakoune-extra-filetypes/";
+  };
+
+  kakoune-rainbow = buildKakounePluginFrom2Nix {
+    pname = "kakoune-rainbow";
+    version = "2020-09-01";
+    src = fetchFromGitHub {
+      owner = "listentolist";
+      repo = "kakoune-rainbow";
+      rev = "d09103e8d268cf4621215bf162a0244c9482be3c";
+      sha256 = "1i3id7xw0j4z1a14mscr68ckpgvcwsjpl86lr864wy7w7qcmblx6";
+    };
+    meta.homepage = "https://github.com/listentolist/kakoune-rainbow/";
+  };
+
+  kakoune-registers = buildKakounePluginFrom2Nix {
+    pname = "kakoune-registers";
+    version = "2020-06-19";
+    src = fetchFromGitHub {
+      owner = "Delapouite";
+      repo = "kakoune-registers";
+      rev = "9531947baecd83c1d4c3bea0adf10f4462f1e120";
+      sha256 = "08v9ndghh7wvr8rsrqm05gksk9ai5vnwvw9gwqasbppb48cv4a8c";
+    };
+    meta.homepage = "https://github.com/Delapouite/kakoune-registers/";
+  };
+
+  kakoune-vertical-selection = buildKakounePluginFrom2Nix {
+    pname = "kakoune-vertical-selection";
+    version = "2019-04-11";
+    src = fetchFromGitHub {
+      owner = "occivink";
+      repo = "kakoune-vertical-selection";
+      rev = "c420f8b867ce47375fac303886e31623669a42b7";
+      sha256 = "13jdyd2j45wvgqvxdzw9zww14ly93bqjb6700zzxj7mkbiff6wsb";
+    };
+    meta.homepage = "https://github.com/occivink/kakoune-vertical-selection/";
+  };
+
+  openscad-kak = buildKakounePluginFrom2Nix {
+    pname = "openscad-kak";
+    version = "2020-12-10";
+    src = fetchFromGitHub {
+      owner = "mayjs";
+      repo = "openscad.kak";
+      rev = "ba51bbdcd96ccf94bb9239bef1481b6f37125849";
+      sha256 = "15dybd6dnnwla6mj8sw83nwd62para1syxzifznl6rz6kp8vqjjj";
+    };
+    meta.homepage = "https://github.com/mayjs/openscad.kak/";
+  };
+
+  powerline-kak = buildKakounePluginFrom2Nix {
+    pname = "powerline-kak";
+    version = "2021-02-25";
+    src = fetchFromGitHub {
+      owner = "andreyorst";
+      repo = "powerline.kak";
+      rev = "64ad98b6c85e63345563671b043960464d51c4b0";
+      sha256 = "09w2sk19qi64hgsyg4gb407vyppnlgk272mqbinz2r3apy6szkl3";
+    };
+    meta.homepage = "https://github.com/andreyorst/powerline.kak/";
+  };
+
+  prelude-kak = buildKakounePluginFrom2Nix {
+    pname = "prelude-kak";
+    version = "2021-02-24";
+    src = fetchFromGitHub {
+      owner = "kakounedotcom";
+      repo = "prelude.kak";
+      rev = "5dbdc020c546032885c1fdb463e366cc89fc15ad";
+      sha256 = "1pncr8azqvl2z9yvzhc68p1s9fld8cvak8yz88zgrp5ypx2cxl8c";
+    };
+    meta.homepage = "https://github.com/kakounedotcom/prelude.kak/";
+  };
+
+  replace-mode-kak = buildKakounePluginFrom2Nix {
+    pname = "replace-mode-kak";
+    version = "2020-10-07";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "replace-mode.kak";
+      rev = "5f4c73cdbaf5aeb964ee35ad4b9081b233af90c0";
+      sha256 = "1cmylx99bm7jwfb4hclb69sdc4n8f29ssyy2byjiw53ni9rnc8q0";
+    };
+    meta.homepage = "https://github.com/alexherbo2/replace-mode.kak/";
+  };
+
+  sleuth-kak = buildKakounePluginFrom2Nix {
+    pname = "sleuth-kak";
+    version = "2020-11-06";
+    src = fetchFromGitHub {
+      owner = "alexherbo2";
+      repo = "sleuth.kak";
+      rev = "911db8bd208ad0d289b8fa15a2ac665ff39bd6bd";
+      sha256 = "0g41c0038fpmihqva71xl4vfbmvsp13i47gp6fnmaikajpynzc51";
+    };
+    meta.homepage = "https://github.com/alexherbo2/sleuth.kak/";
+  };
+
+  tabs-kak = buildKakounePluginFrom2Nix {
+    pname = "tabs-kak";
+    version = "2021-02-16";
+    src = fetchFromGitHub {
+      owner = "enricozb";
+      repo = "tabs.kak";
+      rev = "1aaa8cd89e404cbbd76d44ff8089de0951612fbf";
+      sha256 = "0dfz6j6yxl65jbh4xvpiy2abr2sdjyalynzhl28y7l1gzqv4ni3j";
+    };
+    meta.homepage = "https://github.com/enricozb/tabs.kak/";
+  };
+
+});
+in lib.fix' (lib.extends overrides packages)
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix b/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
deleted file mode 100644
index f34ee6d2999..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-ansi.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  name = "kak-ansi";
-  version = "0.2.1";
-
-  src = fetchFromGitHub {
-    owner = "eraserhd";
-    repo = "kak-ansi";
-    rev = "v${version}";
-    sha256 = "0ddjih8hfyf6s4g7y46p1355kklaw1ydzzh61141i0r45wyb2d0d";
-  };
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/kak/autoload/plugins/
-    cp kak-ansi-filter $out/bin/
-    # Hard-code path of filter and don't try to build when Kakoune boots
-    sed '
-      /^declare-option.* ansi_filter /i\
-declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
-      /^declare-option.* ansi_filter /,/^}/d
-    ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
-  '';
-
-  meta = with lib; {
-    description = "Kakoune support for rendering ANSI code";
-    homepage = "https://github.com/eraserhd/kak-ansi";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix b/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
deleted file mode 100644
index 36842f999a5..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-auto-pairs.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
-  name = "kak-auto-pairs";
-  version = "2020-07-14";
-  src = fetchFromGitHub {
-    owner = "alexherbo2";
-    repo = "auto-pairs.kak";
-    rev = "5b4b3b723c34c8b7f40cee60868204974349bf9f";
-    sha256 = "1wgrv03f1lkzflbbaz8n23glij5rvfxf8pcqysd668mbx1hcrk9i";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/auto-pairs
-  '';
-
-  meta = with lib;
-  { description = "Kakoune extension to enable automatic closing of pairs";
-    homepage = "https://github.com/alexherbo2/auto-pairs.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix b/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
deleted file mode 100644
index 7075ae3ef0a..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-buffers.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-buffers";
-  version = "2019-04-03";
-  src = fetchFromGitHub {
-    owner = "Delapouite";
-    repo = "kakoune-buffers";
-    rev = "3b35b23ac2be661a37c085d34dd04d066450f757";
-    sha256 = "0f3g0v1sjinii3ig9753jjj35v2km4h9bcfw9xgzwz8b10d75bax";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r buffers.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib;
-  { description = "Ease navigation between opened buffers in Kakoune";
-    homepage = "https://github.com/Delapouite/kakoune-buffers";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix b/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
deleted file mode 100644
index b52584b4456..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fzf }:
-
-assert lib.asserts.assertOneOf "fzf" fzf.pname [ "fzf" "skim" ];
-
-stdenv.mkDerivation {
-  name = "kak-fzf";
-  version = "2020-07-26";
-
-  src = fetchFromGitHub {
-    owner = "andreyorst";
-    repo = "fzf.kak";
-    rev = "f23daa698ad95493fbd675ae153e3cac13ef34e9";
-    hash = "sha256-BfXHTJ371ThOizMI/4BAbdJoaltGSP586hz4HqX1KWA=";
-  };
-
-  configurePhase = ''
-    if [[ -x "${fzf}/bin/fzf" ]]; then
-      fzfImpl='${fzf}/bin/fzf'
-    else
-      fzfImpl='${fzf}/bin/sk'
-    fi
-
-    substituteInPlace rc/fzf.kak \
-      --replace \'fzf\' \'"$fzfImpl"\'
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/fzf
-  '';
-
-  meta = with lib;
-  { description = "Kakoune plugin that brings integration with fzf";
-    homepage = "https://github.com/andreyorst/fzf.kak";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix b/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
deleted file mode 100644
index 0c59ca9a08f..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-plumb.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, kakoune-unwrapped, plan9port, ... }:
-
-stdenv.mkDerivation rec {
-  pname = "kak-plumb";
-  version = "0.1.1";
-
-  src = fetchFromGitHub {
-    owner = "eraserhd";
-    repo = "kak-plumb";
-    rev = "v${version}";
-    sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
-  };
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/kak/autoload/plugins/
-    substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
-      --replace '9 plumb' '${plan9port}/bin/9 plumb'
-    substitute edit-client $out/bin/edit-client \
-      --replace '9 9p' '${plan9port}/bin/9 9p' \
-      --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
-    chmod +x $out/bin/edit-client
-  '';
-
-  meta = with lib; {
-    description = "Kakoune integration with the Plan 9 plumber";
-    homepage = "https://github.com/eraserhd/kak-plumb";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix b/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
deleted file mode 100644
index 318ae2958b6..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-powerline.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, git, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-powerline";
-  version = "2020-08-22";
-  src = fetchFromGitHub {
-    owner = "jdugan6240";
-    repo = "powerline.kak";
-    rev = "d641b2cd8024f872bcda23f9256e7aff36da02ae";
-    sha256 = "65948f5ef3ab2f46f6d186ad752665c251d887631d439949decc2654a67958a4";
-  };
-
-  configurePhase = ''
-    substituteInPlace rc/modules/git.kak \
-      --replace \'git\' \'${git}/bin/git\'
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/powerline
-  '';
-
-  meta = with lib;
-  { description = "Kakoune modeline, but with passion";
-    homepage = "https://github.com/jdugan6240/powerline.kak";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix b/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
deleted file mode 100644
index e6f06f4b8e6..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
-  name = "kak-prelude";
-  version = "2020-06-09";
-
-  src = fetchFromGitHub {
-    owner = "alexherbo2";
-    repo = "prelude.kak";
-    rev = "f1e0f4d5cb62a36924e3f8ba6824d6aed8c19d23";
-    sha256 = "1pncr8azqvl2z9yvzhc68p1s9fld8cvak8yz88zgrp5ypx2cxl8c";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r rc $out/share/kak/autoload/plugins/prelude
-  '';
-
-  meta = with lib;
-  { description = "Prelude of shell blocks for Kakoune.";
-    homepage = "https://github.com/alexherbo2/prelude.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ buffet ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix b/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
deleted file mode 100644
index 2ef9d44854f..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/kak-vertical-selection.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchFromGitHub, lib }:
-stdenv.mkDerivation {
-  name = "kak-vertical-selection";
-  version = "2019-04-11";
-  src = fetchFromGitHub {
-    owner = "occivink";
-    repo = "kakoune-vertical-selection";
-    rev = "c420f8b867ce47375fac303886e31623669a42b7";
-    sha256 = "13jdyd2j45wvgqvxdzw9zww14ly93bqjb6700zzxj7mkbiff6wsb";
-  };
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins
-    cp -r vertical-selection.kak $out/share/kak/autoload/plugins
-  '';
-
-  meta = with lib;
-  { description = "Select up and down lines that match the same pattern in Kakoune";
-    homepage = "https://github.com/occivink/kakoune-vertical-selection";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ nrdxp ];
-    platform = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names b/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
new file mode 100644
index 00000000000..b1874146089
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
@@ -0,0 +1,17 @@
+alexherbo2/auto-pairs.kak
+alexherbo2/replace-mode.kak
+alexherbo2/sleuth.kak
+andreyorst/fzf.kak
+andreyorst/powerline.kak
+danr/kakoune-easymotion
+Delapouite/kakoune-buffers
+Delapouite/kakoune-registers
+enricozb/tabs.kak@main
+greenfork/active-window.kak
+kakoune-editor/kakoune-extra-filetypes
+kakounedotcom/connect.kak
+kakounedotcom/prelude.kak
+listentolist/kakoune-rainbow
+mayjs/openscad.kak
+occivink/kakoune-buffer-switcher
+occivink/kakoune-vertical-selection
diff --git a/pkgs/applications/editors/kakoune/plugins/kakoune-utils.nix b/pkgs/applications/editors/kakoune/plugins/kakoune-utils.nix
new file mode 100644
index 00000000000..11a1cc130d6
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/kakoune-utils.nix
@@ -0,0 +1,4 @@
+{ lib, stdenv }:
+{
+  inherit (import ./build-kakoune-plugin.nix { inherit lib stdenv; }) buildKakounePlugin buildKakounePluginFrom2Nix;
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix b/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix
deleted file mode 100644
index 57c1033ebbd..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/openscad.kak.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation {
-  pname = "openscad.kak";
-  version = "unstable-2019-11-08";
-
-  src = fetchFromGitHub {
-    owner = "mayjs";
-    repo = "openscad.kak";
-    rev = "d9143d5e7834e3356b49720664d5647cab9db7cc";
-    sha256 = "0j4dqhrn56z77hdalfdxagwz8h6nwr8s9i4w0bs2644k72lsm2ix";
-  };
-
-  installPhase = ''
-    install -Dm644 rc/openscad.kak -t $out/share/kak/autoload/plugins/
-  '';
-
-  meta = with lib; {
-    description = "Syntax highlighting for OpenSCAD files";
-    homepage = "https://github.com/mayjs/openscad.kak";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/overrides.nix b/pkgs/applications/editors/kakoune/plugins/overrides.nix
new file mode 100644
index 00000000000..2ca24cf661a
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/overrides.nix
@@ -0,0 +1,161 @@
+{ lib, stdenv, fetchFromGitHub, fetchFromGitLab, fetchgit
+, buildKakounePluginFrom2Nix
+, kak-lsp, parinfer-rust, rep
+, fzf, git, guile, kakoune-unwrapped, lua5_3, plan9port
+}:
+
+self: super: {
+  inherit kak-lsp parinfer-rust rep;
+
+  case-kak = buildKakounePluginFrom2Nix {
+    pname = "case-kak";
+    version = "2020-04-06";
+    src = fetchFromGitLab {
+      owner = "FlyingWombat";
+      repo = "case.kak";
+      rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
+      sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
+    };
+    meta.homepage = "https://gitlab.com/FlyingWombat/case.kak";
+  };
+
+  fzf-kak = super.fzf-kak.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      if [[ -x "${fzf}/bin/fzf" ]]; then
+        fzfImpl='${fzf}/bin/fzf'
+      else
+        fzfImpl='${fzf}/bin/sk'
+      fi
+
+      substituteInPlace $out/share/kak/autoload/plugins/fzf-kak/rc/fzf.kak \
+        --replace \'fzf\' \'"$fzfImpl"\'
+    '';
+  });
+
+  kak-ansi = stdenv.mkDerivation rec {
+    pname = "kak-ansi";
+    version = "0.2.3";
+
+    src = fetchFromGitHub {
+      owner = "eraserhd";
+      repo = "kak-ansi";
+      rev = "v${version}";
+      sha256 = "pO7M3MjKMJQew9O20KALEvsXLuCKPYGGTtuN/q/kj8Q=";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin $out/share/kak/autoload/plugins/
+      cp kak-ansi-filter $out/bin/
+      # Hard-code path of filter and don't try to build when Kakoune boots
+      sed '
+        /^declare-option.* ansi_filter /i\
+declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
+        /^declare-option.* ansi_filter /,/^}/d
+      ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
+    '';
+
+    meta = with lib; {
+      description = "Kakoune support for rendering ANSI code";
+      homepage = "https://github.com/eraserhd/kak-ansi";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+
+  kak-plumb = stdenv.mkDerivation rec {
+    pname = "kak-plumb";
+    version = "0.1.1";
+
+    src = fetchFromGitHub {
+      owner = "eraserhd";
+      repo = "kak-plumb";
+      rev = "v${version}";
+      sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin $out/share/kak/autoload/plugins/
+      substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
+        --replace '9 plumb' '${plan9port}/bin/9 plumb'
+      substitute edit-client $out/bin/edit-client \
+        --replace '9 9p' '${plan9port}/bin/9 9p' \
+        --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
+      chmod +x $out/bin/edit-client
+    '';
+
+    meta = with lib; {
+      description = "Kakoune integration with the Plan 9 plumber";
+      homepage = "https://github.com/eraserhd/kak-plumb";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+
+  kakoune-rainbow = super.kakoune-rainbow.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      mkdir -p $out/bin
+      mv $out/share/kak/autoload/plugins/kakoune-rainbow/bin/kak-rainbow.scm $out/bin
+      substituteInPlace $out/bin/kak-rainbow.scm \
+        --replace '/usr/bin/env -S guile' '${guile}/bin/guile'
+      substituteInPlace $out/share/kak/autoload/plugins/kakoune-rainbow/rainbow.kak \
+        --replace '%sh{dirname "$kak_source"}' "'$out'"
+    '';
+  });
+
+  kakoune-state-save = buildKakounePluginFrom2Nix {
+    pname = "kakoune-state-save";
+    version = "2020-02-09";
+
+    src = fetchFromGitLab {
+      owner = "Screwtapello";
+      repo = "kakoune-state-save";
+      rev = "ab7c0c765326a4a80af78857469ee8c80814c52a";
+      sha256 = "AAOCG0TY3G188NnkkwMCSbkkNe487F4gwiFWwG9Yo+A=";
+    };
+
+    meta = with lib; {
+      description = "Help Kakoune save and restore state between sessions";
+      homepage = "https://gitlab.com/Screwtapello/kakoune-state-save";
+      license = licenses.mit;
+      maintainers = with maintainers; [ Flakebi ];
+      platforms = platforms.all;
+    };
+  };
+
+  powerline-kak = super.powerline-kak.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      substituteInPlace $out/share/kak/autoload/plugins/powerline-kak/rc/modules/git.kak \
+        --replace ' git ' ' ${git}/bin/git '
+    '';
+  });
+
+  quickscope-kak = buildKakounePluginFrom2Nix rec {
+    pname = "quickscope-kak";
+    version = "1.0.0";
+
+    src = fetchgit {
+      url = "https://git.sr.ht/~voroskoi/quickscope.kak";
+      rev = "v${version}";
+      sha256 = "0y1g3zpa2ql8l9rl5i2w84bka8a09kig9nq9zdchaff5pw660mcx";
+    };
+
+    buildInputs = [ lua5_3 ];
+
+    installPhase = ''
+      mkdir -p $out/share/kak/autoload/plugins/
+      cp quickscope.* $out/share/kak/autoload/plugins/
+      # substituteInPlace does not like the pipe
+      sed -e 's,[|] *lua,|${lua5_3}/bin/lua,' quickscope.kak >$out/share/kak/autoload/plugins/quickscope.kak
+    '';
+
+    meta = with lib; {
+      description = "Highlight f and t jump positions";
+      homepage = "https://sr.ht/~voroskoi/quickscope.kak/";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+}
diff --git a/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix b/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix
deleted file mode 100644
index 8e60e17e792..00000000000
--- a/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchgit, lua5_3 }:
-
-stdenv.mkDerivation rec {
-  pname = "quickscope-kak";
-  version = "1.0.0";
-
-  src = fetchgit {
-    url = "https://git.sr.ht/~voroskoi/quickscope.kak";
-    rev = "v${version}";
-    sha256 = "0y1g3zpa2ql8l9rl5i2w84bka8a09kig9nq9zdchaff5pw660mcx";
-  };
-
-  buildInputs = [ lua5_3 ];
-
-  installPhase = ''
-    mkdir -p $out/share/kak/autoload/plugins/
-    cp quickscope.* $out/share/kak/autoload/plugins/
-    # substituteInPlace does not like the pipe
-    sed -e 's,[|] *lua,|${lua5_3}/bin/lua,' quickscope.kak >$out/share/kak/autoload/plugins/quickscope.kak
-  '';
-
-  meta = with lib; {
-    description = "Highlight f and t jump positions";
-    homepage = "https://sr.ht/~voroskoi/quickscope.kak/";
-    license = licenses.unlicense;
-    maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/kakoune/plugins/update.py b/pkgs/applications/editors/kakoune/plugins/update.py
new file mode 100755
index 00000000000..b6a4bfe4f41
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/update.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -p nix-prefetch-git -p python3 -p python3Packages.GitPython nix -i python3
+
+# format:
+# $ nix run nixpkgs.python3Packages.black -c black update.py
+# type-check:
+# $ nix run nixpkgs.python3Packages.mypy -c mypy update.py
+# linted:
+# $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265,E402 update.py
+
+import inspect
+import os
+import sys
+from typing import List, Tuple
+from pathlib import Path
+
+# Import plugin update library from maintainers/scripts/pluginupdate.py
+ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))
+sys.path.insert(
+    0, os.path.join(ROOT.parent.parent.parent.parent.parent, "maintainers", "scripts")
+)
+import pluginupdate
+
+GET_PLUGINS = f"""(with import <localpkgs> {{}};
+let
+  inherit (kakouneUtils.override {{}}) buildKakounePluginFrom2Nix;
+  generated = callPackage {ROOT}/generated.nix {{
+    inherit buildKakounePluginFrom2Nix;
+  }};
+  hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath ["src" "outputHash"] value;
+  getChecksum = name: value:
+    if hasChecksum value then {{
+      submodules = value.src.fetchSubmodules or false;
+      sha256 = value.src.outputHash;
+      rev = value.src.rev;
+    }} else null;
+  checksums = lib.mapAttrs getChecksum generated;
+in lib.filterAttrs (n: v: v != null) checksums)"""
+
+HEADER = "# This file has been generated by ./pkgs/applications/editors/kakoune/plugins/update.py. Do not edit!"
+
+
+def generate_nix(plugins: List[Tuple[str, str, pluginupdate.Plugin]], outfile: str):
+    sorted_plugins = sorted(plugins, key=lambda v: v[2].name.lower())
+
+    with open(outfile, "w+") as f:
+        f.write(HEADER)
+        f.write(
+            """
+{ lib, buildKakounePluginFrom2Nix, fetchFromGitHub, overrides ? (self: super: {}) }:
+let
+  packages = ( self:
+{"""
+        )
+        for owner, repo, plugin in sorted_plugins:
+            if plugin.has_submodules:
+                submodule_attr = "\n      fetchSubmodules = true;"
+            else:
+                submodule_attr = ""
+
+            f.write(
+                f"""
+  {plugin.normalized_name} = buildKakounePluginFrom2Nix {{
+    pname = "{plugin.normalized_name}";
+    version = "{plugin.version}";
+    src = fetchFromGitHub {{
+      owner = "{owner}";
+      repo = "{repo}";
+      rev = "{plugin.commit}";
+      sha256 = "{plugin.sha256}";{submodule_attr}
+    }};
+    meta.homepage = "https://github.com/{owner}/{repo}/";
+  }};
+"""
+            )
+        f.write(
+            """
+});
+in lib.fix' (lib.extends overrides packages)
+"""
+        )
+    print(f"updated {outfile}")
+
+
+def main():
+    editor = pluginupdate.Editor("kakoune", ROOT, GET_PLUGINS, generate_nix)
+    pluginupdate.update_plugins(editor)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/pkgs/applications/editors/kakoune/wrapper.nix b/pkgs/applications/editors/kakoune/wrapper.nix
index 7ac56d9cb1e..451507885ce 100644
--- a/pkgs/applications/editors/kakoune/wrapper.nix
+++ b/pkgs/applications/editors/kakoune/wrapper.nix
@@ -9,7 +9,7 @@ in
   symlinkJoin {
     name = "kakoune-${kakoune.version}";
 
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
 
     paths = [ kakoune ] ++ requestedPlugins;
 
diff --git a/pkgs/applications/editors/kdevelop5/kdev-php.nix b/pkgs/applications/editors/kdevelop5/kdev-php.nix
index 23c8f0698cf..44b4fd7bc19 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-php.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-php.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [ kdevelop-pg-qt threadweaver ktexteditor kdevelop-unwrapped ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     maintainers = [ maintainers.aanderse ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/editors/kdevelop5/kdev-python.nix b/pkgs/applications/editors/kdevelop5/kdev-python.nix
index 041c25f1728..0567ee39d7d 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-python.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-python.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [ threadweaver ktexteditor kdevelop-unwrapped ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     maintainers = [ maintainers.aanderse ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix b/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
index cb1265735f9..e1478ef6a03 100644
--- a/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
+++ b/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qtbase ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     maintainers = [ maintainers.ambrop72 ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/editors/kodestudio/default.nix b/pkgs/applications/editors/kodestudio/default.nix
index e0704cdbc85..aa7b7b19448 100644
--- a/pkgs/applications/editors/kodestudio/default.nix
+++ b/pkgs/applications/editors/kodestudio/default.nix
@@ -29,7 +29,8 @@ in
         inherit sha256;
     };
 
-    buildInputs = [ makeWrapper libXScrnSaver ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ libXScrnSaver ];
 
     desktopItem = makeDesktopItem {
       name = "kodestudio";
diff --git a/pkgs/applications/editors/manuskript/default.nix b/pkgs/applications/editors/manuskript/default.nix
index 49dafe8fc1a..3d3fa196117 100644
--- a/pkgs/applications/editors/manuskript/default.nix
+++ b/pkgs/applications/editors/manuskript/default.nix
@@ -57,6 +57,6 @@ python3Packages.buildPythonApplication rec {
     '';
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.steveej ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/applications/editors/monodevelop/default.nix b/pkgs/applications/editors/monodevelop/default.nix
index e5fde3e501e..12b66370d50 100644
--- a/pkgs/applications/editors/monodevelop/default.nix
+++ b/pkgs/applications/editors/monodevelop/default.nix
@@ -34,10 +34,10 @@ stdenv.mkDerivation rec {
   patchFlags = [ "-p2" ];
   patches = [ ./git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch ];
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
     autoconf automake shared-mime-info intltool
-    mono gtk-sharp-2_0 gnome-sharp unzip
+    mono gtk-sharp-2_0 gnome-sharp
     dotnetPackages.NUnit
     dotnetPackages.NUnitRunners
     dotnetPackages.Nuget
diff --git a/pkgs/applications/editors/music/tuxguitar/default.nix b/pkgs/applications/editors/music/tuxguitar/default.nix
index 63be87ee86c..90879b352e1 100644
--- a/pkgs/applications/editors/music/tuxguitar/default.nix
+++ b/pkgs/applications/editors/music/tuxguitar/default.nix
@@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
     sha256 = metadata.sha256;
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index cb53eb9d9d4..b5525285566 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.1";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "0jkyd3yzcidnvnj1k9bmplzlbd303x6xxblpp5np7zs1kfzq22rr";
+    sha256 = "02cbxqizbdlfwnz8dpq4fbzmdi4yk6fv0cragvpa0748w1cp03bn";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/neovim/gnvim/default.nix b/pkgs/applications/editors/neovim/gnvim/default.nix
index 208339c2e38..8e86683f9bf 100644
--- a/pkgs/applications/editors/neovim/gnvim/default.nix
+++ b/pkgs/applications/editors/neovim/gnvim/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   # The default build script tries to get the version through Git, so we
   # replace it
-  prePatch = ''
+  postPatch = ''
     cat << EOF > build.rs
     use std::env;
     use std::fs::File;
@@ -31,13 +31,13 @@ rustPlatform.buildRustPackage rec {
         f.write_all(b"const VERSION: &str = \"${version}\";").unwrap();
     }
     EOF
-  '';
 
-  buildPhase = ''
-    make build
+    # Install the binary ourselves, since the Makefile doesn't have the path
+    # containing the target architecture
+    sed -e "/target\/release/d" -i Makefile
   '';
 
-  installPhase = ''
+  postInstall = ''
     make install PREFIX="${placeholder "out"}"
   '';
 
diff --git a/pkgs/applications/editors/neovim/neovim-qt.nix b/pkgs/applications/editors/neovim/neovim-qt.nix
new file mode 100644
index 00000000000..d925ddd2a52
--- /dev/null
+++ b/pkgs/applications/editors/neovim/neovim-qt.nix
@@ -0,0 +1,43 @@
+{ lib, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
+, msgpack, neovim, pythonPackages, qtbase }:
+
+mkDerivation rec {
+  pname = "neovim-qt-unwrapped";
+  version = "0.2.16.1";
+
+  src = fetchFromGitHub {
+    owner  = "equalsraf";
+    repo   = "neovim-qt";
+    rev    = "v${version}";
+    sha256 = "0x5brrim3f21bzdmh6wyrhrislwpx1248wbx56csvic6v78hzqny";
+  };
+
+  cmakeFlags = [
+    "-DUSE_SYSTEM_MSGPACK=1"
+    "-DENABLE_TESTS=0"  # tests fail because xcb platform plugin is not found
+  ];
+
+  buildInputs = [
+    neovim.unwrapped # only used to generate help tags at build time
+    qtbase
+  ] ++ (with pythonPackages; [
+    jinja2 python msgpack
+  ]);
+
+  nativeBuildInputs = [ cmake doxygen ];
+
+  preCheck = ''
+    # The GUI tests require a running X server, disable them
+    sed -i ../test/CMakeLists.txt -e '/^add_xtest_gui/d'
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Neovim client library and GUI, in Qt5";
+    homepage = "https://github.com/equalsraf/neovim-qt";
+    license     = licenses.isc;
+    maintainers = with maintainers; [ peterhoeg ];
+    inherit (neovim.meta) platforms;
+  };
+}
diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix
index 8eaa9204c43..5210b6b67c8 100644
--- a/pkgs/applications/editors/neovim/qt.nix
+++ b/pkgs/applications/editors/neovim/qt.nix
@@ -1,79 +1,38 @@
 { lib, stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
-, msgpack, neovim, pythonPackages, qtbase }:
+, msgpack, neovim, pythonPackages, qtbase, neovim-qt-unwrapped }:
 
 let
-  unwrapped = mkDerivation rec {
-    pname = "neovim-qt-unwrapped";
-    version = "0.2.16.1";
-
-    src = fetchFromGitHub {
-      owner  = "equalsraf";
-      repo   = "neovim-qt";
-      rev    = "v${version}";
-      sha256 = "0x5brrim3f21bzdmh6wyrhrislwpx1248wbx56csvic6v78hzqny";
-    };
-
-    cmakeFlags = [
-      "-DUSE_SYSTEM_MSGPACK=1"
-      "-DENABLE_TESTS=0"  # tests fail because xcb platform plugin is not found
-    ];
-
-    buildInputs = [
-      neovim.unwrapped # only used to generate help tags at build time
-      qtbase
-    ] ++ (with pythonPackages; [
-      jinja2 python msgpack
-    ]);
-
-    nativeBuildInputs = [ cmake doxygen ];
-
-    preCheck = ''
-      # The GUI tests require a running X server, disable them
-      sed -i ../test/CMakeLists.txt \
-        -e '/^add_xtest_gui/d'
-    '';
-
-    doCheck = true;
-
-    meta = with lib; {
-      description = "Neovim client library and GUI, in Qt5";
-      homepage = "https://github.com/equalsraf/neovim-qt";
-      license     = licenses.isc;
-      maintainers = with maintainers; [ peterhoeg ];
-      inherit (neovim.meta) platforms;
-      inherit version;
-    };
-  };
+  unwrapped = neovim-qt-unwrapped;
 in
-  stdenv.mkDerivation {
-    pname = "neovim-qt";
-    version = unwrapped.version;
-    buildCommand = if stdenv.isDarwin then ''
-      mkdir -p $out/Applications
-      cp -r ${unwrapped}/bin/nvim-qt.app $out/Applications
-
-      chmod -R a+w "$out/Applications/nvim-qt.app/Contents/MacOS"
-      wrapProgram "$out/Applications/nvim-qt.app/Contents/MacOS/nvim-qt" \
-        --prefix PATH : "${neovim}/bin"
-    '' else ''
-      makeWrapper '${unwrapped}/bin/nvim-qt' "$out/bin/nvim-qt" \
-        --prefix PATH : "${neovim}/bin"
-
-      # link .desktop file
-      mkdir -p "$out/share/pixmaps"
-      ln -s '${unwrapped}/share/applications' "$out/share/applications"
-      ln -s '${unwrapped}/share/pixmaps/nvim-qt.png' "$out/share/pixmaps/nvim-qt.png"
-    '';
-
-    preferLocalBuild = true;
-
-    nativeBuildInputs = [
-      makeWrapper
-    ];
-
-    passthru = {
-      inherit unwrapped;
-    };
+stdenv.mkDerivation {
+  pname = "neovim-qt";
+  version = unwrapped.version;
+  buildCommand = if stdenv.isDarwin then ''
+    mkdir -p $out/Applications
+    cp -r ${unwrapped}/bin/nvim-qt.app $out/Applications
+
+    chmod -R a+w $out/Applications/nvim-qt.app/Contents/MacOS
+    wrapProgram $out/Applications/nvim-qt.app/Contents/MacOS/nvim-qt \
+      --prefix PATH : ${neovim}/bin
+  '' else ''
+    makeWrapper ${unwrapped}/bin/nvim-qt $out/bin/nvim-qt \
+      --prefix PATH : ${neovim}/bin
+
+    # link .desktop file
+    mkdir -p $out/share/pixmaps
+    ln -s ${unwrapped}/share/applications $out/share/applications
+    ln -s ${unwrapped}/share/pixmaps/nvim-qt.png $out/share/pixmaps/nvim-qt.png
+  '';
+
+  preferLocalBuild = true;
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  passthru = {
+    inherit unwrapped;
+  };
 
-    inherit (unwrapped) meta;
-  }
+  inherit (unwrapped) meta;
+}
diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index 5c6c6c1a8d5..41ff62a619f 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -106,7 +106,7 @@ let
 
     preferLocalBuild = true;
 
-    buildInputs = [makeWrapper];
+    nativeBuildInputs = [ makeWrapper ];
     passthru = { unwrapped = neovim; };
 
     meta = neovim.meta // {
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index 9206b296b9a..83c5bb6f930 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "12.2";
+  version = "12.3";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    sha512 = "b25cda9830e8fe1d05687b08cc5fa9bcac7e8e6d12776998a4da7e483b3be0d04493345e56be7e6198fa8f86428d57d4459bfa7372c2e3f918f4a1101d0a31a7";
+    sha512 = "2fy696qrfbdkzmq4cwd6l7v6rsc0bf9akh61w3azc544bq3vxl3v6s31hvg3ba0nsh0jv3nbdrk6jp1l4hwgcg9zg7kf2012a1vv2nk";
   };
 
   buildCommand = ''
@@ -56,7 +56,8 @@ stdenv.mkDerivation {
     ln -s ${desktopItem}/share/applications/* $out/share/applications
   '';
 
-  buildInputs = [ makeWrapper perl python unzip libicns imagemagick ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ perl python libicns imagemagick ];
 
   meta = {
     description = "An integrated development environment for Java, C, C++ and PHP";
diff --git a/pkgs/applications/editors/poke/default.nix b/pkgs/applications/editors/poke/default.nix
new file mode 100644
index 00000000000..47b9677e314
--- /dev/null
+++ b/pkgs/applications/editors/poke/default.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, fetchurl
+, gettext
+, help2man
+, pkg-config
+, texinfo
+, makeWrapper
+, boehmgc
+, readline
+, guiSupport ? false, tcl, tcllib, tk
+, miSupport ? true, json_c
+, nbdSupport ? !stdenv.isDarwin, libnbd
+, textStylingSupport ? true
+, dejagnu
+}:
+
+let
+  isCross = stdenv.hostPlatform != stdenv.buildPlatform;
+in stdenv.mkDerivation rec {
+  pname = "poke";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-zWjfY8dBtBYLEsvqAvJ8RxWCeUZuNEOTDSU1pFLAatY=";
+  };
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    gettext
+    help2man
+    pkg-config
+    texinfo
+  ] ++ lib.optional guiSupport makeWrapper;
+
+  buildInputs = [ boehmgc readline ]
+  ++ lib.optional guiSupport tk
+  ++ lib.optional miSupport json_c
+  ++ lib.optional nbdSupport libnbd
+  ++ lib.optional textStylingSupport gettext
+  ++ lib.optional (!isCross) dejagnu;
+
+  configureFlags = lib.optionals guiSupport [
+    "--with-tcl=${tcl}/lib"
+    "--with-tk=${tk}/lib"
+    "--with-tkinclude=${tk.dev}/include"
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = !isCross;
+  checkInputs = lib.optionals (!isCross) [ dejagnu ];
+
+  postFixup = lib.optionalString guiSupport ''
+    wrapProgram "$out/bin/poke-gui" \
+      --prefix TCLLIBPATH ' ' ${tcllib}/lib/tcllib${tcllib.version}
+  '';
+
+  meta = with lib; {
+    description = "Interactive, extensible editor for binary data";
+    homepage = "http://www.jemarch.net/poke";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres metadark ];
+    platforms = platforms.unix;
+    changelog = "https://git.savannah.gnu.org/cgit/poke.git/plain/ChangeLog?h=releases/poke-${version}";
+  };
+}
+
+# TODO: Enable guiSupport by default once it's more than just a stub
diff --git a/pkgs/applications/editors/qxmledit/default.nix b/pkgs/applications/editors/qxmledit/default.nix
index fa4e73a3768..d2aea1344da 100644
--- a/pkgs/applications/editors/qxmledit/default.nix
+++ b/pkgs/applications/editors/qxmledit/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
     export QXMLEDIT_INST_DOC_DIR="$doc"
   '';
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Simple XML editor based on qt libraries" ;
     homepage = "https://sourceforge.net/projects/qxmledit";
diff --git a/pkgs/applications/editors/retext/default.nix b/pkgs/applications/editors/retext/default.nix
index 19cc7bc2970..533e353a43e 100644
--- a/pkgs/applications/editors/retext/default.nix
+++ b/pkgs/applications/editors/retext/default.nix
@@ -33,6 +33,10 @@ in python3.pkgs.buildPythonApplication {
         paths = map (path: "${path}/lib/aspell") enchantAspellDicts;
       }}"
     )
+
+    substituteInPlace $out/share/applications/me.mitya57.ReText.desktop \
+      --replace "Exec=ReText-${version}.data/scripts/retext %F" "Exec=$out/bin/retext %F" \
+      --replace "Icon=ReText-${version}.data/data/share/retext/icons/retext.svg" "Icon=$out/share/retext/icons/retext.svg"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/editors/sigil/default.nix b/pkgs/applications/editors/sigil/default.nix
index b34441d100c..d3d6e97f3fe 100644
--- a/pkgs/applications/editors/sigil/default.nix
+++ b/pkgs/applications/editors/sigil/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "sigil";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     repo = "Sigil";
     owner = "Sigil-Ebook";
     rev = version;
-    sha256 = "1hk8kmhvkwfimbxzhwbnb8qdpf4n36cdzl9wfvi574i9pps36hnz";
+    sha256 = "sha256-BqNaIsUJE0KmFcmTjJERbclzaRe1dMjareWxUye2se0=";
   };
 
   pythonPath = with python3Packages; [ lxml ];
diff --git a/pkgs/applications/editors/spacevim/default.nix b/pkgs/applications/editors/spacevim/default.nix
index c32130986b8..661bec463a7 100644
--- a/pkgs/applications/editors/spacevim/default.nix
+++ b/pkgs/applications/editors/spacevim/default.nix
@@ -1,5 +1,5 @@
 { ripgrep, git, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub
-, lib, stdenv, formats, spacevim_config ? import ./init.nix }:
+, lib, stdenv, formats, runCommand, spacevim_config ? import ./init.nix }:
 
 let
   format = formats.toml {};
@@ -10,28 +10,37 @@ let
     # ~/.cache/vimfiles/repos
     vimrcConfig.packages.myVimPackage = with vimPlugins; { start = [ ]; };
   };
-  spacevimdir = format.generate "init.toml" spacevim_config;
+  spacevimdir = runCommand "SpaceVim.d" { } ''
+    mkdir -p $out
+    cp ${format.generate "init.toml" spacevim_config} $out/init.toml
+  '';
 in stdenv.mkDerivation rec {
   pname = "spacevim";
-  version = "1.5.0";
+  version = "1.6.0";
   src = fetchFromGitHub {
     owner = "SpaceVim";
     repo = "SpaceVim";
     rev = "v${version}";
-    sha256 = "1xw4l262x7wzs1m65bddwqf3qx4254ykddsw3c3p844pb3mzqhh7";
+    sha256 = "sha256-QQdtjEdbuzmf0Rw+u2ZltLihnJt8LqkfTrLDWLAnCLE=";
   };
 
   nativeBuildInputs = [ makeWrapper vim-customized];
   buildInputs = [ vim-customized ];
 
   buildPhase = ''
+    runHook preBuild
     # generate the helptags
     vim -u NONE -c "helptags $(pwd)/doc" -c q
+    runHook postBuild
   '';
 
-  patches = [ ./helptags.patch ];
+  patches = [
+    # Don't generate helptags at runtime into read-only $SPACEVIMDIR
+    ./helptags.patch
+  ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
 
     cp -r $(pwd) $out/SpaceVim
@@ -40,6 +49,7 @@ in stdenv.mkDerivation rec {
     makeWrapper "${vim-customized}/bin/vim" "$out/bin/spacevim" \
         --add-flags "-u $out/SpaceVim/vimrc" --set SPACEVIMDIR "${spacevimdir}/" \
         --prefix PATH : ${lib.makeBinPath [ fzf git ripgrep]}
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/editors/spacevim/helptags.patch b/pkgs/applications/editors/spacevim/helptags.patch
index e8b31c57419..bc0f9140c7b 100644
--- a/pkgs/applications/editors/spacevim/helptags.patch
+++ b/pkgs/applications/editors/spacevim/helptags.patch
@@ -2,7 +2,7 @@ diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim
 index 16688680..fcafd6f7 100644
 --- a/autoload/SpaceVim.vim
 +++ b/autoload/SpaceVim.vim
-@@ -1255,13 +1255,6 @@ function! SpaceVim#end() abort
+@@ -1355,13 +1355,6 @@ function! SpaceVim#end() abort
      let &helplang = 'jp'
    endif
    ""
diff --git a/pkgs/applications/editors/standardnotes/default.nix b/pkgs/applications/editors/standardnotes/default.nix
index e66febbf7fc..0d50c24d397 100644
--- a/pkgs/applications/editors/standardnotes/default.nix
+++ b/pkgs/applications/editors/standardnotes/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, appimageTools, autoPatchelfHook, desktop-file-utils
-, fetchurl, runtimeShell, libsecret, gtk3, gsettings-desktop-schemas }:
+, fetchurl, libsecret, gtk3, gsettings-desktop-schemas }:
 
 let
   version = "3.5.18";
diff --git a/pkgs/applications/editors/supertux-editor/default.nix b/pkgs/applications/editors/supertux-editor/default.nix
index e474ff5f19b..6e3580a563c 100644
--- a/pkgs/applications/editors/supertux-editor/default.nix
+++ b/pkgs/applications/editors/supertux-editor/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
     sha256 = "08y5haclgxvcii3hpdvn1ah8qd0f3n8xgxxs8zryj02b8n7cz3vx";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [mono gtk-sharp-2_0 makeWrapper gnome2.libglade gtk2 ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [mono gtk-sharp-2_0 gnome2.libglade gtk2 ];
 
   installPhase = ''
     mkdir -p $out/bin $out/lib/supertux-editor
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 77af6b67939..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.0.4";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "03q1mdz47crflkvpc364ky52farad7517jhszb1fg1s3c2bnndn0";
+    sha256 = "sha256-MFCQwhdF+WCTqDt4q5qw431y/zqEy9vHudcUYb4BYNQ=";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/pkgs/applications/editors/textadept/10/default.nix b/pkgs/applications/editors/textadept/10/default.nix
index 9d86bdc4c5b..fe22f3424f2 100644
--- a/pkgs/applications/editors/textadept/10/default.nix
+++ b/pkgs/applications/editors/textadept/10/default.nix
@@ -4,9 +4,9 @@ stdenv.mkDerivation rec {
   version = "10.8";
   pname = "textadept";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
-    gtk2 ncurses glib unzip zip
+    gtk2 ncurses glib zip
   ];
 
   src = fetchhg {
diff --git a/pkgs/applications/editors/textadept/11/default.nix b/pkgs/applications/editors/textadept/11/default.nix
index a0037ca6c2b..3050599ba58 100644
--- a/pkgs/applications/editors/textadept/11/default.nix
+++ b/pkgs/applications/editors/textadept/11/default.nix
@@ -1,20 +1,20 @@
-{ lib, stdenv, fetchhg, fetchFromGitHub, fetchurl, gtk2, glib, pkg-config, unzip, ncurses, zip }:
+{ lib, stdenv, fetchFromGitHub, fetchurl, gtk2, glib, pkg-config, unzip, ncurses, zip }:
 
 stdenv.mkDerivation rec {
-  version = "11.0_beta";
+  version = "11.1";
   pname = "textadept11";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip zip ];
   buildInputs = [
-    gtk2 ncurses glib unzip zip
+    gtk2 ncurses glib
   ];
 
   src = fetchFromGitHub {
     name = "textadept11";
     owner = "orbitalquark";
     repo = "textadept";
-    rev = "8da5f6b4a13f14b9dd3cb9dc23ad4f7bf41e91c1";
-    sha256 = "0v11v3x8g6v696m3l1bm52zy2g9xzz7hlmn912sn30nhcag3raxs";
+    rev = "1df99d561dd2055a01efa9183bb9e1b2ad43babc";
+    sha256 = "0g4bh5dp391vi32aa796vszpbxyl2dm5231v9dwc8l9v0b2786qn";
   };
 
   preConfigure =
@@ -40,7 +40,9 @@ stdenv.mkDerivation rec {
   '';
 
   makeFlags = [
-    "PREFIX=$(out) WGET=true PIXMAPS_DIR=$(out)/share/pixmaps"
+    "PREFIX=$(out)"
+    "WGET=true"
+    "PIXMAPS_DIR=$(out)/share/pixmaps"
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/editors/textadept/11/deps.nix b/pkgs/applications/editors/textadept/11/deps.nix
index 2ab72574bbd..b9c7e94ee3b 100644
--- a/pkgs/applications/editors/textadept/11/deps.nix
+++ b/pkgs/applications/editors/textadept/11/deps.nix
@@ -3,13 +3,13 @@
       url = "https://www.scintilla.org/scintilla445.tgz";
       sha256 = "1v1kyxj7rv5rxadbg8gl8wh1jafpy7zj0wr6dcyxq9209dl6h8ag";
     };
-    "9e2ffa159299899c9345aea15c17ba1941953871.zip" = {
-      url = "https://github.com/orbitalquark/scinterm/archive/9e2ffa159299899c9345aea15c17ba1941953871.zip";
-      sha256 = "12h7prgp689w45p4scxd8vvsyw8fkv27g6gvgis55xr44daa6122";
+    "6a774158d8a3c7bc7ea120bc01cdb016fa351a7e.zip" = {
+      url = "https://github.com/orbitalquark/scinterm/archive/6a774158d8a3c7bc7ea120bc01cdb016fa351a7e.zip";
+      sha256 = "083xvpw14dxbyrv4i48q76bmr44hs637qv363n6ibfs8xv1kq7iv";
     };
-    "scintillua_4.4.5-1.zip" = {
-      url = "https://github.com/orbitalquark/scintillua/archive/scintillua_4.4.5-1.zip";
-      sha256 = "095wpbid2kvr5xgkhd5bd4sd7ljgk6gd9palrjkmdcwfgsf1lp04";
+    "scintillua_4.4.5-2.zip" = {
+      url = "https://github.com/orbitalquark/scintillua/archive/scintillua_4.4.5-2.zip";
+      sha256 = "1061y2gg78zb2mml8msyarxgdwbf7g8g2v08fr1qqsqi2pbb7mfc";
     };
     "lua-5.3.5.tar.gz" = {
       url = "http://www.lua.org/ftp/lua-5.3.5.tar.gz";
@@ -19,17 +19,17 @@
       url = "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.0.2.tar.gz";
       sha256 = "1zjzl7acvcdavmcg5l7wi12jd4rh95q9pl5aiww7hv0v0mv6bmj8";
     };
-    "v1_7_0_2.zip" = {
-      url = "https://github.com/keplerproject/luafilesystem/archive/v1_7_0_2.zip";
-      sha256 = "0y44ymc7higz5dd2w3c6ib7mwmpr6yvszcl7lm12nf8x3y4snx4i";
+    "v1_8_0.zip" = {
+      url = "https://github.com/keplerproject/luafilesystem/archive/v1_8_0.zip";
+      sha256 = "12p1p5qpdql44y3cc035h8rs8rgdqp6nrnrixlp5544agb5bx9p3";
     };
     "64587546482a1a6324706d75c80b77d2f87118a4.zip" = {
       url = "https://github.com/orbitalquark/gtdialog/archive/64587546482a1a6324706d75c80b77d2f87118a4.zip";
       sha256 = "10mglbnn8r1cakqn9h285pwfnh7kfa98v7j8qh83c24n66blyfh9";
     };
-    "cdk-5.0-20150928.tgz" = {
-      url = "http://invisible-mirror.net/archives/cdk/cdk-5.0-20150928.tgz";
-      sha256 = "0j74l874y33i26y5kjg3pf1vswyjif8k93pqhi0iqykpbxfsg382";
+    "cdk-5.0-20200923.tgz" = {
+      url = "http://invisible-mirror.net/archives/cdk/cdk-5.0-20200923.tgz";
+      sha256 = "1vdakz119a13d7p7w53hk56fdmbkhv6y9xvdapcfnbnbh3l5szq0";
     };
     "libtermkey-0.20.tar.gz" = {
       url = "http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.20.tar.gz";
diff --git a/pkgs/applications/editors/texworks/default.nix b/pkgs/applications/editors/texworks/default.nix
index 87990b6eae8..9db68f71ea8 100644
--- a/pkgs/applications/editors/texworks/default.nix
+++ b/pkgs/applications/editors/texworks/default.nix
@@ -1,27 +1,19 @@
-{ mkDerivation, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
 , qtscript, poppler, hunspell
 , withLua ? true, lua
 , withPython ? true, python3 }:
 
 mkDerivation rec {
   pname = "texworks";
-  version = "0.6.5";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "TeXworks";
     repo = "texworks";
     rev = "release-${version}";
-    sha256 = "1lw1p4iyzxypvjhnav11g6rwf6gx7kyzwy2iprvv8zzpqcdkjp2z";
+    sha256 = "0l8jl1b8lpas7yz6m0qc2nikyn54lx2ljzmjjz3zgxgd6l502006";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-compilation-with-qt-5.15.patch";
-      url = "https://github.com/TeXworks/texworks/commit/a5352a3a94e3685125650b65e6197de060326cc2.patch";
-      sha256 = "0pf7h1m11x0s039bxknm7rxdp9b4g8ch86y38jlyy56c74mw97i6";
-    })
-  ];
-
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ qtscript poppler hunspell ]
                 ++ lib.optional withLua lua
diff --git a/pkgs/applications/editors/tiled/default.nix b/pkgs/applications/editors/tiled/default.nix
index b6222c8a6d2..4fbbacf8f1e 100644
--- a/pkgs/applications/editors/tiled/default.nix
+++ b/pkgs/applications/editors/tiled/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "tiled";
-  version = "1.4.3";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "bjorn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0n8p7bp5pqq72c65av3v7wbazwphh78pw27nqvpiyp9y8k5w4pg0";
+    sha256 = "sha256-Pf9nA5DUAJ+PPNG+oP7RO4/TD8fy4ADsyq625a6cbFk=";
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 3c55cffdcf1..a9afc774bc0 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -17,11 +17,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "typora";
-  version = "0.9.95";
+  version = "0.9.98";
 
   src = fetchurl {
     url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
-    sha256 = "0kgzk7z707vlbjrvykrnw2h6wscmc3h5hxycyz1z1j2cz26fns4p";
+    sha256 = "sha256-JiqjxT8ZGttrcJrcQmBoGPnRuuYWZ9u2083RxZoLMus=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 4ae7600f4a1..71e7be66b1e 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.2.1522";
+  version = "8.2.2567";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "0dah3392cq06pagik5y7kcq61mslqvfsh7vqldv3kvhr5ilqb8qy";
+    sha256 = "sha256-FS3TZX7FKnnNpGYKbng2LIfWA9z2jqg7d2HC6t3xYTU=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 734b189d1e4..4215b20180e 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -75,7 +75,6 @@ in stdenv.mkDerivation rec {
   patches = [ ./cflags-prune.diff ] ++ lib.optional ftNixSupport ./ft-nix-support.patch;
 
   configureFlags = [
-    "--enable-gui=${guiSupport}"
     "--with-features=${features}"
     "--disable-xsmp"              # XSMP session management
     "--disable-xsmp_interact"     # XSMP interaction
@@ -95,6 +94,7 @@ in stdenv.mkDerivation rec {
     "--disable-carbon_check"
     "--disable-gtktest"
   ]
+    ++ lib.optional (guiSupport == "gtk2" || guiSupport == "gtk3") "--enable-gui=${guiSupport}"
   ++ lib.optional stdenv.isDarwin
      (if darwinSupport then "--enable-darwin" else "--disable-darwin")
   ++ lib.optionals luaSupport [
@@ -127,8 +127,22 @@ in stdenv.mkDerivation rec {
   ++ lib.optional (guiSupport == "gtk3") wrapGAppsHook
   ;
 
-  buildInputs = [ ncurses libX11 libXext libSM libXpm libXt libXaw libXau
-    libXmu glib libICE ]
+  buildInputs = [
+    ncurses
+    glib
+  ]
+    # All X related dependencies
+    ++ lib.optionals (guiSupport == "gtk2" || guiSupport == "gtk3") [
+      libSM
+      libICE
+      libX11
+      libXext
+      libXpm
+      libXt
+      libXaw
+      libXau
+      libXmu
+    ]
     ++ lib.optional (guiSupport == "gtk2") gtk2-x11
     ++ lib.optional (guiSupport == "gtk3") gtk3-x11
     ++ lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc ]
diff --git a/pkgs/applications/editors/vim/macvim-configurable.nix b/pkgs/applications/editors/vim/macvim-configurable.nix
index 6ea6b6c6094..7ed3dee9b6b 100644
--- a/pkgs/applications/editors/vim/macvim-configurable.nix
+++ b/pkgs/applications/editors/vim/macvim-configurable.nix
@@ -29,7 +29,7 @@ let
           "/Applications/MacVim.app/Contents/MacOS"
           "/Applications/MacVim.app/Contents/bin"
         ];
-        buildInputs = [ makeWrapper ];
+        nativeBuildInputs = [ makeWrapper ];
         # We need to do surgery on the resulting app. We can't just make a wrapper for vim because this
         # is a GUI app. We need to copy the actual GUI executable image as AppKit uses the loaded image's
         # path to locate the bundle. We can use symlinks for other executables and resources though.
diff --git a/pkgs/applications/editors/viw/default.nix b/pkgs/applications/editors/viw/default.nix
index 3aad18ef11c..0ba381901b9 100644
--- a/pkgs/applications/editors/viw/default.nix
+++ b/pkgs/applications/editors/viw/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses ];
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
   checkFlags = [ "test-command" "test-buffer" "test-state" ];
 
   installPhase = ''
diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix
index 470683bad43..370d5b1561c 100644
--- a/pkgs/applications/editors/vscode/generic.nix
+++ b/pkgs/applications/editors/vscode/generic.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, makeDesktopItem
-, unzip, libsecret, libXScrnSaver, wrapGAppsHook
+, unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook
 , gtk2, atomEnv, at-spi2-atk, autoPatchelfHook
 , systemd, fontconfig, libdbusmenu
 
@@ -60,14 +60,12 @@ in
       '';
     };
 
-    buildInputs = (if stdenv.isDarwin
-      then [ unzip ]
-      else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
-        ++ [ libsecret libXScrnSaver ];
+    buildInputs = [ libsecret libXScrnSaver libxshmfence ]
+      ++ lib.optionals (!stdenv.isDarwin) ([ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages);
 
     runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];
 
-    nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
+    nativeBuildInputs = [unzip] ++ lib.optional (!stdenv.isDarwin) autoPatchelfHook;
 
     dontBuild = true;
     dontConfigure = true;
diff --git a/pkgs/applications/editors/vscode/update-vscode.sh b/pkgs/applications/editors/vscode/update-vscode.sh
index d1ae71cd11e..68249c20d13 100755
--- a/pkgs/applications/editors/vscode/update-vscode.sh
+++ b/pkgs/applications/editors/vscode/update-vscode.sh
@@ -19,18 +19,18 @@ fi
 VSCODE_VER=$(curl --fail --silent https://api.github.com/repos/Microsoft/vscode/releases/latest | jq --raw-output .tag_name)
 sed -i "s/version = \".*\"/version = \"${VSCODE_VER}\"/" "$ROOT/vscode.nix"
 
-VSCODE_LINUX_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-x64/stable"
+VSCODE_LINUX_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-x64/stable"
 VSCODE_LINUX_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_URL})
 sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODE_LINUX_SHA256}\"/" "$ROOT/vscode.nix"
 
-VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable"
+VSCODE_DARWIN_URL="https://update.code.visualstudio.com/${VSCODE_VER}/darwin/stable"
 VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL})
 sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix"
 
-VSCODE_LINUX_AARCH64_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-arm64/stable"
+VSCODE_LINUX_AARCH64_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-arm64/stable"
 VSCODE_LINUX_AARCH64_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_AARCH64_URL})
 sed -i "s/aarch64-linux = \".\{52\}\"/aarch64-linux = \"${VSCODE_LINUX_AARCH64_SHA256}\"/" "$ROOT/vscode.nix"
 
-VSCODE_LINUX_ARMV7L_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-armhf/stable"
+VSCODE_LINUX_ARMV7L_URL="https://update.code.visualstudio.com/${VSCODE_VER}/linux-armhf/stable"
 VSCODE_LINUX_ARMV7L_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_ARMV7L_URL})
 sed -i "s/armv7l-linux = \".\{52\}\"/armv7l-linux = \"${VSCODE_LINUX_ARMV7L_SHA256}\"/" "$ROOT/vscode.nix"
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index e772796c34e..09a58e7dfd1 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0c0m5qkqv3zhcxmwx72b7z67sjcd1miv8d10kxpk9vffyrxkmj93";
-    x86_64-darwin = "1spd5rbhra4n38lp0sgxd2cr1bngsmi32a43g02vdmmhkmk0iixc";
-    aarch64-linux = "1ql3hn6c59g7d0cwhg54ixww2i9jmkjw3nyzz97yw8wk63zwz024";
-    armv7l-linux = "0pdqcbw7rygvdzys787kf8ag17g9qyv7k33dqhi5h2zc96j867c0";
+    x86_64-linux = "0z1diiiykv4ilsiljffz9sl2mlvrxq0xwm8ga2ralfvjwbhzr6dn";
+    x86_64-darwin = "02gzw46w3kzw1ya9nx8fkhvzi0mbpz2fyp47n58jki2zkdsfiwzh";
+    aarch64-linux = "0bkvgdxch95dqcb41ncsjkaaswmwv6zad4hzdsr3famjm2vym1ky";
+    armv7l-linux = "0wdp97ihdnx9bcyn2dh6wzhb7qvdj6x730r7ng1q3i9jhd19wfi3";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -25,7 +25,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.53.2";
+    version = "1.55.0";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
@@ -34,7 +34,7 @@ in
 
     src = fetchurl {
       name = "VSCode_${version}_${plat}.${archive_fmt}";
-      url = "https://vscode-update.azurewebsites.net/${version}/${plat}/stable";
+      url = "https://update.code.visualstudio.com/${version}/${plat}/stable";
       inherit sha256;
     };
 
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index bdc5552a64f..b11a8a8f103 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1b9pzfi034idhi6f3n0sz3fckf95ckf2qx3sgfn9fx2g52r9m9z1";
-    x86_64-darwin = "1983d8hn04xl5vw7p6842cv5x08q7vilqg7nhvy5yg3lj9q2rpp0";
-    aarch64-linux = "09l32abkq110ib4hjd0yv9avr8a2vg5vs7w4jpk0p499gzrysh2l";
-    armv7l-linux = "1s0gbq1fapq2i905c0xxfyh0656qnb7dmg00khlwbplxzd6i6m18";
+    x86_64-linux = "0zzdbknmljf1hizmxnrby17i8v3kp98rklinywnr632jwgjms81j";
+    x86_64-darwin = "0mccq1b0l6r1ipxp5gvyam43c2hh8hxdvwqikkz6g7y93p29wz9g";
+    aarch64-linux = "12gpday6gzl1adcykqhgz3xrdm9568a26gsndmplkn2n6l6agnp0";
+    armv7l-linux = "0l886vdw7az0nvvhh14pjawz0yyib59ymychy7gbk8ay5g9vfv03";
   }.${system};
 
   sourceRoot = {
@@ -33,7 +33,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.53.2";
+    version = "1.55.0";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/editors/vscode/with-extensions.nix b/pkgs/applications/editors/vscode/with-extensions.nix
index c30b52782ef..d2c91f155d5 100644
--- a/pkgs/applications/editors/vscode/with-extensions.nix
+++ b/pkgs/applications/editors/vscode/with-extensions.nix
@@ -57,7 +57,8 @@ in
 # When no extensions are requested, we simply redirect to the original
 # non-wrapped vscode executable.
 runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" {
-  buildInputs = [ vscode makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ vscode ];
   dontPatchELF = true;
   dontStrip = true;
   meta = vscode.meta;
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/editors/zile/default.nix b/pkgs/applications/editors/zile/default.nix
index 7d36a2fd7f5..3d0e98602ad 100644
--- a/pkgs/applications/editors/zile/default.nix
+++ b/pkgs/applications/editors/zile/default.nix
@@ -1,20 +1,39 @@
-{ fetchurl, lib, stdenv, glib, libgee, pkg-config, ncurses, boehmgc, perl, help2man, vala }:
+{ lib
+, stdenv
+, fetchurl
+, boehmgc
+, glib
+, help2man
+, libgee
+, ncurses
+, perl
+, pkg-config
+, vala
+}:
 
 stdenv.mkDerivation rec {
-  name = "zile-2.6.0.90";
+  pname = "zile";
+  version = "2.6.1";
 
   src = fetchurl {
-    url = "mirror://gnu/zile/${name}.tar.gz";
-    sha256 = "1bhdwnasmqhy0hi3fqmpzr8xkw5zlqjpmf1cj42h4cg3fnamp6r3";
+    url = "mirror://gnu/zile/${pname}-${version}.tar.gz";
+    hash = "sha256-v7rN33aOORc6J0Z5JP5AmZCj6XvjYyoCl5hl+7mvAnc=";
   };
 
-  buildInputs = [ glib libgee ncurses boehmgc vala ];
-  nativeBuildInputs = [ perl pkg-config ]
-    # `help2man' wants to run Zile, which won't work when the
-    # newly-produced binary can't be run at build-time.
-    ++ lib.optional
-         (stdenv.hostPlatform == stdenv.buildPlatform)
-         help2man;
+  buildInputs = [
+    boehmgc
+    glib
+    libgee
+    ncurses
+  ];
+  nativeBuildInputs = [
+    perl
+    pkg-config
+    vala
+  ]
+  # `help2man' wants to run Zile, which won't work when the
+  # newly-produced binary can't be run at build-time.
+  ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) help2man;
 
   # Tests can't be run because most of them rely on the ability to
   # fiddle with the terminal.
@@ -24,33 +43,38 @@ stdenv.mkDerivation rec {
   gl_cv_func_fstatat_zero_flag="yes";
 
   meta = with lib; {
-    description = "Lightweight Emacs clone";
-
+    homepage = "https://www.gnu.org/software/zile/";
+    description = "Zile Implements Lua Editors";
     longDescription = ''
-      GNU Zile, which is a lightweight Emacs clone.  Zile is short
-      for Zile Is Lossy Emacs.  Zile has been written to be as
-      similar as possible to Emacs; every Emacs user should feel at
-      home.
-
-      Zile has all of Emacs's basic editing features: it is 8-bit
-      clean (though it currently lacks Unicode support), and the
-      number of editing buffers and windows is only limited by
-      available memory and screen space respectively.  Registers,
-      minibuffer completion and auto fill are available.  Function
-      and variable names are identical with Emacs's (except those
-      containing the word "emacs", which instead contain the word
-      "zile"!).
-
-      However, all of this is packed into a program which typically
-      compiles to about 130Kb.
-    '';
+      GNU Zile is a text editor development kit, so that you can (relatively)
+      quickly develop your own ideal text editor without reinventing the wheel
+      for many of the common algorithms and data-structures needed to do so.
 
-    homepage = "https://www.gnu.org/software/zile/";
+      It comes with an example implementation of a lightweight Emacs clone,
+      called Zemacs. Every Emacs user should feel at home with Zemacs. Zemacs is
+      aimed at small footprint systems and quick editing sessions (it starts up
+      and shuts down instantly).
 
-    license = licenses.gpl3Plus;
+      More editors implemented over the Zile frameworks are forthcoming as the
+      data-structures and interfaces improve: Zz an emacs inspired editor using
+      Lua as an extension language; Zee a minimalist non-modal editor; Zi a
+      lightweight vi clone; and more...
 
-    maintainers = with maintainers; [ pSub ];
+      Zile is a collection of algorithms and data-structures that currently
+      support all basic Emacs-like editing features: it is 8-bit clean (though
+      Unicode support is not ready yet), and the number of editing buffers and
+      windows is only limited by available memoryand screen space
+      respectively. Registers, minibuffer completion and auto fill are
+      available.
 
+      Zemacs implements a subset of Emacs with identical function and variable
+      names, continuing the spirit of the earlier Zile editor implemented in C.
+      GNU Zile, which is a lightweight Emacs clone.  Zile is short for Zile Is
+      Lossy Emacs.  Zile has been written to be as similar as possible to Emacs;
+      every Emacs user should feel at home.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ pSub AndersonTorres ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/gis/openorienteering-mapper/default.nix b/pkgs/applications/gis/openorienteering-mapper/default.nix
index 81e81c88537..21b4cfa94b1 100644
--- a/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , mkDerivation
 , fetchFromGitHub
+, fetchpatch
 , substituteAll
 , gdal
 , cmake
@@ -19,7 +20,7 @@
 
 mkDerivation rec {
   pname = "OpenOrienteering-Mapper";
-  version = "0.9.4";
+  version = "0.9.5";
 
   buildInputs = [
     gdal
@@ -38,14 +39,21 @@ mkDerivation rec {
     owner = "OpenOrienteering";
     repo = "mapper";
     rev = "v${version}";
-    sha256 = "13k9dirqm74lknhr8w121zr1hjd9gm1y73cj4rrj98rx44dzmk7b";
+    sha256 = "1w8ikqpgi0ksrzjal5ihfaik4grc5v3gdnnv79j20xkr2p4yn1h5";
   };
 
-  patches = (substituteAll {
-    # See https://github.com/NixOS/nixpkgs/issues/86054
-    src = ./fix-qttranslations-path.diff;
-    inherit qttranslations;
-  });
+  patches = [
+    # https://github.com/NixOS/nixpkgs/issues/86054
+    (substituteAll {
+      src = ./fix-qttranslations-path.diff;
+      inherit qttranslations;
+    })
+    # https://github.com/OpenOrienteering/mapper/pull/1907
+    (fetchpatch {
+      url = "https://github.com/OpenOrienteering/mapper/commit/bc52aa567e90a58d6963b44d5ae1909f3f841508.patch";
+      sha256 = "1bkckapzccn6k0ri6bgrr0nhis9498fnwj7b32s2ysym8zcg0355";
+    })
+  ];
 
   cmakeFlags = [
     # Building the manual and bundling licenses fails
@@ -81,7 +89,8 @@ mkDerivation rec {
       and provides a free alternative to the existing proprietary solution.
     '';
     homepage = "https://www.openorienteering.org/apps/mapper/";
-    license = licenses.gpl3;
+    changelog = "https://github.com/OpenOrienteering/mapper/releases/tag/v${version}";
+    license = licenses.gpl3Plus;
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ mpickering sikmir ];
   };
diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix
index 96c2e806682..47defd44c64 100644
--- a/pkgs/applications/gis/saga/default.nix
+++ b/pkgs/applications/gis/saga/default.nix
@@ -12,7 +12,7 @@
 , dxflib
 , curl
 , libiodbc
-, lzma
+, xz
 , libharu
 , opencv
 , vigra
@@ -32,11 +32,11 @@
 
 mkDerivation rec {
   pname = "saga";
-  version = "7.8.2";
+  version = "7.9.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/saga-gis/SAGA%20-%20${lib.versions.major version}/SAGA%20-%20${version}/saga-${version}.tar.gz";
-    sha256 = "1008l8f4733vsxy3y6d1yg8m4h8pp65d2p48ljc9kp5nyrg5vfy5";
+    sha256 = "sha256-ob23JbQnBxNO1QA8zUhLjgo5YBR90pwm8JT62bsPBdg=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ mkDerivation rec {
     vigra
     postgresql
     libiodbc
-    lzma
+    xz
     qhull
     giflib
   ]
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/6.x.nix
index 66ad424253e..de96650167f 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/6.x.nix
@@ -16,13 +16,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "6.9.11-60";
+  version = "6.9.12-3";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick6";
     rev = version;
-    sha256 = "12810882a0kf4zlgyi290z9bjs921m05njbljkjfw6s1hf0mncl0";
+    sha256 = "sha256-h9c0N9AcFVpNYpKl+95q1RVJWuacN4N4kbAJIKJp8Jc=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
@@ -77,9 +77,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://www.imagemagick.org/";
+    homepage = "https://legacy.imagemagick.org/";
+    changelog = "https://legacy.imagemagick.org/script/changelog.php";
     description = "A software suite to create, edit, compose, or convert bitmap images";
     platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ erictapen ];
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index 58c47721b6b..49021f5e3c3 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -14,8 +14,8 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "7.0.10-61";
-    sha256 = "sha256-c/90N5H9iz5JYmn7/ynHgSOAmO5NTtkxajChZvjfMP8=";
+    version = "7.0.11-3";
+    sha256 = "sha256-y937OxAHNTbWa96oQmTpp/ivxtPVL16hr4SvzZWugQo=";
     patches = [];
   };
 in
@@ -84,6 +84,7 @@ stdenv.mkDerivation {
     homepage = "http://www.imagemagick.org/";
     description = "A software suite to create, edit, compose, or convert bitmap images";
     platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ erictapen ];
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index 8726fc1d793..0e4f182ea50 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.1";
+  version = "4.12.0";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "sha256-Qe5mV9GBLHsmzMQg6dKib/sTnNdyOTj4wYQ9xd/iqJM=";
+    sha256 = "sha256-qbG0Ii3Xmj1UGGS+n+LdiNPAHBkpQZMGEzrDvOcaUNA=";
   };
 
   libPath = lib.makeLibraryPath (with xorg; [
@@ -58,8 +58,8 @@ stdenv.mkDerivation rec {
     comment = "The bridge between designers and developers";
   };
 
-  nativeBuildInputs = [makeWrapper wrapGAppsHook];
-  buildInputs = [ unzip gtk3 gnome3.adwaita-icon-theme ];
+  nativeBuildInputs = [makeWrapper wrapGAppsHook unzip];
+  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
 
   # src is producing multiple folder on unzip so we must
   # override unpackCmd to extract it into newly created folder
diff --git a/pkgs/applications/graphics/batik/default.nix b/pkgs/applications/graphics/batik/default.nix
index 4b597482554..a88209bfbd8 100644
--- a/pkgs/applications/graphics/batik/default.nix
+++ b/pkgs/applications/graphics/batik/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "batik";
-  version = "1.13";
+  version = "1.14";
 
   src = fetchurl {
     url = "mirror://apache/xmlgraphics/batik/binaries/batik-bin-${version}.tar.gz";
-    sha256 = "16sq90nbs6psgm3xz30sbs6r5dnpd3qzsvr1xvnp4yipwjcmhmkw";
+    sha256 = "sha256-D06qgb5wdS5AahnznDnAGISPCZY/CPqJdGQFRwUsRhg=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/graphics/blockbench-electron/default.nix b/pkgs/applications/graphics/blockbench-electron/default.nix
new file mode 100644
index 00000000000..174733a4fdc
--- /dev/null
+++ b/pkgs/applications/graphics/blockbench-electron/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_8 }:
+
+stdenv.mkDerivation rec {
+  pname = "blockbench-electron";
+  version = "3.7.5";
+
+  src = fetchurl {
+    url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
+    sha256 = "0qqklhncd4khqmgp7jg7wap2rzkrg8b6dflmz0wmm5zxxp5vcy1c";
+    name = "${pname}-${version}.AppImage";
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    name = "${pname}-${version}";
+    inherit src;
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin $out/share/${pname} $out/share/applications
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+    cp -a ${appimageContents}/blockbench.desktop $out/share/applications/${pname}.desktop
+    cp -a ${appimageContents}/usr/share/icons $out/share
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron_8}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app.asar \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
+  '';
+
+  meta = with lib; {
+    description = "A boxy 3D model editor powered by Electron";
+    homepage = "https://blockbench.net/";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.ronthecookie ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/graphics/dia/default.nix b/pkgs/applications/graphics/dia/default.nix
index d9de3eb7fc1..d07904c8597 100644
--- a/pkgs/applications/graphics/dia/default.nix
+++ b/pkgs/applications/graphics/dia/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, autoconf, automake, libtool, gtk2, pkg-config, perlPackages,
-libxml2, gettext, python, libxml2Python, docbook5, docbook_xsl,
+libxml2, gettext, python2, libxml2Python, docbook5, docbook_xsl,
 libxslt, intltool, libart_lgpl, withGNOME ? false, libgnomeui,
 gtk-mac-integration-gtk2 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   ];
 
   buildInputs =
-    [ gtk2 libxml2 gettext python libxml2Python docbook5
+    [ gtk2 libxml2 gettext python2 libxml2Python docbook5
       libxslt docbook_xsl libart_lgpl ]
       ++ lib.optional withGNOME libgnomeui
       ++ lib.optional stdenv.isDarwin gtk-mac-integration-gtk2;
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 31dff2f9c2d..4155767a361 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -4,18 +4,18 @@
 , alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, dbus, cups, expat
 , gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor
 , libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst
-, libxcb, libuuid, nspr, nss, pango
+, libxcb, libuuid, libxshmfence, nspr, nss, pango
 
 , systemd
 }:
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "14.1.5";
+  version = "14.5.1";
 
   src = fetchurl {
-    url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    hash = "sha256-dM/DGtUDnJBD4Cfhm/zbxfgBhUcIlEzlF4z3cmQuW14=";
+    url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
+    hash = "sha256-ZrEoeeEhHQOLm/L3KA43Ru5fruIPK35CCUsllwpPB58=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
     libXi
     libXrandr
     libXrender
+    libxshmfence
     libXtst
     libxcb
     libuuid
@@ -66,7 +67,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/share
-    cp -r opt/draw.io $out/share/
+    cp -r opt/drawio $out/share/
 
     # Application icon
     mkdir -p $out/share/icons/hicolor
@@ -77,11 +78,11 @@ stdenv.mkDerivation rec {
 
     # Symlink wrapper
     mkdir -p $out/bin
-    ln -s $out/share/draw.io/drawio $out/bin/drawio
+    ln -s $out/share/drawio/drawio $out/bin/drawio
 
     # Update binary path
     substituteInPlace $out/share/applications/drawio.desktop \
-      --replace /opt/draw.io/drawio $out/bin/drawio
+      --replace /opt/drawio/drawio $out/bin/drawio
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/graphics/eddy/default.nix b/pkgs/applications/graphics/eddy/default.nix
new file mode 100644
index 00000000000..6b8f465a106
--- /dev/null
+++ b/pkgs/applications/graphics/eddy/default.nix
@@ -0,0 +1,47 @@
+{ python3Packages
+, fetchFromGitHub
+, lib
+, jre
+, qt5
+, wrapQtAppsHook
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "eddy";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "obdasystems";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "12j77bbva5py9bd57c80cmjvf8vll40h19n81h16lvv2r2r7jynh";
+  };
+
+  propagatedBuildInputs = [
+    qt5.qtbase
+    wrapQtAppsHook
+    python3Packages.setuptools
+    python3Packages.rfc3987
+    python3Packages.JPype1
+    python3Packages.pyqt5
+  ];
+
+  # Tests fail with: ImportError: cannot import name 'QtXmlPatterns' from 'PyQt5'
+  doCheck = false;
+
+  preBuild = ''
+    export HOME=/tmp
+  '';
+
+  preFixup = ''
+    wrapQtApp "$out/bin/eddy" --prefix JAVA_HOME : ${jre}
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.obdasystems.com/eddy";
+    description = "Graphical editor for the specification and visualization of Graphol ontologies";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ koslambrou ];
+  };
+}
diff --git a/pkgs/applications/graphics/fondo/default.nix b/pkgs/applications/graphics/fondo/default.nix
index 49e8fee513d..04ac87c55da 100644
--- a/pkgs/applications/graphics/fondo/default.nix
+++ b/pkgs/applications/graphics/fondo/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fondo";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "calo001";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eGHgZm9Q6JnY6OQNAyrFvRsuyuFnruMJNckOCCiO4Ug=";
+    sha256 = "sha256-EATZRmYSGUzWYaPqFT4mLTGGvwUp+Mn93yMF2JsPaYo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
index 1c4f05b42da..440cc7fa38d 100644
--- a/pkgs/applications/graphics/freecad/default.nix
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -1,49 +1,115 @@
-{ lib, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
-xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook,
-opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
-gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkg-config, mpi ? null }:
+{ lib
+, stdenv
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, ninja
+, GitPython
+, boost
+, coin3d
+, eigen
+, gfortran
+, gts
+, hdf5
+, libGLU
+, libXmu
+, libf2c
+, libspnav
+, matplotlib
+, medfile
+, mpi
+, ode
+, opencascade-occt
+, pivy
+, pkg-config
+, pycollada
+, pyside2
+, pyside2-tools
+, python
+, pyyaml
+, qtbase
+, qttools
+, qtwebengine
+, qtx11extras
+, qtxmlpatterns
+, scipy
+, shiboken2
+, soqt
+, spaceNavSupport ? stdenv.isLinux
+, swig
+, vtk
+, wrapQtAppsHook
+, xercesc
+, zlib
+}:
 
-assert mpi != null;
-
-let
-  pythonPackages = python3Packages;
-in mkDerivation rec {
-  pname = "freecad-unstable";
-  version = "2020-12-08";
+mkDerivation rec {
+  pname = "freecad";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "FreeCAD";
     repo = "FreeCAD";
-    rev = "daea30341ea2d5eaf2bfb65614128a5fa2abc8b7";
-    sha256 = "1fza64lygqq35v7kzgqmiq5dvl5rpgkhlzv06f9dszdz44hznina";
+    rev = version;
+    hash = "sha256-itIrO+/mKXOPNs+2POKT8u4YZuqx/QAwVBWrHgKP1qQ=";
   };
 
   nativeBuildInputs = [
     cmake
     ninja
     pkg-config
-    pythonPackages.pyside2-tools
+    pyside2-tools
     wrapQtAppsHook
   ];
 
   buildInputs = [
-    coin3d xercesc ode eigen opencascade-occt gts
-    zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
-    libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
-  ] ++ (with pythonPackages; [
-    matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
     GitPython # for addon manager
-    scipy pyyaml # (at least for) PyrateWorkbench
-  ]);
+    boost
+    coin3d
+    eigen
+    gfortran
+    gts
+    hdf5
+    libGLU
+    libXmu
+    libf2c
+    matplotlib
+    medfile
+    mpi
+    ode
+    opencascade-occt
+    pivy
+    pycollada
+    pyside2
+    pyside2-tools
+    python
+    pyyaml # (at least for) PyrateWorkbench
+    qtbase
+    qttools
+    qtwebengine
+    qtxmlpatterns
+    scipy
+    shiboken2
+    soqt
+    swig
+    vtk
+    xercesc
+    zlib
+  ] ++ lib.optionals spaceNavSupport [
+    libspnav
+    qtx11extras
+  ];
 
   cmakeFlags = [
+    "-DBUILD_FLAT_MESH:BOOL=ON"
     "-DBUILD_QT5=ON"
-    "-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
+    "-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
     "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
-    ("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtCore"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtGui"
+    ("-DPYSIDE_INCLUDE_DIR=${pyside2}/include"
+      + ";${pyside2}/include/PySide2/QtCore"
+      + ";${pyside2}/include/PySide2/QtWidgets"
+      + ";${pyside2}/include/PySide2/QtGui"
       )
     "-DPYSIDE_LIBRARY=PySide2::pyside2"
   ];
@@ -66,13 +132,31 @@ in mkDerivation rec {
 
   postFixup = ''
     mv $out/share/doc $out
+    ln -s $out/bin/FreeCAD $out/bin/freecad
+    ln -s $out/bin/FreeCADCmd $out/bin/freecadcmd
   '';
 
   meta = with lib; {
-    description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
     homepage = "https://www.freecadweb.org/";
+    description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
+    longDescription = ''
+      FreeCAD is an open-source parametric 3D modeler made primarily to design
+      real-life objects of any size. Parametric modeling allows you to easily
+      modify your design by going back into your model history and changing its
+      parameters.
+
+      FreeCAD allows you to sketch geometry constrained 2D shapes and use them
+      as a base to build other objects. It contains many components to adjust
+      dimensions or extract design details from 3D models to create high quality
+      production ready drawings.
+
+      FreeCAD is designed to fit a wide range of uses including product design,
+      mechanical engineering and architecture. Whether you are a hobbyist, a
+      programmer, an experienced CAD user, a student or a teacher, you will feel
+      right at home with FreeCAD.
+    '';
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ viric gebner ];
+    maintainers = with maintainers; [ viric gebner AndersonTorres ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index 62f1a362771..2491d8d3a8a 100644
--- a/pkgs/applications/graphics/gimp/default.nix
+++ b/pkgs/applications/graphics/gimp/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchurl
+, fetchpatch
 , substituteAll
 , autoreconfHook
 , pkg-config
@@ -72,6 +73,12 @@ in stdenv.mkDerivation rec {
     # Use absolute paths instead of relying on PATH
     # to make sure plug-ins are loaded by the correct interpreter.
     ./hardcode-plugin-interpreters.patch
+
+    # Fix crash without dot.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/f83fd22c4b8701ffc4ce14383e5e22756a4bce04.patch";
+      sha256 = "POuvBhOSStO7hBGp4HgNx5F9pElFRoqN3W+i3u4zOnk=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index db3bd494b6b..307866c377a 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -81,6 +81,29 @@ in
     };
   };
 
+  farbfeld = pluginDerivation rec {
+    pname = "farbfeld";
+    version = "unstable-2019-08-12";
+
+    src = fetchFromGitHub {
+      owner = "ids1024";
+      repo = "gimp-farbfeld";
+      rev = "5feacebf61448bd3c550dda03cd08130fddc5af4";
+      sha256 = "1vmw7k773vrndmfffj0m503digdjmkpcqy2r3p3i5x0qw9vkkkc6";
+    };
+
+    installPhase = ''
+      installPlugin farbfeld
+    '';
+
+    meta = {
+      description = "Gimp plug-in for the farbfeld image format";
+      homepage = "https://github.com/ids1024/gimp-farbfeld";
+      license = lib.licenses.mit;
+      maintainers = with lib.maintainers; [ sikmir ];
+    };
+  };
+
   fourier = pluginDerivation rec {
     /* menu:
        Filters/Generic/FFT Forward
diff --git a/pkgs/applications/graphics/gimp/wrapper.nix b/pkgs/applications/graphics/gimp/wrapper.nix
index 8fde04d0d1d..bb81a374fea 100644
--- a/pkgs/applications/graphics/gimp/wrapper.nix
+++ b/pkgs/applications/graphics/gimp/wrapper.nix
@@ -11,7 +11,7 @@ in symlinkJoin {
 
   paths = [ gimp ] ++ selectedPlugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     for each in gimp-${versionBranch} gimp-console-${versionBranch}; do
diff --git a/pkgs/applications/graphics/glimpse/wrapper.nix b/pkgs/applications/graphics/glimpse/wrapper.nix
index cdfb2f66873..daa540d31e5 100644
--- a/pkgs/applications/graphics/glimpse/wrapper.nix
+++ b/pkgs/applications/graphics/glimpse/wrapper.nix
@@ -12,7 +12,7 @@ symlinkJoin {
 
   paths = [ glimpse ] ++ selectedPlugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     for each in glimpse-${versionBranch} glimpse-console-${versionBranch}; do
diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix
index 24e064e721b..583dcf7c618 100644
--- a/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/pkgs/applications/graphics/graphicsmagick/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--enable-shared"
+    "--with-frozenpaths"
     "--with-quantum-depth=${toString quantumdepth}"
     "--with-gslib=yes"
   ];
diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix
index 0e65d3199ab..616a0b71356 100644
--- a/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "gscan2pdf";
-  version = "2.9.1";
+  version = "2.11.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1ls6n1a8vjgwkb40drpc3rapjligaf9fp218539fnwvhv26div69";
+    sha256 = "0aigngfi5dbjihn43c6sg865i1ybfzj0w81zclzy8r9nqiqq0wma";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -23,15 +23,19 @@ perlPackages.buildPerlPackage rec {
     [ librsvg sane-backends sane-frontends ] ++
     (with perlPackages; [
       Gtk3
+      Gtk3ImageView
       Gtk3SimpleList
       Cairo
       CairoGObject
       Glib
       GlibObjectIntrospection
       GooCanvas2
+      GraphicsTIFF
+      IPCSystemSimple
       LocaleCodes
       LocaleGettext
-      PDFAPI2
+      PDFBuilder
+      ImagePNGLibpng
       ImageSane
       SetIntSpan
       PerlMagick
@@ -93,9 +97,21 @@ perlPackages.buildPerlPackage rec {
     xvfb_run
     file
     tesseract # tests are expecting tesseract 3.x precisely
-  ];
+  ] ++ (with perlPackages; [
+    TestPod
+  ]);
 
   checkPhase = ''
+    # Temporarily disable a dubiously failing test:
+    # t/169_import_scan.t ........................... 1/1
+    # #   Failed test 'variable-height scan imported with expected size'
+    # #   at t/169_import_scan.t line 50.
+    # #          got: '179'
+    # #     expected: '296'
+    # # Looks like you failed 1 test of 1.
+    # t/169_import_scan.t ........................... Dubious, test returned 1 (wstat 256, 0x100)
+    rm t/169_import_scan.t
+
     xvfb-run -s '-screen 0 800x600x24' \
       make test
   '';
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/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index f5b8b806215..df1fcc9eb66 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -1,6 +1,6 @@
 { lib
 , fetchFromGitHub
-, lzma
+, xz
 , qt5
 , wrapQtAppsHook
 , miniupnpc_2
@@ -8,16 +8,16 @@
 , pythonPackages
 }:
 
-pythonPackages.buildPythonPackage {
+pythonPackages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "426";
+  version = "431";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
-    rev = "1acdc258e5bb2ae22f5eafaf3dac8d9265dba5e2";
-    sha256 = "1snihd433hx36s6d5hsnq4qg0xs6ag4822lwm5fqak64n22ad2qb";
+    rev = "v${version}";
+    sha256 = "0mfql27n725k6ynvhkgzmxxpfbjlzil2fjpy082gz257kb0880zy";
   };
 
   nativeBuildInputs = [
@@ -39,11 +39,12 @@ pythonPackages.buildPythonPackage {
     service-identity
     twisted
     lz4
-    lzma
+    xz
     pysocks
     matplotlib
     qtpy
     pyside2
+    mpv
   ];
 
   checkInputs = with pythonPackages; [ nose httmock ];
diff --git a/pkgs/applications/graphics/imagej/default.nix b/pkgs/applications/graphics/imagej/default.nix
index 7e3238e94bb..65d3c9735df 100644
--- a/pkgs/applications/graphics/imagej/default.nix
+++ b/pkgs/applications/graphics/imagej/default.nix
@@ -15,7 +15,7 @@ let
       url = "https://wsr.imagej.net/distros/cross-platform/ij150.zip";
       sha256 = "97aba6fc5eb908f5160243aebcdc4965726693cb1353d9c0d71b8f5dd832cb7b";
     };
-    buildInputs = [ unzip makeWrapper ];
+    nativeBuildInputs = [ makeWrapper unzip ];
     inherit jre;
 
     # JAR files that are intended to be used by other packages
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index ba6af5d781f..11340fa7468 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -7,6 +7,7 @@
 , fetchurl
 , gettext
 , gdl
+, ghostscript
 , glib
 , glib-networking
 , glibmm
@@ -74,6 +75,12 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs share/extensions
+    substituteInPlace share/extensions/eps_input.inx \
+      --replace "location=\"path\">ps2pdf" "location=\"absolute\">${ghostscript}/bin/ps2pdf"
+    substituteInPlace share/extensions/ps_input.inx \
+      --replace "location=\"path\">ps2pdf" "location=\"absolute\">${ghostscript}/bin/ps2pdf"
+    substituteInPlace share/extensions/ps_input.py \
+      --replace "call('ps2pdf'" "call('${ghostscript}/bin/ps2pdf'"
     patchShebangs share/templates
     patchShebangs man/fix-roff-punct
   '';
diff --git a/pkgs/applications/graphics/inkscape/with-extensions.nix b/pkgs/applications/graphics/inkscape/with-extensions.nix
index cca7b1fc3a5..c558a6bb062 100644
--- a/pkgs/applications/graphics/inkscape/with-extensions.nix
+++ b/pkgs/applications/graphics/inkscape/with-extensions.nix
@@ -10,7 +10,7 @@ symlinkJoin {
 
   paths = [ inkscape ] ++ inkscapeExtensions;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     rm -f $out/bin/inkscape
diff --git a/pkgs/applications/graphics/leocad/default.nix b/pkgs/applications/graphics/leocad/default.nix
index 39a287900a9..9c16e23ebb5 100644
--- a/pkgs/applications/graphics/leocad/default.nix
+++ b/pkgs/applications/graphics/leocad/default.nix
@@ -1,31 +1,53 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchurl
+, qmake
+, qttools
+, zlib
+}:
+
 /*
 To use aditional parts libraries
 set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
 */
 
-{ lib, stdenv, fetchFromGitHub, qt4, qmake4Hook, zlib }:
+let
+  parts = fetchurl {
+    url = "https://web.archive.org/web/20190715142541/https://www.ldraw.org/library/updates/complete.zip";
+    sha256 = "sha256-PW3XCbFwRaNkx4EgCnl2rXH7QgmpNgjTi17kZ5bladA=";
+  };
 
-stdenv.mkDerivation rec {
+in
+mkDerivation rec {
   pname = "leocad";
-  version = "19.07.1";
+  version = "21.03";
 
   src = fetchFromGitHub {
     owner = "leozide";
     repo = "leocad";
     rev = "v${version}";
-    sha256 = "02kv1m18g6s4dady9jv4sjivfkrp192bmdw2a3d9lzlp60zks0p2";
+    sha256 = "sha256-69Ocfk5dBXwcRqAZWEP9Xg41o/tAQo76dIOk9oYhCUE=";
   };
 
-  nativeBuildInputs = [ qmake4Hook ];
-  buildInputs = [ qt4 zlib ];
-  postPatch = ''
-    export qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out"
-  '';
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ zlib ];
+
+  qmakeFlags = [
+    "INSTALL_PREFIX=${placeholder "out"}"
+    "DISABLE_UPDATE_CHECK=1"
+  ];
+
+  qtWrapperArgs = [
+    "--set-default LEOCAD_LIB ${parts}"
+  ];
 
   meta = with lib; {
     description = "CAD program for creating virtual LEGO models";
     homepage = "https://www.leocad.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
index 18fe87b128d..8188a3949dc 100644
--- a/pkgs/applications/graphics/lightburn/default.nix
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lightburn";
-  version = "0.9.20";
+  version = "0.9.22";
 
   nativeBuildInputs = [
     p7zip
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
-    sha256 = "sha256-FtkBIoz5u70DbZZBH4uSaAkmOphWA9H0uYuukIPVGUM=";
+    sha256 = "sha256-DOiO36suytukkviqYyLL47DFVzsJt2ZfSnnni95CLaA=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/megapixels/default.nix b/pkgs/applications/graphics/megapixels/default.nix
index 29aaed1278d..1a703378845 100644
--- a/pkgs/applications/graphics/megapixels/default.nix
+++ b/pkgs/applications/graphics/megapixels/default.nix
@@ -7,10 +7,11 @@
 , wrapGAppsHook
 , gtk3
 , gnome3
+, zbar
 , tiffSupport ? true
 , libraw
 , jpgSupport ? true
-, imagemagick
+, graphicsmagick
 , exiftool
 }:
 
@@ -20,24 +21,24 @@ let
   inherit (lib) makeBinPath optional optionals optionalString;
   runtimePath = makeBinPath (
     optional tiffSupport libraw
-    ++ optionals jpgSupport [ imagemagick exiftool ]
+    ++ optionals jpgSupport [ graphicsmagick exiftool ]
   );
 in
 stdenv.mkDerivation rec {
   pname = "megapixels";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchgit {
     url = "https://git.sr.ht/~martijnbraam/megapixels";
     rev = version;
-    sha256 = "136rv9sx0kgfkpqn5s90j7j4qhb8h04p14g5qhqshb89kmmsmxiw";
+    sha256 = "1y8irwi8lbjs948j90gpic96dx5wjmwacd41hb3d9vzhkyni2dvb";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
 
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ]
+  buildInputs = [ gtk3 gnome3.adwaita-icon-theme zbar ]
   ++ optional tiffSupport libraw
-  ++ optional jpgSupport imagemagick;
+  ++ optional jpgSupport graphicsmagick;
 
   preFixup = optionalString (tiffSupport || jpgSupport) ''
     gappsWrapperArgs+=(
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index 67b64ee575c..8633494a4ca 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,7 +1,6 @@
 { mkDerivation
 , lib
 , fetchFromGitHub
-, fetchpatch
 , libGLU
 , qtbase
 , qtscript
@@ -19,13 +18,13 @@
 
 mkDerivation rec {
   pname = "meshlab";
-  version = "2020.07";
+  version = "2020.12";
 
   src = fetchFromGitHub {
     owner = "cnr-isti-vclab";
     repo = "meshlab";
     rev = "Meshlab-${version}";
-    sha256 = "0vj849b57zk3k6lx35zzcjhr9gdy4hxqnnkb8chwy7hw262cm3ri";
+    sha256 = "QrnqXEVqI1ADUYWalZ0h/0+xS+gDZTinm0weT39onw0=";
     fetchSubmodules = true; # for vcglib
   };
 
@@ -46,17 +45,11 @@ mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  patches = [
-    # Make cmake use the system qhull. The next meshlab will not need this patch because it is already in master.
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/cnr-isti-vclab/meshlab/pull/747.patch";
-      sha256 = "0wx9f6zn458xz3lsqcgvsbwh1pgi3g0lah93nlbsb0sagng7n565";
-    })
-  ];
-
   preConfigure = ''
-    substituteAll ${./meshlab.desktop} install/linux/resources/meshlab.desktop
-    cd src
+    substituteAll ${./meshlab.desktop} scripts/Linux/resources/meshlab.desktop
+    cmakeDir=$PWD/src
+    mkdir ../build
+    cd ../build
   '';
 
   cmakeFlags = [
@@ -75,19 +68,12 @@ mkDerivation rec {
 
   postFixup = ''
     patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlab-wrapped
-    patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlabserver-wrapped
   '';
 
-  # Meshlab is not format-security clean; without disabling hardening, we get:
-  # src/common/GLLogStream.h:61:37: error: format not a string literal and no format arguments [-Werror=format-security]
-  #  61 |         int chars_written = snprintf(buf, buf_size, f, std::forward<Ts>(ts)...);
-  #     |
-  hardeningDisable = [ "format" ];
-
   meta = {
     description = "A system for processing and editing 3D triangular meshes";
     homepage = "https://www.meshlab.net/";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
   };
diff --git a/pkgs/applications/graphics/monado/default.nix b/pkgs/applications/graphics/monado/default.nix
index 395ae028423..fe5f99de121 100644
--- a/pkgs/applications/graphics/monado/default.nix
+++ b/pkgs/applications/graphics/monado/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitLab
-, fetchpatch
 , writeText
 , cmake
 , doxygen
@@ -44,24 +44,16 @@
 
 stdenv.mkDerivation rec {
   pname = "monado";
-  version = "0.4.1";
+  version = "21.0.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "114aif79dqyn2qg07mkv6lzmqn15k6fdcii818rdf5g4bp7zzzgm";
+    sha256 = "07zxs96i3prjqww1f68496cl2xxqaidx32lpfyy0pn5am4c297zc";
   };
 
-  patches = [
-    # fix libsurvive autodetection, drop with the next version update
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/monado/monado/-/commit/345e9eab56e2de9e8b07cf72c2a67cf2ebd01e62.patch";
-      sha256 = "17c110an6sxc8rn7dfz30rfkbayg64w68licicwc8cqabi6cgrm3";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     doxygen
diff --git a/pkgs/applications/graphics/openimageio/2.x.nix b/pkgs/applications/graphics/openimageio/2.x.nix
index f5595da47ad..5982e4abe0f 100644
--- a/pkgs/applications/graphics/openimageio/2.x.nix
+++ b/pkgs/applications/graphics/openimageio/2.x.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , boost
 , cmake
 , ilmbase
@@ -11,26 +10,20 @@
 , openexr
 , robin-map
 , unzip
+, fmt
 }:
 
 stdenv.mkDerivation rec {
   pname = "openimageio";
-  version = "2.1.9.0";
+  version = "2.2.12.0";
 
   src = fetchFromGitHub {
     owner = "OpenImageIO";
     repo = "oiio";
     rev = "Release-${version}";
-    sha256 = "1bbxx3bcc5jlb90ffxbk29gb8227097rdr8vg97vj9axw2mjd5si";
+    sha256 = "16z8lnsqhljbfaarfwx9rc95p0a9wxf4p271j6kxdfknjb88p56i";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/OpenImageIO/oiio/pull/2441/commits/e9bdd69596103edf41b659ad8ab0ca4ce002f6f5.patch";
-      sha256 = "0x1wmjf1jrm19d1izhs1cs3y1if9al1zx48lahkfswyjag3r5dn0";
-    })
-  ];
-
   outputs = [ "bin" "out" "dev" "doc" ];
 
   nativeBuildInputs = [
@@ -47,6 +40,7 @@ stdenv.mkDerivation rec {
     opencolorio
     openexr
     robin-map
+    fmt
   ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/graphics/openimageio/2539_backport.patch b/pkgs/applications/graphics/openimageio/2539_backport.patch
new file mode 100644
index 00000000000..c484b2ef9cf
--- /dev/null
+++ b/pkgs/applications/graphics/openimageio/2539_backport.patch
@@ -0,0 +1,31 @@
+diff --git a/src/libOpenImageIO/exif.cpp b/src/libOpenImageIO/exif.cpp
+index 10b75c21..0287d9c5 100644
+--- a/src/libOpenImageIO/exif.cpp
++++ b/src/libOpenImageIO/exif.cpp
+@@ -213,6 +213,9 @@ static const EXIF_tag_info exif_tag_table[] = {
+ 
+ 
+ 
++// libtiff > 4.1.0 defines these in tiff.h. For older libtiff, let's define
++// them ourselves.
++#ifndef GPSTAG_VERSIONID
+ enum GPSTag {
+     GPSTAG_VERSIONID = 0, 
+     GPSTAG_LATITUDEREF = 1,  GPSTAG_LATITUDE = 2,
+@@ -237,6 +240,7 @@ enum GPSTag {
+     GPSTAG_DIFFERENTIAL = 30,
+     GPSTAG_HPOSITIONINGERROR = 31
+ };
++#endif
+ 
+ static const EXIF_tag_info gps_tag_table[] = {
+     { GPSTAG_VERSIONID,		"GPS:VersionID",	TIFF_BYTE, 4 }, 
+@@ -270,7 +274,7 @@ static const EXIF_tag_info gps_tag_table[] = {
+     { GPSTAG_AREAINFORMATION,	"GPS:AreaInformation",	TIFF_UNDEFINED, 1 },
+     { GPSTAG_DATESTAMP,		"GPS:DateStamp",	TIFF_ASCII, 0 },
+     { GPSTAG_DIFFERENTIAL,	"GPS:Differential",	TIFF_SHORT, 1 },
+-    { GPSTAG_HPOSITIONINGERROR,	"GPS:HPositioningError",TIFF_RATIONAL, 1 },
++    { GPSTAG_GPSHPOSITIONINGERROR,     "GPS:HPositioningError",TIFF_RATIONAL, 1 },
+     { -1, NULL }  // signal end of table
+ };
+ 
diff --git a/pkgs/applications/graphics/openimageio/default.nix b/pkgs/applications/graphics/openimageio/default.nix
index 8bd82c78393..2461fcc2765 100644
--- a/pkgs/applications/graphics/openimageio/default.nix
+++ b/pkgs/applications/graphics/openimageio/default.nix
@@ -33,6 +33,11 @@ stdenv.mkDerivation rec {
     "dist_dir="
   ];
 
+  patches = [
+    # Backported from https://github.com/OpenImageIO/oiio/pull/2539 for 1.8.17
+    ./2539_backport.patch
+  ];
+
   meta = with lib; {
     homepage = "http://www.openimageio.org";
     description = "A library and tools for reading and writing images";
diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix
index 3accf2fd590..ac41a23f8bb 100644
--- a/pkgs/applications/graphics/openscad/default.nix
+++ b/pkgs/applications/graphics/openscad/default.nix
@@ -25,6 +25,7 @@
 , mkDerivation
 , qtmacextras
 , qmake
+, spacenavSupport ? stdenv.isLinux, libspnav
 }:
 
 mkDerivation rec {
@@ -46,9 +47,15 @@ mkDerivation rec {
     qtbase qtmultimedia qscintilla
   ] ++ lib.optionals stdenv.isLinux [ libGLU libGL ]
     ++ lib.optional stdenv.isDarwin qtmacextras
+    ++ lib.optional spacenavSupport libspnav
   ;
 
-  qmakeFlags = [ "VERSION=${version}" ];
+  qmakeFlags = [ "VERSION=${version}" ] ++
+    lib.optionals spacenavSupport [
+      "ENABLE_SPNAV=1"
+      "SPNAV_INCLUDEPATH=${libspnav}/include"
+      "SPNAV_LIBPATH=${libspnav}/lib"
+    ];
 
   # src/lexer.l:36:10: fatal error: parser.hxx: No such file or directory
   enableParallelBuilding = false; # true by default due to qmake
diff --git a/pkgs/applications/graphics/opentoonz/default.nix b/pkgs/applications/graphics/opentoonz/default.nix
index da5aa7bf6ef..14a130d7f41 100644
--- a/pkgs/applications/graphics/opentoonz/default.nix
+++ b/pkgs/applications/graphics/opentoonz/default.nix
@@ -1,5 +1,5 @@
 { boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
-, libpng, libtiff, libusb1, lz4, lzma, lzo, openblas, pkg-config, qtbase
+, libpng, libtiff, libusb1, lz4, xz, lzo, openblas, pkg-config, qtbase
 , qtmultimedia, qtscript, lib, stdenv, superlu, wrapQtAppsHook, }:
 let source = import ./source.nix { inherit fetchFromGitHub; };
 in stdenv.mkDerivation rec {
@@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
     libtiff
     libusb1
     lz4
-    lzma
+    xz
     lzo
     openblas
     qtbase
diff --git a/pkgs/applications/graphics/photoflare/default.nix b/pkgs/applications/graphics/photoflare/default.nix
index 0c25364b76a..cc4f4342c61 100644
--- a/pkgs/applications/graphics/photoflare/default.nix
+++ b/pkgs/applications/graphics/photoflare/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "photoflare";
-  version = "1.6.6";
+  version = "1.6.7.1";
 
   src = fetchFromGitHub {
     owner = "PhotoFlare";
     repo = "photoflare";
     rev = "v${version}";
-    sha256 = "07lrlxagv1bljj607s8m0zsbzx9jrvi18bnxahnm7r4i5car5x2d";
+    sha256 = "sha256-7b7ICcHuMjOMtyQDkokoHeZrF4G+bOzgRJP4mkns+Zc=";
   };
 
   nativeBuildInputs = [ qmake qttools ];
@@ -19,13 +19,11 @@ mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick";
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface";
     homepage = "https://photoflare.io";
     maintainers = [ maintainers.omgbebebe ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/rapid-photo-downloader/default.nix b/pkgs/applications/graphics/rapid-photo-downloader/default.nix
index f444ebfe5be..9fd629ca8e9 100644
--- a/pkgs/applications/graphics/rapid-photo-downloader/default.nix
+++ b/pkgs/applications/graphics/rapid-photo-downloader/default.nix
@@ -81,7 +81,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
   meta = with lib; {
     description = "Photo and video importer for cameras, phones, and memory cards";
     homepage = "https://www.damonlynch.net/rapid/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jfrankenau ];
   };
diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index c51794881e9..626610728ae 100644
--- a/pkgs/applications/graphics/renderdoc/default.nix
+++ b/pkgs/applications/graphics/renderdoc/default.nix
@@ -13,14 +13,14 @@ let
   pythonPackages = python3Packages;
 in
 mkDerivation rec {
-  version = "1.11";
+  version = "1.12";
   pname = "renderdoc";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "01r4fq03fpyhwvn47wx3dw29vcadcd0qml00h36q38cq3pi9x42j";
+    sha256 = "4k0WsTsz4WwPZC8Dj85l2ntJOZkLgmBBOJcX9Bb4U7I=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/sane/backends/airscan/default.nix b/pkgs/applications/graphics/sane/backends/airscan/default.nix
index 3cce81ef8af..d2ff4339890 100644
--- a/pkgs/applications/graphics/sane/backends/airscan/default.nix
+++ b/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, avahi, libsoup, libjpeg, libpng, gnutls
-, sane-backends, meson, ninja }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, avahi, libjpeg, libpng
+, libxml2, gnutls, sane-backends }:
 stdenv.mkDerivation rec {
   pname = "sane-airscan";
-  version = "0.99.16";
+  version = "0.99.24";
 
   nativeBuildInputs = [ meson ninja pkg-config ];
-  buildInputs = [ avahi libsoup libjpeg libpng gnutls sane-backends ];
+  buildInputs = [ avahi gnutls libjpeg libpng libxml2 sane-backends ];
 
   src = fetchFromGitHub {
     owner = "alexpevzner";
     repo = pname;
     rev = version;
-    sha256 = "00lgcdbpns0shwlpkvrpfm4z05s7v5q3al4kcw6ii7xnkzmv1721";
+    sha256 = "sha256-2zSLC9P7Q/GMefHvmrUz6nV2hgScb4BhPAkahNBouqk=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/graphics/sane/backends/default.nix b/pkgs/applications/graphics/sane/backends/default.nix
index ad2681d25fe..821a97e3587 100644
--- a/pkgs/applications/graphics/sane/backends/default.nix
+++ b/pkgs/applications/graphics/sane/backends/default.nix
@@ -1,10 +1,107 @@
-{ callPackage, fetchurl, ... } @ args:
+{ stdenv, lib, fetchurl, runtimeShell
+, gettext, pkg-config, python3
+, avahi, libgphoto2, libieee1284, libjpeg, libpng, libtiff, libusb1, libv4l, net-snmp
+, curl, systemd, libxml2, poppler
 
-callPackage ./generic.nix (args // rec {
-  version = "1.0.30";
+# List of { src name backend } attibute sets - see installFirmware below:
+, extraFirmware ? []
+
+# For backwards compatibility with older setups; use extraFirmware instead:
+, gt68xxFirmware ? null, snapscanFirmware ? null
+}:
+
+stdenv.mkDerivation {
+  pname = "sane-backends";
+  version = "1.0.32";
 
   src = fetchurl {
-    url = "https://gitlab.com/sane-project/backends/uploads/c3dd60c9e054b5dee1e7b01a7edc98b0/sane-backends-${version}.tar.gz";
-    sha256 = "18vryaycps3zpjzxh0wjgg8nv2f4pdvcfxxmdfj28qbzqjlrcp9z";
+    # raw checkouts of the repo do not work because, the configure script is
+    # only functional in manually uploaded release tarballs.
+    # https://gitlab.com/sane-project/backends/-/issues/440
+    # unfortunately this make the url unpredictable on update, to find the link
+    # go to https://gitlab.com/sane-project/backends/-/releases and choose
+    # the link with other in the URL.
+    url = "https://gitlab.com/sane-project/backends/uploads/104f09c07d35519cc8e72e604f11643f/sane-backends-1.0.32.tar.gz";
+    sha256 = "055iicihxa6b28iv5fnz13n67frdr5nrydq2c846f9x7q0vw4a1s";
+  };
+
+  outputs = [ "out" "doc" "man" ];
+
+  nativeBuildInputs = [
+    gettext
+    pkg-config
+    python3
+  ];
+
+  buildInputs = [
+    avahi
+    libgphoto2
+    libieee1284
+    libjpeg
+    libpng
+    libtiff
+    libusb1
+    libv4l
+    net-snmp
+    curl
+    systemd
+    libxml2
+    poppler
+  ];
+
+  enableParallelBuilding = true;
+
+  configureFlags =
+    lib.optional (avahi != null)   "--with-avahi"
+    ++ lib.optional (libusb1 != null) "--with-usb"
+  ;
+
+  postInstall = let
+
+    compatFirmware = extraFirmware
+      ++ lib.optional (gt68xxFirmware != null) {
+        src = gt68xxFirmware.fw;
+        inherit (gt68xxFirmware) name;
+        backend = "gt68xx";
+      }
+      ++ lib.optional (snapscanFirmware != null) {
+        src = snapscanFirmware;
+        name = "your-firmwarefile.bin";
+        backend = "snapscan";
+      };
+
+    installFirmware = f: ''
+      mkdir -p $out/share/sane/${f.backend}
+      ln -sv ${f.src} $out/share/sane/${f.backend}/${f.name}
+    '';
+
+  in ''
+    mkdir -p $out/etc/udev/rules.d/
+    ./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
+    cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
+    # the created 49-libsane references /bin/sh
+    substituteInPlace $out/etc/udev/rules.d/49-libsane.rules \
+      --replace "RUN+=\"/bin/sh" "RUN+=\"${runtimeShell}"
+
+    substituteInPlace $out/lib/libsane.la \
+      --replace "-ljpeg" "-L${lib.getLib libjpeg}/lib -ljpeg"
+
+    # net.conf conflicts with the file generated by the nixos module
+    rm $out/etc/sane.d/net.conf
+  '' + lib.concatStrings (builtins.map installFirmware compatFirmware);
+
+  meta = with lib; {
+    description = "SANE (Scanner Access Now Easy) backends";
+    longDescription = ''
+      Collection of open-source SANE backends (device drivers).
+      SANE is a universal scanner interface providing standardized access to
+      any raster image scanner hardware: flatbed scanners, hand-held scanners,
+      video- and still-cameras, frame-grabbers, etc. For a list of supported
+      scanners, see http://www.sane-project.org/sane-backends.html.
+    '';
+    homepage = "http://www.sane-project.org/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ peti ];
+    platforms = platforms.linux;
   };
-})
+}
diff --git a/pkgs/applications/graphics/sane/backends/generic.nix b/pkgs/applications/graphics/sane/backends/generic.nix
deleted file mode 100644
index 88d47b58932..00000000000
--- a/pkgs/applications/graphics/sane/backends/generic.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{ lib, stdenv
-, gettext, pkg-config
-, avahi, libgphoto2, libieee1284, libjpeg, libpng, libtiff, libusb1, libv4l, net-snmp
-
-# List of { src name backend } attibute sets - see installFirmware below:
-, extraFirmware ? []
-
-# For backwards compatibility with older setups; use extraFirmware instead:
-, gt68xxFirmware ? null, snapscanFirmware ? null
-
-# Passed from versioned package (e.g. default.nix, git.nix):
-, version, src, ...
-}:
-
-stdenv.mkDerivation {
-  inherit src version;
-
-  name = "sane-backends-${version}";
-
-  outputs = [ "out" "doc" "man" ];
-
-  nativeBuildInputs = [
-    gettext
-    pkg-config
-  ];
-
-  buildInputs = [
-    avahi
-    libgphoto2
-    libieee1284
-    libjpeg
-    libpng
-    libtiff
-    libusb1
-    libv4l
-    net-snmp
-  ];
-
-  enableParallelBuilding = true;
-
-  configureFlags = []
-    ++ lib.optional (avahi != null)   "--enable-avahi"
-    ++ lib.optional (libusb1 != null) "--with-usb"
-  ;
-
-  postInstall = let
-
-    compatFirmware = extraFirmware
-      ++ lib.optional (gt68xxFirmware != null) {
-        src = gt68xxFirmware.fw;
-        inherit (gt68xxFirmware) name;
-        backend = "gt68xx";
-      }
-      ++ lib.optional (snapscanFirmware != null) {
-        src = snapscanFirmware;
-        name = "your-firmwarefile.bin";
-        backend = "snapscan";
-      };
-
-    installFirmware = f: ''
-      mkdir -p $out/share/sane/${f.backend}
-      ln -sv ${f.src} $out/share/sane/${f.backend}/${f.name}
-    '';
-
-  in ''
-    mkdir -p $out/etc/udev/rules.d/
-    ./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
-    cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
-    # the created 49-libsane references /bin/sh
-    substituteInPlace $out/etc/udev/rules.d/49-libsane.rules \
-      --replace "RUN+=\"/bin/sh" "RUN+=\"${stdenv.shell}"
-
-    substituteInPlace $out/lib/libsane.la \
-      --replace "-ljpeg" "-L${libjpeg.out}/lib -ljpeg"
-
-    # net.conf conflicts with the file generated by the nixos module
-    rm -f $out/etc/sane.d/net.conf
-  '' + lib.concatStrings (builtins.map installFirmware compatFirmware);
-
-  meta = with lib; {
-    description = "SANE (Scanner Access Now Easy) backends";
-    longDescription = ''
-      Collection of open-source SANE backends (device drivers).
-      SANE is a universal scanner interface providing standardized access to
-      any raster image scanner hardware: flatbed scanners, hand-held scanners,
-      video- and still-cameras, frame-grabbers, etc. For a list of supported
-      scanners, see http://www.sane-project.org/sane-backends.html.
-    '';
-    homepage = "http://www.sane-project.org/";
-    license = licenses.gpl2Plus;
-
-    maintainers = with maintainers; [ peti ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/graphics/sane/backends/git.nix b/pkgs/applications/graphics/sane/backends/git.nix
deleted file mode 100644
index 2edd739068d..00000000000
--- a/pkgs/applications/graphics/sane/backends/git.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ callPackage, fetchgit, ... } @ args:
-
-callPackage ./generic.nix (args // {
-  version = "2017-12-01";
-  src = fetchgit {
-    sha256 = "0qf7d7268kdxnb723c03m6icxhbgx0vw8gqvck2q1w5b948dy9g8";
-    rev = "e895ee55bec8a3320a0e972b32c05d35b47fe226";
-    url = "https://gitlab.com/sane-project/backends.git";
-  };
-})
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index bd9ad301d34..204d87a59c4 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
     description = "Popular photo organizer for the GNOME desktop";
     homepage = "https://wiki.gnome.org/Apps/Shotwell";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [domenkozar];
+    maintainers = with maintainers; [];
     platforms = platforms.linux;
   };
 }
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/graphics/tesseract/wrapper.nix b/pkgs/applications/graphics/tesseract/wrapper.nix
index 313920d8154..1dfc4393c46 100644
--- a/pkgs/applications/graphics/tesseract/wrapper.nix
+++ b/pkgs/applications/graphics/tesseract/wrapper.nix
@@ -17,7 +17,7 @@ let
   tesseractWithData = tesseractBase.overrideAttrs (_: {
     inherit tesseractBase tessdata;
 
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
 
     buildCommand = ''
       makeWrapper {$tesseractBase,$out}/bin/tesseract --set-default TESSDATA_PREFIX $out/share/tessdata
diff --git a/pkgs/applications/graphics/unigine-valley/default.nix b/pkgs/applications/graphics/unigine-valley/default.nix
index 0c5c8f3ff28..3187f573de7 100644
--- a/pkgs/applications/graphics/unigine-valley/default.nix
+++ b/pkgs/applications/graphics/unigine-valley/default.nix
@@ -38,7 +38,7 @@ in
     sourceRoot = "Unigine_Valley-${version}";
     instPath = "lib/unigine/valley";
 
-    buildInputs = [file makeWrapper];
+    nativeBuildInputs = [file makeWrapper];
 
     libPath = lib.makeLibraryPath [
       stdenv.cc.cc  # libstdc++.so.6
diff --git a/pkgs/applications/graphics/yed/default.nix b/pkgs/applications/graphics/yed/default.nix
index 8a498fbe7ea..d2873f64142 100644
--- a/pkgs/applications/graphics/yed/default.nix
+++ b/pkgs/applications/graphics/yed/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yEd";
-  version = "3.20.1";
+  version = "3.21.1";
 
   src = fetchzip {
     url = "https://www.yworks.com/resources/yed/demo/${pname}-${version}.zip";
-    sha256 = "0sd73s700f3gqq5zq1psrqjg6ff2gv49f8vd37v6bv65vdxqxryq";
+    sha256 = "1jw28hkd7p0n660gid8yh5y0kdcz6ycn4hsgjlf0pq48x9kv6w0c";
   };
 
   nativeBuildInputs = [ makeWrapper unzip wrapGAppsHook ];
diff --git a/pkgs/applications/graphics/zgrviewer/default.nix b/pkgs/applications/graphics/zgrviewer/default.nix
index c47c41a1cdc..b5fc70494fc 100644
--- a/pkgs/applications/graphics/zgrviewer/default.nix
+++ b/pkgs/applications/graphics/zgrviewer/default.nix
@@ -6,7 +6,8 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/zvtm/${pname}/${version}/${pname}-${version}.zip";
     sha256 = "1yg2rck81sqqrgfi5kn6c1bz42dr7d0zqpcsdjhicssi1y159f23";
   };
-  buildInputs = [jre unzip];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [jre];
   buildPhase = "";
   installPhase = ''
     mkdir -p "$out"/{bin,share/java/zvtm/plugins,share/doc/zvtm}
diff --git a/pkgs/applications/kde/akonadi-contacts.nix b/pkgs/applications/kde/akonadi-contacts.nix
index 2076723a372..ad94c79e0f3 100644
--- a/pkgs/applications/kde/akonadi-contacts.nix
+++ b/pkgs/applications/kde/akonadi-contacts.nix
@@ -2,9 +2,9 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules,
   qtwebengine,
-  grantlee,
+  grantlee, grantleetheme,
   kdbusaddons, ki18n, kiconthemes, kio, kitemmodels, ktextwidgets, prison,
-  akonadi, akonadi-mime, kcontacts, kmime,
+  akonadi, akonadi-mime, kcontacts, kmime, libkleo,
 }:
 
 mkDerivation {
@@ -16,9 +16,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     qtwebengine
-    grantlee
+    grantlee grantleetheme
     kdbusaddons ki18n kiconthemes kio kitemmodels ktextwidgets prison
-    akonadi-mime kcontacts kmime
+    akonadi-mime kcontacts kmime libkleo
   ];
   propagatedBuildInputs = [ akonadi ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch b/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
index 58390cba226..3e5ccc9cdaa 100644
--- a/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
+++ b/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
@@ -1,6 +1,6 @@
-From 90969b9b36400d47b1afe761fb8468c1acb8a04a Mon Sep 17 00:00:00 2001
+From f4d718502ecd8242500078a7783e27caba72871e Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:19 -0500
+Date: Sun, 31 Jan 2021 11:00:03 -0600
 Subject: [PATCH 1/3] akonadi paths
 
 ---
@@ -11,10 +11,10 @@ Subject: [PATCH 1/3] akonadi paths
  4 files changed, 11 insertions(+), 40 deletions(-)
 
 diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
-index 23b4a1f..c13b658 100644
+index 31e0cf2..6436e87 100644
 --- a/src/akonadicontrol/agentmanager.cpp
 +++ b/src/akonadicontrol/agentmanager.cpp
-@@ -61,7 +61,7 @@ public:
+@@ -48,7 +48,7 @@ public:
                  []() {
                      QCoreApplication::instance()->exit(255);
                  });
@@ -23,7 +23,7 @@ index 23b4a1f..c13b658 100644
      }
  
      ~StorageProcessControl() override
-@@ -84,7 +84,7 @@ public:
+@@ -70,7 +70,7 @@ public:
                  []() {
                      qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
                  });
@@ -33,10 +33,10 @@ index 23b4a1f..c13b658 100644
  
      ~AgentServerProcessControl() override
 diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
-index 4e58f7e..e8bb532 100644
+index c98946c..aa307ca 100644
 --- a/src/akonadicontrol/agentprocessinstance.cpp
 +++ b/src/akonadicontrol/agentprocessinstance.cpp
-@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
+@@ -49,7 +49,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
      } else {
          Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
          const QStringList arguments = QStringList() << executable << identifier();
@@ -46,10 +46,10 @@ index 4e58f7e..e8bb532 100644
      }
      return true;
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
-index cac40f5..527649b 100644
+index d595a3a..99324f6 100644
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -83,7 +83,6 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -69,7 +69,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -57,7 +57,7 @@ index cac40f5..527649b 100644
      QString defaultCleanShutdownCommand;
  
  #ifndef Q_OS_WIN
-@@ -92,16 +91,7 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -78,16 +77,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
  #endif
  
      const bool defaultInternalServer = true;
@@ -75,7 +75,7 @@ index cac40f5..527649b 100644
      if (!mysqladminPath.isEmpty()) {
  #ifndef Q_OS_WIN
          defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/%4 shutdown")
-@@ -111,10 +101,10 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -97,10 +87,10 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
  #endif
      }
  
@@ -88,7 +88,7 @@ index cac40f5..527649b 100644
      qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
  
      mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
-@@ -131,7 +121,7 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -117,7 +107,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -97,7 +97,7 @@ index cac40f5..527649b 100644
      mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
      settings.endGroup();
  
-@@ -141,9 +131,6 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -127,9 +117,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
          // intentionally not namespaced as we are the only one in this db instance when using internal mode
          mDatabaseName = QStringLiteral("akonadi");
      }
@@ -107,17 +107,17 @@ index cac40f5..527649b 100644
  
      qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
  
-@@ -152,9 +139,6 @@ bool DbConfigMysql::init(QSettings &settings)
-     settings.setValue(QStringLiteral("Name"), mDatabaseName);
-     settings.setValue(QStringLiteral("Host"), mHostName);
-     settings.setValue(QStringLiteral("Options"), mConnectionOptions);
--    if (!mMysqldPath.isEmpty()) {
--        settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
--    }
-     settings.setValue(QStringLiteral("StartServer"), mInternalServer);
-     settings.endGroup();
-     settings.sync();
-@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -139,9 +126,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+         settings.setValue(QStringLiteral("Name"), mDatabaseName);
+         settings.setValue(QStringLiteral("Host"), mHostName);
+         settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+-        if (!mMysqldPath.isEmpty()) {
+-            settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
+-        }
+         settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+         settings.endGroup();
+         settings.sync();
+@@ -214,7 +198,7 @@ bool DbConfigMysql::startInternalServer()
  #endif
  
      // generate config file
@@ -127,10 +127,10 @@ index cac40f5..527649b 100644
      const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
      if (globalConfig.isEmpty()) {
 diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
-index 09cdbd5..1c8996b 100644
+index dd273fc..05288d9 100644
 --- a/src/server/storage/dbconfigpostgresql.cpp
 +++ b/src/server/storage/dbconfigpostgresql.cpp
-@@ -141,9 +141,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -127,9 +127,7 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -140,7 +140,7 @@ index 09cdbd5..1c8996b 100644
      QString defaultPgData;
  
  #ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
-@@ -154,12 +152,8 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -140,12 +138,8 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
  
      mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
      if (mInternalServer) {
@@ -154,7 +154,7 @@ index 09cdbd5..1c8996b 100644
          defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
      }
  
-@@ -178,20 +172,14 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -164,20 +158,14 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -177,14 +177,14 @@ index 09cdbd5..1c8996b 100644
      qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
      mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
      if (mPgData.isEmpty()) {
-@@ -207,7 +195,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
-         settings.setValue(QStringLiteral("Port"), mHostPort);
-     }
-     settings.setValue(QStringLiteral("Options"), mConnectionOptions);
--    settings.setValue(QStringLiteral("ServerPath"), mServerPath);
-     settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
-     settings.setValue(QStringLiteral("StartServer"), mInternalServer);
-     settings.endGroup();
+@@ -194,7 +182,6 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
+             settings.setValue(QStringLiteral("Port"), mHostPort);
+         }
+         settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+-        settings.setValue(QStringLiteral("ServerPath"), mServerPath);
+         settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
+         settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+         settings.endGroup();
 -- 
-2.25.4
+2.29.2
 
diff --git a/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch b/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
index ac9b3146e17..24f59f67916 100644
--- a/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
+++ b/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
@@ -1,6 +1,6 @@
-From b8c6a2a017321649db8fec553a644b8da2300514 Mon Sep 17 00:00:00 2001
+From badd4be311afd37a99126c60490f1ae5daced6c4 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:35 -0500
+Date: Sun, 31 Jan 2021 11:00:15 -0600
 Subject: [PATCH 2/3] akonadi timestamps
 
 ---
@@ -8,10 +8,10 @@ Subject: [PATCH 2/3] akonadi timestamps
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
-index 527649b..08c3dd4 100644
+index 99324f6..3c170a8 100644
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -240,8 +240,7 @@ bool DbConfigMysql::startInternalServer()
      bool confUpdate = false;
      QFile actualFile(actualConfig);
      // update conf only if either global (or local) is newer than actual
@@ -22,5 +22,5 @@ index 527649b..08c3dd4 100644
          QFile localFile(localConfig);
          if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
 -- 
-2.25.4
+2.29.2
 
diff --git a/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch b/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
index 1a0bc000c80..3aa61da73e4 100644
--- a/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
+++ b/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
@@ -1,6 +1,6 @@
-From 7afe018382cf68b477b35f87b666424d62d19ef4 Mon Sep 17 00:00:00 2001
+From 82bfa975af60757374ffad787e56a981d6df0f98 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:55 -0500
+Date: Sun, 31 Jan 2021 11:01:24 -0600
 Subject: [PATCH 3/3] akonadi revert make relocatable
 
 ---
@@ -9,10 +9,10 @@ Subject: [PATCH 3/3] akonadi revert make relocatable
  2 files changed, 3 insertions(+), 6 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d927471..83a74c0 100644
+index 4bb5fec..35720b4 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -330,9 +330,6 @@ configure_package_config_file(
+@@ -343,9 +343,6 @@ configure_package_config_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
      "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
      INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
@@ -23,29 +23,23 @@ index d927471..83a74c0 100644
  
  install(FILES
 diff --git a/KF5AkonadiConfig.cmake.in b/KF5AkonadiConfig.cmake.in
-index 421e1df..e3abf27 100644
+index bcf7320..1574319 100644
 --- a/KF5AkonadiConfig.cmake.in
 +++ b/KF5AkonadiConfig.cmake.in
-@@ -24,8 +24,8 @@ if(BUILD_TESTING)
-     find_dependency(Qt5Test "@QT_REQUIRED_VERSION@")
- endif()
+@@ -1,10 +1,10 @@
+ @PACKAGE_INIT@
  
 -set_and_check(AKONADI_DBUS_INTERFACES_DIR  "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
 -set_and_check(AKONADI_INCLUDE_DIR          "@PACKAGE_AKONADI_INCLUDE_DIR@")
 +set_and_check(AKONADI_DBUS_INTERFACES_DIR  "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
 +set_and_check(AKONADI_INCLUDE_DIR          "@AKONADI_INCLUDE_DIR@")
  
- find_dependency(Boost "@Boost_MINIMUM_VERSION@")
- 
-@@ -33,7 +33,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiTargets.cmake)
- include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiMacros.cmake)
- 
  # The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed
 -set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@")
 +set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@")
  
- ####################################################################################
- # CMAKE_AUTOMOC
+ # set the directories
+ if(NOT AKONADI_INSTALL_DIR)
 -- 
-2.25.4
+2.29.2
 
diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix
index d24e19f89e7..fd662d7e992 100644
--- a/pkgs/applications/kde/akonadi/default.nix
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -2,8 +2,8 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, shared-mime-info, qtbase, accounts-qt,
   boost, kaccounts-integration, kcompletion, kconfigwidgets, kcrash, kdbusaddons,
-  kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
-  signond,
+  kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mariadb, qttools,
+  signond, xz,
 }:
 
 mkDerivation {
@@ -21,15 +21,15 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
     kaccounts-integration kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin
-    ki18n kiconthemes kio kwindowsystem accounts-qt qttools signond
+    ki18n kiconthemes kio kwindowsystem xz accounts-qt qttools signond
   ];
   propagatedBuildInputs = [ boost kitemmodels ];
   outputs = [ "out" "dev" ];
   CXXFLAGS = [
-    ''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.getBin mysql}/bin/mysqld\"''
-    ''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.getBin mysql}/bin/mysqladmin\"''
-    ''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.getBin mysql}/bin/mysql_install_db\"''
-    ''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.getBin mysql}/bin/mysqlcheck\"''
+    ''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.getBin mariadb}/bin/mysqld\"''
+    ''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.getBin mariadb}/bin/mysqladmin\"''
+    ''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.getBin mariadb}/bin/mysql_install_db\"''
+    ''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.getBin mariadb}/bin/mysqlcheck\"''
     ''-DNIXPKGS_POSTGRES_PG_CTL=\"\"''
     ''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"\"''
     ''-DNIXPKGS_POSTGRES_INITDB=\"\"''
diff --git a/pkgs/applications/kde/ark/default.nix b/pkgs/applications/kde/ark/default.nix
index 69a56254d65..ef27380a330 100644
--- a/pkgs/applications/kde/ark/default.nix
+++ b/pkgs/applications/kde/ark/default.nix
@@ -1,18 +1,12 @@
-{
-  mkDerivation, lib, config,
-
-  extra-cmake-modules, kdoctools,
-
-  breeze-icons, karchive, kconfig, kcrash, kdbusaddons, ki18n,
-  kiconthemes, kitemmodels, khtml, kio, kparts, kpty, kservice, kwidgetsaddons,
-
-  libarchive, libzip,
-
-  # Archive tools
-  p7zip, lrzip,
-
-  # Unfree tools
-  unfreeEnableUnrar ? false, unrar,
+{ mkDerivation, lib, config
+, extra-cmake-modules, kdoctools
+, breeze-icons, karchive, kconfig, kcrash, kdbusaddons, ki18n
+, kiconthemes, kitemmodels, khtml, kio, kparts, kpty, kservice, kwidgetsaddons
+, libarchive, libzip
+# Archive tools
+, p7zip, lrzip
+# Unfree tools
+, unfreeEnableUnrar ? false, unrar
 }:
 
 let
@@ -21,20 +15,23 @@ in
 
 mkDerivation {
   pname = "ark";
-  meta = {
-    description = "Graphical file compression/decompression utility";
-    license = with lib.licenses;
-      [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree;
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
 
   outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
   buildInputs = [ libarchive libzip ] ++ extraTools;
+
   propagatedBuildInputs = [
     breeze-icons karchive kconfig kcrash kdbusaddons khtml ki18n kiconthemes kio
     kitemmodels kparts kpty kservice kwidgetsaddons
   ];
 
   qtWrapperArgs = [ "--prefix" "PATH" ":" (lib.makeBinPath extraTools) ];
+
+  meta = with lib; {
+    description = "Graphical file compression/decompression utility";
+    license = with licenses; [ gpl2 lgpl3 ] ++ optional unfreeEnableUnrar unfree;
+    maintainers = [ maintainers.ttuegel ];
+  };
 }
diff --git a/pkgs/applications/kde/calendarsupport.nix b/pkgs/applications/kde/calendarsupport.nix
index b316ab4e568..c7ef5c4615c 100644
--- a/pkgs/applications/kde/calendarsupport.nix
+++ b/pkgs/applications/kde/calendarsupport.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam, fetchpatch,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils, kdepim-apps-libs,
+  akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils,
   kholidays, kidentitymanagement, kmime, pimcommon, qttools,
 }:
 
@@ -11,16 +11,9 @@ mkDerivation {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
-  patches = [
-    # Patch for Qt 5.15.2 until version 20.12.0
-    (fetchpatch {
-      url = "https://invent.kde.org/pim/calendarsupport/-/commit/b4193facb223bd5b73a65318dec8ced51b66adf7.patch";
-      sha256 = "sha256:1da11rqbxxrl06ld3avc41p064arz4n6w5nxq8r008v8ws3s64dy";
-    })
-  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi akonadi-mime akonadi-notes kcalutils kdepim-apps-libs kholidays pimcommon qttools
+    akonadi akonadi-mime akonadi-notes kcalutils kholidays pimcommon qttools
   ];
   propagatedBuildInputs = [ akonadi-calendar kidentitymanagement kmime ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 33f392fdccc..f8719c353b0 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -91,6 +91,7 @@ let
       kalarm = callPackage ./kalarm.nix {};
       kalarmcal = callPackage ./kalarmcal.nix {};
       kalzium = callPackage ./kalzium.nix {};
+      kamoso = callPackage ./kamoso.nix {};
       kapman = callPackage ./kapman.nix {};
       kapptemplate = callPackage ./kapptemplate.nix { };
       kate = callPackage ./kate.nix {};
@@ -109,10 +110,9 @@ let
       kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {};
       kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {};
       kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix {};
-      kdenlive = callPackage ./kdenlive.nix {};
+      kdenlive = callPackage ./kdenlive {};
       kdepim-runtime = callPackage ./kdepim-runtime {};
       kdepim-addons = callPackage ./kdepim-addons.nix {};
-      kdepim-apps-libs = callPackage ./kdepim-apps-libs {};
       kdf = callPackage ./kdf.nix {};
       kdialog = callPackage ./kdialog.nix {};
       kdiamond = callPackage ./kdiamond.nix {};
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index 3774c7e00b6..a558ad26677 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -5,7 +5,7 @@
   kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
   kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
   kparts, ktexteditor, kwindowsystem, phonon, solid,
-  wayland, qtwayland
+  wayland, qtbase, qtwayland
 }:
 
 mkDerivation {
@@ -13,6 +13,7 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 fdl12 ];
     maintainers = [ lib.maintainers.ttuegel ];
+    broken = lib.versionOlder qtbase.version "5.14";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedUserEnvPkgs = [ baloo ];
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index e3bba77f972..861cd5f8356 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/release-service/20.08.3/src -A '*.tar.xz' )
+WGET_ARGS=( http://download.kde.org/stable/release-service/20.12.2/src -A '*.tar.xz' )
diff --git a/pkgs/applications/kde/ffmpegthumbs.nix b/pkgs/applications/kde/ffmpegthumbs.nix
index 2a8b82352b4..b8695a30154 100644
--- a/pkgs/applications/kde/ffmpegthumbs.nix
+++ b/pkgs/applications/kde/ffmpegthumbs.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  ffmpeg_3, kio
+  ffmpeg_4, kio, taglib
 }:
 
 mkDerivation {
@@ -11,5 +11,5 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ ffmpeg_3 kio ];
+  buildInputs = [ ffmpeg_4 kio taglib ];
 }
diff --git a/pkgs/applications/kde/filelight.nix b/pkgs/applications/kde/filelight.nix
index 1aeff531862..95a89b01b8c 100644
--- a/pkgs/applications/kde/filelight.nix
+++ b/pkgs/applications/kde/filelight.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kio, kparts, kxmlgui, qtscript, solid
+  kio, kparts, kxmlgui, qtbase, qtscript, solid
 }:
 
 mkDerivation {
@@ -9,6 +9,7 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ fridh vcunat ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
diff --git a/pkgs/applications/kde/incidenceeditor.nix b/pkgs/applications/kde/incidenceeditor.nix
index 981c184d151..7f2c284ad74 100644
--- a/pkgs/applications/kde/incidenceeditor.nix
+++ b/pkgs/applications/kde/incidenceeditor.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-mime, calendarsupport, eventviews, kdepim-apps-libs,
+  akonadi, akonadi-mime, calendarsupport, eventviews,
   kdiagram, kldap, kmime, pimcommon, qtbase
 }:
 
@@ -13,7 +13,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi akonadi-mime calendarsupport eventviews kdepim-apps-libs kdiagram
+    akonadi akonadi-mime calendarsupport eventviews kdiagram
     kldap kmime pimcommon qtbase
   ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/kaddressbook.nix b/pkgs/applications/kde/kaddressbook.nix
index 452c5142157..2672d815fb0 100644
--- a/pkgs/applications/kde/kaddressbook.nix
+++ b/pkgs/applications/kde/kaddressbook.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam, fetchpatch,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-search, grantlee, grantleetheme, kcmutils, kcompletion,
-  kcrash, kdbusaddons, kdepim-apps-libs, ki18n, kontactinterface, kparts,
+  kcrash, kdbusaddons, ki18n, kontactinterface, kparts,
   kpimtextedit, kxmlgui, libkdepim, libkleo, mailcommon, pimcommon, prison,
   qgpgme, qtbase,
 }:
@@ -13,17 +13,10 @@ mkDerivation {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
-  patches = [
-    # Patch for Qt 5.15.2 until version 20.12.0
-    (fetchpatch {
-      url = "https://invent.kde.org/pim/kaddressbook/-/commit/8aee8d40ae2a1c920d3520163d550d3b49720226.patch";
-      sha256 = "sha256:0dsy119cd5w9khiwgk6fb7xnjzmj94rfphf327k331lf15zq4853";
-    })
-  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-search grantlee grantleetheme kcmutils kcompletion kcrash
-    kdbusaddons kdepim-apps-libs ki18n kontactinterface kparts kpimtextedit
+    kdbusaddons ki18n kontactinterface kparts kpimtextedit
     kxmlgui libkdepim libkleo mailcommon pimcommon prison qgpgme qtbase
   ];
 }
diff --git a/pkgs/applications/kde/kalarm.nix b/pkgs/applications/kde/kalarm.nix
index 70ee3f74185..8709f26bd12 100644
--- a/pkgs/applications/kde/kalarm.nix
+++ b/pkgs/applications/kde/kalarm.nix
@@ -3,12 +3,13 @@
   extra-cmake-modules,
 
   kauth, kcodecs, kcompletion, kconfig, kconfigwidgets, kdbusaddons, kdoctools,
-  kguiaddons, ki18n, kiconthemes, kjobwidgets, kcmutils, kdelibs4support, kio,
-  knotifications, kservice, kwidgetsaddons, kwindowsystem, kxmlgui, phonon,
+  kguiaddons, ki18n, kiconthemes, kidletime, kjobwidgets, kcmutils,
+  kdelibs4support, kio, knotifications, knotifyconfig, kservice, kwidgetsaddons,
+  kwindowsystem, kxmlgui, phonon,
 
   kimap, akonadi, akonadi-contacts, akonadi-mime, kalarmcal, kcalendarcore, kcalutils,
   kholidays, kidentitymanagement, libkdepim, mailcommon, kmailtransport, kmime,
-  pimcommon, kpimtextedit, kdepim-apps-libs, messagelib,
+  pimcommon, kpimtextedit, messagelib,
 
   qtx11extras,
 
@@ -24,12 +25,13 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kauth kcodecs kcompletion kconfig kconfigwidgets kdbusaddons kdoctools
-    kguiaddons ki18n kiconthemes kjobwidgets kcmutils kdelibs4support kio
-    knotifications kservice kwidgetsaddons kwindowsystem kxmlgui phonon
+    kguiaddons ki18n kiconthemes kidletime kjobwidgets kcmutils kdelibs4support
+    kio knotifications knotifyconfig kservice kwidgetsaddons kwindowsystem
+    kxmlgui phonon
 
-    kimap akonadi akonadi-contacts akonadi-mime kalarmcal kcalendarcore kcalutils
-    kholidays kidentitymanagement libkdepim mailcommon kmailtransport kmime
-    pimcommon kpimtextedit kdepim-apps-libs messagelib
+    kimap akonadi akonadi-contacts akonadi-mime kalarmcal kcalendarcore
+    kcalutils kholidays kidentitymanagement libkdepim mailcommon kmailtransport
+    kmime pimcommon kpimtextedit messagelib
 
     qtx11extras
   ];
diff --git a/pkgs/applications/kde/kamoso.nix b/pkgs/applications/kde/kamoso.nix
new file mode 100644
index 00000000000..3e5eb53858f
--- /dev/null
+++ b/pkgs/applications/kde/kamoso.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, kdoctools
+, wrapQtAppsHook
+, qtdeclarative
+, qtgraphicaleffects
+, qtquickcontrols2
+, kirigami2
+, kpurpose
+, gst_all_1
+, pcre
+}:
+
+let
+  gst = with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad ];
+
+in
+mkDerivation {
+  pname = "kamoso";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
+  buildInputs = [ pcre ] ++ gst;
+  propagatedBuildInputs = [
+    qtdeclarative
+    qtgraphicaleffects
+    qtquickcontrols2
+    kirigami2
+    kpurpose
+  ];
+
+  cmakeFlags = [
+    "-DOpenGL_GL_PREFERENCE=GLVND"
+    "-DGSTREAMER_VIDEO_INCLUDE_DIR=${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"
+  ];
+
+  qtWrapperArgs = [
+    "--prefix GST_PLUGIN_PATH : ${lib.makeSearchPath "lib/gstreamer-1.0" gst}"
+  ];
+
+  meta.license = with lib.licenses; [ lgpl21Only gpl3Only ];
+}
diff --git a/pkgs/applications/kde/kcachegrind.nix b/pkgs/applications/kde/kcachegrind.nix
index 308ed35dc4e..72c22c21ec5 100644
--- a/pkgs/applications/kde/kcachegrind.nix
+++ b/pkgs/applications/kde/kcachegrind.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  karchive, ki18n, kio, perl, python, php, qttools
+  karchive, ki18n, kio, perl, python3, php, qttools
   , kdbusaddons
 }:
 
@@ -12,5 +12,5 @@ mkDerivation {
     maintainers = with lib.maintainers; [ orivej ];
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ karchive ki18n kio perl python php qttools kdbusaddons ];
+  buildInputs = [ karchive ki18n kio perl python3 php qttools kdbusaddons ];
 }
diff --git a/pkgs/applications/kde/kdebugsettings.nix b/pkgs/applications/kde/kdebugsettings.nix
index f4dd7ec145d..7f24ec8e2fc 100644
--- a/pkgs/applications/kde/kdebugsettings.nix
+++ b/pkgs/applications/kde/kdebugsettings.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   gettext,
   kcoreaddons, kconfig, kdbusaddons, kwidgetsaddons, kitemviews, kcompletion,
-  python
+  qtbase, python3
 }:
 
 mkDerivation {
@@ -11,10 +11,11 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.rittelle ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    gettext kcoreaddons kconfig kdbusaddons kwidgetsaddons kitemviews kcompletion python
+    gettext kcoreaddons kconfig kdbusaddons kwidgetsaddons kitemviews kcompletion python3
   ];
   propagatedUserEnvPkgs = [ ];
 }
diff --git a/pkgs/applications/kde/kdenetwork-filesharing.nix b/pkgs/applications/kde/kdenetwork-filesharing.nix
index 94656b02671..a7da03ffdd1 100644
--- a/pkgs/applications/kde/kdenetwork-filesharing.nix
+++ b/pkgs/applications/kde/kdenetwork-filesharing.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kcoreaddons, ki18n, kio, kwidgetsaddons, samba
+  kcoreaddons, kdeclarative, ki18n, kio, kwidgetsaddons, samba, qtbase,
 }:
 
 mkDerivation {
@@ -9,7 +9,8 @@ mkDerivation {
   meta = {
     license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ kcoreaddons ki18n kio kwidgetsaddons samba ];
+  buildInputs = [ kcoreaddons kdeclarative ki18n kio kwidgetsaddons samba ];
 }
diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive/default.nix
index 47afcd0a67e..47afcd0a67e 100644
--- a/pkgs/applications/kde/kdenlive.nix
+++ b/pkgs/applications/kde/kdenlive/default.nix
diff --git a/pkgs/applications/kde/ffmpeg-path.patch b/pkgs/applications/kde/kdenlive/ffmpeg-path.patch
index a0cef882f59..a0cef882f59 100644
--- a/pkgs/applications/kde/ffmpeg-path.patch
+++ b/pkgs/applications/kde/kdenlive/ffmpeg-path.patch
diff --git a/pkgs/applications/kde/mlt-path.patch b/pkgs/applications/kde/kdenlive/mlt-path.patch
index 9bfb66c1a83..9bfb66c1a83 100644
--- a/pkgs/applications/kde/mlt-path.patch
+++ b/pkgs/applications/kde/kdenlive/mlt-path.patch
diff --git a/pkgs/applications/kde/kdepim-addons.nix b/pkgs/applications/kde/kdepim-addons.nix
index 0939b0ecd26..42532644a1a 100644
--- a/pkgs/applications/kde/kdepim-addons.nix
+++ b/pkgs/applications/kde/kdepim-addons.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, shared-mime-info,
   akonadi-import-wizard, akonadi-notes, calendarsupport, eventviews,
   incidenceeditor, kcalendarcore, kcalutils, kconfig, kdbusaddons, kdeclarative,
-  kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
+  kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
   libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass,
   kitinerary, kontactinterface
 }:
@@ -18,7 +18,7 @@ mkDerivation {
   buildInputs = [
     akonadi-import-wizard akonadi-notes calendarsupport eventviews
     incidenceeditor kcalendarcore kcalutils kconfig kdbusaddons kdeclarative
-    kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar
+    kholidays ki18n kmime ktexteditor ktnef libgravatar
     libksieve mailcommon mailimporter messagelib poppler prison kpkpass
     kitinerary kontactinterface
   ];
diff --git a/pkgs/applications/kde/kdepim-apps-libs/default.nix b/pkgs/applications/kde/kdepim-apps-libs/default.nix
deleted file mode 100644
index 19f476fd781..00000000000
--- a/pkgs/applications/kde/kdepim-apps-libs/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  mkDerivation, lib, kdepimTeam,
-  extra-cmake-modules, kdoctools,
-  akonadi, akonadi-contacts, grantlee, grantleetheme, kconfig, kconfigwidgets,
-  kcontacts, ki18n, kiconthemes, kio, libkleo, pimcommon, prison,
-}:
-
-mkDerivation {
-  pname = "kdepim-apps-libs";
-  meta = {
-    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-    maintainers = kdepimTeam;
-  };
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [
-    akonadi akonadi-contacts grantlee grantleetheme kconfig kconfigwidgets
-    kcontacts ki18n kiconthemes kio libkleo pimcommon prison
-  ];
-  outputs = [ "out" "dev" ];
-}
diff --git a/pkgs/applications/kde/kmail.nix b/pkgs/applications/kde/kmail.nix
index fa3fe033035..e742f566678 100644
--- a/pkgs/applications/kde/kmail.nix
+++ b/pkgs/applications/kde/kmail.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi-search, kbookmarks, kcalutils, kcmutils, kcompletion, kconfig,
-  kconfigwidgets, kcoreaddons, kdelibs4support, kdepim-apps-libs, libkdepim,
+  kconfigwidgets, kcoreaddons, kdelibs4support, libkdepim,
   kdepim-runtime, kguiaddons, ki18n, kiconthemes, kinit, kio, kldap,
   kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
   kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
@@ -19,7 +19,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi-search kbookmarks kcalutils kcmutils kcompletion kconfig
-    kconfigwidgets kcoreaddons kdelibs4support kdepim-apps-libs kguiaddons ki18n
+    kconfigwidgets kcoreaddons kdelibs4support kguiaddons ki18n
     kiconthemes kinit kio kldap kmail-account-wizard kmailtransport libkdepim
     knotifications knotifyconfig kontactinterface kparts kpty kservice
     ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
diff --git a/pkgs/applications/kde/kompare.nix b/pkgs/applications/kde/kompare.nix
index a449a1e4f51..d4d49c6a942 100644
--- a/pkgs/applications/kde/kompare.nix
+++ b/pkgs/applications/kde/kompare.nix
@@ -12,15 +12,5 @@ mkDerivation {
   buildInputs = [
     kiconthemes kparts ktexteditor kwidgetsaddons libkomparediff2
   ];
-
-  patches = [
-    (fetchpatch {
-      # Portaway from Obsolete methods of QPrinter
-      # Part of v20.12.0
-      url = "https://invent.kde.org/sdk/kompare/-/commit/68d3eee36c48a2f44ccfd3f9e5a36311b829104b.patch";
-      sha256 = "B2i5n5cUDjCqTEF0OyTb1+LhPa5yWCnFycwijf35kwU=";
-    })
-  ];
-
   outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/konqueror.nix b/pkgs/applications/kde/konqueror.nix
index 72fcf8ff220..eb188ccef11 100644
--- a/pkgs/applications/kde/konqueror.nix
+++ b/pkgs/applications/kde/konqueror.nix
@@ -2,7 +2,7 @@
 , mkDerivation
 , extra-cmake-modules, kdoctools
 , kdelibs4support, kcmutils, khtml, kdesu
-, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
+, qtbase, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
 }:
 
 mkDerivation {
@@ -24,5 +24,6 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
 }
diff --git a/pkgs/applications/kde/kontact.nix b/pkgs/applications/kde/kontact.nix
index 3dfa28e9dfe..801c6845e40 100644
--- a/pkgs/applications/kde/kontact.nix
+++ b/pkgs/applications/kde/kontact.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   qtwebengine,
   kcmutils, kcrash, kdbusaddons, kparts, kwindowsystem,
-  akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit,
+  akonadi, grantleetheme, kontactinterface, kpimtextedit,
   mailcommon, libkdepim, pimcommon
 }:
 
@@ -17,7 +17,7 @@ mkDerivation {
   buildInputs = [
     qtwebengine
     kcmutils kcrash kdbusaddons kparts kwindowsystem
-    akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit
+    akonadi grantleetheme kontactinterface kpimtextedit
     mailcommon libkdepim pimcommon
   ];
 }
diff --git a/pkgs/applications/kde/korganizer.nix b/pkgs/applications/kde/korganizer.nix
index f28e0406b13..a6a28427772 100644
--- a/pkgs/applications/kde/korganizer.nix
+++ b/pkgs/applications/kde/korganizer.nix
@@ -5,7 +5,7 @@
   phonon,
   knewstuff,
   akonadi-calendar, akonadi-contacts, akonadi-notes, akonadi-search,
-  calendarsupport, eventviews, incidenceeditor, kcalutils, kdepim-apps-libs,
+  calendarsupport, eventviews, incidenceeditor, kcalutils,
   kholidays, kidentitymanagement, kldap, kmailtransport, kontactinterface,
   kpimtextedit, pimcommon,
 }:
@@ -22,7 +22,7 @@ mkDerivation {
     phonon
     knewstuff
     akonadi-calendar akonadi-contacts akonadi-notes akonadi-search
-    calendarsupport eventviews incidenceeditor kcalutils kdepim-apps-libs
+    calendarsupport eventviews incidenceeditor kcalutils
     kholidays kidentitymanagement kldap kmailtransport kontactinterface
     kpimtextedit pimcommon
   ];
diff --git a/pkgs/applications/kde/kpat.nix b/pkgs/applications/kde/kpat.nix
index d1e47af6b72..96bd6dd542e 100644
--- a/pkgs/applications/kde/kpat.nix
+++ b/pkgs/applications/kde/kpat.nix
@@ -5,6 +5,7 @@
 , shared-mime-info
 , libkdegames
 , freecell-solver
+, black-hole-solver
 }:
 
 mkDerivation {
@@ -14,6 +15,7 @@ mkDerivation {
     shared-mime-info
   ];
   buildInputs = [
+    black-hole-solver
     knewstuff
     libkdegames
     freecell-solver
diff --git a/pkgs/applications/kde/krdc.nix b/pkgs/applications/kde/krdc.nix
index 01cc39d9895..b0e79b0ff89 100644
--- a/pkgs/applications/kde/krdc.nix
+++ b/pkgs/applications/kde/krdc.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools, makeWrapper,
   kcmutils, kcompletion, kconfig, kdnssd, knotifyconfig, kwallet, kwidgetsaddons,
-  kwindowsystem, libvncserver, freerdp
+  kwindowsystem, libvncserver, freerdp, qtbase,
 }:
 
 mkDerivation {
@@ -21,5 +21,6 @@ mkDerivation {
     license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
+    broken = lib.versionOlder qtbase.version "5.14";
   };
 }
diff --git a/pkgs/applications/kde/libksane.nix b/pkgs/applications/kde/libksane.nix
index 33a2ef48f90..79274d4396f 100644
--- a/pkgs/applications/kde/libksane.nix
+++ b/pkgs/applications/kde/libksane.nix
@@ -9,7 +9,7 @@ mkDerivation {
   pname = "libksane";
   meta = with lib; {
     license = licenses.gpl2;
-    maintainers = with maintainers; [ pshendry ];
+    maintainers = with maintainers; [ polendri ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ki18n ktextwidgets kwallet kwidgetsaddons sane-backends ];
diff --git a/pkgs/applications/kde/messagelib.nix b/pkgs/applications/kde/messagelib.nix
index d47a5504417..6709a1f072a 100644
--- a/pkgs/applications/kde/messagelib.nix
+++ b/pkgs/applications/kde/messagelib.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-mime, akonadi-notes, akonadi-search, gpgme, grantlee,
   grantleetheme, karchive, kcodecs, kconfig, kconfigwidgets, kcontacts,
-  kdepim-apps-libs, kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
+  kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
   kmailtransport, kmbox, kmime, kwindowsystem, libgravatar, libkdepim, libkleo,
   pimcommon, qca-qt5, qtwebengine, syntax-highlighting
 }:
@@ -17,7 +17,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi-notes akonadi-search gpgme grantlee grantleetheme karchive kcodecs
-    kconfig kconfigwidgets kdepim-apps-libs kiconthemes kio kjobwidgets kldap
+    kconfig kconfigwidgets kiconthemes kio kjobwidgets kldap
     kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qca-qt5
     syntax-highlighting
   ];
diff --git a/pkgs/applications/kde/minuet.nix b/pkgs/applications/kde/minuet.nix
index ca7d6124ed5..cc7be0bf79a 100644
--- a/pkgs/applications/kde/minuet.nix
+++ b/pkgs/applications/kde/minuet.nix
@@ -1,5 +1,5 @@
 { mkDerivation, qtbase
-, lib, extra-cmake-modules, gettext, python
+, lib, extra-cmake-modules, gettext, python3
 , drumstick, fluidsynth
 , kcoreaddons, kcrash, kdoctools
 , qtquickcontrols2, qtsvg, qttools, qtdeclarative
@@ -13,7 +13,7 @@ mkDerivation {
     broken = lib.versionOlder qtbase.version "5.14";
   };
 
-  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python qtdeclarative ];
+  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python3 qtdeclarative ];
 
   propagatedBuildInputs = [
     drumstick fluidsynth
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 5ff13eaf240..c1def1bd613 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1731 +4,1795 @@
 
 {
   akonadi = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-20.08.3.tar.xz";
-      sha256 = "1hwaan45cyw2nmfmdp5pbhvm00xdxy9la68ms3sa8a67zcsfljhl";
-      name = "akonadi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-20.12.2.tar.xz";
+      sha256 = "0659vgj8y77i0axdwwajaw6kxfa48j6s56nl6xhnv8686ss8plkw";
+      name = "akonadi-20.12.2.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-calendar-20.08.3.tar.xz";
-      sha256 = "18rwvn5i6i4ng335rxpwx3a2m4vyq96w9m3fa1gvmr8ls7vkaqrk";
-      name = "akonadi-calendar-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-calendar-20.12.2.tar.xz";
+      sha256 = "0vzv4yycb2nnz5ifsydv0k080wgnhjzim6lfd6qrh38mgxpb2hzw";
+      name = "akonadi-calendar-20.12.2.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-calendar-tools-20.08.3.tar.xz";
-      sha256 = "1pnm3xi26bnbjmnv9zwi9w5rkr1pdry50hzy3gxw7b0g11zz036w";
-      name = "akonadi-calendar-tools-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-calendar-tools-20.12.2.tar.xz";
+      sha256 = "06bzha5h14x6m4xzbbz2h3s00v4pc2a8d716dav9bqi0pvvq3cj0";
+      name = "akonadi-calendar-tools-20.12.2.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadiconsole-20.08.3.tar.xz";
-      sha256 = "061r0p9pj22x0hiz6piz4vramll3w5xy92sx8nfhcp2gmnvj9890";
-      name = "akonadiconsole-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadiconsole-20.12.2.tar.xz";
+      sha256 = "12fslhpxah99fzvg3a1g67n69mi4xvgz9ra787pdvzrs0lca9xa0";
+      name = "akonadiconsole-20.12.2.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-contacts-20.08.3.tar.xz";
-      sha256 = "18n9x41fmh4q9q9lfv882iwk6j1hvgpl11y4qn873vwr9sdrcf4s";
-      name = "akonadi-contacts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-contacts-20.12.2.tar.xz";
+      sha256 = "05y1rpvq1shiqlgql56k052glsslawy742q4n2hs301xhg0izavz";
+      name = "akonadi-contacts-20.12.2.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-import-wizard-20.08.3.tar.xz";
-      sha256 = "0gny0rxvyks5w4rdb73ly06lyvz7kcfvff1268bn6i96xr83kmim";
-      name = "akonadi-import-wizard-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-import-wizard-20.12.2.tar.xz";
+      sha256 = "1gqjr5k6kkxi77vq0f6mc5mr31qvjsiicj6sxwpbm0c34vydfzym";
+      name = "akonadi-import-wizard-20.12.2.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-mime-20.08.3.tar.xz";
-      sha256 = "12ps633y64mj72iryd9z2nmrf7lxbkqj7xnzj28549cvg6jizgl7";
-      name = "akonadi-mime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-mime-20.12.2.tar.xz";
+      sha256 = "0zdgkny32zwa2r2yhi285f56jkj0ini6p3sv5hi7f43mi7r5m994";
+      name = "akonadi-mime-20.12.2.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-notes-20.08.3.tar.xz";
-      sha256 = "1z90r37lqc7ydmily730idd4s8rcbr6i3a8x9m647snbala16z36";
-      name = "akonadi-notes-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-notes-20.12.2.tar.xz";
+      sha256 = "0rbg2vwk0a1zbfw5cmz0jx3yzap7j6yi7c0igq1fgg3an7sw4j2v";
+      name = "akonadi-notes-20.12.2.tar.xz";
     };
   };
   akonadi-search = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-search-20.08.3.tar.xz";
-      sha256 = "0izpkvjybp6r79rai0p5j74bm0f8ksgsl3z34ggb51j6vj9rla7h";
-      name = "akonadi-search-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-search-20.12.2.tar.xz";
+      sha256 = "0m7l7f26gj018d5pipbgmmxiqky98avpypxbydrms6afdglvi5ja";
+      name = "akonadi-search-20.12.2.tar.xz";
     };
   };
   akregator = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akregator-20.08.3.tar.xz";
-      sha256 = "1gqh820s5by3r9lz7r16r0krh916idsks6sgy26hcrwfmva45wn5";
-      name = "akregator-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/akregator-20.12.2.tar.xz";
+      sha256 = "11y2mmf2svbxvqb1bjwzrivkq8w508fwg7513bzl62pbjqa8g3gk";
+      name = "akregator-20.12.2.tar.xz";
     };
   };
   analitza = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/analitza-20.08.3.tar.xz";
-      sha256 = "16s6kjyclj73lq8z8mvrbsl75h1nrnv7syp6wpip6gvfs5ynai90";
-      name = "analitza-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/analitza-20.12.2.tar.xz";
+      sha256 = "09qpqjyps9h8wc8dvbnj8iz2xc4naxjdicqxsbfwfly5wbf8xq6x";
+      name = "analitza-20.12.2.tar.xz";
     };
   };
   ark = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ark-20.08.3.tar.xz";
-      sha256 = "03kwjp2nj570k9ph8bgj042sjj4x0h9jwv8nwx0pfpcxkgxv5pzy";
-      name = "ark-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ark-20.12.2.tar.xz";
+      sha256 = "1p8ylvk4g1x2mmfdprz911iivcvr4mciam427b6ygdrhqc7rbbqb";
+      name = "ark-20.12.2.tar.xz";
     };
   };
   artikulate = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/artikulate-20.08.3.tar.xz";
-      sha256 = "0bx97qi6zi7jmlzm3g7qamnzg0966g4w9xpskbxbr4cgjr312x19";
-      name = "artikulate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/artikulate-20.12.2.tar.xz";
+      sha256 = "0s6vjhipb4i6bv9ff7nzm9gza8jghih9kf7f7ynq10109fk8gy6i";
+      name = "artikulate-20.12.2.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/audiocd-kio-20.08.3.tar.xz";
-      sha256 = "01n4nyda7l7by1nyx2sgxdl8qkdfndk0w6hj0qc6a7fllcfj5cpb";
-      name = "audiocd-kio-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/audiocd-kio-20.12.2.tar.xz";
+      sha256 = "0kd7yxl571pwrijwn78pigdclwqpmd50b5cj4lna481q78f91zsa";
+      name = "audiocd-kio-20.12.2.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/baloo-widgets-20.08.3.tar.xz";
-      sha256 = "0ciidrsvwc3ppxhw7w5116q4lfbsvij9jsvyzm292pmjln2vikrg";
-      name = "baloo-widgets-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/baloo-widgets-20.12.2.tar.xz";
+      sha256 = "0w9jrx2mz1kyn2az6jx4kympl6zd950waz4zj97cjrcq2dg5a85g";
+      name = "baloo-widgets-20.12.2.tar.xz";
     };
   };
   blinken = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/blinken-20.08.3.tar.xz";
-      sha256 = "1gfw0w66nm3sx81bnr0p0yz1bhjj63lvd3cr86x3b2pny5rcw1da";
-      name = "blinken-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/blinken-20.12.2.tar.xz";
+      sha256 = "0a0nkmbx1bkqjs7cf5qqm877wqvzdx9cxm9395jfxcycn5pyfps9";
+      name = "blinken-20.12.2.tar.xz";
     };
   };
   bomber = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/bomber-20.08.3.tar.xz";
-      sha256 = "1nw1a9cf0nqgk00hvzcqch3bl97lx6bih0wsax5q0z1kzwlz0kgr";
-      name = "bomber-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/bomber-20.12.2.tar.xz";
+      sha256 = "08lyj6rn9jhhwzpwh2c14v8jiwishi1wk19nm5wazy2iajbd88jv";
+      name = "bomber-20.12.2.tar.xz";
     };
   };
   bovo = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/bovo-20.08.3.tar.xz";
-      sha256 = "06pbivyvfgjx6zkadvwfwnrg9vjy4rf52k2a74qjcnl2ms16sr1g";
-      name = "bovo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/bovo-20.12.2.tar.xz";
+      sha256 = "05xx11rqqsxm084hfxnx1wzmr2wdpny3w608h8g5vby2jgdj47b7";
+      name = "bovo-20.12.2.tar.xz";
     };
   };
   calendarsupport = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/calendarsupport-20.08.3.tar.xz";
-      sha256 = "09w06n745764fs440nh0piy5sahfn50kh3zrljhgzadcij6165vd";
-      name = "calendarsupport-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/calendarsupport-20.12.2.tar.xz";
+      sha256 = "0gz3p4az49430zwgmlqjcfzjlgnaf7cl1x0qaaxyl8il14ambrbd";
+      name = "calendarsupport-20.12.2.tar.xz";
     };
   };
   cantor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/cantor-20.08.3.tar.xz";
-      sha256 = "1njqycx0v3zq5mdcvfdfgxs8vgl01v80s27qgapsxxrgr9hgxbhl";
-      name = "cantor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/cantor-20.12.2.tar.xz";
+      sha256 = "1w513a06xshdw4fcn6wmliygpjsyvqcbmfjg2bdibpsnznmk4y4p";
+      name = "cantor-20.12.2.tar.xz";
     };
   };
   cervisia = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/cervisia-20.08.3.tar.xz";
-      sha256 = "1bsc72kxcmzx25408ngzqzj4a0168vqfr3a2gvmm6d8klbgpm3gv";
-      name = "cervisia-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/cervisia-20.12.2.tar.xz";
+      sha256 = "08m962r6wkvih1yfj22z3nyfx6r3ac9pcc7i7dxxdkfcxhqpprhb";
+      name = "cervisia-20.12.2.tar.xz";
     };
   };
   dolphin = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dolphin-20.08.3.tar.xz";
-      sha256 = "107n763qix95b1hgy86hddpj9x2clzhaiw8q8yjn9lzj1rz5facx";
-      name = "dolphin-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/dolphin-20.12.2.tar.xz";
+      sha256 = "19mss2vs074xv5qc644y87f8v99mdndhhd7hclqgq6gckxcjzy2r";
+      name = "dolphin-20.12.2.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dolphin-plugins-20.08.3.tar.xz";
-      sha256 = "0fmay0sycfj9s7zyxbldgcal5lj2psi0n9zrgq812s5qr4rb5c8c";
-      name = "dolphin-plugins-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/dolphin-plugins-20.12.2.tar.xz";
+      sha256 = "0zjy429cqb6nspmiharvszjhpn662y23s9wbdqs04h2p6pi8raxn";
+      name = "dolphin-plugins-20.12.2.tar.xz";
     };
   };
   dragon = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dragon-20.08.3.tar.xz";
-      sha256 = "14qsb7h8w58i9jsh1gpcj8pwjgy7y3mqfy51hca82yrd82z5b9rn";
-      name = "dragon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/dragon-20.12.2.tar.xz";
+      sha256 = "0yssqbfgm92bls5cfy0xcqnqfqx00ns2i6rlwdlx38kfh0r47cag";
+      name = "dragon-20.12.2.tar.xz";
     };
   };
   elisa = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/elisa-20.08.3.tar.xz";
-      sha256 = "0893nbj0jsapnfd09cp961k2m7lq6sjvzynpa4hfp9ch1jbc912c";
-      name = "elisa-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/elisa-20.12.2.tar.xz";
+      sha256 = "1sl55kynkwxaypdm6zjdk85yxxq9754xm6ybxm7qdafq691g9zjr";
+      name = "elisa-20.12.2.tar.xz";
     };
   };
   eventviews = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/eventviews-20.08.3.tar.xz";
-      sha256 = "158j5g3i0wbbxpg9jmr50dvbpms4c4vgcnpmn3b3vfbszzwsy6rg";
-      name = "eventviews-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/eventviews-20.12.2.tar.xz";
+      sha256 = "1g4aqhh2b5s45m0qqp46wazcc7rzcp3mmds4q9x3isckqpijzp39";
+      name = "eventviews-20.12.2.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ffmpegthumbs-20.08.3.tar.xz";
-      sha256 = "186hpq949r3xx2a64nqjy4pcn67d6kdvsy80zr238lgb9qqcqygi";
-      name = "ffmpegthumbs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ffmpegthumbs-20.12.2.tar.xz";
+      sha256 = "0iw1g7x31jkbmniawvjwy8wk573rv05idk08q1vavxa5vixxqsbg";
+      name = "ffmpegthumbs-20.12.2.tar.xz";
     };
   };
   filelight = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/filelight-20.08.3.tar.xz";
-      sha256 = "1jljsnjdhnqphh1kanj6hi2rswq3i9119iah1j33jy5pladcyf5q";
-      name = "filelight-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/filelight-20.12.2.tar.xz";
+      sha256 = "0m38il0rz7zip9rxing4j5fppwyrjgv1d7n3vrp3x4wnmd08j46q";
+      name = "filelight-20.12.2.tar.xz";
     };
   };
   granatier = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/granatier-20.08.3.tar.xz";
-      sha256 = "195bc2rcz11v76c0cwa9mb7rfixjn7sb0a52wrzz0sf9624m0rcs";
-      name = "granatier-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/granatier-20.12.2.tar.xz";
+      sha256 = "0gssfcqq1czh5l1dwi5lpj0f9bgv2jf0wma9i5j0aqrf9b086g7f";
+      name = "granatier-20.12.2.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/grantlee-editor-20.08.3.tar.xz";
-      sha256 = "1k2rdicd68jdk3pazyn3q0vj99n0vnkpzkrnacpymkjy85cjgrv9";
-      name = "grantlee-editor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/grantlee-editor-20.12.2.tar.xz";
+      sha256 = "0fbb9zia4kjc7rw4s27vsy6isvkx56k50gn6y1cyfl0gqy70v4cw";
+      name = "grantlee-editor-20.12.2.tar.xz";
     };
   };
   grantleetheme = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/grantleetheme-20.08.3.tar.xz";
-      sha256 = "07b7v5v2vyz3vyj1jjzryzaak8bbqg8a2caxwb6s7cwhy19y6my5";
-      name = "grantleetheme-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/grantleetheme-20.12.2.tar.xz";
+      sha256 = "1cv23ias36mp4zm84fk21f3f7nx3jz7xpiyz0nvz6xcsiww77762";
+      name = "grantleetheme-20.12.2.tar.xz";
     };
   };
   gwenview = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/gwenview-20.08.3.tar.xz";
-      sha256 = "09mwp3z97hgd7c15w0hz8k61qn5icb81rj27nxzy877ph1xnrixc";
-      name = "gwenview-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/gwenview-20.12.2.tar.xz";
+      sha256 = "0cr6jjnvin8jv6hnajxg6zlph5syg2zjrcwd784dlzv23hna9v5n";
+      name = "gwenview-20.12.2.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/incidenceeditor-20.08.3.tar.xz";
-      sha256 = "15kkl8z1nig9qyxfrq54c3sqh1xs1lzlbm5rphj34y0yb8dbn8kx";
-      name = "incidenceeditor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/incidenceeditor-20.12.2.tar.xz";
+      sha256 = "1q48ydma2rcpn3dnf9p08mqfs481n5fhc9m5wl2cvm6as54sfmp8";
+      name = "incidenceeditor-20.12.2.tar.xz";
+    };
+  };
+  itinerary = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/itinerary-20.12.2.tar.xz";
+      sha256 = "1dkgsiqww9z6k0xbvn15w630jdhmxr1kkz5dcv1n9yl7bgj32s35";
+      name = "itinerary-20.12.2.tar.xz";
     };
   };
   juk = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/juk-20.08.3.tar.xz";
-      sha256 = "1jvj0r4grm55cnck4apnh4fh44mv1ycm0pprrkh57iwj1dlf7kif";
-      name = "juk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/juk-20.12.2.tar.xz";
+      sha256 = "1dc6n07hkd8as2q1i2l3jzqcijw3qd4ihx1205nzn7z256bby58n";
+      name = "juk-20.12.2.tar.xz";
     };
   };
   k3b = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/k3b-20.08.3.tar.xz";
-      sha256 = "0qg2p6gdg0clgv6qab5vr0i451m9hqqmpwq335w8m9nwb6wg30cx";
-      name = "k3b-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/k3b-20.12.2.tar.xz";
+      sha256 = "0gqg8r2p6nksbdg4c8wqz57dj8d1cw7cmrgzc1l2pin4v3qdx94g";
+      name = "k3b-20.12.2.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaccounts-integration-20.08.3.tar.xz";
-      sha256 = "006cglw5ai274a1r5jbk109mdrvw8v6fp3cdyi1kbrq7lp3123a2";
-      name = "kaccounts-integration-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kaccounts-integration-20.12.2.tar.xz";
+      sha256 = "15py7fp6sajvx0c7zi7zhfx16sqn8kkkvglkvcq0b9kglswpvkfj";
+      name = "kaccounts-integration-20.12.2.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaccounts-providers-20.08.3.tar.xz";
-      sha256 = "1vpv366bzj0sk7dqyxrq06a8ixgaaqi125mf2gmybvhj5yvrn3fp";
-      name = "kaccounts-providers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kaccounts-providers-20.12.2.tar.xz";
+      sha256 = "0205l3k3nzx6cnar90zrbgmabapyry4a991lqflkpxgdrkh0ajc0";
+      name = "kaccounts-providers-20.12.2.tar.xz";
     };
   };
   kaddressbook = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaddressbook-20.08.3.tar.xz";
-      sha256 = "00mia1jh2c5rcnsyx3wizjdg65pvpazfb8ayppjzv4rrc2nhr9nn";
-      name = "kaddressbook-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kaddressbook-20.12.2.tar.xz";
+      sha256 = "0xqsl7fav1vqq4iqy2m02s92rnr28pi1ak3sv0ra7q1gb89rhi0y";
+      name = "kaddressbook-20.12.2.tar.xz";
     };
   };
   kajongg = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kajongg-20.08.3.tar.xz";
-      sha256 = "0wr045xqm1q03vy0jbgrldpdc9k3lgnhd39yhi574la367ayffpa";
-      name = "kajongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kajongg-20.12.2.tar.xz";
+      sha256 = "0vh6qb3d54nnxrxacq9fn7jq1hshhhnvw9ff0wgh214jlr0gnbqk";
+      name = "kajongg-20.12.2.tar.xz";
     };
   };
   kalarm = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalarm-20.08.3.tar.xz";
-      sha256 = "0194rapyvnpmhkba0rgclrai1ywx9anr8dski0j6z1yg0kgav8df";
-      name = "kalarm-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kalarm-20.12.2.tar.xz";
+      sha256 = "1lpg1viwn868hw0dd8zs11iafkhzlr3cydfplnh4ss6visga50kb";
+      name = "kalarm-20.12.2.tar.xz";
     };
   };
   kalarmcal = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalarmcal-20.08.3.tar.xz";
-      sha256 = "1i9hi3y4j2pmdmlj13kl13vfplxrh8w23fxz0mmawi1wn533fp66";
-      name = "kalarmcal-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kalarmcal-20.12.2.tar.xz";
+      sha256 = "17lll9671318dxhxpnjaih31xz5b971gw6kmrgz2ljq5nz1l027b";
+      name = "kalarmcal-20.12.2.tar.xz";
     };
   };
   kalgebra = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalgebra-20.08.3.tar.xz";
-      sha256 = "0k7miil5ilrw68j6xl9g6cf3zfw7g52h0gfwd5j248nx2nxr150c";
-      name = "kalgebra-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kalgebra-20.12.2.tar.xz";
+      sha256 = "0dwvm4b0wpkd3i79q3xs2v3majwa56hgq8r4vv071a8ci8fn27bz";
+      name = "kalgebra-20.12.2.tar.xz";
     };
   };
   kalzium = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalzium-20.08.3.tar.xz";
-      sha256 = "1r80bnpdrybsdwcblpj7cg32dv90l79gs0i42gpm6inilfr3vp5n";
-      name = "kalzium-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kalzium-20.12.2.tar.xz";
+      sha256 = "0jdg0akxmylbvh80cz31cycrdqvyafsv9j7hfpdhrizdy7vvqywg";
+      name = "kalzium-20.12.2.tar.xz";
     };
   };
   kamera = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kamera-20.08.3.tar.xz";
-      sha256 = "06fwxdgbyywdrf1r0w17w3chfr0s8jhqswz9chmdfds9f2bb45cr";
-      name = "kamera-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kamera-20.12.2.tar.xz";
+      sha256 = "1licmi05g1qpfh88annqd89av77jsmhxnsidgkvf4ffczwd097l6";
+      name = "kamera-20.12.2.tar.xz";
     };
   };
   kamoso = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kamoso-20.08.3.tar.xz";
-      sha256 = "0zhl3va65ajz3hdggg0jvvgvj14s461pjw9adw9bnfcbs4jzkl2y";
-      name = "kamoso-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kamoso-20.12.2.tar.xz";
+      sha256 = "0ar19nlw2bxrbn4wky8ky3x5m70rf7fb0fviniblqcrggyymgmb9";
+      name = "kamoso-20.12.2.tar.xz";
     };
   };
   kanagram = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kanagram-20.08.3.tar.xz";
-      sha256 = "1cyx8yq03xaw34ic69ghz9gafk8l30qinp0kkp9a1wh4pry8rnxf";
-      name = "kanagram-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kanagram-20.12.2.tar.xz";
+      sha256 = "00p2mpprbq9zi1zzscb4d0fdj2knnfkjxclf3q982jz4laxyqalf";
+      name = "kanagram-20.12.2.tar.xz";
     };
   };
   kapman = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kapman-20.08.3.tar.xz";
-      sha256 = "0nh1f0v026rib5ahj1mhvs99yabrgdq71bis465vfpm4favnirzy";
-      name = "kapman-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kapman-20.12.2.tar.xz";
+      sha256 = "1fs33p9g52k5nywpih7nns3mh0apfhnn174k9711vwnamr73ph6k";
+      name = "kapman-20.12.2.tar.xz";
     };
   };
   kapptemplate = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kapptemplate-20.08.3.tar.xz";
-      sha256 = "1r98ym9sazjzknxfw58hjiyxhmi49fyhrdn02v0b8fm711vprxab";
-      name = "kapptemplate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kapptemplate-20.12.2.tar.xz";
+      sha256 = "19rnxw0q8w890ns237vpaapipm3zjz7n0rn9yzxa5cqaf30l7jv5";
+      name = "kapptemplate-20.12.2.tar.xz";
     };
   };
   kate = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kate-20.08.3.tar.xz";
-      sha256 = "1m7ximinknc0l9zqv4p25ybn6zysz59l4vvdb9xkhjp53aqskdz9";
-      name = "kate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kate-20.12.2.tar.xz";
+      sha256 = "1kdznizqh28parijpsi67jmb8mlx4gn7z4szlh5kjd1mv9rikvm7";
+      name = "kate-20.12.2.tar.xz";
     };
   };
   katomic = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/katomic-20.08.3.tar.xz";
-      sha256 = "1v31x6371r9ccvc676vq5dlpkp4829xf0r37dnvdxlfm22mgsdnk";
-      name = "katomic-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/katomic-20.12.2.tar.xz";
+      sha256 = "1sxh6x09is33b3zdgj3d6zn9z19qc25v4hskffmw5xivnwz9vzfl";
+      name = "katomic-20.12.2.tar.xz";
     };
   };
   kbackup = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbackup-20.08.3.tar.xz";
-      sha256 = "1sayzvj46ckhn5zgp7qi6zmrmd7bjh5mg05mcl5pfwv4dcvxkrng";
-      name = "kbackup-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kbackup-20.12.2.tar.xz";
+      sha256 = "138x20p27a0yx4n6xamc660nk0zzrap7zhkkwpy9ayh07rgh1222";
+      name = "kbackup-20.12.2.tar.xz";
     };
   };
   kblackbox = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kblackbox-20.08.3.tar.xz";
-      sha256 = "0vka2pswbza1z8f97nhxcjrczx4w1x0qyjpzs9ycn9a14smqpsrh";
-      name = "kblackbox-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kblackbox-20.12.2.tar.xz";
+      sha256 = "1c6by0hi9bzs6j1y0qxrvz6ahdxhzivnw9hg4jndmhgbsqqix4q5";
+      name = "kblackbox-20.12.2.tar.xz";
     };
   };
   kblocks = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kblocks-20.08.3.tar.xz";
-      sha256 = "1jc063xn6dphydf49kv0izzy0nv06dr412xxjvkp7vccwv9qd5gf";
-      name = "kblocks-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kblocks-20.12.2.tar.xz";
+      sha256 = "06slcac3hvdmb5lymyqb1z8mn3r756xz2ghwdqz1d2mn3n2jd0bw";
+      name = "kblocks-20.12.2.tar.xz";
     };
   };
   kbounce = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbounce-20.08.3.tar.xz";
-      sha256 = "0863vlirljvf101mdv6jxprj9axs4cikrnld3wvxrcqw3w2dy6wy";
-      name = "kbounce-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kbounce-20.12.2.tar.xz";
+      sha256 = "19xvvxmbwpwkwsm0mxjnh92m352lkshsjgi8yrax1hdblymr60v1";
+      name = "kbounce-20.12.2.tar.xz";
     };
   };
   kbreakout = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbreakout-20.08.3.tar.xz";
-      sha256 = "14nd1dnbdyxv59y8iildhydhxgal38hvj7bk6544glwl8yalak8z";
-      name = "kbreakout-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kbreakout-20.12.2.tar.xz";
+      sha256 = "1n1vrj08j1drc1apikhgwdbmb5daypgnkw6yxhqc3xi2a3wglkqz";
+      name = "kbreakout-20.12.2.tar.xz";
     };
   };
   kbruch = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbruch-20.08.3.tar.xz";
-      sha256 = "03s1hl4h8rsx0gn7wqfssi1ga4igx48jb47gpw6f9rfjm8f199vb";
-      name = "kbruch-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kbruch-20.12.2.tar.xz";
+      sha256 = "0hjwmzsdlpg8przlmpp0xsa19v7376bpjk5kwyajywhayzzw99xp";
+      name = "kbruch-20.12.2.tar.xz";
     };
   };
   kcachegrind = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcachegrind-20.08.3.tar.xz";
-      sha256 = "17j06z9cpj5qhfbp1xgw4qmhi4jckf2i99c9brys4ifb3p0rkbrs";
-      name = "kcachegrind-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcachegrind-20.12.2.tar.xz";
+      sha256 = "0ich4hxfmq909zkn06p8pgxpf7sg9ndq51b533h2clbq3m9qwy2w";
+      name = "kcachegrind-20.12.2.tar.xz";
     };
   };
   kcalc = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcalc-20.08.3.tar.xz";
-      sha256 = "1mk30fkv51w3fqlpkzgm1yj5sp98h26kkphplqkjva5v6s1jzmjy";
-      name = "kcalc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcalc-20.12.2.tar.xz";
+      sha256 = "0dv8519wnlfdp2d2ml2r5qx3gjh8g6im742vqqk7m1660ijgc8zx";
+      name = "kcalc-20.12.2.tar.xz";
     };
   };
   kcalutils = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcalutils-20.08.3.tar.xz";
-      sha256 = "1i2yh4gvdwlylj7f7p32g1z7lzh3p19rrbd96l1gqhy700f2whpw";
-      name = "kcalutils-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcalutils-20.12.2.tar.xz";
+      sha256 = "1k4cr1iq945zs6c35f3s1w8kfm3kh7aybmk5py3lsz0zmlab36hc";
+      name = "kcalutils-20.12.2.tar.xz";
     };
   };
   kcharselect = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcharselect-20.08.3.tar.xz";
-      sha256 = "1p6rijjfa2jk4vr0ivjn6p5qf2ys5kvhw0cwfyjs45ff7zg0s2ga";
-      name = "kcharselect-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcharselect-20.12.2.tar.xz";
+      sha256 = "0fqf6bw98l499a144xk7hslxm6zdlpa0lcq0bgwnfsd0fs03wlp3";
+      name = "kcharselect-20.12.2.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcolorchooser-20.08.3.tar.xz";
-      sha256 = "1874qa04whiivyydxfcn0f1xch515ga1af4ym42zqz64j3kq7i47";
-      name = "kcolorchooser-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcolorchooser-20.12.2.tar.xz";
+      sha256 = "08y4qzr43nikgzli14yzj7w8vqzl905f0rwx0ri5247259jna3rk";
+      name = "kcolorchooser-20.12.2.tar.xz";
     };
   };
   kcron = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcron-20.08.3.tar.xz";
-      sha256 = "1piwssyg9fvah25gql6w0n8xf634f6gy475cz52gb1bl7rp72q6j";
-      name = "kcron-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kcron-20.12.2.tar.xz";
+      sha256 = "025a647zl125568l8vqnljir110jbnkxd4921a892ip7pnhp0v95";
+      name = "kcron-20.12.2.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdebugsettings-20.08.3.tar.xz";
-      sha256 = "11xnvr9qib3hnp48whsw659c724s2114p5dr3fswvhm3hkw1aky7";
-      name = "kdebugsettings-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdebugsettings-20.12.2.tar.xz";
+      sha256 = "1dzdvscklgbcfjalcc1mfh3vgiai2dvbsz00b4c96r8jxpm7bvcn";
+      name = "kdebugsettings-20.12.2.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdeconnect-kde-20.08.3.tar.xz";
-      sha256 = "0x10ga81qlsahavmv356xzjxyds41y2b4v338rqcyqkxvfmxj01k";
-      name = "kdeconnect-kde-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdeconnect-kde-20.12.2.tar.xz";
+      sha256 = "0wcx1bn121b62pwdkf7k24sa03kgixvrbp5y5iy11im7kj5i3ji1";
+      name = "kdeconnect-kde-20.12.2.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kde-dev-scripts-20.08.3.tar.xz";
-      sha256 = "0x8ba4mlxx17vk674738xln2dy696b148fa3s87za4yb4jj9gc5n";
-      name = "kde-dev-scripts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kde-dev-scripts-20.12.2.tar.xz";
+      sha256 = "03kqd01yhii2b6g4gsjg09vwmzv53vr5d7y3d4db13kgg0f1z352";
+      name = "kde-dev-scripts-20.12.2.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kde-dev-utils-20.08.3.tar.xz";
-      sha256 = "0k7zb1km89nnqfi2p1mhp6dvwkhmgbcgw89301acag34yy954dvn";
-      name = "kde-dev-utils-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kde-dev-utils-20.12.2.tar.xz";
+      sha256 = "105pp4yhgynn3gq0bi7q1vyy1qn8pcd0hgx17v674hf8afy4627r";
+      name = "kde-dev-utils-20.12.2.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdeedu-data-20.08.3.tar.xz";
-      sha256 = "1k164h4n8r4yjlll5900fz764lr0qiy3q1fpcpkr8f1n7qs7f797";
-      name = "kdeedu-data-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdeedu-data-20.12.2.tar.xz";
+      sha256 = "04x8papz62m5kanrqpjddzijda761i4j8y4cmqpnxkg2jrwfqqls";
+      name = "kdeedu-data-20.12.2.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdegraphics-mobipocket-20.08.3.tar.xz";
-      sha256 = "0ifxbwn7pmxr7y4ri617a303b27nqwqa418isgfrfk11jc4yyxhq";
-      name = "kdegraphics-mobipocket-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdegraphics-mobipocket-20.12.2.tar.xz";
+      sha256 = "02a4ivpvfziaa464l8c9ivydagcb912ld95isgvc5jl4g85lm166";
+      name = "kdegraphics-mobipocket-20.12.2.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdegraphics-thumbnailers-20.08.3.tar.xz";
-      sha256 = "0mbzkw7pxcfmkpb8ivhahnxkkrkjhmbjqy2l9gqx35gp5855gmxf";
-      name = "kdegraphics-thumbnailers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdegraphics-thumbnailers-20.12.2.tar.xz";
+      sha256 = "1p47fvb6mdk23rx9jhm9x60sny9z6plgdjih5lzy9k3hvl0sl8zk";
+      name = "kdegraphics-thumbnailers-20.12.2.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdenetwork-filesharing-20.08.3.tar.xz";
-      sha256 = "0id19wmiivdrx10r1hwbwi7bx6g1v9g5lpbhlmfrapvy82ijfmbg";
-      name = "kdenetwork-filesharing-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdenetwork-filesharing-20.12.2.tar.xz";
+      sha256 = "0y60az09hkhd1hvwa7h7c834dc0mfnd89f78v8m31il8g2xniziz";
+      name = "kdenetwork-filesharing-20.12.2.tar.xz";
     };
   };
   kdenlive = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdenlive-20.08.3.tar.xz";
-      sha256 = "187d5khqq9ckmqp8amd7ghlvig1z97w2jzm9s4zsfhjzyqv3d3wz";
-      name = "kdenlive-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdenlive-20.12.2.tar.xz";
+      sha256 = "0gh1cjhakdl7hx236rsxiv62mafd2vvvpg5ndwlp0zfpsx7kzjrz";
+      name = "kdenlive-20.12.2.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-addons-20.08.3.tar.xz";
-      sha256 = "17m8pwiig46pc6x4ylvymb3b6c7xcm2df3vjma665kcir1dr0q7p";
-      name = "kdepim-addons-20.08.3.tar.xz";
-    };
-  };
-  kdepim-apps-libs = {
-    version = "20.08.3";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-apps-libs-20.08.3.tar.xz";
-      sha256 = "08iw1p9mv4jic7pk6skxc5anp7k46lhcdqxpq1i6wlhbrk6bpsvg";
-      name = "kdepim-apps-libs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdepim-addons-20.12.2.tar.xz";
+      sha256 = "0zj22ggn98sqz3nnvzffhbv2cq672j885f2p8qla6swhyw91cq8n";
+      name = "kdepim-addons-20.12.2.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-runtime-20.08.3.tar.xz";
-      sha256 = "0zz2zwq3gr177vgkwz6b70q4n2ra4ym58f167pgvi9kxv3884fib";
-      name = "kdepim-runtime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdepim-runtime-20.12.2.tar.xz";
+      sha256 = "0p5c4l4xixcvpzx7mri2jxa3nwk4824lp5sy93sspf2nlgdv3zsn";
+      name = "kdepim-runtime-20.12.2.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdesdk-kioslaves-20.08.3.tar.xz";
-      sha256 = "1kwzms0qha058cm92d4f8pr89r3bqaqx5zfw6gz05s6lg892j5in";
-      name = "kdesdk-kioslaves-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdesdk-kioslaves-20.12.2.tar.xz";
+      sha256 = "1xgp3fi6nnygjw2p832ylmhsj70dm33c4rf3h79sc2dp7aihnapy";
+      name = "kdesdk-kioslaves-20.12.2.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdesdk-thumbnailers-20.08.3.tar.xz";
-      sha256 = "10fc0agpvzpqdxqynd70vzya0g1nbdw0ylbnl9w35n9jhww42jff";
-      name = "kdesdk-thumbnailers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdesdk-thumbnailers-20.12.2.tar.xz";
+      sha256 = "0jk2x2b8qwhfbf9hy8j0yslggn3zwp18q21ip299b4cpx1w72bgq";
+      name = "kdesdk-thumbnailers-20.12.2.tar.xz";
     };
   };
   kdf = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdf-20.08.3.tar.xz";
-      sha256 = "02k5nhsf1zzkx9cl3r2500pj2zfmvjhlfsb3smgpka6in7iivxyp";
-      name = "kdf-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdf-20.12.2.tar.xz";
+      sha256 = "0fx9b5njsmvzznrgz2r9xz8yh977v865zvsih60hdrz6gaflg1rx";
+      name = "kdf-20.12.2.tar.xz";
     };
   };
   kdialog = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdialog-20.08.3.tar.xz";
-      sha256 = "0knl6176bjazjiacg1qqaldlqcjlb3bi829sliq1sdh4lzzwrbzk";
-      name = "kdialog-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdialog-20.12.2.tar.xz";
+      sha256 = "1v2yflxpqg2h2jgxql1mnk8c1v1n4ljard5bgh1dw898r7b8g2xd";
+      name = "kdialog-20.12.2.tar.xz";
     };
   };
   kdiamond = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdiamond-20.08.3.tar.xz";
-      sha256 = "0ls1kg3wank1al46knq12jilmp8gaa4rn7zbgflcrhgy5gw8l5px";
-      name = "kdiamond-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kdiamond-20.12.2.tar.xz";
+      sha256 = "17z1g2jxz26pqx5xjc5h7w5s2xy72p00ydnfhsv1bi1kfd79ry8k";
+      name = "kdiamond-20.12.2.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/keditbookmarks-20.08.3.tar.xz";
-      sha256 = "0m8ap5hvjgldj9hdk6shpkv8xylhhjla2xn1zs86pvj4la3zh4f8";
-      name = "keditbookmarks-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/keditbookmarks-20.12.2.tar.xz";
+      sha256 = "0slma1vrm0cmr2v970ingbckqa3viw6jgfss0z7fpx4bilw65bd7";
+      name = "keditbookmarks-20.12.2.tar.xz";
     };
   };
   kfind = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfind-20.08.3.tar.xz";
-      sha256 = "10i5mw6q2parq5w7pi955kgfvdlw8hwis2p7r9vkvabjdk69nkdr";
-      name = "kfind-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kfind-20.12.2.tar.xz";
+      sha256 = "0vfi5ipwncq7d4z1gbilw6kyyrn5d986wr3f2zhsyhpwmsh9ycnb";
+      name = "kfind-20.12.2.tar.xz";
     };
   };
   kfloppy = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfloppy-20.08.3.tar.xz";
-      sha256 = "1cp0pwgldscc7va508gk43im3fv0lsxd5sbhpw8kxlzjlpbwlp8v";
-      name = "kfloppy-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kfloppy-20.12.2.tar.xz";
+      sha256 = "1sz6bgw54w8s4bdyyajy0zgxw5kcm45p0gizf7ghw33x5vxryg4g";
+      name = "kfloppy-20.12.2.tar.xz";
     };
   };
   kfourinline = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfourinline-20.08.3.tar.xz";
-      sha256 = "0h1n44dncr2siw447n7b0gkx3380vajvqjsgjvapkg7m7bmz7nsv";
-      name = "kfourinline-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kfourinline-20.12.2.tar.xz";
+      sha256 = "1ld2srgmriab70j08nvqbaswjp2miljwd8rbpy2dyvzfprmci3xk";
+      name = "kfourinline-20.12.2.tar.xz";
     };
   };
   kgeography = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgeography-20.08.3.tar.xz";
-      sha256 = "1mk5cip55chc8pmh8wfl7an5x076ywisr0i7isqcjaij2cv54283";
-      name = "kgeography-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kgeography-20.12.2.tar.xz";
+      sha256 = "0v1355y3fwzq63hq0wz9rskzncnlfdybmqcx23pk57jazsmv6ndi";
+      name = "kgeography-20.12.2.tar.xz";
     };
   };
   kget = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kget-20.08.3.tar.xz";
-      sha256 = "144ydk8bbfirph464mkkvwpnynj465i2ynhm8n9d330kcrhnaxd0";
-      name = "kget-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kget-20.12.2.tar.xz";
+      sha256 = "1xya4raai9jqqzb3kga3mrm7jznkaa0fr4sq8j28qd45bgx2385p";
+      name = "kget-20.12.2.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgoldrunner-20.08.3.tar.xz";
-      sha256 = "101cdl04wb6xbq95b51ax36570y9ahkcy5gccqsyvc307ij9yg7r";
-      name = "kgoldrunner-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kgoldrunner-20.12.2.tar.xz";
+      sha256 = "1ai5hfhwlsiw6ywpmwg9q85hsn3ih44v7n3wj70fsrldh87cn9ps";
+      name = "kgoldrunner-20.12.2.tar.xz";
     };
   };
   kgpg = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgpg-20.08.3.tar.xz";
-      sha256 = "1ip21yal37yxg5i5sfy6lgfb3sz9lld0dwa7a1w4lbddf9w3akd6";
-      name = "kgpg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kgpg-20.12.2.tar.xz";
+      sha256 = "1szg6fmmnxi94s5r2gxn4mlsiqahharyh05bisy5w7cl9w9c70xg";
+      name = "kgpg-20.12.2.tar.xz";
     };
   };
   khangman = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/khangman-20.08.3.tar.xz";
-      sha256 = "1zwdd2gpjkld3vkawp0lj83il257ryxf8wpmbgzn1wz8sxxi01jj";
-      name = "khangman-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/khangman-20.12.2.tar.xz";
+      sha256 = "1bhcdr2v6zgawn819vbqnvgrm52xymgjyr396qbx5mc0srz88bzk";
+      name = "khangman-20.12.2.tar.xz";
     };
   };
   khelpcenter = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/khelpcenter-20.08.3.tar.xz";
-      sha256 = "1xan4awwgs08k7ksfy80rfcxqd6bi8i1fjdgy55hh7wshv76zf5r";
-      name = "khelpcenter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/khelpcenter-20.12.2.tar.xz";
+      sha256 = "1mxs0imw64av8dybh91xxy4mmdcikjkqv6apsw29pp3s29irxpdx";
+      name = "khelpcenter-20.12.2.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kidentitymanagement-20.08.3.tar.xz";
-      sha256 = "0vkydvf4yw3qlqrg9m1zdm6j0c1crxdvc7l24yls9fjbj957vbls";
-      name = "kidentitymanagement-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kidentitymanagement-20.12.2.tar.xz";
+      sha256 = "1vcpfcriinx0ywz3jz26810h2cqmlfvyyxd0mzh3jp7rl0kkasgj";
+      name = "kidentitymanagement-20.12.2.tar.xz";
     };
   };
   kig = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kig-20.08.3.tar.xz";
-      sha256 = "1dvizdfkvl7p7hr4xm4zh51lpr8qr3s5j5zz162s7arr7sws4w8h";
-      name = "kig-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kig-20.12.2.tar.xz";
+      sha256 = "08wvgykrhzf2j4qb0fz4irbyaxjp5ka7jmmjn8y27srz0x4zgkrz";
+      name = "kig-20.12.2.tar.xz";
     };
   };
   kigo = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kigo-20.08.3.tar.xz";
-      sha256 = "0sx3klivzn8h96mpnbkiv2nbi2l6w0j6fclj7q3ql3cm81jh6n15";
-      name = "kigo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kigo-20.12.2.tar.xz";
+      sha256 = "1a4hv5g2wdpvf56zrr0rna6hdvm2cy6sz1jlhj7hf1lcx3lgfj9g";
+      name = "kigo-20.12.2.tar.xz";
     };
   };
   killbots = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/killbots-20.08.3.tar.xz";
-      sha256 = "1j41my0brpqpvd8xibv39z4x4kmw1sqz7wy7ibhh0zir3jh64n83";
-      name = "killbots-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/killbots-20.12.2.tar.xz";
+      sha256 = "01lmkflndqmrzyrabmh5jqrk2zywcn5s82aag3m0wdqbyrqc5pas";
+      name = "killbots-20.12.2.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kimagemapeditor-20.08.3.tar.xz";
-      sha256 = "1m9mrksdl08ijmpmx3lhdysnm70mrnqz9rlbcn1h95p2sq0bk8cg";
-      name = "kimagemapeditor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kimagemapeditor-20.12.2.tar.xz";
+      sha256 = "06awvhcjg8nd0wjcqqzccnlpci6cd35flvfs3k05czk70sgqzysq";
+      name = "kimagemapeditor-20.12.2.tar.xz";
     };
   };
   kimap = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kimap-20.08.3.tar.xz";
-      sha256 = "16paglkqgnyzwjydhn02qw7zg0d4casir4bsfch15wdmqv389mrg";
-      name = "kimap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kimap-20.12.2.tar.xz";
+      sha256 = "14kjgn6b1qnfr3zsr3r73wf15n47qqx9vw5z11yv161andrr105d";
+      name = "kimap-20.12.2.tar.xz";
     };
   };
   kio-extras = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kio-extras-20.08.3.tar.xz";
-      sha256 = "0i7k9asc97r9z4lfk5hyf7mcbx0za7j6v4dhqn43j5v4x2i0201c";
-      name = "kio-extras-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kio-extras-20.12.2.tar.xz";
+      sha256 = "1r2sw8i7lf0zyb5bvz4002vdi2bf9jv01735caiw9smxr1lgcz93";
+      name = "kio-extras-20.12.2.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kio-gdrive-20.08.3.tar.xz";
-      sha256 = "0pp0nvsnfdm8vskw194qjfac4agnlsjm44w1704b5sqx6i27dafy";
-      name = "kio-gdrive-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kio-gdrive-20.12.2.tar.xz";
+      sha256 = "0rwwakhsn9bnmxxnr0620jyp00x7iqqsaz5nd2lmhyjkc4mqv2km";
+      name = "kio-gdrive-20.12.2.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kipi-plugins-20.08.3.tar.xz";
-      sha256 = "1pplhv8yjfl1ifx9ykf4w2lgma8jvshihmd5c5mz9liqk3lawq15";
-      name = "kipi-plugins-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kipi-plugins-20.12.2.tar.xz";
+      sha256 = "120yi7kfqv74368c78s4gfg7fp2h32v1c3jic2lnsy5y3iad22l8";
+      name = "kipi-plugins-20.12.2.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kirigami-gallery-20.08.3.tar.xz";
-      sha256 = "0l100ng8ai55s0vl8nkpq4vysy2nc6sk1dbisc2mp7br74ykyfp9";
-      name = "kirigami-gallery-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kirigami-gallery-20.12.2.tar.xz";
+      sha256 = "039ddgrvw1l4jvc3yjs0c6fi8kss5ma8hs6cbs8xvw0cyi9604qw";
+      name = "kirigami-gallery-20.12.2.tar.xz";
     };
   };
   kiriki = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kiriki-20.08.3.tar.xz";
-      sha256 = "1gddjii84cbz1dg8k0pnd3dyzar4lvj03j9v84vabggjjjbpir0f";
-      name = "kiriki-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kiriki-20.12.2.tar.xz";
+      sha256 = "0bslysqnnxkjfyxv8vkfmvwjhlw2zdlghbngg21k1ljvgr2jfx6j";
+      name = "kiriki-20.12.2.tar.xz";
     };
   };
   kiten = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kiten-20.08.3.tar.xz";
-      sha256 = "0n9mq86gcl6s2f45l8lbp4gsdj356l78xjkdvm14f6qlh81vsqlc";
-      name = "kiten-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kiten-20.12.2.tar.xz";
+      sha256 = "18p4g9cqn25s2zjygwvi9s81ma0b8rhfj9z0i2kd415b2sxalk3y";
+      name = "kiten-20.12.2.tar.xz";
     };
   };
   kitinerary = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kitinerary-20.08.3.tar.xz";
-      sha256 = "169pmy5fyjkbya8r2kdkd9s83sim0jplc3lx8bv2xh6r10mvzgm6";
-      name = "kitinerary-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kitinerary-20.12.2.tar.xz";
+      sha256 = "0z9jyj9wlda44qdncjnp6cyp7dwk89dl9nj68j5birmn83ykaawp";
+      name = "kitinerary-20.12.2.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kjumpingcube-20.08.3.tar.xz";
-      sha256 = "19246jwwd686x8i0jrvz2c8mpkf6qhm7rnskzin59dqzr76xrpgz";
-      name = "kjumpingcube-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kjumpingcube-20.12.2.tar.xz";
+      sha256 = "04qry2b82yk2k4v1pj8pvqi27my42k5ssmc5rpzkh0vq8pzwgkjh";
+      name = "kjumpingcube-20.12.2.tar.xz";
     };
   };
   kldap = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kldap-20.08.3.tar.xz";
-      sha256 = "1ihaazsnb9r30m2qhzcp2ns9f5fs7l3agsc9f9wxi4cyw73bq0n3";
-      name = "kldap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kldap-20.12.2.tar.xz";
+      sha256 = "1njgsxbqgz0grqagf695qv285x8slgnp4rg377jz1cnz597nzl6b";
+      name = "kldap-20.12.2.tar.xz";
     };
   };
   kleopatra = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kleopatra-20.08.3.tar.xz";
-      sha256 = "1r879g7hw3c5cww58z0kvqj47pgzbiq1vpgxz847smrylqajcpyi";
-      name = "kleopatra-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kleopatra-20.12.2.tar.xz";
+      sha256 = "12ayl3gar9bi06v418sflr6fr5k86m8x2ls4laig1ymansbvnwlz";
+      name = "kleopatra-20.12.2.tar.xz";
     };
   };
   klettres = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klettres-20.08.3.tar.xz";
-      sha256 = "0irc0f7vjznlsczan30zzprbnvgnbg19vabr97cw9rkkfa28azx9";
-      name = "klettres-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/klettres-20.12.2.tar.xz";
+      sha256 = "0ixykb36a7hgz89zxc8x7fp0di67vmalvpa9rivdff3lp7il87n3";
+      name = "klettres-20.12.2.tar.xz";
     };
   };
   klickety = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klickety-20.08.3.tar.xz";
-      sha256 = "1qsm9grmy0bnalpdghg48xi68zzk6ysmg6n0d74ldmmnirv3r0zf";
-      name = "klickety-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/klickety-20.12.2.tar.xz";
+      sha256 = "0dgv6bnz7aw95nxjqkhcanl06hpdx4g8qwkrvnfsiphjbldhfig7";
+      name = "klickety-20.12.2.tar.xz";
     };
   };
   klines = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klines-20.08.3.tar.xz";
-      sha256 = "1l95ph1sjp3r1q065k3rj18lm36krl7bh41zgqh021p692ywc48c";
-      name = "klines-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/klines-20.12.2.tar.xz";
+      sha256 = "14mrqfw7y5xcq237a6prfqy8pj34iz5mnfqs373p0jbvdqkc5843";
+      name = "klines-20.12.2.tar.xz";
     };
   };
   kmag = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmag-20.08.3.tar.xz";
-      sha256 = "0y44gz3qn91vl840xz25l5kc5jj82k5qqxkgsvvyld2s99rif84k";
-      name = "kmag-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmag-20.12.2.tar.xz";
+      sha256 = "1vwn5n3c8kq3d3d7sssqpq8iz9g0af4xnvcvjqh4s7fcxmsr3ryv";
+      name = "kmag-20.12.2.tar.xz";
     };
   };
   kmahjongg = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmahjongg-20.08.3.tar.xz";
-      sha256 = "0wgp9m7xzf5ysmrrnyng4p4jypvzfnqkyw62gknl0qhk531cgq3h";
-      name = "kmahjongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmahjongg-20.12.2.tar.xz";
+      sha256 = "055nihkvfij6a71qn6lw3sbb74zz5r7cp2dghlkai9405ri4gdyc";
+      name = "kmahjongg-20.12.2.tar.xz";
     };
   };
   kmail = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmail-20.08.3.tar.xz";
-      sha256 = "0g59s7wl0n4bp8kw559rdlamlqxl47qvwfms9kr9ign35rvs0ghg";
-      name = "kmail-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmail-20.12.2.tar.xz";
+      sha256 = "09idfdh04687jzh125jw2244ymaqhx6j3563m2cbf2spph0r1vqj";
+      name = "kmail-20.12.2.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmail-account-wizard-20.08.3.tar.xz";
-      sha256 = "0vama5a02dfgxrl4iz88lbi8dvq3d9b055xil770d90pwp0sljcz";
-      name = "kmail-account-wizard-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmail-account-wizard-20.12.2.tar.xz";
+      sha256 = "0a9pz1m3jabi21nrlcj0fqrj1hsgmarw91sxx5qvs74fp2b59368";
+      name = "kmail-account-wizard-20.12.2.tar.xz";
     };
   };
   kmailtransport = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmailtransport-20.08.3.tar.xz";
-      sha256 = "07552qj3ngwvyss7f8cy87c0gmzc47agn54wk85qq0v1fwr73n6z";
-      name = "kmailtransport-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmailtransport-20.12.2.tar.xz";
+      sha256 = "11knn52fc5r637s1w3fzbkapjx6xs1n9v9933ji17zhry7c5rlzv";
+      name = "kmailtransport-20.12.2.tar.xz";
     };
   };
   kmbox = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmbox-20.08.3.tar.xz";
-      sha256 = "0ipmwcicn3qklybqy9v41lh7byn7j62ja8b0xf06z9nliwkk4b0b";
-      name = "kmbox-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmbox-20.12.2.tar.xz";
+      sha256 = "0r76s03g4da2sds6y632gvg228gwsl7gs8ml9rf0fdjb8ymql1hl";
+      name = "kmbox-20.12.2.tar.xz";
     };
   };
   kmime = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmime-20.08.3.tar.xz";
-      sha256 = "1ndbx712vm4v0fi7p8j28d8z35h3bmsixc97z5r9dg03v1kzd36v";
-      name = "kmime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmime-20.12.2.tar.xz";
+      sha256 = "1jpfhsac2pji80cad0yab59lq7q7c1han0gajvwys1j15jyj11gi";
+      name = "kmime-20.12.2.tar.xz";
     };
   };
   kmines = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmines-20.08.3.tar.xz";
-      sha256 = "1mn5hip3vnzmkk1hy14glsplp7f5pm56yv0d5mz25icfgw0xa6lp";
-      name = "kmines-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmines-20.12.2.tar.xz";
+      sha256 = "0378cd1zh6w8slap4wry8m69l27nvi7j2dwz2vwkl76zh31q4pwi";
+      name = "kmines-20.12.2.tar.xz";
     };
   };
   kmix = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmix-20.08.3.tar.xz";
-      sha256 = "00gm93faqmqx0hhkxi3k2pn6sq82k2f622vqgk7mwznkpg66mf4k";
-      name = "kmix-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmix-20.12.2.tar.xz";
+      sha256 = "12kij1y2lbyx71bg32pwb9s9p928pyw44flz9bv2jrzkkf4zwfxk";
+      name = "kmix-20.12.2.tar.xz";
     };
   };
   kmousetool = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmousetool-20.08.3.tar.xz";
-      sha256 = "09qznykysr42rzz5cmqvhvz91cr8dbzwjd73hwaib2lfs3c2cgbl";
-      name = "kmousetool-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmousetool-20.12.2.tar.xz";
+      sha256 = "0ybrczxsmfrj43nr931ylbdgpqmcfx47ifbv2qjn72i8iggrv0cl";
+      name = "kmousetool-20.12.2.tar.xz";
     };
   };
   kmouth = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmouth-20.08.3.tar.xz";
-      sha256 = "0ajhnl1sjllfb42nyafpirmlgcs6waqp8qxvgsz5dk5zkb8daqmr";
-      name = "kmouth-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmouth-20.12.2.tar.xz";
+      sha256 = "1vq41r1vhr5iaxlb5dzpq3vwqk1rn1zxw3k4j7g2xq5xxmibj944";
+      name = "kmouth-20.12.2.tar.xz";
     };
   };
   kmplot = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmplot-20.08.3.tar.xz";
-      sha256 = "0cv7q1wmbb3fkf4s6ns4q1il5zr4q02b3xghpp661ma82d8jhjcy";
-      name = "kmplot-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kmplot-20.12.2.tar.xz";
+      sha256 = "0l6j68zg9xdrgglw7gnji0spjf7pcggym90cccw67jdn2wxc8g6q";
+      name = "kmplot-20.12.2.tar.xz";
     };
   };
   knavalbattle = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knavalbattle-20.08.3.tar.xz";
-      sha256 = "1028i8zl5ynm3vvqajsms2hq8gmmjmjc5dc6r3jyh6r964vxq3nq";
-      name = "knavalbattle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/knavalbattle-20.12.2.tar.xz";
+      sha256 = "0x47rzs7afqygcy45crc10ix4dsivnpmxis9r0w4lpzbq3qzd585";
+      name = "knavalbattle-20.12.2.tar.xz";
     };
   };
   knetwalk = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knetwalk-20.08.3.tar.xz";
-      sha256 = "13pspvi2p68irpbr3f2ck78qmvfl3vahm5qjw2fwhidhpindf9nl";
-      name = "knetwalk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/knetwalk-20.12.2.tar.xz";
+      sha256 = "11h7b5amm4bcng0h8hfcn1r1nkd82h0rl47wvnqczsgjqp2r9h6a";
+      name = "knetwalk-20.12.2.tar.xz";
     };
   };
   knights = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knights-20.08.3.tar.xz";
-      sha256 = "0zqb87mr2x085hi3r9cvdrx2kvxmclh4ffi1ajcb8v1f79wiwzin";
-      name = "knights-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/knights-20.12.2.tar.xz";
+      sha256 = "1p5w61x4ldb5sp77l1c0v7aczi62xpvf1084316byhb5cqmxsqm9";
+      name = "knights-20.12.2.tar.xz";
     };
   };
   knotes = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knotes-20.08.3.tar.xz";
-      sha256 = "0ysw8js2s6njilg4v4vqrl1bzcmqvk42l68pzvyflr112zviqz28";
-      name = "knotes-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/knotes-20.12.2.tar.xz";
+      sha256 = "11dvczl04lmzlhbmqp508bqrsrqqmmprp3nsvakmmidpgnvcm26l";
+      name = "knotes-20.12.2.tar.xz";
     };
   };
   kolf = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kolf-20.08.3.tar.xz";
-      sha256 = "1ywyny8iq2sxglsvpgw6p3w3w567k6cw6waywfcfy0lcnfarg1n0";
-      name = "kolf-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kolf-20.12.2.tar.xz";
+      sha256 = "1jw22m7a2jdw9zmssiihwm35zpq7bg8zk0a68fh5nxbyv43q8fj5";
+      name = "kolf-20.12.2.tar.xz";
     };
   };
   kollision = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kollision-20.08.3.tar.xz";
-      sha256 = "1l8a32bni40jz5jna0ip9ggbx7zp1hhiw2mip7v8f6qc4arbknl8";
-      name = "kollision-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kollision-20.12.2.tar.xz";
+      sha256 = "0g0mf9p1pz9wahc92k9iw1vb8v64y1kj7zgiyzmil6qr1pjyzlgm";
+      name = "kollision-20.12.2.tar.xz";
     };
   };
   kolourpaint = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kolourpaint-20.08.3.tar.xz";
-      sha256 = "0d64gnnb553rxscr8710h5bx8ijxd87jrbix07k41y79i5x60irh";
-      name = "kolourpaint-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kolourpaint-20.12.2.tar.xz";
+      sha256 = "13pb09r9qrgwaii9x3a6qk3qgk288a821p4xgiwaiv9lcbjz56fn";
+      name = "kolourpaint-20.12.2.tar.xz";
     };
   };
   kompare = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kompare-20.08.3.tar.xz";
-      sha256 = "0r9m2vcw9hbdkfdy24pfpqs2b5r0jyxh1ma2h66hfv4ycd470ilc";
-      name = "kompare-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kompare-20.12.2.tar.xz";
+      sha256 = "18n5sw52kwwmbgyb2q5lizpa57by8gmx665bj68wi2hvzdihmxmv";
+      name = "kompare-20.12.2.tar.xz";
     };
   };
   konqueror = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konqueror-20.08.3.tar.xz";
-      sha256 = "1ssjj83jcbcq8i7wx5zd12z7crh2zg6awbpy38maq3c7747nqz7k";
-      name = "konqueror-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/konqueror-20.12.2.tar.xz";
+      sha256 = "0zvr71yz2053y341b12zw92v0yk5whgivcr0iyz488lfw9wq0n4d";
+      name = "konqueror-20.12.2.tar.xz";
     };
   };
   konquest = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konquest-20.08.3.tar.xz";
-      sha256 = "1wq0j02dzdah6yhx8r2cg191617hid9fs780yr317fprkwkgb8cb";
-      name = "konquest-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/konquest-20.12.2.tar.xz";
+      sha256 = "0p4y7s37a3vchplpidlv4bc94gwnsm4k7sl4s2ra0prqga83yxbj";
+      name = "konquest-20.12.2.tar.xz";
     };
   };
   konsole = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konsole-20.08.3.tar.xz";
-      sha256 = "0jjidy756x8n456qbm977a73l8229kk8i489jh52296k8pkh6yjx";
-      name = "konsole-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/konsole-20.12.2.tar.xz";
+      sha256 = "0wq8xbppg4fla8x669rvkz4mrpbpaplr0ysdvnc4djbwnzabs6zw";
+      name = "konsole-20.12.2.tar.xz";
     };
   };
   kontact = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kontact-20.08.3.tar.xz";
-      sha256 = "0qasgxvq7xps0zxk4hf2sizmy90mxyq70m2pq49pq17ij2pa9ynl";
-      name = "kontact-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kontact-20.12.2.tar.xz";
+      sha256 = "05pvrbsbrz39znim2jrcslnji8n4imig8f717jv89nlmllp5sk2i";
+      name = "kontact-20.12.2.tar.xz";
     };
   };
   kontactinterface = {
-    version = "20.08.3";
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/kontactinterface-20.12.2.tar.xz";
+      sha256 = "0i3kxim4rc4mvqlq06g0a8h106gb93v4s0kymysd4a4yw3pq4fas";
+      name = "kontactinterface-20.12.2.tar.xz";
+    };
+  };
+  kontrast = {
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kontactinterface-20.08.3.tar.xz";
-      sha256 = "1ah2814js08sm49ykarqdw7z03w4fbym5cc4vwmzimcvh2bc78j3";
-      name = "kontactinterface-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kontrast-20.12.2.tar.xz";
+      sha256 = "0cqqclyqm0z59n296jh6pnb2zdzligmvsd2icb1qzxn2r69inipa";
+      name = "kontrast-20.12.2.tar.xz";
+    };
+  };
+  konversation = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/konversation-20.12.2.tar.xz";
+      sha256 = "0m13qpvzxm5arawsqh2hygs266jv9915lhc3xhs0b1wbhjb3ii8l";
+      name = "konversation-20.12.2.tar.xz";
     };
   };
   kopete = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kopete-20.08.3.tar.xz";
-      sha256 = "1lsab66k0xq1g0w0cxcpadmf9kkc09x8wwbv4i8y3aj2mn7849gh";
-      name = "kopete-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kopete-20.12.2.tar.xz";
+      sha256 = "0ahcxkvi5ibdl3krm3aw5gamcyfi4s4af2wl6r3sk73l7q4kpxvi";
+      name = "kopete-20.12.2.tar.xz";
     };
   };
   korganizer = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/korganizer-20.08.3.tar.xz";
-      sha256 = "112h6vn2y9d3q3z62cwg3zrak3xgx9affibc9cvr6fzhp4z0x9ps";
-      name = "korganizer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/korganizer-20.12.2.tar.xz";
+      sha256 = "1f2j60gdx3hxz64lhx9cyi7sa75s2qr8zghhk8h1wgdwaz9hvjz8";
+      name = "korganizer-20.12.2.tar.xz";
+    };
+  };
+  kosmindoormap = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/kosmindoormap-20.12.2.tar.xz";
+      sha256 = "0rr6lgfbjdvnxipx0dnzp4hlrvq61ha015mz7qkly88ckwp6m05q";
+      name = "kosmindoormap-20.12.2.tar.xz";
     };
   };
   kpat = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpat-20.08.3.tar.xz";
-      sha256 = "1id4b9jkphi8pp29gc2vb3n9f0g8kl9yy5v8cnyv3jq673aj0fs9";
-      name = "kpat-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kpat-20.12.2.tar.xz";
+      sha256 = "1gcv343aabwcgx3kb9khkvilnxipq200pz14d8qdj41lsa71cynx";
+      name = "kpat-20.12.2.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpimtextedit-20.08.3.tar.xz";
-      sha256 = "1m4r5zbhbjvj3za78xfp3dibyf7mp9gan5ir5zd0k2p7adp3i652";
-      name = "kpimtextedit-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kpimtextedit-20.12.2.tar.xz";
+      sha256 = "1ccvzwbxbsbb4b5hfjvf30fv44b1byjzb08x4vagbrqb47ck763y";
+      name = "kpimtextedit-20.12.2.tar.xz";
     };
   };
   kpkpass = {
-    version = "20.08.3";
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/kpkpass-20.12.2.tar.xz";
+      sha256 = "1m0cqlrpjmfam0lyjjzpd8wgsv9v0x6fr76qr5ndyrfbfcv0qin3";
+      name = "kpkpass-20.12.2.tar.xz";
+    };
+  };
+  kpmcore = {
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpkpass-20.08.3.tar.xz";
-      sha256 = "0zw3xx5mi38za0xbvld97f5bqvwwgyz47kybyrdm7jrhvmmiiiis";
-      name = "kpkpass-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kpmcore-20.12.2.tar.xz";
+      sha256 = "1z8fln51jsgar69m2x8rb95zxbq6r28cycpa7y52gaiywahbsin4";
+      name = "kpmcore-20.12.2.tar.xz";
+    };
+  };
+  kpublictransport = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/kpublictransport-20.12.2.tar.xz";
+      sha256 = "1n7gy9pnykxd39ralfxrrvbsgxn68f1jzvbmkyvj759xrl2na1kq";
+      name = "kpublictransport-20.12.2.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kqtquickcharts-20.08.3.tar.xz";
-      sha256 = "0l7v8vrc7by0w0yshnh21jaqhspmhkvm5cd0hpay6jc9v2azkcf3";
-      name = "kqtquickcharts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kqtquickcharts-20.12.2.tar.xz";
+      sha256 = "06lrvckmddyxl11kyic99dhfn8il88hs1vsnr89y3m8543ij885n";
+      name = "kqtquickcharts-20.12.2.tar.xz";
     };
   };
   krdc = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/krdc-20.08.3.tar.xz";
-      sha256 = "1g9lxdldljh5a2s4g7g9b98lij168l99ah0vr6nvdl53n35pfr8n";
-      name = "krdc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/krdc-20.12.2.tar.xz";
+      sha256 = "0wzv25pdalwgcb74dav4jkxpvak0nix46njn04w2vhy3rdlgplzr";
+      name = "krdc-20.12.2.tar.xz";
     };
   };
   kreversi = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kreversi-20.08.3.tar.xz";
-      sha256 = "0d3y072q61xcik9lf0pz0c9njvarwlvf6hqv5fp5jyqaf2902pmi";
-      name = "kreversi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kreversi-20.12.2.tar.xz";
+      sha256 = "1c0xisbbq6p6ghl5rvhiddpgsa91m4bq8hmrpdw8s02j4g8aix39";
+      name = "kreversi-20.12.2.tar.xz";
     };
   };
   krfb = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/krfb-20.08.3.tar.xz";
-      sha256 = "13nypbcdhh53wq72w59z5q46a09g1w4yyi1pmsjwa8r7jnk8cafk";
-      name = "krfb-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/krfb-20.12.2.tar.xz";
+      sha256 = "0js84sc9s8h7b1zkdg2k83qhh2q3dz5yfk17am480b3889pyjyd8";
+      name = "krfb-20.12.2.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kross-interpreters-20.08.3.tar.xz";
-      sha256 = "0mr5vpbbcv66s6dyrrypy1ai6ba744z8cn4r0iwys35p6am075qj";
-      name = "kross-interpreters-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kross-interpreters-20.12.2.tar.xz";
+      sha256 = "04g8fqcr88k7b8sivkqasj8d5fywhmm69g4spv1rpm4m89gr70jn";
+      name = "kross-interpreters-20.12.2.tar.xz";
     };
   };
   kruler = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kruler-20.08.3.tar.xz";
-      sha256 = "1vhl8acccdqfdj7lci8r2mig9qf1js4f8v7b4fqljpnc3gdg8749";
-      name = "kruler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kruler-20.12.2.tar.xz";
+      sha256 = "0xayhfav4723m5z5bgv4zxa95zvsfgvfh0wf80y8c7wwfgsyn9ja";
+      name = "kruler-20.12.2.tar.xz";
     };
   };
   kshisen = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kshisen-20.08.3.tar.xz";
-      sha256 = "1vy8qh8s60a4ikyw3sh4cbr3p3fk35d4dwdqc263gn4skyrsb1l9";
-      name = "kshisen-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kshisen-20.12.2.tar.xz";
+      sha256 = "079sr9k8zg01imy2c54wx371fcxlzsm122ng0zl4cn69dndczjkf";
+      name = "kshisen-20.12.2.tar.xz";
     };
   };
   ksirk = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksirk-20.08.3.tar.xz";
-      sha256 = "1kxc1b05r8x6pvaiwpvjpgrr88qkm5qs4d3s1ym8rki60c724qpl";
-      name = "ksirk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksirk-20.12.2.tar.xz";
+      sha256 = "10ksb77ljwfm25m8jrxh4cbss0lrjdmiigjbmyppxcls1rz8a6cn";
+      name = "ksirk-20.12.2.tar.xz";
     };
   };
   ksmtp = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksmtp-20.08.3.tar.xz";
-      sha256 = "1p9clzvmsym2fijwvs3s0zqx57bk82mlks52j5ni3il6lvklaayc";
-      name = "ksmtp-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksmtp-20.12.2.tar.xz";
+      sha256 = "0rcs5zcrj8sscr0h0vx4ndbj3ziyxns5glk5bzpj1092b11pwllw";
+      name = "ksmtp-20.12.2.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksnakeduel-20.08.3.tar.xz";
-      sha256 = "03ydbwknn20gadjpwcw0z8zw777hgj8j10w4gvp2dwpb07rdg1pn";
-      name = "ksnakeduel-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksnakeduel-20.12.2.tar.xz";
+      sha256 = "1cd1nldrmhimc1f059hqjkb8g8yjri7gf9cyxz7j0p48dxg93ns4";
+      name = "ksnakeduel-20.12.2.tar.xz";
     };
   };
   kspaceduel = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kspaceduel-20.08.3.tar.xz";
-      sha256 = "1ii3lnxd11d3ihl8j1abh9qn9q0qq8ra9hbrwjs5df2kk36bnirj";
-      name = "kspaceduel-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kspaceduel-20.12.2.tar.xz";
+      sha256 = "0mz3s5q8fyl76ck8b9s65w2q90a5cz2p4clnbxam8f72fk2g0g1v";
+      name = "kspaceduel-20.12.2.tar.xz";
     };
   };
   ksquares = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksquares-20.08.3.tar.xz";
-      sha256 = "1ch7lbylzb9ngdzvpzqq5f30gkm2l4rzk6iqa8xm53rawr7jjqcy";
-      name = "ksquares-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksquares-20.12.2.tar.xz";
+      sha256 = "11mfyyjrdlh8dzpzwvyr48rfg758hr14sb0cw1zvd7d7cz86dr31";
+      name = "ksquares-20.12.2.tar.xz";
     };
   };
   ksudoku = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksudoku-20.08.3.tar.xz";
-      sha256 = "0hnqbd3krxi3zwj8p4n9ydhwfwhw8wljhjdfv0llv0nhj1wb89p9";
-      name = "ksudoku-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksudoku-20.12.2.tar.xz";
+      sha256 = "01i4niy1nlikbw1j7qlwldcaniwb1pl4hr4p6icgsvfzr8pjl09z";
+      name = "ksudoku-20.12.2.tar.xz";
     };
   };
   ksystemlog = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksystemlog-20.08.3.tar.xz";
-      sha256 = "11fc2mn4hkcibpxp7s2gihpp05yix7ws84a0bm6vjiqlidmrk192";
-      name = "ksystemlog-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ksystemlog-20.12.2.tar.xz";
+      sha256 = "1fyrpkk5ipp5q8sairmyx9bayndbbr9srrwdhp7grhbiw8kbjlc7";
+      name = "ksystemlog-20.12.2.tar.xz";
     };
   };
   kteatime = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kteatime-20.08.3.tar.xz";
-      sha256 = "1vj738s2a7nnrvxi847mdmn1vg79kh9k8gqaflcwnvyxanf6n4f7";
-      name = "kteatime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kteatime-20.12.2.tar.xz";
+      sha256 = "18rpnvagrcmd62qss31rkv81kkjcz9kcisj9q0j41p770jvan8id";
+      name = "kteatime-20.12.2.tar.xz";
     };
   };
   ktimer = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktimer-20.08.3.tar.xz";
-      sha256 = "1rc1z93s24b7p2ixr4xbpg0sj8ls90gzfijwj9f8b0lrwd905ysv";
-      name = "ktimer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktimer-20.12.2.tar.xz";
+      sha256 = "17sw7wl9844sg180h0x2skaj4bnkv6qin6cwklsp058wyf06w5wy";
+      name = "ktimer-20.12.2.tar.xz";
     };
   };
   ktnef = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktnef-20.08.3.tar.xz";
-      sha256 = "1lj93sqyi522k91jiyf7d26vx5sgn5njhyaf8plsfz5rj82dw1m4";
-      name = "ktnef-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktnef-20.12.2.tar.xz";
+      sha256 = "147dxalzgqfmacr0f44pbxg0ks5p7ck607gkbzf5asxgn4dlvgxq";
+      name = "ktnef-20.12.2.tar.xz";
+    };
+  };
+  ktorrent = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/ktorrent-20.12.2.tar.xz";
+      sha256 = "1fvbg3700my5algzif4dyy7zsc74qrby7ldfbj7snlxa4scws042";
+      name = "ktorrent-20.12.2.tar.xz";
     };
   };
   ktouch = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktouch-20.08.3.tar.xz";
-      sha256 = "1ssxd7f75866rn5k192bnm016d8674q13ibcgmaxqsmr7wqkyd39";
-      name = "ktouch-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktouch-20.12.2.tar.xz";
+      sha256 = "0j3xzm5ghnfvqb98xwrjzkrdm991af8rgnay38s081ykvj2hxj3n";
+      name = "ktouch-20.12.2.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-accounts-kcm-20.08.3.tar.xz";
-      sha256 = "0039svbzx7fphyk6cw4hb8k4h7l6q31pbwvp6pvls450rycz8i8y";
-      name = "ktp-accounts-kcm-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-accounts-kcm-20.12.2.tar.xz";
+      sha256 = "0dyr3600yrd2hjs2s54210h1kj95w5mz9pl2fpwzcqgkmmd9vss5";
+      name = "ktp-accounts-kcm-20.12.2.tar.xz";
     };
   };
   ktp-approver = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-approver-20.08.3.tar.xz";
-      sha256 = "1kqsdw7vkcd0ka98y2r7qz7dp5hsrr2m8k1xlh3gpj7fdxpla2bh";
-      name = "ktp-approver-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-approver-20.12.2.tar.xz";
+      sha256 = "1h3fi19qqmik6f7h12manb8yval0qqj7jdhrpp07ck67m7mibwzr";
+      name = "ktp-approver-20.12.2.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-auth-handler-20.08.3.tar.xz";
-      sha256 = "0wbhg458ysipwma8sygimasq71sbrzmx3vwqi51ai8y5hwrx04j4";
-      name = "ktp-auth-handler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-auth-handler-20.12.2.tar.xz";
+      sha256 = "158n88pcxj7hdmsmhcqbfpqc4lhrpzighxgb4wdrzizi9dwpxb3h";
+      name = "ktp-auth-handler-20.12.2.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-call-ui-20.08.3.tar.xz";
-      sha256 = "1fh8bz9kc6f8v28x12xp3vw19swgcq07zyjzhd6qcnwf1bv6gl7i";
-      name = "ktp-call-ui-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-call-ui-20.12.2.tar.xz";
+      sha256 = "0xhf79gqr6b8hiscv6jnmjnl8nb7c6vsvxn7hzvri9nm7hfmldya";
+      name = "ktp-call-ui-20.12.2.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-common-internals-20.08.3.tar.xz";
-      sha256 = "193yx4g1fwlwysy5scb7m24wqmvwmfyyb9sv7arw7zn5czlg480z";
-      name = "ktp-common-internals-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-common-internals-20.12.2.tar.xz";
+      sha256 = "06m8g80lj2cnx5cnfi6m1fy6pg6rm78kxg7v1493xcsfzizlc276";
+      name = "ktp-common-internals-20.12.2.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-contact-list-20.08.3.tar.xz";
-      sha256 = "0093z17r1xqlb1zlgxfayrnrkyl8zmnnasfd8i97dx712wmbbxxa";
-      name = "ktp-contact-list-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-contact-list-20.12.2.tar.xz";
+      sha256 = "037si47l8nc18d7yzh6d7i3gy710y5npxv4wcal6yg8mlr2qzjli";
+      name = "ktp-contact-list-20.12.2.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-contact-runner-20.08.3.tar.xz";
-      sha256 = "063jylnq3gm0s0jh1xs6b591a161sb6gdi840l40mqlhhg7i8x55";
-      name = "ktp-contact-runner-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-contact-runner-20.12.2.tar.xz";
+      sha256 = "1pv7smf5mld5rgld2nsqjwgl7vwsf99f3z4hamlbq6bpdg02w936";
+      name = "ktp-contact-runner-20.12.2.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-desktop-applets-20.08.3.tar.xz";
-      sha256 = "1i69qzfa455phjnd5ycflyggcbq7ycn2cc7a3ni5195isjzq6r6s";
-      name = "ktp-desktop-applets-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-desktop-applets-20.12.2.tar.xz";
+      sha256 = "1mx1q1gk756pkbpwghsvkspj3npgfzp2lf4jqldkyygvyqn3gxx4";
+      name = "ktp-desktop-applets-20.12.2.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-filetransfer-handler-20.08.3.tar.xz";
-      sha256 = "0a26ziacl3fkd0a0h1579jnwjzjlsz0zymj9k4da4sb60zad5y72";
-      name = "ktp-filetransfer-handler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-filetransfer-handler-20.12.2.tar.xz";
+      sha256 = "16ys5cyx1pzcv0affy8agp0sbci9rkvpknfffldrvlgqppxza5rd";
+      name = "ktp-filetransfer-handler-20.12.2.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-kded-module-20.08.3.tar.xz";
-      sha256 = "105vh6b7a0v02arksbwxn30slpcg11cpvb7dqmvf041iyr13sqsv";
-      name = "ktp-kded-module-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-kded-module-20.12.2.tar.xz";
+      sha256 = "1wkvi5l9fvq24c3vdflg0azjxykid61i6mi59cnrnr866a1rbgrg";
+      name = "ktp-kded-module-20.12.2.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-send-file-20.08.3.tar.xz";
-      sha256 = "08pp3029jplc6rcbav40cgy787gn3jjl312gbgvnwzglxaqvcg4b";
-      name = "ktp-send-file-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-send-file-20.12.2.tar.xz";
+      sha256 = "0j32c81rabbxh3m0jnnahny01qz2h7yc7l90w39r2jkv9r5f3yvf";
+      name = "ktp-send-file-20.12.2.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-text-ui-20.08.3.tar.xz";
-      sha256 = "1anxl9wa5ndyi9r9w0kpivx8nv1xpx28xjvkdplkc75cc1wl88sw";
-      name = "ktp-text-ui-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktp-text-ui-20.12.2.tar.xz";
+      sha256 = "09wkpyadf3dvnrbxrasr66yw4hqnb3kbk6va9bs836fvcaiwagwd";
+      name = "ktp-text-ui-20.12.2.tar.xz";
     };
   };
   ktuberling = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktuberling-20.08.3.tar.xz";
-      sha256 = "0q6ynmn6w5q65a77fq8n9vxqswrimln22b1zfgxmb2i3qwnhkrmz";
-      name = "ktuberling-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/ktuberling-20.12.2.tar.xz";
+      sha256 = "0yndqhgw9s2hydfsz2x3lr1m22ii2whc4kcp2jbkj9ssiymp8s68";
+      name = "ktuberling-20.12.2.tar.xz";
     };
   };
   kturtle = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kturtle-20.08.3.tar.xz";
-      sha256 = "0riv76vwvz94zixqhhwkxw8sz2r2xqai39yh9hr31d28q9rza384";
-      name = "kturtle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kturtle-20.12.2.tar.xz";
+      sha256 = "1a46c6j7jng9l789wdpp7qj639872dfj268hj8nq63n27f82whr0";
+      name = "kturtle-20.12.2.tar.xz";
     };
   };
   kubrick = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kubrick-20.08.3.tar.xz";
-      sha256 = "03k73gr33dr3va69vc70fsfcdwkqz70bg87yk2l2j33x8wsgl4wx";
-      name = "kubrick-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kubrick-20.12.2.tar.xz";
+      sha256 = "0g3zxdbj5l28msvs8gpn15g739pwwids7wxmky6w3b4qyn427j8m";
+      name = "kubrick-20.12.2.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwalletmanager-20.08.3.tar.xz";
-      sha256 = "1l07vxl2x3jl8553rbvr3p0k3rc95nmrw4vhxxynl3102xshrg5i";
-      name = "kwalletmanager-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kwalletmanager-20.12.2.tar.xz";
+      sha256 = "02lx3p7860pigslx6s3bjg54sjjv1q93f9aknv5d32iblv2gaxiw";
+      name = "kwalletmanager-20.12.2.tar.xz";
     };
   };
   kwave = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwave-20.08.3.tar.xz";
-      sha256 = "0zk8ik03qcc6y0vhpih8sk2jpkxwxalmqmaan2767k9h92grdpc8";
-      name = "kwave-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kwave-20.12.2.tar.xz";
+      sha256 = "0nankggamy1jxllnsv642kav57kwkbxpkd2mz6rarjinfnnqi7kd";
+      name = "kwave-20.12.2.tar.xz";
     };
   };
   kwordquiz = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwordquiz-20.08.3.tar.xz";
-      sha256 = "1kiqk3xyd0l7kqdxqjqs8mw4drcdbdri9xxi5gcav57ndcinknqb";
-      name = "kwordquiz-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/kwordquiz-20.12.2.tar.xz";
+      sha256 = "1iik5khnsarxjipmd8znbiqs20bd65hanhmdmp7awqs7p0k4a0sq";
+      name = "kwordquiz-20.12.2.tar.xz";
     };
   };
   libgravatar = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libgravatar-20.08.3.tar.xz";
-      sha256 = "09dvx2rb1j7q4r0gkbhz0vjk8ya3njqprpjqdhwcq7xwc2j9h0hr";
-      name = "libgravatar-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libgravatar-20.12.2.tar.xz";
+      sha256 = "07pnj708wrvfmmy7j2vsx9j1sl9wx3hd7vfnpqa4zd24ci7x7y3d";
+      name = "libgravatar-20.12.2.tar.xz";
     };
   };
   libkcddb = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkcddb-20.08.3.tar.xz";
-      sha256 = "0r36hs79hmq0znsds0d04lj7ffs6l2d866kyn1z1fdwr9b3crirg";
-      name = "libkcddb-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkcddb-20.12.2.tar.xz";
+      sha256 = "1px7cgc75ypxaqknamqgxps4796388j99ycrbgrlyrhzws1mva8k";
+      name = "libkcddb-20.12.2.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkcompactdisc-20.08.3.tar.xz";
-      sha256 = "1nglk3kbx5czqla3cnpnf1fk71pf2cl9h6rgb40ak1xw4z31d456";
-      name = "libkcompactdisc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkcompactdisc-20.12.2.tar.xz";
+      sha256 = "0yj2gkl1d76mf2lp02apxh4lmb9rnzvp0c8y0992ssnfsrivalp4";
+      name = "libkcompactdisc-20.12.2.tar.xz";
     };
   };
   libkdcraw = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdcraw-20.08.3.tar.xz";
-      sha256 = "1806i99qsrmixdg5b0hyi8h55fk00q6wxsnrblbwcmsb268jddp7";
-      name = "libkdcraw-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkdcraw-20.12.2.tar.xz";
+      sha256 = "1hgw087frq9yzzwp2mkl3xqz2gd4v82kyiym2316i1xpmbkgcqfm";
+      name = "libkdcraw-20.12.2.tar.xz";
     };
   };
   libkdegames = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdegames-20.08.3.tar.xz";
-      sha256 = "1ccbcwwqb53bgqlr1rq9plpw21mipxp8rsi1f7l0p1jzpw054p08";
-      name = "libkdegames-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkdegames-20.12.2.tar.xz";
+      sha256 = "0fcl06z5zl1hycj8f8q9dz6fc9lb0dqd5ciha4yig98ybzi3zn8r";
+      name = "libkdegames-20.12.2.tar.xz";
     };
   };
   libkdepim = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdepim-20.08.3.tar.xz";
-      sha256 = "1v77g02v5sdqprh8psx5xpjgf8v91il60ca59yivm5jvc3hdf3f6";
-      name = "libkdepim-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkdepim-20.12.2.tar.xz";
+      sha256 = "0f9c96w7ijlvfg9dr0w9wwaf05fn0z32zx8nn8jp42pzcbn6yr56";
+      name = "libkdepim-20.12.2.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkeduvocdocument-20.08.3.tar.xz";
-      sha256 = "0ghkx6x5sn5fl934ybhl32knwv9zky0n1vkjw2w93lpms45xmw76";
-      name = "libkeduvocdocument-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkeduvocdocument-20.12.2.tar.xz";
+      sha256 = "0lki60mv82ygss2bxgwg178xabvfn85zlg0pwk2gj30zg0jiaw66";
+      name = "libkeduvocdocument-20.12.2.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkexiv2-20.08.3.tar.xz";
-      sha256 = "1lh3947w6xgzl2r1wm6m4kd478q6bv89f0c3c38ldv30imfw7rfl";
-      name = "libkexiv2-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkexiv2-20.12.2.tar.xz";
+      sha256 = "10j82xk7y7vf9y9ss83hc9fd9c1dbd55nwjf28bj7myqaji4wdpb";
+      name = "libkexiv2-20.12.2.tar.xz";
     };
   };
   libkgapi = {
-    version = "20.08.3";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkgapi-20.08.3.tar.xz";
-      sha256 = "1kmgf9v9rvb67l7aw5xsx7v44l4pz8rl6p09lk26irq7gd4k68la";
-      name = "libkgapi-20.08.3.tar.xz";
-    };
-  };
-  libkgeomap = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkgeomap-20.08.3.tar.xz";
-      sha256 = "14ipksxnvgk2s1sw7a70153iy9aik9mf4i7k8y3pzdr3l3155ayk";
-      name = "libkgeomap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkgapi-20.12.2.tar.xz";
+      sha256 = "1yaas07ixxjnb5a37dq93skqs0vk08rdr9ll30jr7kdll311s5ni";
+      name = "libkgapi-20.12.2.tar.xz";
     };
   };
   libkipi = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkipi-20.08.3.tar.xz";
-      sha256 = "1b5qby7xm926qnzrf1zpb89fwx1a2syhqnznmdjxifj499p1jqjb";
-      name = "libkipi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkipi-20.12.2.tar.xz";
+      sha256 = "1axjvkrmjszxyh0fdm9k25g4gpzmn4hsw222k2qj3smvnhdj37zk";
+      name = "libkipi-20.12.2.tar.xz";
     };
   };
   libkleo = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkleo-20.08.3.tar.xz";
-      sha256 = "1d6dal4qnrikg6ma2ird4b2sdivqqkkhamvd3s1srcxppc3aiq79";
-      name = "libkleo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkleo-20.12.2.tar.xz";
+      sha256 = "0xsljfiqqggdp31c7irjn6lgacdds5kb7sr3khg24bsgip9488k1";
+      name = "libkleo-20.12.2.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkmahjongg-20.08.3.tar.xz";
-      sha256 = "0xabp1vzbzs52m3bb9nzm1d9md1n4j4pr13izn6nv28ja7477nnm";
-      name = "libkmahjongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkmahjongg-20.12.2.tar.xz";
+      sha256 = "1yl2smx0ybr164pl8nv5a7jibq3pmpf0v4ijvardp53j51bs2c2q";
+      name = "libkmahjongg-20.12.2.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkomparediff2-20.08.3.tar.xz";
-      sha256 = "0nk0jkf0jwaz1yqzzp44c6xyjgw42gclkcvw8w61w1f8sdl40wb8";
-      name = "libkomparediff2-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libkomparediff2-20.12.2.tar.xz";
+      sha256 = "03fn3l1qhzivck7jzfp7fwpgix701paj03rzvc46rs4f1bfmb1d9";
+      name = "libkomparediff2-20.12.2.tar.xz";
     };
   };
   libksane = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libksane-20.08.3.tar.xz";
-      sha256 = "0d2cnmvk16g1vnx9jd7jvp3bpw07ss54khmhqip8iskkvcfll9j0";
-      name = "libksane-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libksane-20.12.2.tar.xz";
+      sha256 = "1bhwfsyfd2z4hagfggz3ckxbyqrifcbwyn79h59qpng7nkzsgw4b";
+      name = "libksane-20.12.2.tar.xz";
     };
   };
   libksieve = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libksieve-20.08.3.tar.xz";
-      sha256 = "0bhpdqynazssql2iivvpb9l8npa441345gcn59fc0va6barl9sam";
-      name = "libksieve-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/libksieve-20.12.2.tar.xz";
+      sha256 = "0rjchcpc4sx53siv3b9hq6s12qh96rrb4xmnk3gjhsvqq9gmyq3j";
+      name = "libksieve-20.12.2.tar.xz";
+    };
+  };
+  libktorrent = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/libktorrent-20.12.2.tar.xz";
+      sha256 = "15ywv00vklvqw7x6id4vycf4rmi4j3s6z70c68h1b6v8n9j3rz3b";
+      name = "libktorrent-20.12.2.tar.xz";
     };
   };
   lokalize = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/lokalize-20.08.3.tar.xz";
-      sha256 = "0iab8sd1qh7h0zna7lc3v43z6rcmxba9v4nynhl5miiac4r6ddr8";
-      name = "lokalize-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/lokalize-20.12.2.tar.xz";
+      sha256 = "1ms7x5aw5z63q2xy6f3x8dl1k39yjqbabzh8qznaqs172bwmwzz7";
+      name = "lokalize-20.12.2.tar.xz";
     };
   };
   lskat = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/lskat-20.08.3.tar.xz";
-      sha256 = "1rcmh592w5gd5b69czfxycypidj74y2d91cw92rccariadz9vnjz";
-      name = "lskat-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/lskat-20.12.2.tar.xz";
+      sha256 = "087zrwy5pabyy7zpkplxn9is2msr9kpa8r7bpc6kxylx85sd4nsr";
+      name = "lskat-20.12.2.tar.xz";
     };
   };
   mailcommon = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mailcommon-20.08.3.tar.xz";
-      sha256 = "0bhs60cz4qcrqkmw2sm6cd2laq8lzj9vcwi8kjqkajsidh342wdv";
-      name = "mailcommon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/mailcommon-20.12.2.tar.xz";
+      sha256 = "0qbbr5m5glcp7rh3aljkrfs27ypdcb5b72q602irivhbgv56c6v5";
+      name = "mailcommon-20.12.2.tar.xz";
     };
   };
   mailimporter = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mailimporter-20.08.3.tar.xz";
-      sha256 = "0w6yfgqx0adlkwx32vmb23kl6n50737jiabmad3pnhqw8rv41h80";
-      name = "mailimporter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/mailimporter-20.12.2.tar.xz";
+      sha256 = "16alrfyvgwih9i7fzvmfhbmlsp0l942qml43w2rwkg974g8188yv";
+      name = "mailimporter-20.12.2.tar.xz";
     };
   };
   marble = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/marble-20.08.3.tar.xz";
-      sha256 = "1xpxgy724z97k063fdk0l3mrl8i6nvnhj35b4987jqji76i92ffb";
-      name = "marble-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/marble-20.12.2.tar.xz";
+      sha256 = "0kgiwsx58yhng92v5c90bz02vsn70p6y7gf6qr5fvljbldrxq3a2";
+      name = "marble-20.12.2.tar.xz";
+    };
+  };
+  markdownpart = {
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/markdownpart-20.12.2.tar.xz";
+      sha256 = "08fifhw40q2xhi3lp76a3b7jgipq3v1gvp1f5id83jvv9bg5m85k";
+      name = "markdownpart-20.12.2.tar.xz";
     };
   };
   mbox-importer = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mbox-importer-20.08.3.tar.xz";
-      sha256 = "1qh0f93df228cqlcqdwc7g6im3g0gkfmzir3ccsmb5iv0ygvjl6f";
-      name = "mbox-importer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/mbox-importer-20.12.2.tar.xz";
+      sha256 = "1jiapp7pblanra83p720nj1rzqd566ij28za9jrkn3nj3xv2zm62";
+      name = "mbox-importer-20.12.2.tar.xz";
     };
   };
   messagelib = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/messagelib-20.08.3.tar.xz";
-      sha256 = "16amni6qrq96h8jr313gc7k9frwr20d4pk9y2i61a1xm2w3xsqd4";
-      name = "messagelib-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/messagelib-20.12.2.tar.xz";
+      sha256 = "07mzwsn0bmfsrsn6wlmz7kwrix4d33b007jvx37nckmarr6xcx54";
+      name = "messagelib-20.12.2.tar.xz";
     };
   };
   minuet = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/minuet-20.08.3.tar.xz";
-      sha256 = "1l45g7labnyz0pkwcfhjl5a3ypr7cy3bsshr06ab85364yjwazvi";
-      name = "minuet-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/minuet-20.12.2.tar.xz";
+      sha256 = "00d08qwfa4pvlcysp1af3n91bwb8idkl6gjwxrin3kliwns0ivfj";
+      name = "minuet-20.12.2.tar.xz";
     };
   };
   okular = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/okular-20.08.3.tar.xz";
-      sha256 = "1q59ikcwsfgjc0202daingxv15iarnzba6szdncznzcafd6hhk9z";
-      name = "okular-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/okular-20.12.2.tar.xz";
+      sha256 = "1959flll9rrwsgb3gpifvsciyvl70j46xb0acfx9zrvsddvbpabq";
+      name = "okular-20.12.2.tar.xz";
     };
   };
   palapeli = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/palapeli-20.08.3.tar.xz";
-      sha256 = "107z3izfznrq7g5aqb5a7r8a4ibaia90g334d7wwvd7prm7hdgfp";
-      name = "palapeli-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/palapeli-20.12.2.tar.xz";
+      sha256 = "1z80892gp6hg75vl6aicfvf5013412b5xglrpsp86lbx2r7d6ikw";
+      name = "palapeli-20.12.2.tar.xz";
     };
   };
   parley = {
-    version = "20.08.3";
+    version = "20.12.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.2/src/parley-20.12.2.tar.xz";
+      sha256 = "16lymvvwglzvrfl74p7w9l2vahhrkm58fn6iicn5w1751bavjiq7";
+      name = "parley-20.12.2.tar.xz";
+    };
+  };
+  partitionmanager = {
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/parley-20.08.3.tar.xz";
-      sha256 = "0wli09zkk5z50y1gzp5wc9k056xjaadlq97j09lf6lqyg6kb56ya";
-      name = "parley-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/partitionmanager-20.12.2.tar.xz";
+      sha256 = "1f0nmz99fhp6c48sg92fwssxdvmwx2bj4l7phb0gqfnfqk4sw1xd";
+      name = "partitionmanager-20.12.2.tar.xz";
     };
   };
   picmi = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/picmi-20.08.3.tar.xz";
-      sha256 = "1lkpazsi9dyb2y9q5bk56d80x7x035rf4hdap25i8qfj3ilykv3w";
-      name = "picmi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/picmi-20.12.2.tar.xz";
+      sha256 = "024afpylfb6n6dd0g1iif257a0mgzmmmjl24h2riz4cyfvd26mkc";
+      name = "picmi-20.12.2.tar.xz";
     };
   };
   pimcommon = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pimcommon-20.08.3.tar.xz";
-      sha256 = "0mpl7li2y5xjzk4hdb85d1x7cz15cicd91c1krlw74q7pbrjinlq";
-      name = "pimcommon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/pimcommon-20.12.2.tar.xz";
+      sha256 = "0fbmahp9m1jzi626rggmp09j3338z8f86hszvwfnk7ydn16hy5rs";
+      name = "pimcommon-20.12.2.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pim-data-exporter-20.08.3.tar.xz";
-      sha256 = "0f08c16d3730fbdsbrwlr9w5c4l9xcmd1bdbv5m38h5r2ddlkvzr";
-      name = "pim-data-exporter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/pim-data-exporter-20.12.2.tar.xz";
+      sha256 = "13z8r2rq1453zprvpjnf5y5v3x1828l8gyvbivf0dmfhb3hi1bih";
+      name = "pim-data-exporter-20.12.2.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pim-sieve-editor-20.08.3.tar.xz";
-      sha256 = "1falzw2a2v912fdzlyljsw9rcy1whrn9ys9ccrskkpvjn8y444x4";
-      name = "pim-sieve-editor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/pim-sieve-editor-20.12.2.tar.xz";
+      sha256 = "11ji1033yq4lwpi2b331i4f5kpak66h6zyviv344wyab05ljkyhd";
+      name = "pim-sieve-editor-20.12.2.tar.xz";
     };
   };
   poxml = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/poxml-20.08.3.tar.xz";
-      sha256 = "0gzg3vbsjrfhs1jg59g7b3gf3b4qajiffkb94njkz8v1f0fadlxp";
-      name = "poxml-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/poxml-20.12.2.tar.xz";
+      sha256 = "1hnm13x102fq7g4pginhdpq473dw9y52kw497773b72my94yj2zz";
+      name = "poxml-20.12.2.tar.xz";
     };
   };
   print-manager = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/print-manager-20.08.3.tar.xz";
-      sha256 = "18nl9gpmzz4g9fqzyvbh858nxz23b2vyi505qacqvcrz13r0l78z";
-      name = "print-manager-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/print-manager-20.12.2.tar.xz";
+      sha256 = "1r19fsgnqdlmrpgbby13nj4v97nqlxlx8c0f7yv3izgncpavr0id";
+      name = "print-manager-20.12.2.tar.xz";
     };
   };
   rocs = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/rocs-20.08.3.tar.xz";
-      sha256 = "0bd9x7kh2s4z79ff9byd3ly7k040c574zwrrgi8sq21yd531hxhj";
-      name = "rocs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/rocs-20.12.2.tar.xz";
+      sha256 = "06sy6g32cigls1znvh5wvs7gw9h492d8zjqm6b50wsw0hbx61kvz";
+      name = "rocs-20.12.2.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/signon-kwallet-extension-20.08.3.tar.xz";
-      sha256 = "1s0syq9aw2q34k1wxrpjqqi12xay1h0vc4s2d8l184hzzg8qq71i";
-      name = "signon-kwallet-extension-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/signon-kwallet-extension-20.12.2.tar.xz";
+      sha256 = "0ycr0dn8bp51dc510gqxik0rm0wk5728px7cps9csy33izfjpx9p";
+      name = "signon-kwallet-extension-20.12.2.tar.xz";
     };
   };
   spectacle = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/spectacle-20.08.3.tar.xz";
-      sha256 = "16dwbsk9hik7gmz9s4x78hibz4x9d1fpx8x2i2giry5hwzknfcw4";
-      name = "spectacle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/spectacle-20.12.2.tar.xz";
+      sha256 = "0v0vzspr0vwqi7m7yhnhavxzkfqdnz1g06ispfl1lmpjg1xh90by";
+      name = "spectacle-20.12.2.tar.xz";
     };
   };
   step = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/step-20.08.3.tar.xz";
-      sha256 = "05ljsmgpra1az64yddy8idi46cv3afaf2v4n7d5j81a8vvlz7fj1";
-      name = "step-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/step-20.12.2.tar.xz";
+      sha256 = "1drdv95rimdsgarcc00jlfm3jmcan2ln32yq0q2nbbxsj0c502k7";
+      name = "step-20.12.2.tar.xz";
     };
   };
   svgpart = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/svgpart-20.08.3.tar.xz";
-      sha256 = "0wwq576dblqmfknr0qs8kskw7nar6hah95fqicdn97xdy4nvzhc6";
-      name = "svgpart-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/svgpart-20.12.2.tar.xz";
+      sha256 = "1v1qd5sgb89gkvb62jad8ava2y599a4acb6hkqyh758y798ylgwj";
+      name = "svgpart-20.12.2.tar.xz";
     };
   };
   sweeper = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/sweeper-20.08.3.tar.xz";
-      sha256 = "0i4zvbljdzkj47vh8kizam7vsc9k7mvf8dqd2j6ixr4p0cqvw5a8";
-      name = "sweeper-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/sweeper-20.12.2.tar.xz";
+      sha256 = "0yh6dqw37v8l54635k7g27dnsrl319kfxrkiiy09cx6pjzf87k1h";
+      name = "sweeper-20.12.2.tar.xz";
     };
   };
   umbrello = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/umbrello-20.08.3.tar.xz";
-      sha256 = "1hh5gyggb4f3pjip8dfvx00hi83gj65c92jgzkzahj7p35mkplgl";
-      name = "umbrello-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/umbrello-20.12.2.tar.xz";
+      sha256 = "0zzic469brh0w41w4ni66mfrj0p44xm1h32iwbb7imgnpw6dqksf";
+      name = "umbrello-20.12.2.tar.xz";
     };
   };
   yakuake = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/yakuake-20.08.3.tar.xz";
-      sha256 = "05zd2xm5vgrgz0bxbkh1mpiknlqzpzk5jb74lnd5x7wn5b80ngv0";
-      name = "yakuake-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/yakuake-20.12.2.tar.xz";
+      sha256 = "16irzxl6xfyanr7lrvap0ng911lml10bbjr0axk2a7m0gc1llrn4";
+      name = "yakuake-20.12.2.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "20.08.3";
+    version = "20.12.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/zeroconf-ioslave-20.08.3.tar.xz";
-      sha256 = "1afga0liiy9n98kb0gmxzbb6ckhdgbrdc4ig1x9pwp98wr1fzmcg";
-      name = "zeroconf-ioslave-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.2/src/zeroconf-ioslave-20.12.2.tar.xz";
+      sha256 = "0yqni8vwwwya3cv006cf5svs1jhn6369clvrl6m79iacy0iirynk";
+      name = "zeroconf-ioslave-20.12.2.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
new file mode 100644
index 00000000000..0b3e21cc03a
--- /dev/null
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -0,0 +1,70 @@
+{ lib, stdenv
+, fetchurl
+, appimageTools
+, makeWrapper
+, electron_11
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "1password";
+  version = "8.0.30";
+
+  src = fetchurl {
+    url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
+    hash = "sha256-j+fp/f8nta+OOuOFU4mmUrGYlVmAqdaXO4rLJ0in+m8=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  appimageContents = appimageTools.extractType2 {
+    name = "${pname}-${version}";
+    inherit src;
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = let
+    runtimeLibs = [
+      openssl.out
+      stdenv.cc.cc
+    ];
+  in ''
+    mkdir -p $out/bin $out/share/1password
+
+    # Applications files.
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+
+    # Desktop file.
+    install -Dt $out/share/applications ${appimageContents}/${pname}.desktop
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+
+    # Icons.
+    cp -a ${appimageContents}/usr/share/icons $out/share
+
+    # Wrap the application with Electron.
+    makeWrapper "${electron_11}/bin/electron" "$out/bin/${pname}" \
+      --add-flags "$out/share/${pname}/resources/app.asar" \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeLibs}"
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "Multi-platform password manager";
+    longDescription = ''
+      1Password is a multi-platform package manager.
+
+      The Linux version is currently a development preview and can
+      only be used to search, view, and copy items. However items
+      cannot be created or edited.
+    '';
+    homepage = "https://1password.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ danieldk timstott ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/1password-gui/update.sh b/pkgs/applications/misc/1password-gui/update.sh
new file mode 100755
index 00000000000..7703aba9984
--- /dev/null
+++ b/pkgs/applications/misc/1password-gui/update.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused common-updater-scripts
+
+version="$(curl -sL https://onepassword.s3.amazonaws.com/linux/debian/dists/edge/main/binary-amd64/Packages | sed -r -n 's/^Version: (.*)-[0-9]+/\1/p' | head -n1)"
+update-source-version _1password-gui "$version"
diff --git a/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/almanah/default.nix b/pkgs/applications/misc/almanah/default.nix
index b8029b6229d..eb5dc8950f9 100644
--- a/pkgs/applications/misc/almanah/default.nix
+++ b/pkgs/applications/misc/almanah/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "almanah";
-  version = "0.12.2";
+  version = "0.12.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "IWYOnOu0C9uQ9k1dgWkJ6Kv+o/jY+6Llfsi4PusHE24=";
+    sha256 = "lMpDQOxlGljP66APR49aPbTZnfrGakbQ2ZcFvmiPMFo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/ape/default.nix b/pkgs/applications/misc/ape/default.nix
index f16d6e15733..c359d606a85 100644
--- a/pkgs/applications/misc/ape/default.nix
+++ b/pkgs/applications/misc/ape/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
   inherit pname;
   version = "2019-08-10";
 
-  buildInputs = [ swiProlog makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ swiProlog ];
 
   src = fetchFromGitHub {
      owner = "Attempto";
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index f3fec316bf9..70b3c71c0b3 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -1,15 +1,15 @@
-{ lib, python3, fetchPypi, appdirs, attrs, requests,
-beautifulsoup4, click-plugins, elasticsearch, flask_login, flask_wtf,
-pypandoc, python-dotenv, python-frontmatter, tinydb, validators,
-watchdog, wtforms, html2text, flask-compress }:
+{ lib, buildPythonApplication, fetchPypi, appdirs, attrs
+, beautifulsoup4, click-plugins, elasticsearch, flask-compress
+, flask_login, flask_wtf, html2text, python-dotenv, python-frontmatter
+, requests, tinydb, validators, werkzeug, wtforms }:
 
-python3.pkgs.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "archivy";
-  version = "1.0.1";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53a43e26e9081ac266412d8643c66c07c289c4639bbaec374fd5147441253a4f";
+    sha256 = "sha256-yUXsTPb5oJYZA9MlHz7eLowRjD/ltq5VLTHeOMqcL/M=";
   };
 
   # Relax some dependencies
@@ -30,18 +30,17 @@ python3.pkgs.buildPythonApplication rec {
     beautifulsoup4
     click-plugins
     elasticsearch
+    flask-compress
     flask_login
     flask_wtf
-    pypandoc
+    html2text
     python-dotenv
     python-frontmatter
-    tinydb
     requests
+    tinydb
     validators
-    watchdog
+    werkzeug
     wtforms
-    html2text
-    flask-compress
   ];
 
   # __init__.py attempts to mkdir in read-only file system
diff --git a/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch b/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch
new file mode 100644
index 00000000000..6aacbcc65bc
--- /dev/null
+++ b/pkgs/applications/misc/audio/sox/0001-musl-rewind-pipe-workaround.patch
@@ -0,0 +1,24 @@
+From e7446c9bcb47674c9d0ee3b5bab129e9b86eb1c9 Mon Sep 17 00:00:00 2001
+From: Walter Franzini <walter.franzini@gmail.com>
+Date: Fri, 7 Jun 2019 17:57:11 +0200
+Subject: [PATCH] musl does not support rewind pipe, make it build anyway
+
+---
+ src/formats.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/formats.c b/src/formats.c
+index f3efe764..477bf451 100644
+--- a/src/formats.c
++++ b/src/formats.c
+@@ -424,7 +424,6 @@ static void UNUSED rewind_pipe(FILE * fp)
+   /* To fix this #error, either simply remove the #error line and live without
+    * file-type detection with pipes, or add support for your compiler in the
+    * lines above.  Test with cat monkey.wav | ./sox --info - */
+-  #error FIX NEEDED HERE
+   #define NO_REWIND_PIPE
+   (void)fp;
+ #endif
+-- 
+2.19.2
+
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index dd5dbde5286..946150d2b88 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
   # configure.ac uses pkg-config only to locate libopusfile
   nativeBuildInputs = optional enableOpusfile pkg-config;
 
+  patches = [ ./0001-musl-rewind-pipe-workaround.patch ];
+
   buildInputs =
     optional (enableAlsa && stdenv.isLinux) alsaLib ++
     optional enableLibao libao ++
diff --git a/pkgs/applications/misc/audio/soxr/arm64-check.patch b/pkgs/applications/misc/audio/soxr/arm64-check.patch
new file mode 100644
index 00000000000..ac16a214c3a
--- /dev/null
+++ b/pkgs/applications/misc/audio/soxr/arm64-check.patch
@@ -0,0 +1,79 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Misty De Meo <mistydemeo@gmail.com>
+Date: Tue, 15 Sep 2020 16:57:26 -0700
+Subject: [PATCH] Check for __arm64__, not just __arm__
+
+On at least one 64-bit ARM processor I've tested (Apple Silicon on macOS),
+__arm__ isn't defined but __arm64__ is. As a result, some of the
+ARM-specific macros are missing and calls to them fail.
+---
+ src/cr-core.c    | 2 +-
+ src/dev32s.h     | 2 +-
+ src/pffft-wrap.c | 2 +-
+ src/pffft.c      | 4 ++--
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/cr-core.c b/src/cr-core.c
+index 159a5d9..fe5ea8a 100644
+--- a/src/cr-core.c
++++ b/src/cr-core.c
+@@ -80,7 +80,7 @@ static void cubic_stage_fn(stage_t * p, fifo_t * output_fifo)
+   #define DEFINED_X86 0
+ #endif
+ 
+-#if defined __arm__
++#if defined(__arm__) || defined(__arm64__)
+   #define DEFINED_ARM 1
+ #else
+   #define DEFINED_ARM 0
+diff --git a/src/dev32s.h b/src/dev32s.h
+index 7edae86..a14d7ad 100644
+--- a/src/dev32s.h
++++ b/src/dev32s.h
+@@ -31,7 +31,7 @@ SIMD_INLINE(void) vStorSum(float * a, v4_t b) {
+   v4_t t = vAdd(_mm_movehl_ps(b, b), b);
+   _mm_store_ss(a, vAdd(t, _mm_shuffle_ps(t,t,1)));}
+ 
+-#elif defined __arm__
++#elif defined(__arm__) || defined(__arm64__)
+ 
+ #include <arm_neon.h>
+ 
+diff --git a/src/pffft-wrap.c b/src/pffft-wrap.c
+index c920f06..1641fc4 100644
+--- a/src/pffft-wrap.c
++++ b/src/pffft-wrap.c
+@@ -40,7 +40,7 @@ static void pffft_zconvolve(PFFFT_Setup *s, const float *a, const float *b, floa
+ 
+   float ar, ai, br, bi;
+ 
+-#ifdef __arm__
++#if defined(__arm__) || defined(__arm64__)
+   __builtin_prefetch(va);
+   __builtin_prefetch(vb);
+   __builtin_prefetch(va+2);
+diff --git a/src/pffft.c b/src/pffft.c
+index 46c841e..8c775a9 100644
+--- a/src/pffft.c
++++ b/src/pffft.c
+@@ -157,7 +157,7 @@ typedef __m128 v4sf;
+ /*
+   ARM NEON support macros
+ */
+-#elif !defined(PFFFT_SIMD_DISABLE) && defined(__arm__)
++#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__arm__) || defined(__arm64__))
+ #  include <arm_neon.h>
+ typedef float32x4_t v4sf;
+ #  define SIMD_SZ 4
+@@ -1732,7 +1732,7 @@ void pffft_zconvolve_accumulate(PFFFT_Setup *s, const float *a, const float *b,
+   const v4sf * RESTRICT vb = (const v4sf*)b;
+   v4sf * RESTRICT vab = (v4sf*)ab;
+ 
+-#ifdef __arm__
++#if defined(__arm__) || defined(__arm64__)
+   __builtin_prefetch(va);
+   __builtin_prefetch(vb);
+   __builtin_prefetch(vab);
+-- 
+2.30.1
+
diff --git a/pkgs/applications/misc/audio/soxr/default.nix b/pkgs/applications/misc/audio/soxr/default.nix
index 3f3ed0a0b15..8460b4856dc 100644
--- a/pkgs/applications/misc/audio/soxr/default.nix
+++ b/pkgs/applications/misc/audio/soxr/default.nix
@@ -8,6 +8,11 @@ stdenv.mkDerivation rec {
     sha256 = "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di";
   };
 
+  patches = [
+    # Remove once https://sourceforge.net/p/soxr/code/merge-requests/5/ is merged.
+    ./arm64-check.patch
+  ];
+
   outputs = [ "out" "doc" ]; # headers are just two and very small
 
   preConfigure = if stdenv.isDarwin then ''
diff --git a/pkgs/applications/misc/audio/wavesurfer/default.nix b/pkgs/applications/misc/audio/wavesurfer/default.nix
index 6e276d592b0..b7e738cfc12 100644
--- a/pkgs/applications/misc/audio/wavesurfer/default.nix
+++ b/pkgs/applications/misc/audio/wavesurfer/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation {
     sha256 = "1yx9s1j47cq0v40cwq2gn7bdizpw46l95ba4zl9z4gg31mfvm807";
   };
 
-  buildInputs = [ snack tcl tk makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ snack tcl tk ];
 
   installPhase = ''
     mkdir -p $out/{bin,nix-support,share/wavesurfer/}
diff --git a/pkgs/applications/misc/authy/default.nix b/pkgs/applications/misc/authy/default.nix
new file mode 100644
index 00000000000..65200d85177
--- /dev/null
+++ b/pkgs/applications/misc/authy/default.nix
@@ -0,0 +1,110 @@
+{ alsaLib, at-spi2-atk, at-spi2-core, atk, autoPatchelfHook, cairo, cups
+, dbus, electron_9, expat, fetchurl, gdk-pixbuf, glib, gtk3, lib
+, libappindicator-gtk3, libdbusmenu-gtk3, libuuid, makeWrapper
+, nspr, nss, pango, squashfsTools, stdenv, systemd, xorg
+}:
+
+let
+  # Currently only works with electron 9
+  electron = electron_9;
+in
+
+stdenv.mkDerivation rec {
+  pname = "authy";
+  version = "1.8.3";
+  rev = "5";
+
+  buildInputs = [
+    alsaLib
+    at-spi2-atk
+    at-spi2-core
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    gdk-pixbuf
+    glib
+    gtk3
+    libappindicator-gtk3
+    libdbusmenu-gtk3
+    libuuid
+    nspr
+    nss
+    pango
+    stdenv.cc.cc
+    systemd
+    xorg.libX11
+    xorg.libXScrnSaver
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXtst
+    xorg.libxcb
+  ];
+
+  src = fetchurl {
+    url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap";
+    sha256 = "1yfvkmy34mc1dan9am11yka88jv7a4dslsszy4kcc8vap4cjmgpn";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ];
+
+  unpackPhase = ''
+    runHook preUnpack
+    unsquashfs "$src"
+    cd squashfs-root
+    if ! grep -q '${version}' meta/snap.yaml; then
+      echo "Package version differs from version found in snap metadata:"
+      grep 'version: ' meta/snap.yaml
+      echo "While the nix package specifies: ${version}."
+      echo "You probably chose the wrong revision or forgot to update the nix version."
+      exit 1
+    fi
+    runHook postUnpack
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/
+
+    cp -r ./* $out/
+    rm -R ./*
+
+    # The snap package has the `ffmpeg.so` file which is copied over with other .so files
+    mv $out/*.so $out/lib/
+
+    # Replace icon name in Desktop file
+    sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/meta/gui/authy.desktop"
+
+    # Move the desktop file, icon, binary to their appropriate locations
+    mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps
+    cp $out/meta/gui/authy.desktop $out/share/applications/
+    cp $out/meta/gui/icon.png $out/share/pixmaps/authy.png
+    cp $out/${pname} $out/bin/${pname}
+
+    # Cleanup
+    rm -r $out/{data-dir,gnome-platform,meta,scripts,usr,*.sh,*.so}
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+      --add-flags $out/resources/app.asar
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.authy.com";
+    description = "Twilio Authy two factor authentication desktop application";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ iammrinal0 ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/avrdudess/default.nix b/pkgs/applications/misc/avrdudess/default.nix
index 29469d9fff9..14b372d91e5 100644
--- a/pkgs/applications/misc/avrdudess/default.nix
+++ b/pkgs/applications/misc/avrdudess/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "18llpvjsfhypzijrvfbzmcg3g141f307mzsrg11wcdxh9syxqak6";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   phases = [ "buildPhase" ];
 
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
index 9472af7a16f..56894a29a66 100644
--- a/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -12,7 +12,7 @@
 , at-spi2-atk
 , gnutar
 , atomEnv
-, kerberos
+, libkrb5
 }:
 
 # from justinwoo/azuredatastudio-nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
         at-spi2-core
         at-spi2-atk
         stdenv.cc.cc.lib
-        kerberos
+        libkrb5
       ]
     )
     targetPath
diff --git a/pkgs/applications/misc/bashSnippets/default.nix b/pkgs/applications/misc/bashSnippets/default.nix
index 4a023849f39..cec4e8dd8c9 100644
--- a/pkgs/applications/misc/bashSnippets/default.nix
+++ b/pkgs/applications/misc/bashSnippets/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
-, curl, python, bind, iproute, bc, gitMinimal }:
+, curl, python3, bind, iproute2, bc, gitMinimal }:
 let
   version = "1.23.0";
   deps = lib.makeBinPath [
     curl
-    python
+    python3
     bind.dnsutils
-    iproute
+    iproute2
     bc
     gitMinimal
   ];
@@ -22,13 +22,15 @@ stdenv.mkDerivation {
     sha256 = "044nxgd3ic2qr6hgq5nymn3dyf5i4s8mv5z4az6jvwlrjnvbg8cp";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
-  patchPhase = ''
+  postPatch = ''
     patchShebangs install.sh
     substituteInPlace install.sh --replace /usr/local "$out"
   '';
 
+  strictDeps = true;
+
   dontBuild = true;
 
   installPhase = ''
diff --git a/pkgs/applications/misc/bemenu/default.nix b/pkgs/applications/misc/bemenu/default.nix
index 8de0ceeae65..42c0f7d05fd 100644
--- a/pkgs/applications/misc/bemenu/default.nix
+++ b/pkgs/applications/misc/bemenu/default.nix
@@ -2,12 +2,12 @@
 , pango, fribidi, harfbuzz, pcre, pkg-config
 , ncursesSupport ? true, ncurses ? null
 , waylandSupport ? true, wayland ? null, wayland-protocols ? null
-, x11Support ? true, xlibs ? null, xorg ? null
+, x11Support ? true, xorg ? null
 }:
 
 assert ncursesSupport -> ncurses != null;
 assert waylandSupport -> ! lib.elem null [wayland wayland-protocols];
-assert x11Support -> xlibs != null && xorg != null;
+assert x11Support -> xorg != null;
 
 stdenv.mkDerivation rec {
   pname = "bemenu";
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   ] ++ optional ncursesSupport ncurses
     ++ optionals waylandSupport [ wayland wayland-protocols ]
     ++ optionals x11Support [
-      xlibs.libX11 xlibs.libXinerama xlibs.libXft
+      xorg.libX11 xorg.libXinerama xorg.libXft
       xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb
     ];
 
diff --git a/pkgs/applications/misc/birdtray/default.nix b/pkgs/applications/misc/birdtray/default.nix
index ce8db160a75..f007fb71377 100644
--- a/pkgs/applications/misc/birdtray/default.nix
+++ b/pkgs/applications/misc/birdtray/default.nix
@@ -36,11 +36,15 @@ mkDerivation rec {
       --subst-var-by qttranslations ${qttranslations}
   '';
 
+  # Wayland support is broken.
+  # https://github.com/gyunaev/birdtray/issues/113#issuecomment-621742315
+  qtWrapperArgs = [ "--set QT_QPA_PLATFORM xcb" ];
+
   meta = with lib; {
     description = "Mail system tray notification icon for Thunderbird";
     homepage = "https://github.com/gyunaev/birdtray";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ Flakebi ];
+    maintainers = with maintainers; [ Flakebi oxalica ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/blender/darwin.patch b/pkgs/applications/misc/blender/darwin.patch
index bfbfb5e48e0..da2d6fa4a3d 100644
--- a/pkgs/applications/misc/blender/darwin.patch
+++ b/pkgs/applications/misc/blender/darwin.patch
@@ -1,15 +1,16 @@
-diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
+diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
+index 31da529..90308aa 100644
 --- a/build_files/cmake/platform/platform_apple.cmake
 +++ b/build_files/cmake/platform/platform_apple.cmake
-@@ -80,7 +80,6 @@ else()
+@@ -77,7 +77,6 @@ else()
    message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
  endif()
  if(NOT EXISTS "${LIBDIR}/")
 -  message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
  endif()
  
- # -------------------------------------------------------------------------
-@@ -112,10 +111,6 @@ if(WITH_CODEC_SNDFILE)
+ # Prefer lib directory paths
+@@ -113,10 +112,6 @@ if(WITH_CODEC_SNDFILE)
    find_library(_sndfile_VORBIS_LIBRARY NAMES vorbis HINTS ${LIBDIR}/ffmpeg/lib)
    find_library(_sndfile_VORBISENC_LIBRARY NAMES vorbisenc HINTS ${LIBDIR}/ffmpeg/lib)
    list(APPEND LIBSNDFILE_LIBRARIES
@@ -20,7 +21,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
    )
  
    print_found_status("SndFile libraries" "${LIBSNDFILE_LIBRARIES}")
-@@ -132,7 +127,7 @@ if(WITH_PYTHON)
+@@ -133,7 +128,7 @@ if(WITH_PYTHON)
      # normally cached but not since we include them with blender
      set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
      set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
@@ -29,7 +30,7 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
      set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
      # set(PYTHON_LINKFLAGS "-u _PyMac_Error")  # won't  build with this enabled
    else()
-@@ -173,9 +168,7 @@ endif()
+@@ -174,9 +169,7 @@ endif()
  if(WITH_CODEC_FFMPEG)
    set(FFMPEG_FIND_COMPONENTS
      avcodec avdevice avformat avutil
@@ -40,20 +41,20 @@ diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platf
    find_package(FFmpeg)
  endif()
  
-@@ -266,7 +259,6 @@ if(WITH_BOOST)
+@@ -267,7 +260,6 @@ if(WITH_BOOST)
  endif()
  
  if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
--  set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
+-  string(APPEND PLATFORM_LINKFLAGS " -liconv") # boost_locale and ffmpeg needs it !
  endif()
  
- if(WITH_OPENIMAGEIO)
-@@ -439,7 +431,7 @@ else()
+ if(WITH_PUGIXML)
+@@ -451,7 +443,7 @@ else()
    set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic")
  endif()
  
 -if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
 +if(FALSE)
    # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
-   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
+   string(APPEND CMAKE_CXX_FLAGS " -ftemplate-depth=1024")
  endif()
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 9921fdc7a79..451cc9a33f3 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -7,8 +7,11 @@
 , jackaudioSupport ? false, libjack2
 , cudaSupport ? config.cudaSupport or false, cudatoolkit
 , colladaSupport ? true, opencollada
+, spaceNavSupport ? stdenv.isLinux, libspnav
 , makeWrapper
 , pugixml, llvmPackages, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL
+, potrace
+, openxr-loader
 , embree, gmp
 }:
 
@@ -23,16 +26,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "blender";
-  version = "2.91.0";
+  version = "2.92.0";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
-    sha256 = "0x396lgmk0dq9115yrc36s8zwxzmjr490sr5n2y6w27y17yllyjm";
+    sha256 = "15a5vffn18a920286x0avbc2rap56k6y531wgibq68r90g2cz4g7";
   };
 
   patches = lib.optional stdenv.isDarwin ./darwin.patch;
 
-  nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
+  nativeBuildInputs = [ cmake makeWrapper ] ++ optional cudaSupport addOpenGLRunpath;
   buildInputs =
     [ boost ffmpeg gettext glew ilmbase
       freetype libjpeg libpng libsamplerate libsndfile libtiff
@@ -40,23 +43,26 @@ stdenv.mkDerivation rec {
       alembic
       (opensubdiv.override { inherit cudaSupport; })
       tbb
-      makeWrapper
       embree
       gmp
+      pugixml
+      potrace
     ]
     ++ (if (!stdenv.isDarwin) then [
       libXi libX11 libXext libXrender
       libGLU libGL openal
       libXxf86vm
+      openxr-loader
       # OpenVDB currently doesn't build on darwin
       openvdb
     ]
     else [
-      pugixml llvmPackages.openmp SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
+      llvmPackages.openmp SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
     ])
     ++ optional jackaudioSupport libjack2
     ++ optional cudaSupport cudatoolkit
-    ++ optional colladaSupport opencollada;
+    ++ optional colladaSupport opencollada
+    ++ optional spaceNavSupport libspnav;
 
   postPatch = ''
     # allow usage of dynamically linked embree
@@ -102,6 +108,7 @@ stdenv.mkDerivation rec {
       "-DWITH_PYTHON_INSTALL=OFF"
       "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
       "-DPYTHON_NUMPY_PATH=${python3Packages.numpy}/${python.sitePackages}"
+      "-DPYTHON_NUMPY_INCLUDE_DIRS=${python3Packages.numpy}/${python.sitePackages}/numpy/core/include"
       "-DWITH_OPENVDB=ON"
       "-DWITH_TBB=ON"
       "-DWITH_IMAGE_OPENJPEG=ON"
diff --git a/pkgs/applications/misc/bottles/default.nix b/pkgs/applications/misc/bottles/default.nix
new file mode 100644
index 00000000000..5c6e9a0f9fe
--- /dev/null
+++ b/pkgs/applications/misc/bottles/default.nix
@@ -0,0 +1,77 @@
+{ lib, fetchFromGitHub
+, meson, ninja, pkg-config, wrapGAppsHook
+, desktop-file-utils, gsettings-desktop-schemas, libnotify
+, python3Packages, gettext
+, appstream-glib, gdk-pixbuf, glib, gobject-introspection, gspell, gtk3
+, steam-run-native
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "bottles";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "bottlesdevs";
+    repo = pname;
+    rev = version;
+    sha256 = "1hbjnd06h0h47gcwb1s1b9py5nwmia1m35da6zydbl70vs75imhn";
+  };
+
+  postPatch = ''
+    chmod +x build-aux/meson/postinstall.py
+    patchShebangs build-aux/meson/postinstall.py
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+    gettext
+    appstream-glib
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    glib
+    gobject-introspection
+    gsettings-desktop-schemas
+    gspell
+    gtk3
+    libnotify
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pycairo
+    pygobject3
+    lxml
+    dbus-python
+    gst-python
+    liblarch
+  ] ++ [ steam-run-native ];
+
+  format = "other";
+  strictDeps = false; # broken with gobject-introspection setup hook, see https://github.com/NixOS/nixpkgs/issues/56943
+  dontWrapGApps = true; # prevent double wrapping
+
+  preConfigure = ''
+    substituteInPlace build-aux/meson/postinstall.py \
+      --replace "'update-desktop-database'" "'${desktop-file-utils}/bin/update-desktop-database'"
+    substituteInPlace src/runner.py \
+      --replace " {runner}" " ${steam-run-native}/bin/steam-run {runner}" \
+      --replace " {dxvk_setup}" " ${steam-run-native}/bin/steam-run {dxvk_setup}"
+  '';
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = with lib; {
+    description = "An easy-to-use wineprefix manager";
+    homepage = "https://github.com/bottlesdevs/Bottles";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ bloomvdomino ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/caerbannog/default.nix b/pkgs/applications/misc/caerbannog/default.nix
new file mode 100644
index 00000000000..6f4558b868f
--- /dev/null
+++ b/pkgs/applications/misc/caerbannog/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, fetchFromSourcehut
+, 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 = fetchFromSourcehut {
+    owner = "~craftyguy";
+    repo = "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/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 1471af254f1..f7e98462041 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -26,11 +26,11 @@
 
 mkDerivation rec {
   pname = "calibre";
-  version = "5.11.0";
+  version = "5.13.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-PI+KIMnslhoagv9U6Mcmo9Onfu8clVqASNlDir8JzUw=";
+    sha256 = "sha256-GDFAZxZmkio7e7kVjhYqhNdhXIlUPJF0iMWVl0uWVCM=";
   };
 
   patches = [
@@ -86,6 +86,7 @@ mkDerivation rec {
     with python3Packages; [
       apsw
       beautifulsoup4
+      cchardet
       css-parser
       cssselect
       dateutil
@@ -179,7 +180,7 @@ mkDerivation rec {
       free and open source and great for both casual users and computer experts.
     '';
     license = with licenses; if unrarSupport then unfreeRedistributable else gpl3Plus;
-    maintainers = with maintainers; [ domenkozar pSub AndersonTorres ];
+    maintainers = with maintainers; [ pSub AndersonTorres ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/cataract/build.nix b/pkgs/applications/misc/cataract/build.nix
index f894dc91bd8..0adab84830d 100644
--- a/pkgs/applications/misc/cataract/build.nix
+++ b/pkgs/applications/misc/cataract/build.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , libxml2
 , exiv2
-, imagemagick
+, imagemagick6
 , version
 , sha256
 , rev }:
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ glib libxml2 exiv2 imagemagick ];
+  buildInputs = [ glib libxml2 exiv2 imagemagick6 ];
 
   prePatch = ''
     sed -i 's|#include <exiv2/exif.hpp>|#include <exiv2/exiv2.hpp>|' src/jpeg-utils.cpp
diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix
index c74ac5ffb30..0ce89afa6ce 100644
--- a/pkgs/applications/misc/cherrytree/default.nix
+++ b/pkgs/applications/misc/cherrytree/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages, gettext }:
+{ lib, fetchFromGitHub, python2Packages, gettext }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "cherrytree";
   version = "0.39.4";
 
@@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication rec {
 
   nativeBuildInputs = [ gettext ];
 
-  propagatedBuildInputs = with pythonPackages; [ pygtk dbus-python pygtksourceview ];
+  propagatedBuildInputs = with python2Packages; [ pygtk dbus-python pygtksourceview ];
 
   patches = [ ./subprocess.patch ];
 
diff --git a/pkgs/applications/misc/cli-visualizer/default.nix b/pkgs/applications/misc/cli-visualizer/default.nix
index 74dd82a3c6e..524f8985537 100644
--- a/pkgs/applications/misc/cli-visualizer/default.nix
+++ b/pkgs/applications/misc/cli-visualizer/default.nix
@@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
     sed '1i#include <cmath>' -i src/Transformer/SpectrumCircleTransformer.cpp
   '';
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake makeWrapper ];
 
-  buildInputs = [ fftw ncurses5 libpulseaudio makeWrapper ];
+  buildInputs = [ fftw ncurses5 libpulseaudio ];
 
   buildFlags = [ "ENABLE_PULSE=1" ];
 
diff --git a/pkgs/applications/misc/clight/clightd.nix b/pkgs/applications/misc/clight/clightd.nix
index 547e7e0b6da..192cddc2e17 100644
--- a/pkgs/applications/misc/clight/clightd.nix
+++ b/pkgs/applications/misc/clight/clightd.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , dbus, cmake, pkg-config
 , glib, udev, polkit, libusb1, libjpeg, libmodule
 , pcre, libXdmcp, util-linux, libpthreadstubs
@@ -9,42 +9,34 @@
 
 stdenv.mkDerivation rec {
   pname = "clightd";
-  version = "5.1";
+  version = "5.3";
 
   src = fetchFromGitHub {
     owner = "FedeDP";
     repo = "Clightd";
     rev = version;
-    sha256 = "sha256-BEGum0t+FrCTAEQwTsWeYpoIqimTAz+Bv/ZQPQ3fePY=";
+    sha256 = "sha256-CuTYCNZ9oiDsm5mUDmjbxkmAl61PEXv3WMrZRzgdZeE=";
   };
 
-  patches = [
-    # Not needed by next version bump
-    (fetchpatch {
-      url = "https://github.com/FedeDP/Clightd/commit/a52a2888e3798c572dad359a017cb0d40e7c5fb7.patch";
-      sha256 = "sha256-nUzNBia1EvBQxinAfjyKbuldBoHLY1hfMaxgG2lKQWg=";
-    })
-  ];
-
   # dbus-1.pc has datadir=/etc
   SYSTEM_BUS_DIR = "${placeholder "out"}/share/dbus-1/system-services";
-  # systemd.pc has prefix=${systemd.out}
-  MODULE_LOAD_DIR = "${placeholder "out"}/lib/modules-load.d";
   # polkit-gobject-1.pc has prefix=${polkit.out}
   POLKIT_ACTION_DIR = "${placeholder "out"}/share/polkit-1/actions";
 
   postPatch = ''
-    sed -i "s@/etc@$out\0@" CMakeLists.txt
     sed -i "s@pkg_get_variable(SYSTEM_BUS_DIR.*@set(SYSTEM_BUS_DIR $SYSTEM_BUS_DIR)@" CMakeLists.txt
-    sed -i "s@pkg_get_variable(MODULE_LOAD_DIR.*@set(MODULE_LOAD_DIR $MODULE_LOAD_DIR)@" CMakeLists.txt
     sed -i "s@pkg_get_variable(POLKIT_ACTION_DIR.*@set(POLKIT_ACTION_DIR $POLKIT_ACTION_DIR)@" CMakeLists.txt
   '';
 
   cmakeFlags = with lib;
-     optional enableDdc "-DENABLE_DDC=1"
-  ++ optional enableDpms "-DENABLE_DPMS=1"
-  ++ optional enableGamma "-DENABLE_GAMMA=1"
-  ++ optional enableScreen "-DENABLE_SCREEN=1";
+    [ "-DSYSTEMD_SERVICE_DIR=${placeholder "out"}/lib/systemd/system"
+      "-DDBUS_CONFIG_DIR=${placeholder "out"}/etc/dbus-1/system.d"
+      # systemd.pc has prefix=${systemd.out}
+      "-DMODULE_LOAD_DIR=${placeholder "out"}/lib/modules-load.d"
+    ] ++ optional enableDdc    "-DENABLE_DDC=1"
+      ++ optional enableDpms   "-DENABLE_DPMS=1"
+      ++ optional enableGamma  "-DENABLE_GAMMA=1"
+      ++ optional enableScreen "-DENABLE_SCREEN=1";
 
   nativeBuildInputs = [
     dbus
diff --git a/pkgs/applications/misc/clipit/default.nix b/pkgs/applications/misc/clipit/default.nix
index 630ee3c3683..fafcf3d5440 100644
--- a/pkgs/applications/misc/clipit/default.nix
+++ b/pkgs/applications/misc/clipit/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, fetchpatch, lib, stdenv
+{ fetchFromGitHub, lib, stdenv
 , autoreconfHook, intltool, pkg-config
 , gtk3, libayatana-appindicator, xdotool, which, wrapGAppsHook }:
 
diff --git a/pkgs/applications/misc/clipmenu/default.nix b/pkgs/applications/misc/clipmenu/default.nix
index e3a0046205e..c47dd972ccf 100644
--- a/pkgs/applications/misc/clipmenu/default.nix
+++ b/pkgs/applications/misc/clipmenu/default.nix
@@ -27,8 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   makeFlags = [ "PREFIX=$(out)" ];
-  buildInputs = [ makeWrapper ];
-  nativeBuildInputs = [ xsel clipnotify ];
+  nativeBuildInputs = [ makeWrapper xsel clipnotify ];
 
   postFixup = ''
     sed -i "$out/bin/clipctl" -e 's,clipmenud\$,\.clipmenud-wrapped\$,'
diff --git a/pkgs/applications/misc/cointop/default.nix b/pkgs/applications/misc/cointop/default.nix
index e12c2c90dee..d62d96e530e 100644
--- a/pkgs/applications/misc/cointop/default.nix
+++ b/pkgs/applications/misc/cointop/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "cointop";
-  version = "1.6.0";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "miguelmota";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-P2LR42Qn5bBF5xcfCbxiGFBwkW/kAKVGiyED37OdZLo=";
+    sha256 = "sha256-h4102oWYSuY4uq/Pyo9u25Pdsai7AK2W9yUmS/zdjrw=";
   };
 
   goPackagePath = "github.com/miguelmota/cointop";
diff --git a/pkgs/applications/misc/coolreader/default.nix b/pkgs/applications/misc/coolreader/default.nix
index d3f3eb6fcf5..dc32cbf2c2a 100644
--- a/pkgs/applications/misc/coolreader/default.nix
+++ b/pkgs/applications/misc/coolreader/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "coolreader";
-  version = "3.2.49";
+  version = "3.2.55";
 
   src = fetchFromGitHub {
     owner = "buggins";
     repo = pname;
     rev = "cr${version}";
-    sha256 = "10i3w4zjlilz3smjzbwm50d91ns3w0wlgmsf38fn2lv76zczv8ia";
+    sha256 = "sha256-gYAaYGEjw7p6y4h5j6j/4Ld+b37Nv+kt04Wp+qb8gzY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/misc/cpu-x/default.nix b/pkgs/applications/misc/cpu-x/default.nix
index d0ef6f05aeb..2de06f8c031 100644
--- a/pkgs/applications/misc/cpu-x/default.nix
+++ b/pkgs/applications/misc/cpu-x/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpu-x";
-  version = "4.0.1";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "X0rg";
     repo = "CPU-X";
     rev = "v${version}";
-    sha256 = "191zkkswlbbsw492yygc3idf7wh3bxs97drrqvqqw0mqvrzykxm3";
+    sha256 = "sha256-LWIcE86o+uU8G9DtumiH6iTqHhvq4y/QyQX7J3FhKEc=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook nasm makeWrapper ];
diff --git a/pkgs/applications/misc/crow-translate/default.nix b/pkgs/applications/misc/crow-translate/default.nix
index 3db4872c0e0..76a5541f6db 100644
--- a/pkgs/applications/misc/crow-translate/default.nix
+++ b/pkgs/applications/misc/crow-translate/default.nix
@@ -46,13 +46,13 @@ let
 in
 mkDerivation rec {
   pname = "crow-translate";
-  version = "2.7.1";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "crow-translate";
     repo = "crow-translate";
     rev = version;
-    sha256 = "sha256-YOsp/noGsYthre18fMyBj9s+YFzdHJfIJzJSm43wiZ0=";
+    sha256 = "sha256-fmlNUhNorV/MUdfdDXM6puAblTTa6p2slVT/EKy5THg=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/cura/plugins.nix b/pkgs/applications/misc/cura/plugins.nix
index 699df0e1936..bd22cc4745a 100644
--- a/pkgs/applications/misc/cura/plugins.nix
+++ b/pkgs/applications/misc/cura/plugins.nix
@@ -6,13 +6,13 @@ let
 
     octoprint = stdenv.mkDerivation rec {
       pname = "Cura-OctoPrintPlugin";
-      version = "3.5.16";
+      version = "3.5.18";
 
       src = fetchFromGitHub {
         owner = "fieldOfView";
         repo = pname;
-        rev = "8affa8aa9796cb37129d3b7222fff03f86c936cd";
-        sha256 = "0l4qfcashkdmpdm8nm3klz6hmi1f0bmbpb9b1yn4mvg0fam6c5xi";
+        rev = "7bd73946fbf22d18337dc900a81a011ece26bee0";
+        sha256 = "057b2f5f49p96lkh2wsr9w6yh2003x4a85irqsgbzp6igmk8imdn";
       };
 
       propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/misc/curabydagoma/default.nix b/pkgs/applications/misc/curabydagoma/default.nix
index 821b88f9b20..a8d041de107 100644
--- a/pkgs/applications/misc/curabydagoma/default.nix
+++ b/pkgs/applications/misc/curabydagoma/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, runtimeShell, lib, fetchurl, python, pythonPackages, unzip }:
+{ stdenv, runtimeShell, lib, fetchurl, python2Packages, unzip }:
 
 # This package uses a precompiled "binary" distribution of CuraByDagoma,
 # distributed by the editor.
@@ -13,7 +13,9 @@
 # I guess people owning a 3D printer generally don't use i686.
 # If, however, someone needs it, we certainly can find a solution.
 
-stdenv.mkDerivation rec {
+let
+  pythonPackages = python2Packages;
+in stdenv.mkDerivation rec {
   pname = "curabydagoma";
   # Version is the date, UNIX format
   version = "1520506579";
@@ -26,7 +28,7 @@ stdenv.mkDerivation rec {
   };
   unpackCmd = "unzip $curSrc && tar zxf CuraByDagoma_amd64.tar.gz";
   nativeBuildInputs = [ unzip ];
-  buildInputs = [ python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
+  buildInputs = [ pythonPackages.python pythonPackages.pyopengl pythonPackages.wxPython pythonPackages.pyserial pythonPackages.numpy ];
 
   # Compile all pyc files because the included pyc files may be older than the
   # py files. However, Python doesn't realize that because the packages
@@ -46,7 +48,7 @@ stdenv.mkDerivation rec {
     cat > $out/bin/curabydago <<EOF
     #!${runtimeShell}
     export PYTHONPATH=$PYTHONPATH
-    ${python.out}/bin/python $out/curabydago/cura.py
+    ${pythonPackages.python.interpreter} $out/curabydago/cura.py
     EOF
     chmod a+x $out/bin/curabydago
 
diff --git a/pkgs/applications/misc/curaengine/stable.nix b/pkgs/applications/misc/curaengine/stable.nix
index 23041c2fe37..148553da162 100644
--- a/pkgs/applications/misc/curaengine/stable.nix
+++ b/pkgs/applications/misc/curaengine/stable.nix
@@ -12,7 +12,9 @@ stdenv.mkDerivation {
   };
 
   postPatch = ''
-    sed -i 's,--static,,g' Makefile
+    substituteInPlace Makefile --replace "--static" ""
+  '' + lib.optionalString stdenv.isi686 ''
+    substituteInPlace Makefile --replace "-flto" ""
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/misc/dasel/default.nix b/pkgs/applications/misc/dasel/default.nix
index 061e3bc62de..a78ac11d67c 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.0";
+  version = "1.13.6";
 
   src = fetchFromGitHub {
     owner = "TomWright";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-310zrxVjUECg/3+ydo9J8EdF0RbguBIT2PklEgpgRFU=";
+    sha256 = "sha256-PTi1blbMVsuftLrFIYNDI8ZFEwRxDA53Md9oZTv7nHs=";
   };
 
   vendorSha256 = "sha256-BdX4DO77mIf/+aBdkNVFUzClsIml1UMcgvikDbbdgcY=";
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 774fcc75b2d..e65b236a5e2 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, copyDesktopItems
 , fetchFromGitHub
 , makeDesktopItem
 , makeWrapper
@@ -14,26 +15,16 @@
 , zlib
 , maven
 }:
-let
-  desktopItem = makeDesktopItem {
-    name = "dbeaver";
-    exec = "dbeaver";
-    icon = "dbeaver";
-    desktopName = "dbeaver";
-    comment = "SQL Integrated Development Environment";
-    genericName = "SQL Integrated Development Environment";
-    categories = "Development;";
-  };
-in
+
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "7.3.5"; # When updating also update fetchedMavenDeps.sha256
+  version = "21.0.1"; # When updating also update fetchedMavenDeps.sha256
 
   src = fetchFromGitHub {
     owner = "dbeaver";
     repo = "dbeaver";
     rev = version;
-    sha256 = "sha256-gEE7rndOaXzruWL7TG+QgVkq1+06tIZwyGzU9cFc+oU=";
+    sha256 = "sha256-9l8604STqmdoUjD+EJCp4aDk4juKsPCmFnD/WYpajxo=";
   };
 
   fetchedMavenDeps = stdenv.mkDerivation {
@@ -44,7 +35,7 @@ stdenv.mkDerivation rec {
       maven
     ];
 
-    buildPhase = "mvn package -Dmaven.repo.local=$out/.m2";
+    buildPhase = "mvn package -Dmaven.repo.local=$out/.m2 -P desktop,all-platforms";
 
     # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
     installPhase = ''
@@ -59,9 +50,15 @@ stdenv.mkDerivation rec {
     dontFixup = true;
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-jT0Z154rVmafUbb6dqYSl3cUxMuK5MR4HUsprkrgSDw=";
+    outputHash = "sha256-xKlFFQXd2U513KZKQa7ttSFNX2gxVr9hNsvyaoN/rEE=";
   };
 
+  nativeBuildInputs = [
+    copyDesktopItems
+    makeWrapper
+    maven
+  ];
+
   buildInputs = [
     fontconfig
     freetype
@@ -71,25 +68,46 @@ stdenv.mkDerivation rec {
     libX11
     libXrender
     libXtst
-    makeWrapper
     zlib
   ];
 
-  nativeBuildInputs = [
-    maven
+  desktopItems = [
+    (makeDesktopItem {
+      name = "dbeaver";
+      exec = "dbeaver";
+      icon = "dbeaver";
+      desktopName = "dbeaver";
+      comment = "SQL Integrated Development Environment";
+      genericName = "SQL Integrated Development Environment";
+      categories = "Development;";
+    })
   ];
 
   buildPhase = ''
-    mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
+    runHook preBuild
+
+    mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 -P desktop,all-platforms
+
+    runHook postBuild
   '';
 
   installPhase =
     let
-      productTargetPath = "product/standalone/target/products/org.jkiss.dbeaver.core.product";
+      productTargetPath = "product/community/target/products/org.jkiss.dbeaver.core.product";
+
+      platformMap = {
+        aarch64-linux = "aarch64";
+        x86_64-darwin = "x86_64";
+        x86_64-linux  = "x86_64";
+      };
+
+      systemPlatform = platformMap.${stdenv.hostPlatform.system} or (throw "dbeaver not supported on ${stdenv.hostPlatform.system}");
     in
     if stdenv.isDarwin then ''
+      runHook preInstall
+
       mkdir -p $out/Applications $out/bin
-      cp -r ${productTargetPath}/macosx/cocoa/x86_64/DBeaver.app $out/Applications
+      cp -r ${productTargetPath}/macosx/cocoa/${systemPlatform}/DBeaver.app $out/Applications
 
       sed -i "/^-vm/d; /bin\/java/d" $out/Applications/DBeaver.app/Contents/Eclipse/dbeaver.ini
 
@@ -98,9 +116,13 @@ stdenv.mkDerivation rec {
       wrapProgram $out/Applications/DBeaver.app/Contents/MacOS/dbeaver \
         --prefix JAVA_HOME : ${jdk.home} \
         --prefix PATH : ${jdk}/bin
+
+      runHook postInstall
     '' else ''
+      runHook preInstall
+
       mkdir -p $out/
-      cp -r ${productTargetPath}/linux/gtk/x86_64/dbeaver $out/dbeaver
+      cp -r ${productTargetPath}/linux/gtk/${systemPlatform}/dbeaver $out/dbeaver
 
       # Patch binaries.
       interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
@@ -111,12 +133,10 @@ stdenv.mkDerivation rec {
         --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst ])} \
         --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
 
-      # Create desktop item.
-      mkdir -p $out/share/applications
-      cp ${desktopItem}/share/applications/* $out/share/applications
-
       mkdir -p $out/share/pixmaps
       ln -s $out/dbeaver/icon.xpm $out/share/pixmaps/dbeaver.xpm
+
+      runHook postInstall
     '';
 
   meta = with lib; {
@@ -129,7 +149,7 @@ stdenv.mkDerivation rec {
       Teradata, Firebird, Derby, etc.
     '';
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
     maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/pkgs/applications/misc/deadd-notification-center/default.nix b/pkgs/applications/misc/deadd-notification-center/default.nix
index 35627b28d15..5d77f301c82 100644
--- a/pkgs/applications/misc/deadd-notification-center/default.nix
+++ b/pkgs/applications/misc/deadd-notification-center/default.nix
@@ -7,19 +7,25 @@
 , gtk3
 , gobject-introspection
 , libxml2
+, fetchpatch
 }:
 stdenv.mkDerivation rec {
   pname = "deadd-notification-center";
-  version = "1.7.3";
+  version = "2021-03-10";
 
   src = fetchFromGitHub {
     owner = "phuhl";
     repo = "linux_notification_center";
-    rev = version;
-    sha256 = "QaOLrtlhQyhMOirk6JO1yMGRrgycHmF9FAdKNbN2TRk=";
+    rev = "640ce0f";
+    sha256 = "12ldr8vppylr90849g3mpjphmnr4lp0vsdkj01a5f4bv4ksx35fm";
   };
 
-  dontUnpack = true;
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/phuhl/linux_notification_center/commit/5244e1498574983322be97925e1ff7ebe456d974.patch";
+      sha256 = "sha256-hbqbgBmuewOhtx0na2tmFa5W128ZrBvDcyPme/mRzlI=";
+    })
+  ];
 
   nativeBuildInputs = [
     autoPatchelfHook
@@ -33,15 +39,18 @@ stdenv.mkDerivation rec {
     hicolor-icon-theme
   ];
 
-  installPhase = ''
-    mkdir -p $out/bin $out/share/dbus-1/services
-
-    cp $src/.out/${pname} $out/bin/
-    chmod +x $out/bin/${pname}
+  buildFlags = [
+    # Exclude stack from `make all` to use the prebuilt binary from .out/
+    "service"
+  ];
 
-    sed "s|##PREFIX##|$out|g" $src/${pname}.service.in > \
-      $out/share/dbus-1/services/com.ph-uhl.deadd.notification.service
-  '';
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "SERVICEDIR_SYSTEMD=${placeholder "out"}/etc/systemd/user"
+    "SERVICEDIR_DBUS=${placeholder "out"}/share/dbus-1/services"
+    # Override systemd auto-detection.
+    "SYSTEMD=1"
+  ];
 
   meta = with lib; {
     description = "A haskell-written notification center for users that like a desktop with style";
diff --git a/pkgs/applications/misc/ding/default.nix b/pkgs/applications/misc/ding/default.nix
index 36e2923522d..649fbe55fae 100644
--- a/pkgs/applications/misc/ding/default.nix
+++ b/pkgs/applications/misc/ding/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-aabIH894WihsBTo1LzIBzIZxxyhRYVxLcHpDQwmwmOU=";
   };
 
-  buildInputs = [ aspellEnv fortune gnugrep makeWrapper tk tre ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ aspellEnv fortune gnugrep tk tre ];
 
   patches = [ ./dict.patch ];
 
diff --git a/pkgs/applications/misc/dmensamenu/default.nix b/pkgs/applications/misc/dmensamenu/default.nix
index a8817a542e3..d5208ea7b02 100644
--- a/pkgs/applications/misc/dmensamenu/default.nix
+++ b/pkgs/applications/misc/dmensamenu/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "dmensamenu";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "dotlambda";
     repo = "dmensamenu";
     rev = version;
-    sha256 = "15c8g2vdban3dw3g979icypgpx52irpvv39indgk19adicgnzzqp";
+    sha256 = "1ck1i1k40bli6m3n49ff6987hglby9fn4vfr28jpkm3h70s2km3n";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/dockbarx/default.nix b/pkgs/applications/misc/dockbarx/default.nix
index b31c17cc319..5bc8de522de 100644
--- a/pkgs/applications/misc/dockbarx/default.nix
+++ b/pkgs/applications/misc/dockbarx/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages, gnome2, keybinder }:
+{ lib, fetchFromGitHub, python2Packages, gnome2, keybinder }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   ver = "0.93";
   name = "dockbarx-${ver}";
 
@@ -24,7 +24,7 @@ pythonPackages.buildPythonApplication rec {
     substituteInPlace dockx_applets/volume-control.py         --replace /usr/share/             $out/share/
   '';
 
-  propagatedBuildInputs = (with pythonPackages; [ pygtk pyxdg dbus-python pillow xlib ])
+  propagatedBuildInputs = (with python2Packages; [ pygtk pyxdg dbus-python pillow xlib ])
     ++ (with gnome2; [ gnome_python gnome_python_desktop ])
     ++ [ keybinder ];
 
diff --git a/pkgs/applications/misc/dotfiles/default.nix b/pkgs/applications/misc/dotfiles/default.nix
index 911a319a963..b62d154feb1 100644
--- a/pkgs/applications/misc/dotfiles/default.nix
+++ b/pkgs/applications/misc/dotfiles/default.nix
@@ -1,10 +1,10 @@
-{ lib, pythonPackages }:
+{ lib, python3Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "dotfiles";
   version = "0.6.4";
 
-  src = pythonPackages.fetchPypi {
+  src = python3Packages.fetchPypi {
     inherit version pname;
     sha256 = "03qis6m9r2qh00sqbgwsm883s4bj1ibwpgk86yh4l235mdw8jywv";
   };
@@ -12,8 +12,8 @@ pythonPackages.buildPythonApplication rec {
   # No tests in archive
   doCheck = false;
 
-  checkInputs = with pythonPackages; [ pytest ];
-  propagatedBuildInputs = with pythonPackages; [ click ];
+  checkInputs = with python3Packages; [ pytest ];
+  propagatedBuildInputs = with python3Packages; [ click ];
 
   meta = with lib; {
     description = "Easily manage your dotfiles";
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index eed07a2356e..5dffbf56a36 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -1,18 +1,19 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
 , pkg-config, which, perl, libXrandr
 , cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver
-, libXinerama, libnotify, pango, xorgproto, librsvg, dunstify ? false
+, gtk3, wayland, wayland-protocols
+, libXinerama, libnotify, pango, xorgproto, librsvg
 }:
 
 stdenv.mkDerivation rec {
   pname = "dunst";
-  version = "1.5.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "dunst-project";
     repo = "dunst";
     rev = "v${version}";
-    sha256 = "0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c";
+    sha256 = "0lga1kj2vjbj9g9rl93nivngjmk5fkxdxwal8w96x9whwk9jvdga";
   };
 
   nativeBuildInputs = [ perl pkg-config which systemd makeWrapper ];
@@ -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" ];
@@ -27,15 +29,12 @@ stdenv.mkDerivation rec {
   makeFlags = [
     "PREFIX=$(out)"
     "VERSION=$(version)"
+    "SYSCONFDIR=$(out)/etc"
     "SERVICEDIR_DBUS=$(out)/share/dbus-1/services"
     "SERVICEDIR_SYSTEMD=$(out)/lib/systemd/user"
   ];
 
-  buildFlags = if dunstify then [ "dunstify" ] else [];
-
-  postInstall = lib.optionalString dunstify ''
-    install -Dm755 dunstify $out/bin
-  '' + ''
+  postInstall = ''
     wrapProgram $out/bin/dunst \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
   '';
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index 273077b3bda..44f35e503ca 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , fetchFromGitHub
 , wrapQtAppsHook
@@ -19,7 +20,7 @@
 }:
 
 let
-  version = "4.0.9";
+  version = "4.1.1";
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.0"
@@ -35,7 +36,7 @@ let
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "0cmdyfabllw4wnpqpdxp3l6hjnm0cvkwxn0z8ph4x54sf4zq9iz3";
+    sha256 = "0zvv8nmjzw5pchykz5p28483nby4lp4ah7iqr08pv36gy89l51v5";
 
     extraPostFetch = ''
       mv $out ./all
@@ -50,7 +51,7 @@ python3.pkgs.buildPythonApplication {
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "1fvjiagi78f32nxgr2rx8jas8hxfvpp1c8fpfcalvykmlhdc2gva";
+    sha256 = "0yg6ld92a4xgn7y8i51hmr3kmgmrbrjwniikkmyq9q141h2drb80";
   };
 
   postUnpack = ''
@@ -77,10 +78,10 @@ python3.pkgs.buildPythonApplication {
     requests
     tlslite-ng
     # plugins
+    btchip
     ckcc-protocol
     keepkey
     trezor
-    btchip
   ] ++ lib.optionals enableQt [ pyqt5 qdarkstyle ];
 
   preBuild = ''
@@ -112,7 +113,7 @@ python3.pkgs.buildPythonApplication {
     wrapQtApp $out/bin/electrum
   '';
 
-  checkInputs = with python3.pkgs; [ pytestCheckHook pycryptodomex ];
+  checkInputs = with python3.pkgs; [ pytestCheckHook pyaes pycryptodomex ];
 
   pytestFlagsArray = [ "electrum/tests" ];
 
@@ -150,6 +151,6 @@ python3.pkgs.buildPythonApplication {
     homepage = "https://electrum.org/";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ ehmry joachifm np prusnak ];
+    maintainers = with maintainers; [ joachifm np prusnak ];
   };
 }
diff --git a/pkgs/applications/misc/extract_url/default.nix b/pkgs/applications/misc/extract_url/default.nix
index 9daaf7268c3..35ea33bde3a 100644
--- a/pkgs/applications/misc/extract_url/default.nix
+++ b/pkgs/applications/misc/extract_url/default.nix
@@ -5,7 +5,7 @@
 
 let
   perlDeps =
-    [ perlPackages.MIMEtools perlPackages.HTMLParser ]
+    [ perlPackages.MIMETools perlPackages.HTMLParser ]
     ++ lib.optional cursesSupport perlPackages.CursesUI
     ++ lib.optional uriFindSupport perlPackages.URIFind;
 
diff --git a/pkgs/applications/misc/far2l/default.nix b/pkgs/applications/misc/far2l/default.nix
index b414cbdd0ed..87eaed97535 100644
--- a/pkgs/applications/misc/far2l/default.nix
+++ b/pkgs/applications/misc/far2l/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, cmake, pkg-config, wxGTK30, glib, pcre, m4, bash
+{ lib, stdenv, fetchFromGitHub, makeWrapper, cmake, pkg-config, wxGTK30, glib, pcre, m4, bash
 , xdg-utils, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz, imagemagick
 , libuchardet, spdlog, xercesc, fmt, openssl, libssh, samba, neon, libnfs, libarchive }:
 
diff --git a/pkgs/applications/misc/flavours/default.nix b/pkgs/applications/misc/flavours/default.nix
index 6ee546fa7c5..b116fbbbd7c 100644
--- a/pkgs/applications/misc/flavours/default.nix
+++ b/pkgs/applications/misc/flavours/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "flavours";
-  version = "0.3.5";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "Misterio77";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lvbq026ap02f22mv45s904a0f81dr2f07j6bq0wnwl5wd5w0wpj";
+    sha256 = "sha256-rDy859jg+F8XC4sJogIgdn1FoT8cf7S+KORt+7kboAc=";
   };
 
-  cargoSha256 = "0wgi65k180mq1q6j4nma0wpfdvl67im5v5gmhzv1ap6xg3bicdg1";
+  cargoSha256 = "sha256-cAXiAPhHdxdd8pFQ0Gq7eHO2p/Dam53gDbE583UYY/k=";
 
   meta = with lib; {
     description = "An easy to use base16 scheme manager/builder that integrates with any workflow";
diff --git a/pkgs/applications/misc/foxtrotgps/default.nix b/pkgs/applications/misc/foxtrotgps/default.nix
index 5d0f07492a1..8692ac98933 100644
--- a/pkgs/applications/misc/foxtrotgps/default.nix
+++ b/pkgs/applications/misc/foxtrotgps/default.nix
@@ -6,8 +6,8 @@ let
   srcs = {
     foxtrot = fetchbzr {
       url = "lp:foxtrotgps";
-      rev = "326";
-      sha256 = "191pgcy5rng8djy22a5z9s8gssc73f9p5hm4ig52ra189cb48d8k";
+      rev = "329";
+      sha256 = "0fwgnsrah63h1xdgm5xdi5ancrz89shdp5sdzw1qc1m7i9a03rid";
     };
     screenshots = fetchbzr {
       url = "lp:foxtrotgps/screenshots";
@@ -17,23 +17,21 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "foxtrotgps";
-  version = "1.2.2+326";
+  version = "1.2.2+329";
 
   # Pull directly from bzr because gpsd API version 9 is not supported on latest release
   src = srcs.foxtrot;
 
-  patches = [
-    ./gps-status-fix.patch
+  nativeBuildInputs = [
+    pkg-config autoreconfHook texinfo help2man
+    imagemagick wrapGAppsHook intltool
   ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook texinfo help2man imagemagick wrapGAppsHook ];
-
   buildInputs = [
     curl.dev
     gnome2.libglade.dev
     gpsd
     gtk2.dev
-    intltool
     libexif
     sqlite.dev
     (python3Packages.python.withPackages (pythonPackages: with python3Packages;
@@ -58,7 +56,7 @@ in stdenv.mkDerivation rec {
       innovation.
     '';
     homepage = "https://www.foxtrotgps.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ wucke13 ];
   };
diff --git a/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch b/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch
deleted file mode 100644
index e9b3624a174..00000000000
--- a/pkgs/applications/misc/foxtrotgps/gps-status-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- foxtrot/src/gps_functions.c.orig	2020-12-04 15:02:22.290163204 -0600
-+++ foxtrot/src/gps_functions.c	2020-12-04 15:04:54.470648534 -0600
-@@ -762,7 +762,11 @@
- 		{
- 			gpsdata->fix.time = (time_t) 0;
- 		}
-+#if GPSD_API_MAJOR_VERSION >= 9
-+      gpsdata->valid = (libgps_gpsdata.fix.status != STATUS_NO_FIX);
-+#else
- 		gpsdata->valid = (libgps_gpsdata.status != STATUS_NO_FIX);
-+#endif
- 		if (gpsdata->valid)
- 		{
- 			gpsdata->seen_valid = TRUE;
diff --git a/pkgs/applications/misc/free42/default.nix b/pkgs/applications/misc/free42/default.nix
index 29c6df8a72e..c48e151e8ae 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.1";
 
   src = fetchFromGitHub {
     owner = "thomasokken";
     repo = pname;
     rev = "v${version}";
-    sha256 = "xP0kzpmX6Q5Dg7azvyUZIdoi52AYkUmiCkUA1aVY+nQ=";
+    sha256 = "sha256-Htk2NHgYVL622URx67BUtounAUopLTahaSqfAqd3+ZI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/misc/freeplane/default.nix b/pkgs/applications/misc/freeplane/default.nix
new file mode 100644
index 00000000000..0568198f41d
--- /dev/null
+++ b/pkgs/applications/misc/freeplane/default.nix
@@ -0,0 +1,118 @@
+{ stdenv, lib, fetchpatch, fetchFromGitHub, makeWrapper, writeText, runtimeShell, jdk11, perl, gradle_5, which }:
+
+let
+  pname = "freeplane";
+  version = "1.8.11";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "release-${version}";
+    sha256 = "07xjx9pf62dvy8lx6vnbwwcn1zqy89cmdmwy792k7gb12wz81nnc";
+  };
+
+  deps = stdenv.mkDerivation {
+    name = "${pname}-deps";
+    inherit src;
+
+    nativeBuildInputs = [ jdk11 perl gradle_5 ];
+
+    buildPhase = ''
+      GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon jar
+    '';
+
+    # Mavenize dependency paths
+    # e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.0.jar
+    installPhase = ''
+      find ./caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
+        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
+        | sh
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "0r7f6713m0whh5hlk1id7z9j5v9494r41sivn9fzl63q70kzz92g";
+  };
+
+  # Point to our local deps repo
+  gradleInit = writeText "init.gradle" ''
+    logger.lifecycle 'Replacing Maven repositories with ${deps}...'
+    gradle.projectsLoaded {
+      rootProject.allprojects {
+        buildscript {
+          repositories {
+            clear()
+            maven { url '${deps}' }
+          }
+        }
+        repositories {
+          clear()
+          maven { url '${deps}' }
+        }
+      }
+    }
+    settingsEvaluated { settings ->
+      settings.pluginManagement {
+        repositories {
+          maven { url '${deps}' }
+        }
+      }
+    }
+  '';
+
+  # downloaded from unicode.org and twemoji.maxcdn.com by code in freeplane/emoji.gradle
+  # the below hash is for versions of freeplane that use twemoji 12.1.4, and emoji 12.1
+  emoji = stdenv.mkDerivation rec {
+    name = "${pname}-emoji";
+    inherit src;
+
+    nativeBuildInputs = [ jdk11 gradle_5 ];
+
+    buildPhase = ''
+      GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon --offline --init-script ${gradleInit} emojiGraphicsClasses emojiListClasses
+    '';
+
+    installPhase = ''
+      mkdir -p $out/emoji/txt $out/resources/images
+      cp freeplane/build/emoji/txt/emojilist.txt $out/emoji/txt
+      cp -r freeplane/build/emoji/resources/images/emoji/. $out/resources/images/emoji
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "0zikbakbr2fhyv4h4h52ajhznjka0hg6hiqfy1528a39i6psipn3";
+  };
+
+in stdenv.mkDerivation rec {
+  inherit pname version src;
+
+  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ jdk11 gradle_5 ];
+
+  buildPhase = ''
+    mkdir -p -- ./freeplane/build/emoji/{txt,resources/images}
+    cp ${emoji}/emoji/txt/emojilist.txt ./freeplane/build/emoji/txt/emojilist.txt
+    cp -r ${emoji}/resources/images/emoji ./freeplane/build/emoji/resources/images/emoji
+    GRADLE_USER_HOME=$PWD gradle -Dorg.gradle.java.home=${jdk11} --no-daemon --offline --init-script ${gradleInit} -x test -x :freeplane:downloadEmoji build
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin $out/share
+
+    cp -a ./BIN/. $out/share/${pname}
+    makeWrapper $out/share/${pname}/${pname}.sh $out/bin/${pname} \
+      --set FREEPLANE_BASE_DIR $out/share/${pname} \
+      --set JAVA_HOME ${jdk11} \
+      --prefix PATH : ${lib.makeBinPath [ jdk11 which ]}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Mind-mapping software";
+    homepage = "https://freeplane.org/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ chaduffy ];
+  };
+}
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 5eebda9610e..ad0970e0fe2 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.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "744deddf22fdbc51d1d89776c41b0f1127d2b4d212bd092718fad2c0dc7f160f";
+    sha256 = "1cfaa3a617d5d222d4b9b41634b1bdede2673a8620d6b0e62fb755ae224ca2ac";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/applications/misc/gammu/default.nix b/pkgs/applications/misc/gammu/default.nix
index 0a6796a9b07..736685f5eb1 100644
--- a/pkgs/applications/misc/gammu/default.nix
+++ b/pkgs/applications/misc/gammu/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python, pkg-config, cmake, bluez, libusb1, curl
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, bluez, libusb1, curl
 , libiconv, gettext, sqlite
 , dbiSupport ? false, libdbi ? null, libdbiDrivers ? null
 , postgresSupport ? false, postgresql ? null
@@ -21,7 +21,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake ];
 
-  buildInputs = [ python bluez libusb1 curl gettext sqlite libiconv ]
+  strictDeps = true;
+
+  buildInputs = [ bluez libusb1 curl gettext sqlite libiconv ]
   ++ optionals dbiSupport [ libdbi libdbiDrivers ]
   ++ optionals postgresSupport [ postgresql ];
 
diff --git a/pkgs/applications/misc/gcalcli/default.nix b/pkgs/applications/misc/gcalcli/default.nix
index 20aefe2ab1d..e19e89ec6c0 100644
--- a/pkgs/applications/misc/gcalcli/default.nix
+++ b/pkgs/applications/misc/gcalcli/default.nix
@@ -21,7 +21,7 @@ buildPythonApplication rec {
 
   propagatedBuildInputs = [
     dateutil gflags httplib2 parsedatetime six vobject
-    google_api_python_client oauth2client uritemplate
+    google-api-python-client oauth2client uritemplate
     libnotify
   ] ++ lib.optional (!isPy3k) futures;
 
diff --git a/pkgs/applications/misc/gcstar/default.nix b/pkgs/applications/misc/gcstar/default.nix
index f482b8af289..f77bf04c2c8 100644
--- a/pkgs/applications/misc/gcstar/default.nix
+++ b/pkgs/applications/misc/gcstar/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     JSON
     ImageExifTool
     librelative
-    LWPUserAgent
+    LWP
     LWPProtocolHttps
     MP3Info
     MP3Tag
diff --git a/pkgs/applications/misc/gnome-passwordsafe/default.nix b/pkgs/applications/misc/gnome-passwordsafe/default.nix
index c6617cc2324..34f4aa71a38 100644
--- a/pkgs/applications/misc/gnome-passwordsafe/default.nix
+++ b/pkgs/applications/misc/gnome-passwordsafe/default.nix
@@ -4,8 +4,8 @@
 , pkg-config
 , gettext
 , fetchFromGitLab
-, python3
-, libhandy_0
+, python3Packages
+, libhandy
 , libpwquality
 , wrapGAppsHook
 , gtk3
@@ -15,9 +15,9 @@
 , desktop-file-utils
 , appstream-glib }:
 
-python3.pkgs.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "gnome-passwordsafe";
-  version = "3.99.2";
+  version = "5.0";
   format = "other";
   strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
 
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "World";
     repo = "PasswordSafe";
     rev = version;
-    sha256 = "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf";
+    sha256 = "8EFKLNK7rZlYL2g/7FmaC5r5hcdblsnod/aB8NYiBvY=";
   };
 
   nativeBuildInputs = [
@@ -44,26 +44,13 @@ python3.pkgs.buildPythonApplication rec {
     gtk3
     glib
     gdk-pixbuf
-    libhandy_0
+    libhandy
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with python3Packages; [
     pygobject3
     construct
-
-    # pykeepass 3.2.1 changed some exception types, and is not backwards compatible.
-    # Remove override once the MR is merged upstream.
-    # https://gitlab.gnome.org/World/PasswordSafe/-/merge_requests/79
-    (pykeepass.overridePythonAttrs (old: rec {
-      version = "3.2.0";
-      src = fetchPypi {
-        pname = "pykeepass";
-        inherit version;
-        sha256 = "1ysjn92bixq8wkwhlbhrjj9z0h80qnlnj7ks5478ndkzdw5gxvm1";
-      };
-      propagatedBuildInputs = old.propagatedBuildInputs ++ [ pycryptodome ];
-    }))
-
+    pykeepass
   ] ++ [
     libpwquality # using the python bindings
   ];
diff --git a/pkgs/applications/misc/go-org/default.nix b/pkgs/applications/misc/go-org/default.nix
new file mode 100644
index 00000000000..cc2225af07c
--- /dev/null
+++ b/pkgs/applications/misc/go-org/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "go-org";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "niklasfasching";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-nMZzRbu3lxunIlnnmb49Ljt8oSiYpj+8gZ0u/OFRRDM=";
+  };
+
+  vendorSha256 = "sha256-njx89Ims7GZql8sbVmH/E9gM/ONRWiPRLVs+FzsCSzI=";
+
+  postInstallCheck = ''
+    $out/bin/go-org > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "Org-mode parser and static site generator in go";
+    homepage = "https://niklasfasching.github.io/go-org";
+    license = licenses.mit;
+    maintainers = with maintainers; [ payas ];
+  };
+}
diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix
index fa58c2d3965..c3b9a3226a3 100644
--- a/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/pkgs/applications/misc/golden-cheetah/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, fetchpatch, mkDerivation
 , qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools
 , qtconnectivity, qtcharts, libusb-compat-0_1
-, yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper
+, bison, flex, zlib, qmake, makeDesktopItem, makeWrapper
 }:
 
 let
@@ -29,7 +29,7 @@ in mkDerivation rec {
     qtbase qtsvg qtserialport qtwebengine qtmultimedia qttools zlib
     qtconnectivity qtcharts libusb-compat-0_1
   ];
-  nativeBuildInputs = [ flex makeWrapper qmake yacc ];
+  nativeBuildInputs = [ flex makeWrapper qmake bison ];
 
   patches = [
     # allow building with bison 3.7
diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock
index eed618a5cbd..73bc5d068d7 100644
--- a/pkgs/applications/misc/gollum/Gemfile.lock
+++ b/pkgs/applications/misc/gollum/Gemfile.lock
@@ -1,20 +1,20 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     crass (1.0.6)
     execjs (2.7.0)
-    ffi (1.13.1)
+    ffi (1.14.2)
     gemojione (4.3.3)
       json
     github-markup (3.0.5)
-    gollum (5.1.2)
+    gollum (5.2.1)
       gemojione (~> 4.1)
-      gollum-lib (~> 5.0)
+      gollum-lib (~> 5.1)
       kramdown (~> 2.3)
       kramdown-parser-gfm (~> 1.1.0)
-      mustache (>= 0.99.5, < 1.0.0)
-      octicons (~> 8.5)
+      mustache-sinatra (~> 1.0)
+      octicons (~> 12.0)
       rss (~> 0.2.9)
       sass (~> 3.5)
       sinatra (~> 2.0)
@@ -22,40 +22,44 @@ GEM
       sprockets (~> 3.7)
       sprockets-helpers (~> 1.2)
       therubyrhino (~> 2.1.0)
-      uglifier (~> 3.2)
+      uglifier (~> 4.2)
       useragent (~> 0.16.2)
-    gollum-lib (5.0.6)
+    gollum-lib (5.1)
       gemojione (~> 4.1)
       github-markup (~> 3.0)
       gollum-rugged_adapter (~> 1.0)
       loofah (~> 2.3)
       nokogiri (~> 1.8)
-      octicons (~> 8.5)
+      octicons (~> 12.0)
       rouge (~> 3.1)
       twitter-text (= 1.14.7)
     gollum-rugged_adapter (1.0)
       mime-types (>= 1.15)
       rugged (~> 0.99)
-    json (2.3.1)
+    json (2.5.1)
     kramdown (2.3.0)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
-    loofah (2.8.0)
+    loofah (2.9.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.1104)
-    mini_portile2 (2.4.0)
+    mime-types-data (3.2021.0225)
+    mini_portile2 (2.5.0)
     multi_json (1.15.0)
     mustache (0.99.8)
+    mustache-sinatra (1.0.1)
+      mustache (<= 0.99.8)
     mustermann (1.1.1)
       ruby2_keywords (~> 0.0.1)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
-    octicons (8.5.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    octicons (12.1.0)
       nokogiri (>= 1.6.3.1)
+    racc (1.5.2)
     rack (2.2.3)
     rack-protection (2.1.0)
       rack
@@ -63,10 +67,10 @@ GEM
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rexml (3.2.4)
-    rouge (3.25.0)
+    rouge (3.26.0)
     rss (0.2.9)
       rexml
-    ruby2_keywords (0.0.2)
+    ruby2_keywords (0.0.4)
     rugged (0.99.0)
     sass (3.7.4)
       sass-listen (~> 4.0.0)
@@ -95,7 +99,7 @@ GEM
     tilt (2.0.10)
     twitter-text (1.14.7)
       unf (~> 0.1.0)
-    uglifier (3.2.0)
+    uglifier (4.2.0)
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
diff --git a/pkgs/applications/misc/gollum/default.nix b/pkgs/applications/misc/gollum/default.nix
index fc80a5ddb8a..4a365b5a17e 100644
--- a/pkgs/applications/misc/gollum/default.nix
+++ b/pkgs/applications/misc/gollum/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/gollum/gollum";
     changelog = "https://github.com/gollum/gollum/blob/v${version}/HISTORY.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ jgillich primeos nicknovitski ];
+    maintainers = with maintainers; [ erictapen jgillich nicknovitski ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix
index d259167856a..690eba645dc 100644
--- a/pkgs/applications/misc/gollum/gemset.nix
+++ b/pkgs/applications/misc/gollum/gemset.nix
@@ -4,10 +4,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   crass = {
     groups = ["default"];
@@ -34,10 +34,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.14.2";
   };
   gemojione = {
     dependencies = ["json"];
@@ -61,15 +61,15 @@
     version = "3.0.5";
   };
   gollum = {
-    dependencies = ["gemojione" "gollum-lib" "kramdown" "kramdown-parser-gfm" "mustache" "octicons" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent"];
+    dependencies = ["gemojione" "gollum-lib" "kramdown" "kramdown-parser-gfm" "mustache-sinatra" "octicons" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pmvxj7pka7pjpw060a9pfxsci1hmx45hk9hbp5m49xkkiiqf1gx";
+      sha256 = "0n89c77amabvv4aq8jq5r6581hqzw79w8khr13w6kvv6iabq1vaz";
       type = "gem";
     };
-    version = "5.1.2";
+    version = "5.2.1";
   };
   gollum-lib = {
     dependencies = ["gemojione" "github-markup" "gollum-rugged_adapter" "loofah" "nokogiri" "octicons" "rouge" "twitter-text"];
@@ -77,10 +77,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mc1w4hn9kjrgvg0r46x1bd0h8hq7lqs432dgjfn2dw36kchja4";
+      sha256 = "0p721ymkf2xcskjgr9308b6g581cbxgvhprj9srqskssxvsfdsln";
       type = "gem";
     };
-    version = "5.0.6";
+    version = "5.1";
   };
   gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -98,10 +98,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   kramdown = {
     dependencies = ["rexml"];
@@ -131,10 +131,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.9.0";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -152,20 +152,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
+    version = "3.2021.0225";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   multi_json = {
     groups = ["default"];
@@ -187,6 +187,17 @@
     };
     version = "0.99.8";
   };
+  mustache-sinatra = {
+    dependencies = ["mustache"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rvdwg1zk3sybpi9hzn6jj0k8rndkq19y7cl0jmqr0g2xx21z7mr";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
   mustermann = {
     dependencies = ["ruby2_keywords"];
     groups = ["default"];
@@ -199,15 +210,15 @@
     version = "1.1.1";
   };
   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";
   };
   octicons = {
     dependencies = ["nokogiri"];
@@ -215,10 +226,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fy6shpfmla58dxx3kb2zi1hs7vmdw6pqrksaa8yrva05s4l3y75";
+      sha256 = "0kpy7h7pffjqb2xbmld7nwnb2x6rll3yz5ccr7nrqnrk2d3cmpmn";
+      type = "gem";
+    };
+    version = "12.1.0";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
       type = "gem";
     };
-    version = "8.5.0";
+    version = "1.5.2";
   };
   rack = {
     groups = ["default"];
@@ -277,10 +298,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yvcv901lrh5rfnk1h4h56hf2m6n9pd6w8n96vag74aakgz3gaxn";
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
       type = "gem";
     };
-    version = "3.25.0";
+    version = "3.26.0";
   };
   rss = {
     dependencies = ["rexml"];
@@ -298,10 +319,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.4";
   };
   rugged = {
     groups = ["default"];
@@ -427,10 +448,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wmqvn4xncw6h3d5gp2a44170zwxfyj3iq4rsjp16zarvzbdmgnz";
+      sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f";
       type = "gem";
     };
-    version = "3.2.0";
+    version = "4.2.0";
   };
   unf = {
     dependencies = ["unf_ext"];
diff --git a/pkgs/applications/misc/gphoto2/default.nix b/pkgs/applications/misc/gphoto2/default.nix
index 5635aadda9d..8d612ceb413 100644
--- a/pkgs/applications/misc/gphoto2/default.nix
+++ b/pkgs/applications/misc/gphoto2/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gphoto2";
-  version = "2.5.26";
+  version = "2.5.27";
 
   src = fetchFromGitHub {
     owner = "gphoto";
     repo = "gphoto2";
     rev = "v${version}";
-    sha256 = "1w01j3qvjl2nlfs38rnsmjvn3r0r2xf7prxz1i6yarbpj3fzwqqc";
+    sha256 = "sha256-zzlyA2IedyBZ4/TdSmrqbe2le8rFMQ6tY6jF5skJ7l4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix
index f043aa66947..85c7fbae789 100644
--- a/pkgs/applications/misc/gpsbabel/default.nix
+++ b/pkgs/applications/misc/gpsbabel/default.nix
@@ -38,6 +38,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   doCheck = true;
   preCheck = ''
     patchShebangs testo
diff --git a/pkgs/applications/misc/gpsbabel/gui.nix b/pkgs/applications/misc/gpsbabel/gui.nix
index 4025b313128..8501b7c0875 100644
--- a/pkgs/applications/misc/gpsbabel/gui.nix
+++ b/pkgs/applications/misc/gpsbabel/gui.nix
@@ -10,6 +10,8 @@ mkDerivation {
   nativeBuildInputs = [ qmake qttools ];
   buildInputs = [ qtwebkit ];
 
+  dontWrapQtApps = true;
+
   postPatch = ''
     substituteInPlace mainwindow.cc \
       --replace "QApplication::applicationDirPath() + \"/" "\"" \
diff --git a/pkgs/applications/misc/gpscorrelate/default.nix b/pkgs/applications/misc/gpscorrelate/default.nix
index a1357ff0a08..00a3914e173 100644
--- a/pkgs/applications/misc/gpscorrelate/default.nix
+++ b/pkgs/applications/misc/gpscorrelate/default.nix
@@ -29,8 +29,8 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "prefix=${placeholder "out"}"
-    "CC=cc"
-    "CXX=c++"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
     "CFLAGS=-DENABLE_NLS"
   ];
 
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 5ea01dfa19f..c9c815771a8 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.5";
+  version = "8.9";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-ygBM8HtCF8d4KVOakP4ssFyTgAsPQDfjAMJaEqo+Ml4=";
+    sha256 = "sha256-nl9iu8ezgMZ1wy2swDXYRDLlkSz1II+C65UUWNvGBxg=";
   };
 
   patches = (substituteAll {
diff --git a/pkgs/applications/misc/gremlin-console/default.nix b/pkgs/applications/misc/gremlin-console/default.nix
index 6c3ba132d0b..e6350dfb7cb 100644
--- a/pkgs/applications/misc/gremlin-console/default.nix
+++ b/pkgs/applications/misc/gremlin-console/default.nix
@@ -2,21 +2,23 @@
 
 stdenv.mkDerivation rec {
   pname = "gremlin-console";
-  version = "3.4.8";
+  version = "3.4.10";
   src = fetchzip {
     url = "http://www-eu.apache.org/dist/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
-    sha256 = "13ycr6ppyrz9rq7dasabjdk8lcsxdj3krb4j7d2jmbh2hij1rdvf";
+    sha256 = "sha256-4/EcVjIc+8OMkll8OxE5oXiqk+w9k1Nv9ld8N7oFFp0=";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/opt
     cp -r ext lib $out/opt/
     install -D bin/gremlin.sh $out/opt/bin/gremlin-console
     makeWrapper $out/opt/bin/gremlin-console $out/bin/gremlin-console \
       --prefix PATH ":" "${openjdk}/bin/" \
       --set CLASSPATH "$out/opt/lib/"
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/gsimplecal/default.nix b/pkgs/applications/misc/gsimplecal/default.nix
index 21128ac9119..2d855d0c9fc 100644
--- a/pkgs/applications/misc/gsimplecal/default.nix
+++ b/pkgs/applications/misc/gsimplecal/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gsimplecal";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchurl {
     url = "https://github.com/dmedvinsky/gsimplecal/archive/v${version}.tar.gz";
-    sha256 = "1sa05ifjp41xipfspk5n6l3wzpzmp3i45q88l01p4l6k6drsq336";
+    sha256 = "sha256-f19cnTX83LZT2d01B1EdWSaHcfHqpFPTo5glYkAokq8=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/gxkb/default.nix b/pkgs/applications/misc/gxkb/default.nix
new file mode 100644
index 00000000000..8f6284c7d60
--- /dev/null
+++ b/pkgs/applications/misc/gxkb/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk3, libwnck3, libxklavier
+, appindicatorSupport ? true, libayatana-appindicator-gtk3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gxkb";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "zen-tools";
+    repo = "gxkb";
+    rev = "v${version}";
+    sha256 = "1fmppvpfz8rip71agsc464fdz423qw0xy8i3pcic14cy5gcwh069";
+  };
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  buildInputs = [ gtk3 libwnck3 libxklavier ] ++ lib.optional appindicatorSupport libayatana-appindicator-gtk3;
+
+  configureFlags = lib.optional appindicatorSupport "--enable-appindicator=yes";
+  outputs = [ "out" "man" ];
+
+  meta = with lib; {
+    description = "X11 keyboard indicator and switcher";
+    homepage = "https://zen-tools.github.io/gxkb/";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.omgbebebe ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index 35246a45da2..bb748a1074c 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.80.0";
+  version = "0.82.0";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xs9y5lj0mya6ag625x8j91mn9l9r13gxaqxyvl1fl40y2yjz1zm";
+    sha256 = "sha256-D0bwy8LJihlfM+E3oys85yjadjZNfPv5xnq4ekaZPCU=";
   };
 
-  vendorSha256 = "172mcs8p43bsdkd2hxg9qn6018fh8f36kxx0vgnq5q6fqsb6s1f6";
+  vendorSha256 = "sha256-pJBm+yyy1DbH28oVBQA+PHSDtSg3RcgbRlurrwnnEls=";
 
   doCheck = false;
 
@@ -21,6 +21,17 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    $out/bin/hugo gen man
+    installManPage man/*
+    installShellCompletion --cmd hugo \
+      --bash <($out/bin/hugo gen autocomplete --type=bash) \
+      --fish <($out/bin/hugo gen autocomplete --type=fish) \
+      --zsh <($out/bin/hugo gen autocomplete --type=zsh)
+  '';
+
   meta = with lib; {
     description = "A fast and modern static website engine";
     homepage = "https://gohugo.io";
diff --git a/pkgs/applications/misc/icesl/default.nix b/pkgs/applications/misc/icesl/default.nix
index 9f1431a2340..5c50ac24538 100644
--- a/pkgs/applications/misc/icesl/default.nix
+++ b/pkgs/applications/misc/icesl/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0sl54fsb2gz6dy0bwdscpdq1ab6ph5b7zald3bwzgkqsvna7p1jr";
   } else throw "Unsupported architecture";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
     cp -r ./ $out
     mkdir $out/oldbin
diff --git a/pkgs/applications/misc/index-fm/default.nix b/pkgs/applications/misc/index-fm/default.nix
new file mode 100644
index 00000000000..328db965001
--- /dev/null
+++ b/pkgs/applications/misc/index-fm/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, breeze-icons
+, karchive
+, kcoreaddons
+, ki18n
+, kio
+, kirigami2
+, mauikit
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation rec {
+  pname = "index";
+  version = "1.2.1";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "maui";
+    repo = "index-fm";
+    rev = "v${version}";
+    sha256 = "1v6z44c88cqgr3b758yq6l5d2zj1vhlnaq7v8rrhs7s5dsimzlx8";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    breeze-icons
+    karchive
+    kcoreaddons
+    ki18n
+    kio
+    kirigami2
+    mauikit
+    qtmultimedia
+    qtquickcontrols2
+  ];
+
+  meta = with lib; {
+    description = "Multi-platform file manager";
+    homepage = "https://invent.kde.org/maui/index-fm";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/misc/jbidwatcher/default.nix b/pkgs/applications/misc/jbidwatcher/default.nix
deleted file mode 100644
index 0b8bcbfffac..00000000000
--- a/pkgs/applications/misc/jbidwatcher/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ lib, stdenv, fetchurl, java, runtimeShell }:
-
-stdenv.mkDerivation rec {
-  pname = "jbidwatcher";
-  version = "2.5.6";
-
-  src = fetchurl {
-    url = "http://www.jbidwatcher.com/download/JBidwatcher-${version}.jar";
-    sha256 = "1cw59wh72w1zzibs8x64dma3jc4hry64wjksqs52nc3vpnf0fzfr";
-  };
-
-  buildInputs = [ java ];
-
-  jarfile = "$out/share/java/${pname}/JBidwatcher.jar";
-
-  dontUnpack = true;
-
-  dontBuild = true;
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    echo > "$out/bin/${pname}" "#!${runtimeShell}"
-    echo >>"$out/bin/${pname}" "${java}/bin/java -Xmx512m -jar ${jarfile}"
-    chmod +x "$out/bin/${pname}"
-    install -D -m644 ${src} ${jarfile}
-  '';
-
-  meta = {
-    homepage = "http://www.jbidwatcher.com/";
-    description = "Monitor and snipe Ebay auctions";
-    license = "LGPL";
-
-    longDescription = ''
-      A Java-based application allowing you to monitor auctions you're
-      not part of, submit bids, snipe (bid at the last moment), and
-      otherwise track your auction-site experience. It includes
-      adult-auction management, MANY currencies (pound, dollar (US,
-      Canada, Australian, and New Taiwanese) and euro, presently),
-      drag-and-drop of auction URLs, an original, unique and powerful
-      'multisniping' feature, a relatively nice UI, and is known to work
-      cleanly under Linux, Windows, Solaris, and MacOSX from the same
-      binary.
-    '';
-
-    platforms = lib.platforms.linux ++ lib.platforms.darwin;
-  };
-}
diff --git a/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
index 65c747c40a5..15ef5d3b4c6 100644
--- a/pkgs/applications/misc/jekyll/basic/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.1.0)
+    activesupport (6.1.3.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -10,19 +10,19 @@ GEM
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     colorator (1.1.0)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     em-websocket (0.5.2)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
     eventmachine (1.2.7)
-    ffi (1.13.1)
+    ffi (1.15.0)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
     html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.5)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     jekyll (4.2.0)
       addressable (~> 2.4)
@@ -56,22 +56,24 @@ GEM
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
       jekyll (>= 3.0, < 5.0)
-    kramdown (2.3.0)
+    kramdown (2.3.1)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
     liquid (4.0.3)
-    listen (3.3.3)
+    listen (3.5.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     mercenary (0.4.0)
-    mini_portile2 (2.4.0)
-    minitest (5.14.2)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
+    mini_portile2 (2.5.0)
+    minitest (5.14.4)
+    nokogiri (1.11.2)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
     public_suffix (4.0.6)
+    racc (1.5.2)
     rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
@@ -82,7 +84,7 @@ GEM
       ffi (~> 1.9)
     terminal-table (2.0.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
-    tzinfo (2.0.3)
+    tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
     unicode-display_width (1.7.0)
     zeitwerk (2.4.2)
diff --git a/pkgs/applications/misc/jekyll/basic/gemset.nix b/pkgs/applications/misc/jekyll/basic/gemset.nix
index cc7be93510c..fadbf8e32ba 100644
--- a/pkgs/applications/misc/jekyll/basic/gemset.nix
+++ b/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v";
+      sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   em-websocket = {
     dependencies = ["eventmachine" "http_parser.rb"];
@@ -67,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   forwardable-extended = {
     groups = ["default"];
@@ -119,10 +119,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   jekyll = {
     dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -218,10 +218,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+      sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -250,10 +250,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zpcgha7g33wvy2xbbc663cbjyvg9l1325lg3gzgcn3baydr9rha";
+      sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.5.1";
   };
   mercenary = {
     groups = ["default"];
@@ -270,31 +270,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.2";
+    version = "5.14.4";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.2";
   };
   pathutil = {
     dependencies = ["forwardable-extended"];
@@ -317,6 +317,16 @@
     };
     version = "4.0.6";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rb-fsevent = {
     groups = ["default"];
     platforms = [];
@@ -396,10 +406,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1av5jzdij6vriwmf8crfvwaz2kik721ymg8svpxj3kx47kfha5vg";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "2.0.3";
+    version = "2.0.4";
   };
   unicode-display_width = {
     groups = ["default"];
diff --git a/pkgs/applications/misc/jekyll/full/Gemfile.lock b/pkgs/applications/misc/jekyll/full/Gemfile.lock
index 969909ca6d0..b3d3b9ca499 100644
--- a/pkgs/applications/misc/jekyll/full/Gemfile.lock
+++ b/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.1.0)
+    activesupport (6.1.3.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -17,24 +17,26 @@ GEM
       execjs
     coffee-script-source (1.12.2)
     colorator (1.1.0)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     em-websocket (0.5.2)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
     eventmachine (1.2.7)
     execjs (2.7.0)
-    faraday (1.1.0)
+    faraday (1.3.0)
+      faraday-net_http (~> 1.0)
       multipart-post (>= 1.2, < 3)
       ruby2_keywords
+    faraday-net_http (1.0.1)
     fast-stemmer (1.0.2)
-    ffi (1.13.1)
+    ffi (1.15.0)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
     html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.5)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     jekyll (4.2.0)
       addressable (~> 2.4)
@@ -64,7 +66,7 @@ GEM
       html-pipeline (~> 2.3)
       jekyll (>= 3.7, < 5.0)
     jekyll-paginate (1.1.0)
-    jekyll-polyglot (1.3.3)
+    jekyll-polyglot (1.4.0)
       jekyll (>= 3.0)
     jekyll-redirect-from (0.16.0)
       jekyll (>= 3.3, < 5.0)
@@ -80,7 +82,7 @@ GEM
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
       jekyll (>= 3.0, < 5.0)
-    kramdown (2.3.0)
+    kramdown (2.3.1)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -90,31 +92,33 @@ GEM
     liquid (4.0.3)
     liquid-c (4.0.0)
       liquid (>= 3.0.0)
-    listen (3.3.3)
+    listen (3.5.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     mercenary (0.4.0)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.1104)
-    mini_portile2 (2.4.0)
-    minitest (5.14.2)
+    mime-types-data (3.2021.0225)
+    mini_portile2 (2.5.0)
+    minitest (5.14.4)
     multipart-post (2.1.1)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
-    octokit (4.19.0)
+    nokogiri (1.11.2)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
     public_suffix (4.0.6)
+    racc (1.5.2)
     rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
-    rdoc (6.2.1)
+    rdoc (6.3.0)
     rexml (3.2.4)
     rouge (3.26.0)
-    ruby2_keywords (0.0.2)
+    ruby2_keywords (0.0.4)
     safe_yaml (1.0.5)
     sassc (2.4.0)
       ffi (~> 1.9)
@@ -124,7 +128,7 @@ GEM
     terminal-table (2.0.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
     tomlrb (1.3.0)
-    tzinfo (2.0.3)
+    tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
     unicode-display_width (1.7.0)
     yajl-ruby (1.4.1)
diff --git a/pkgs/applications/misc/jekyll/full/gemset.nix b/pkgs/applications/misc/jekyll/full/gemset.nix
index bfbe428c861..7a6814aaa32 100644
--- a/pkgs/applications/misc/jekyll/full/gemset.nix
+++ b/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v";
+      sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -90,10 +90,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   em-websocket = {
     dependencies = ["eventmachine" "http_parser.rb"];
@@ -127,15 +127,25 @@
     version = "2.7.0";
   };
   faraday = {
-    dependencies = ["multipart-post" "ruby2_keywords"];
+    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35";
+      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.3.0";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
+      type = "gem";
+    };
+    version = "1.0.1";
   };
   fast-stemmer = {
     groups = ["default"];
@@ -164,10 +174,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   forwardable-extended = {
     groups = ["default"];
@@ -216,10 +226,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   jekyll = {
     dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -303,10 +313,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "4ad9140733250b65bc1ffab84650c588d036d23129e82f0349d31e56f1fe10a8";
+      sha256 = "0klf363dsdsi90rsnc9047b3hbg88gagkq2sqzmmg5r1nhy7hyyr";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.4.0";
   };
   jekyll-redirect-from = {
     dependencies = ["jekyll"];
@@ -380,10 +390,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+      sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -458,10 +468,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zpcgha7g33wvy2xbbc663cbjyvg9l1325lg3gzgcn3baydr9rha";
+      sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.5.1";
   };
   mercenary = {
     groups = ["default"];
@@ -489,30 +499,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
+    version = "3.2021.0225";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.2";
+    version = "5.14.4";
   };
   multipart-post = {
     groups = ["default"];
@@ -525,15 +535,15 @@
     version = "2.1.1";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.2";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -541,10 +551,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dz8na8fk445yqrwpkl31fimnap7p4xf9m9qm9i7cpvaxxgk2n24";
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
       type = "gem";
     };
-    version = "4.19.0";
+    version = "4.20.0";
   };
   pathutil = {
     dependencies = ["forwardable-extended"];
@@ -567,6 +577,16 @@
     };
     version = "4.0.6";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rb-fsevent = {
     groups = ["default"];
     platforms = [];
@@ -593,10 +613,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08862mr1575j8g32wma4pv2qwj4xpllk29i5j61hgf9nwn64afhc";
+      sha256 = "1rz1492df18161qwzswm86gav0dnqz715kxzw5yfnv0ka43d4zc4";
       type = "gem";
     };
-    version = "6.2.1";
+    version = "6.3.0";
   };
   rexml = {
     groups = ["default"];
@@ -623,10 +643,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.4";
   };
   safe_yaml = {
     groups = ["default"];
@@ -687,10 +707,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1av5jzdij6vriwmf8crfvwaz2kik721ymg8svpxj3kx47kfha5vg";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "2.0.3";
+    version = "2.0.4";
   };
   unicode-display_width = {
     groups = ["default"];
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index 28c7de12c8c..badda6b17ee 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
 let
   pname = "josm";
-  version = "17428";
+  version = "17702";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "0fhnq0836jp72br808hhw1ki70zc9wqcwfhnizb8pzjvs4wgx36w";
+      sha256 = "1p7p0jd87sxrs5n0r82apkilx0phgmjw7vpdg8qrr5msda4rsmpk";
     };
     macosx = fetchurl {
-      url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
-      sha256 = "126yy6y7mkpqzkrkqkzzn3mwnl1yjkmd5k895k7mmk2inmcsvqgm";
+      url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java16.zip";
+      sha256 = "0r17cphxm852ykb8mkil29rr7sb0bj5w69qd5wz8zf2f9djk9npk";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "198kq490y5wzxz0a5prb9anykq6dzg0imxfkchsas233inbzggql";
+      sha256 = "1b7dryvakph8znh2ahgywch66l4bl5rmgsr79axnz1xi12g8ac12";
     };
   };
 in
@@ -23,7 +23,8 @@ stdenv.mkDerivation {
 
   dontUnpack = true;
 
-  buildInputs = lib.optionals (!stdenv.isDarwin) [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = lib.optionals (!stdenv.isDarwin) [ jre ];
 
   installPhase =
     if stdenv.isDarwin then ''
diff --git a/pkgs/applications/misc/jrnl/default.nix b/pkgs/applications/misc/jrnl/default.nix
index 8d2cabb5b8b..37142cd20eb 100644
--- a/pkgs/applications/misc/jrnl/default.nix
+++ b/pkgs/applications/misc/jrnl/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonApplication rec {
   pname = "jrnl";
-  version = "2.7";
+  version = "2.8";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "jrnl-org";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hyjjw9mxy73n3pkliaaif135h2sd4iy43pw9d5zynid5abnr3yz";
+    sha256 = "1zpsvrjhami9y7204yjbdzi04bkkz6i3apda9fh3hbq83y6wzprz";
   };
 
   nativeBuildInputs = [ poetry ];
diff --git a/pkgs/applications/misc/kdbplus/default.nix b/pkgs/applications/misc/kdbplus/default.nix
index d27a10af20c..8ee8337bea2 100644
--- a/pkgs/applications/misc/kdbplus/default.nix
+++ b/pkgs/applications/misc/kdbplus/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   };
 
   dontStrip = true;
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   phases = "unpackPhase installPhase";
   unpackPhase = "mkdir ${pname}-${version} && cd ${pname}-${version} && unzip -qq ${src}";
diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix
index 32572ffcdb3..843193bba18 100644
--- a/pkgs/applications/misc/keepass/default.nix
+++ b/pkgs/applications/misc/keepass/default.nix
@@ -12,7 +12,8 @@ with builtins; buildDotnetPackage rec {
 
   sourceRoot = ".";
 
-  buildInputs = [ unzip makeWrapper icoutils ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ icoutils ];
 
   patches = [
     (substituteAll {
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index c7e87dbbfd4..af259c199d8 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -34,6 +34,8 @@
 , withKeePassNetworking ? true
 , withKeePassTouchID ? true
 , withKeePassFDOSecrets ? true
+
+, nixosTests
 }:
 
 with lib;
@@ -118,6 +120,8 @@ stdenv.mkDerivation rec {
     wrapQtApp $out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC
   '';
 
+  passthru.tests = nixosTests.keepassxc;
+
   meta = {
     description = "Password manager to store your passwords safely and auto-type them into your everyday websites and applications";
     longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser).";
diff --git a/pkgs/applications/misc/keeweb/default.nix b/pkgs/applications/misc/keeweb/default.nix
index 391e698dcf7..3b2ca74c642 100644
--- a/pkgs/applications/misc/keeweb/default.nix
+++ b/pkgs/applications/misc/keeweb/default.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv, fetchurl, appimageTools, undmg, libsecret }:
+{ lib, stdenv, fetchurl, appimageTools, undmg, libsecret, libxshmfence }:
 let
   inherit (stdenv.hostPlatform) system;
   throwSystem = throw "Unsupported system: ${system}";
 
   pname = "keeweb";
-  version = "1.16.7";
+  version = "1.17.0";
   name = "${pname}-${version}";
 
   suffix = {
@@ -16,9 +16,9 @@ let
   src = fetchurl {
     url = "https://github.com/keeweb/keeweb/releases/download/v${version}/KeeWeb-${version}.${suffix}";
     sha256 = {
-      x86_64-linux = "0a4yh2jh9sph17mqqi62gm5jc4yffkysq6yiggyzz5f8xw4p315j";
-      x86_64-darwin = "0ix1apddqvz561pw5lx47x091wlfj27zh8k8v7kn5xvm09hswfkr";
-      aarch64-darwin = "0p0kql79kcb3w947g1ljhbj15b8aqrwcrbi0cknb12f6iq47lkz7";
+      x86_64-linux = "1c7zvwnd46d3lrlcdigv341flz44jl6mnvr6zqny5mfz221ynbj7";
+      x86_64-darwin = "1n4haxychm5jjhjnpncavjh0wr4dagqi78qfsx5gwlv86hzryzwy";
+      aarch64-darwin = "1j7z63cbfms02f2lhl949wy3lc376jw8kqmjfn9j949s0l5fanpb";
     }.${system} or throwSystem;
   };
 
@@ -29,6 +29,7 @@ let
   meta = with lib; {
     description = "Free cross-platform password manager compatible with KeePass";
     homepage = "https://keeweb.info/";
+    changelog = "https://github.com/keeweb/keeweb/blob/v${version}/release-notes.md";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
@@ -37,7 +38,7 @@ let
   linux = appimageTools.wrapType2 rec {
     inherit name src meta;
 
-    extraPkgs = pkgs: with pkgs; [ libsecret ];
+    extraPkgs = pkgs: with pkgs; [ libsecret libxshmfence ];
 
     extraInstallCommands = ''
       mv $out/bin/{${name},${pname}}
@@ -54,11 +55,11 @@ let
 
     nativeBuildInputs = [ undmg ];
 
-    sourceRoot = "KeeWeb.app";
+    sourceRoot = ".";
 
     installPhase = ''
-      mkdir -p $out/Applications/KeeWeb.app
-      cp -R . $out/Applications/KeeWeb.app
+      mkdir -p $out/Applications
+      cp -r *.app $out/Applications
     '';
   };
 in
diff --git a/pkgs/applications/misc/khard/default.nix b/pkgs/applications/misc/khard/default.nix
index 3bec8db0687..64e41eaa3d2 100644
--- a/pkgs/applications/misc/khard/default.nix
+++ b/pkgs/applications/misc/khard/default.nix
@@ -1,4 +1,4 @@
-{ lib, glibcLocales, python3 }:
+{ lib, python3 }:
 
 python3.pkgs.buildPythonApplication rec {
   version = "0.17.0";
@@ -9,6 +9,11 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn";
   };
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+  nativeBuildInputs = [
+    python3.pkgs.setuptools-scm
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     atomicwrites
     configobj
diff --git a/pkgs/applications/misc/kiwix/default.nix b/pkgs/applications/misc/kiwix/default.nix
index dff50bafaf8..f3406d4159b 100644
--- a/pkgs/applications/misc/kiwix/default.nix
+++ b/pkgs/applications/misc/kiwix/default.nix
@@ -1,109 +1,48 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config
-, zip, python, zlib, which, icu, libmicrohttpd, lzma, aria2, wget, bc
-, libuuid, libX11, libXext, libXt, libXrender, glib, dbus, dbus-glib
-, gtk2, gdk-pixbuf, pango, cairo, freetype, fontconfig, alsaLib, atk, cmake
-, xapian, ctpp2, zimlib
+{ lib, mkDerivation, fetchFromGitHub
+, callPackage
+, pkg-config
+, makeWrapper
+, qmake
+, qtbase
+, qtwebengine
+, qtsvg
+, qtimageformats
+, aria2
 }:
 
-with lib;
-
-let
-  xulrunner64_tar = fetchurl {
-    url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.tar.bz2";
-    sha256 = "0i3m30gm5z7qmas14id6ypvbmnb2k7jhz8aby2wz5vvv49zqmx3s";
-  };
-  xulrunnersdk64_tar = fetchurl {
-    url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-x86_64.sdk.tar.bz2";
-    sha256 = "0z90v7c4mq15g5klmsj8vs2r10fbygj3qzynx4952hkv8ihw8n3a";
-  };
-  xulrunner32_tar = fetchurl {
-    url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.tar.bz2";
-    sha256 = "0yln6pxz8f6b9wm9124sx049z8mgi17lgd63rcv2hnix825y8gjb";
-  };
-  xulrunnersdk32_tar = fetchurl {
-    url = "http://download.kiwix.org/dev/xulrunner-29.0.en-US.linux-i686.sdk.tar.bz2";
-    sha256 = "1h9vcbvf8wgds6i2z20y7krpys0mqsqhv1ijyfljanp6vyll9fvi";
-  };
-
-  xulrunner = if stdenv.hostPlatform.system == "x86_64-linux"
-              then { tar = xulrunner64_tar; sdk = xulrunnersdk64_tar; }
-              else { tar = xulrunner32_tar; sdk = xulrunnersdk32_tar; };
-
-  pugixml = stdenv.mkDerivation rec {
-    version = "1.2";
-    pname = "pugixml";
-
-    src = fetchurl {
-      url = "http://download.kiwix.org/dev/${pname}-${version}.tar.gz";
-      sha256 = "0sqk0vdwjq44jxbbkj1cy8qykrmafs1sickzldb2w2nshsnjshhg";
-    };
-
-    nativeBuildInputs = [ cmake ];
-
-    unpackPhase = ''
-      # not a nice src archive: all the files are in the root :(
-      mkdir ${pname}-${version}
-      cd ${pname}-${version}
-      tar -xf ${src}
-
-      # and the build scripts are in there :'(
-      cd scripts
-    '';
-  };
-
-in
-
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "kiwix";
-  version = "0.9";
+  version = "2.0.5";
 
-  src = fetchurl {
-    url = "http://download.kiwix.org/src/kiwix-${version}-src.tar.xz";
-    sha256 = "0577phhy2na59cpcqjgldvksp0jwczyg0l6c9ghnr19i375l7yqc";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "${pname}-desktop";
+    rev = version;
+    sha256 = "12v43bcg4g8fcp02y2srsfdvcb7dpl4pxb9z7a235006s0kfv8yn";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    zip python zlib xapian which icu libmicrohttpd
-    lzma zimlib ctpp2 aria2 wget bc libuuid makeWrapper pugixml
+  nativeBuildInputs = [
+    qmake
+    pkg-config
   ];
 
-  postUnpack = ''
-    cd kiwix*
-    mkdir static
-    cp Makefile.in static/
-
-    cd src/dependencies
-
-    tar -xf ${xulrunner.tar}
-    tar -xf ${xulrunner.sdk}
-
-    cd ../../..
-  '';
-
-  configureFlags = [
-    "--disable-staticbins"
+  buildInputs = [
+    qtbase
+    qtwebengine
+    qtsvg
+    qtimageformats
+    (callPackage ./lib.nix {})
   ];
 
-  postInstall = ''
-    cp -r src/dependencies/xulrunner $out/lib/kiwix
-
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/lib/kiwix/xulrunner/xulrunner
-
-    rm $out/bin/kiwix
-    makeWrapper $out/lib/kiwix/kiwix-launcher $out/bin/kiwix \
-      --suffix LD_LIBRARY_PATH : ${makeLibraryPath [stdenv.cc.cc libX11 libXext libXt libXrender glib dbus dbus-glib gtk2 gdk-pixbuf pango cairo freetype fontconfig alsaLib atk]} \
-      --suffix PATH : ${aria2}/bin
-  '';
+  qtWrapperArgs = [
+    "--prefix PATH : ${lib.makeBinPath [ aria2 ]}"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "An offline reader for Web content";
     homepage = "https://kiwix.org";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ robbinch ];
-    knownVulnerabilities = [
-      "CVE-2015-1032"
-    ];
+    maintainers = with maintainers; [ ajs124 ];
   };
 }
diff --git a/pkgs/applications/misc/kiwix/lib.nix b/pkgs/applications/misc/kiwix/lib.nix
new file mode 100644
index 00000000000..dcde5c390a4
--- /dev/null
+++ b/pkgs/applications/misc/kiwix/lib.nix
@@ -0,0 +1,55 @@
+{ stdenv, lib, fetchFromGitHub
+, meson, ninja, pkg-config
+, python3
+, curl
+, icu
+, pugixml
+, zimlib
+, zlib
+, libmicrohttpd
+, mustache-hpp
+, gtest
+}:
+
+
+stdenv.mkDerivation rec {
+  pname = "kiwix-lib";
+  version = "9.4.1";
+
+  src = fetchFromGitHub {
+    owner = "kiwix";
+    repo = pname;
+    rev = version;
+    sha256 = "034nk6l623v78clrs2d0k1vg69sbzrd8c0q79qiqmlkinck1nkxw";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    python3
+  ];
+
+  buildInputs = [
+    icu
+    zlib
+    mustache-hpp
+  ];
+
+  propagatedBuildInputs = [
+    curl
+    libmicrohttpd
+    pugixml
+    zimlib
+  ];
+
+  checkInputs = [
+    gtest
+  ];
+
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs scripts
+  '';
+}
diff --git a/pkgs/applications/misc/klayout/default.nix b/pkgs/applications/misc/klayout/default.nix
index 60905be3b1b..d1326848d2d 100644
--- a/pkgs/applications/misc/klayout/default.nix
+++ b/pkgs/applications/misc/klayout/default.nix
@@ -1,17 +1,17 @@
 { lib, mkDerivation, fetchFromGitHub, fetchpatch
-, python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
+, python3, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
 , which, perl, makeWrapper
 }:
 
 mkDerivation rec {
   pname = "klayout";
-  version = "0.26.8";
+  version = "0.26.10";
 
   src = fetchFromGitHub {
     owner = "KLayout";
     repo = "klayout";
     rev = "v${version}";
-    sha256 = "0pkhvxcfk70dnmgczyyq585mxrfwqai44ikshs4c1imh92z25llq";
+    sha256 = "sha256-h2jCmLZ2pRlK8VblQosBX0ZcoHDnn4oYeSqzA3y1Tzg=";
   };
 
   postPatch = ''
@@ -21,11 +21,11 @@ mkDerivation rec {
 
   nativeBuildInputs = [
     which
+    python3
+    ruby
   ];
 
   buildInputs = [
-    python
-    ruby
     qtbase
     qtmultimedia
     qttools
diff --git a/pkgs/applications/misc/koreader/default.nix b/pkgs/applications/misc/koreader/default.nix
index a903600b46d..eadd5cae50d 100644
--- a/pkgs/applications/misc/koreader/default.nix
+++ b/pkgs/applications/misc/koreader/default.nix
@@ -11,12 +11,12 @@
 let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; };
 in stdenv.mkDerivation rec {
   pname = "koreader";
-  version = "2021.01.1";
+  version = "2021.03";
 
   src = fetchurl {
     url =
       "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
-    sha256 = "0kignyia2xrg84bqzsp8rid4c79zg11lhw52z1854jw9v9324pja";
+    sha256 = "sha256-XdCyx+SdcV1QitDVkOl9EZCHpU8Qiwu0qhcXkU6b+9o=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/applications/misc/librecad/default.nix b/pkgs/applications/misc/librecad/default.nix
index 08bf01aea61..691ebb4ba68 100644
--- a/pkgs/applications/misc/librecad/default.nix
+++ b/pkgs/applications/misc/librecad/default.nix
@@ -1,7 +1,6 @@
 { lib
 , boost
 , fetchFromGitHub
-, fetchpatch
 , installShellFiles
 , mkDerivationWith
 , muparser
@@ -11,36 +10,20 @@
 , qtsvg
 , qttools
 , runtimeShell
-, gcc8Stdenv
+, stdenv
 }:
 
-let
-  stdenv = gcc8Stdenv;
-in
-
-  # Doesn't build with gcc9
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "librecad";
-  version = "2.2.0-rc1";
+  version = "2.2.0-rc2";
 
   src = fetchFromGitHub {
     owner = "LibreCAD";
     repo = "LibreCAD";
     rev = version;
-    sha256 = "0kwj838hqzbw95gl4x6scli9gj3gs72hdmrrkzwq5rjxam18k3f3";
+    sha256 = "sha256-RNg7ioMriH4A7V65+4mh8NhsUHs/8IbTt38nVkYilCE=";
   };
 
-  patches = [
-    ./fix_qt_5_11_build.patch
-    (
-      fetchpatch {
-        # Fix missing app name and icon on Wayland.
-        url = "https://github.com/LibreCAD/LibreCAD/commit/a17f8281093403f0c7c36996232665ed21906688.patch";
-        sha256 = "1x46psh4bcx2hxck4l83ki43g1252vb033i2x94h4rpai9hww4d5";
-      }
-    )
-  ];
-
   postPatch = ''
     substituteInPlace scripts/postprocess-unix.sh \
       --replace /bin/sh ${runtimeShell}
@@ -88,16 +71,11 @@ mkDerivationWith stdenv.mkDerivation rec {
     qttools
   ];
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "2D CAD package based on Qt";
     homepage = "https://librecad.org";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [
-      kiwi
-      viric
-    ];
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ kiwi viric ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch b/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch
deleted file mode 100644
index 04701e5ab1e..00000000000
--- a/pkgs/applications/misc/librecad/fix_qt_5_11_build.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/librecad/src/ui/forms/qg_commandwidget.cpp b/librecad/src/ui/forms/qg_commandwidget.cpp
-index 835e47d..2c878e8 100644
---- a/librecad/src/ui/forms/qg_commandwidget.cpp
-+++ b/librecad/src/ui/forms/qg_commandwidget.cpp
-@@ -27,6 +27,7 @@
- 
- #include <algorithm>
- 
-+#include <QAction>
- #include <QKeyEvent>
- #include <QFileDialog>
- #include <QSettings>
-diff --git a/librecad/src/ui/generic/colorwizard.cpp b/librecad/src/ui/generic/colorwizard.cpp
-index 2beaceb..84068ad 100644
---- a/librecad/src/ui/generic/colorwizard.cpp
-+++ b/librecad/src/ui/generic/colorwizard.cpp
-@@ -27,6 +27,7 @@
- #include "colorwizard.h"
- #include "ui_colorwizard.h"
- 
-+#include <QAction>
- #include <QColorDialog>
- #include <QLineEdit>
- #include <QListWidget>
-diff --git a/librecad/src/ui/generic/widgetcreator.cpp b/librecad/src/ui/generic/widgetcreator.cpp
-index 7c35144..0e394f2 100644
---- a/librecad/src/ui/generic/widgetcreator.cpp
-+++ b/librecad/src/ui/generic/widgetcreator.cpp
-@@ -27,6 +27,7 @@
- #include "widgetcreator.h"
- #include "ui_widgetcreator.h"
- 
-+#include <QActionGroup>
- #include <QSettings>
- #include <QLineEdit>
- #include <QPushButton>
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
new file mode 100644
index 00000000000..373d44118d7
--- /dev/null
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+  pname = "logseq";
+  version = "0.0.15";
+
+  src = fetchurl {
+    url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
+    sha256 = "4mnS2ikDPmIyT4P8zXssk6AVx50C24bsP4WpD5xJbD8=";
+    name = "${pname}-${version}.AppImage";
+  };
+
+  appimageContents = appimageTools.extract {
+    name = "${pname}-${version}";
+    inherit src;
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/${pname} $out/share/applications
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+    cp -a ${appimageContents}/Logseq.desktop $out/share/applications/${pname}.desktop
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace Exec=Logseq Exec=${pname} \
+      --replace Icon=Logseq Icon=$out/share/${pname}/resources/app/icons/logseq.png
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base";
+    homepage = "https://github.com/logseq/logseq";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ weihua ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/logseq/update.sh b/pkgs/applications/misc/logseq/update.sh
new file mode 100755
index 00000000000..9f83eefad19
--- /dev/null
+++ b/pkgs/applications/misc/logseq/update.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts
+
+version="$(curl -sL "https://api.github.com/repos/logseq/logseq/releases" | jq '.[0].tag_name' --raw-output)"
+update-source-version logseq "$version"
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/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix
index 800de77f1c5..7cab86df967 100644
--- a/pkgs/applications/misc/lyx/default.nix
+++ b/pkgs/applications/misc/lyx/default.nix
@@ -3,12 +3,12 @@
 }:
 
 mkDerivation rec {
-  version = "2.3.6";
+  version = "2.3.6.1";
   pname = "lyx";
 
   src = fetchurl {
     url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz";
-    sha256 = "160whjwwrmxizdakjlkf9xc86bhqfnslw47fixgqq4qhbapcxxkg";
+    sha256 = "sha256-xr7SYzQZiY4Bp8w1AxDX2TS/WRyrcln8JYGqTADq+ng=";
   };
 
   # LaTeX is used from $PATH, as people often want to have it with extra pkgs
diff --git a/pkgs/applications/misc/marktext/default.nix b/pkgs/applications/misc/marktext/default.nix
index 83a7aabaef7..c98d40ab2e1 100644
--- a/pkgs/applications/misc/marktext/default.nix
+++ b/pkgs/applications/misc/marktext/default.nix
@@ -25,7 +25,7 @@ appimageTools.wrapType2 rec {
   multiPkgs = null; # no 32bit needed
   extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
     p.libsecret
-    p.xlibs.libxkbfile
+    p.xorg.libxkbfile
   ];
 
   # Strip version from binary name.
diff --git a/pkgs/applications/misc/mediainfo-gui/default.nix b/pkgs/applications/misc/mediainfo-gui/default.nix
index 3e8aacb9895..89d7c2df741 100644
--- a/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -2,11 +2,11 @@
 , desktop-file-utils, libSM, imagemagick }:
 
 stdenv.mkDerivation rec {
-  version = "20.09";
+  version = "21.03";
   pname = "mediainfo-gui";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir";
+    sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index 7c81e9607f9..70f463c0236 100644
--- a/pkgs/applications/misc/mediainfo/default.nix
+++ b/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "20.09";
+  version = "21.03";
   pname = "mediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir";
+    sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix
index c302a4b4a07..9ae6fda9fce 100644
--- a/pkgs/applications/misc/megasync/default.nix
+++ b/pkgs/applications/misc/megasync/default.nix
@@ -6,7 +6,6 @@
 , curl
 , doxygen
 , fetchFromGitHub
-, fetchpatch
 , ffmpeg_3
 , libmediainfo
 , libraw
@@ -39,7 +38,7 @@ mkDerivation rec {
   };
 
   nativeBuildInputs =
-    [ autoconf automake doxygen lsb-release pkg-config qttools swig ];
+    [ autoconf automake doxygen lsb-release pkg-config qttools swig unzip ];
   buildInputs = [
     c-ares
     cryptopp
@@ -54,7 +53,6 @@ mkDerivation rec {
     qtbase
     qtx11extras
     sqlite
-    unzip
     wget
   ];
 
diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix
index 8eee8c1f09f..010d28eef59 100644
--- a/pkgs/applications/misc/merkaartor/default.nix
+++ b/pkgs/applications/misc/merkaartor/default.nix
@@ -1,5 +1,20 @@
-{ mkDerivation, lib, fetchFromGitHub, qmake, pkg-config, fetchpatch
-, boost, gdal, proj, qtbase, qtsvg, qtwebview, qtwebkit }:
+{ mkDerivation
+, lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, qmake
+, qttools
+, qttranslations
+, gdal
+, proj
+, qtsvg
+, qtwebkit
+, withGeoimage ? true, exiv2
+, withGpsdlib ? (!stdenv.isDarwin), gpsd
+, withLibproxy ? false, libproxy
+, withZbar ? false, zbar
+}:
 
 mkDerivation rec {
   pname = "merkaartor";
@@ -13,24 +28,48 @@ mkDerivation rec {
   };
 
   patches = [
+    # Fix build with Qt 5.15 (missing QPainterPath include)
     (fetchpatch {
       url = "https://github.com/openstreetmap/merkaartor/commit/e72553a7ea2c7ba0634cc3afcd27a9f7cfef089c.patch";
       sha256 = "NAisplnS3xHSlRpX+fH15NpbaD+uM57OCsTYGKlIR7U=";
     })
+    # Added a condition to use the new timespec_t on gpsd APIs >= 9
+    (fetchpatch {
+      url = "https://github.com/openstreetmap/merkaartor/commit/13b358fa7899bb34e277b32a4c0d92833050f2c6.patch";
+      sha256 = "129fpjm7illz7ngx3shps5ivrxwf14apw55842xhskwwb0rf5szb";
+    })
   ];
 
-  nativeBuildInputs = [ qmake pkg-config ];
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ gdal proj qtsvg qtwebkit ]
+    ++ lib.optional withGeoimage exiv2
+    ++ lib.optional withGpsdlib gpsd
+    ++ lib.optional withLibproxy libproxy
+    ++ lib.optional withZbar zbar;
 
-  buildInputs = [ boost gdal proj qtbase qtsvg qtwebview qtwebkit ];
+  preConfigure = ''
+    lrelease src/src.pro
+  '';
 
-  enableParallelBuilding = true;
+  qmakeFlags = [ "TRANSDIR_SYSTEM=${qttranslations}/translations" ]
+    ++ lib.optional withGeoimage "GEOIMAGE=1"
+    ++ lib.optional withGpsdlib "GPSDLIB=1"
+    ++ lib.optional withLibproxy "LIBPROXY=1"
+    ++ lib.optional withZbar "ZBAR=1";
 
-  NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv binaries/bin/merkaartor.app $out/Applications
+    mv binaries/bin/plugins $out/Applications/merkaartor.app/Contents
+    wrapQtApp $out/Applications/merkaartor.app/Contents/MacOS/merkaartor
+  '';
 
   meta = with lib; {
     description = "OpenStreetMap editor";
     homepage = "http://merkaartor.be/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/metadata-cleaner/default.nix b/pkgs/applications/misc/metadata-cleaner/default.nix
new file mode 100644
index 00000000000..de715bf315f
--- /dev/null
+++ b/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, python3
+, fetchFromGitLab
+, appstream
+, desktop-file-utils
+, glib
+, gobject-introspection
+, gtk3
+, libhandy
+, librsvg
+, meson
+, ninja
+, pkg-config
+, poppler_gi
+, wrapGAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "metadata-cleaner";
+  version = "1.0.3";
+
+  format = "other";
+
+  src = fetchFromGitLab {
+    owner = "rmnvgr";
+    repo = "metadata-cleaner";
+    rev = "v${version}";
+    sha256 = "06dzfcnjb1xd8lk0r7bi4i784gfj8r7habbjbk2c4vn2847v71lf";
+  };
+
+  nativeBuildInputs = [
+    appstream
+    desktop-file-utils
+    glib
+    gtk3
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk3
+    libhandy
+    librsvg
+    poppler_gi
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    mat2
+    pygobject3
+  ];
+
+  meta = with lib; {
+    description = "Python GTK application to view and clean metadata in files, using mat2";
+    homepage = "https://gitlab.com/rmnvgr/metadata-cleaner";
+    license = with licenses; [ gpl3Plus cc-by-sa-40 ];
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/misc/milu/default.nix b/pkgs/applications/misc/milu/default.nix
index 23da8abc668..a941f625149 100644
--- a/pkgs/applications/misc/milu/default.nix
+++ b/pkgs/applications/misc/milu/default.nix
@@ -22,10 +22,9 @@ stdenv.mkDerivation {
     cp bin/milu $out/bin
   '';
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
      glib
-     unzip
      llvmPackages.libclang
   ];
 
diff --git a/pkgs/applications/misc/mkgmap/default.nix b/pkgs/applications/misc/mkgmap/default.nix
index ad001eb3045..f82881eb5bd 100644
--- a/pkgs/applications/misc/mkgmap/default.nix
+++ b/pkgs/applications/misc/mkgmap/default.nix
@@ -14,11 +14,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkgmap";
-  version = "4600";
+  version = "4608";
 
   src = fetchurl {
     url = "http://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz";
-    sha256 = "1xnqbyrf5cbxmggkk1pjcj5d1767kbp15v12zy2fpbbn3yf0k3sh";
+    sha256 = "uj/iZZHML4nqEKdFBQSDdegkalZFJdzEE4xQrOruEp0=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/mob/default.nix b/pkgs/applications/misc/mob/default.nix
index 12843ffb98c..75013f0931f 100644
--- a/pkgs/applications/misc/mob/default.nix
+++ b/pkgs/applications/misc/mob/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "mob";
-  version = "1.2.0";
+  version = "1.3.0";
   goPackagePath = "github.com/remotemobprogramming/mob";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "remotemobprogramming";
     repo = pname;
-    sha256 = "sha256-hBzSf3UUW2FUp1jG1sPt7vN1iDybdMox/h6xHVrM7DY=";
+    sha256 = "sha256-uzWr6wWO6niocJ8yLc1Uu9Wt/FXlCuQrC0RJkgVlphM=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/moonlight-qt/default.nix b/pkgs/applications/misc/moonlight-qt/default.nix
new file mode 100644
index 00000000000..666009b99a0
--- /dev/null
+++ b/pkgs/applications/misc/moonlight-qt/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, wrapQtAppsHook
+, pkg-config
+, qmake
+, qtquickcontrols2
+, SDL2
+, SDL2_ttf
+, libva
+, libvdpau
+, libxkbcommon
+, alsaLib
+, libpulseaudio
+, openssl
+, libopus
+, ffmpeg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "moonlight-qt";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "moonlight-stream";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "e7fwb76zzidtF1COqrQ6gSF7bCX20j/CGjPu1Cb4HGc=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+    pkg-config
+    qmake
+  ];
+
+  buildInputs = [
+    qtquickcontrols2
+    SDL2
+    SDL2_ttf
+    libva
+    libvdpau
+    libxkbcommon
+    alsaLib
+    libpulseaudio
+    openssl
+    libopus
+    ffmpeg
+  ];
+
+  meta = with lib; {
+    description = "Play your PC games on almost any device";
+    homepage = "https://moonlight-stream.org";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ luc65r ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/mpvc/default.nix b/pkgs/applications/misc/mpvc/default.nix
index 64b55cce7a0..69aca239d31 100644
--- a/pkgs/applications/misc/mpvc/default.nix
+++ b/pkgs/applications/misc/mpvc/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation {
     wrapProgram $out/bin/mpvc --prefix PATH : "${socat}/bin/"
   '';
 
-  buildInputs = [ socat makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ socat ];
 
   meta = with lib; {
     description = "A mpc-like control interface for mpv";
diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index 61c395e64a9..333e3cd9315 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -22,24 +22,28 @@ in stdenv.mkDerivation rec {
     sha256 = "0rljl44y8p8hgaqializlyrgpij1wbnrzyp0ll5kcg7w05nylq48";
   };
 
-  patches =
-    lib.optional stdenv.isDarwin ./darwin.patch ++ [
+  patches = lib.optional stdenv.isDarwin ./darwin.patch ++ [
     (fetchpatch {
-        name = "pdfocr.patch";
-        url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a507b139adf37d2c742e039815601cdc2aa00a84";
-        sha256 = "1fx6pdgwrbk3bqsx53764d61llfj9s5q8lxqkna7mjnp7mg4krj3";
-      })
+      name = "pdfocr.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=a507b139adf37d2c742e039815601cdc2aa00a84";
+      sha256 = "1fx6pdgwrbk3bqsx53764d61llfj9s5q8lxqkna7mjnp7mg4krj3";
+    })
     (fetchpatch {
-        name = "pdf-layer.patch";
-        url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54";
-        sha256 = "0ma8jq8d9a0mf26qjklgi4gdaflpjik1br1nhafzvjz7ccl56ksm";
-      })
+      name = "pdf-layer.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54";
+      sha256 = "0ma8jq8d9a0mf26qjklgi4gdaflpjik1br1nhafzvjz7ccl56ksm";
+    })
     (fetchpatch {
-        name = "pixmap.patch";
-        url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=32e4e8b4bcbacbf92af7c88337efae21986d9603";
-        sha256 = "1zqkxgwrhcwsdya98pcmpq2815jjmv3fwsp0sba9f5nq5xi6whbj";
-      })
-    ];
+      name = "pixmap.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=32e4e8b4bcbacbf92af7c88337efae21986d9603";
+      sha256 = "1zqkxgwrhcwsdya98pcmpq2815jjmv3fwsp0sba9f5nq5xi6whbj";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3407.patch";
+      url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=cee7cefc610d42fd383b3c80c12cbc675443176a";
+      sha256 = "18g9jsj90jnqibaff8pqi70a7x8ygc3sh4jl4xnvlv8vr7fxxbh6";
+    })
+  ];
 
   postPatch = ''
     sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix
index 4a72eecf9b3..a39e8267cf7 100644
--- a/pkgs/applications/misc/nnn/default.nix
+++ b/pkgs/applications/misc/nnn/default.nix
@@ -7,13 +7,13 @@ assert withNerdIcons -> withIcons == false;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
-  version = "3.5";
+  version = "3.6";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1fa7cmwrzn6kx87kms8i98p9azdlwyh2gnif29l340syl9hkr5qy";
+    sha256 = "1hwv7ncp8pmzdir30877ni4qlmczmb3yjdkbfd1pssr08y1srsc7";
   };
 
   configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
@@ -22,10 +22,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ readline ncurses ];
 
-  makeFlags = [
-    "DESTDIR=${placeholder "out"}"
-    "PREFIX="
-  ] ++ lib.optional withIcons [ "O_ICONS=1" ]
+  makeFlags = [ "PREFIX=$(out)" ]
+    ++ lib.optional withIcons [ "O_ICONS=1" ]
     ++ lib.optional withNerdIcons [ "O_NERD=1" ];
 
   # shell completions
@@ -38,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Small ncurses-based file browser forked from noice";
     homepage = "https://github.com/jarun/nnn";
+    changelog = "https://github.com/jarun/nnn/blob/v${version}/CHANGELOG";
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ jfrankenau Br1ght0ne ];
diff --git a/pkgs/applications/misc/nwg-launchers/default.nix b/pkgs/applications/misc/nwg-launchers/default.nix
index c4c54ba7c53..2dbcef8779f 100644
--- a/pkgs/applications/misc/nwg-launchers/default.nix
+++ b/pkgs/applications/misc/nwg-launchers/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nwg-launchers";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vuvYL9N9xdg27uhiTe2OqxZ3/n/9EjlqPxtNMXpqpE8=";
+    sha256 = "sha256-krhFtFQZSwfKPHmVxPGNySPL2Y9+kA0fxjZ/D+mNks4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index b64654ad675..f35a3f1b71e 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -30,27 +30,24 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "obsidian";
-  version = "0.10.13";
+  version = "0.11.9";
 
   src = fetchurl {
     url =
-      "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
-    sha256 = "J4kaNtB6DVivNDhrGwrRZJBvu4Bpzl0jY1ZtlAtQiZE=";
+      "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz";
+    sha256 = "XymM3qma8H2dm2tq8Zg+oKxOzb48azqlqn701pN5gdI=";
   };
 
   nativeBuildInputs = [ makeWrapper graphicsmagick ];
 
-  unpackPhase = ''
-    gzip -dc $src > obsidian.asar
-  '';
-
   installPhase = ''
     mkdir -p $out/bin
 
     makeWrapper ${electron}/bin/electron $out/bin/obsidian \
-      --add-flags $out/share/electron/obsidian.asar
+      --add-flags $out/share/obsidian/app.asar
 
-    install -m 444 -D obsidian.asar $out/share/electron/obsidian.asar
+    install -m 444 -D resources/app.asar $out/share/obsidian/app.asar
+    install -m 444 -D resources/obsidian.asar $out/share/obsidian/obsidian.asar
 
     install -m 444 -D "${desktopItem}/share/applications/"* \
       -t $out/share/applications/
diff --git a/pkgs/applications/misc/omegat.nix b/pkgs/applications/misc/omegat.nix
index 7b91d245f81..0a46393bd22 100644
--- a/pkgs/applications/misc/omegat.nix
+++ b/pkgs/applications/misc/omegat.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "0axz7r30p34z5hgvdglznc82g7yvm3g56dv5190jixskx6ba58rs";
   };
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   unpackCmd = "unzip -o $curSrc";  # tries to go interactive without -o
 
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/openjump/default.nix b/pkgs/applications/misc/openjump/default.nix
index 28becefa5b1..d6b20a7f01e 100644
--- a/pkgs/applications/misc/openjump/default.nix
+++ b/pkgs/applications/misc/openjump/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     cd $out; unzip $src
   '';
 
-  buildInputs = [unzip makeWrapper];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   installPhase = ''
     dir=$(echo $out/OpenJUMP-*)
diff --git a/pkgs/applications/misc/openring/default.nix b/pkgs/applications/misc/openring/default.nix
new file mode 100644
index 00000000000..6d840b1d9e7
--- /dev/null
+++ b/pkgs/applications/misc/openring/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule, fetchFromSourcehut, lib }:
+
+buildGoModule rec {
+  pname = "openring";
+  version = "unstable-2021-04-03";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = "f13edb5dfd882ce608d61cf6b6740650ce9d84a3";
+    sha256 = "sha256-Z65V77JZ9jCzBg7T2+d5Agxxd+MV2R7nYcLedYP5eOE=";
+  };
+
+  vendorSha256 = "sha256-BbBTmkGyLrIWphXC+dBaHaVzHuXRZ+4N/Jt2k3nF7Z4=";
+
+  # The package has no tests.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A webring for static site generators";
+    homepage = "https://git.sr.ht/~sircmpwn/openring";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ sumnerevans ];
+  };
+}
diff --git a/pkgs/applications/misc/orpie/default.nix b/pkgs/applications/misc/orpie/default.nix
index 2bf102fee25..45e043b6dcf 100644
--- a/pkgs/applications/misc/orpie/default.nix
+++ b/pkgs/applications/misc/orpie/default.nix
@@ -4,6 +4,8 @@ ocamlPackages.buildDunePackage rec {
   pname = "orpie";
   version = "1.6.1";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "pelzlpj";
     repo = pname;
diff --git a/pkgs/applications/misc/osmscout-server/default.nix b/pkgs/applications/misc/osmscout-server/default.nix
new file mode 100644
index 00000000000..a3815dae00f
--- /dev/null
+++ b/pkgs/applications/misc/osmscout-server/default.nix
@@ -0,0 +1,65 @@
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch, pkg-config
+, qmake, qttools, kirigami2, qtquickcontrols2, qtlocation
+, libosmscout, mapnik, valhalla, libpostal, osrm-backend, protobuf
+, libmicrohttpd_0_9_70, sqlite, marisa, kyotocabinet, boost
+}:
+
+let
+  date = fetchFromGitHub {
+    owner = "HowardHinnant";
+    repo = "date";
+    rev = "a2fdba1adcb076bf9a8343c07524afdf09aa8dcc";
+    sha256 = "00sf1pbaz0g0gsa0dlm23lxk4h46xm1jv1gzbjj5rr9sf1qccyr5";
+  };
+in
+mkDerivation rec {
+  pname = "osmscout-server";
+  version = "1.17.1";
+
+  src = fetchFromGitHub {
+    owner = "rinigus";
+    repo = "osmscout-server";
+    rev = version;
+    sha256 = "0rpsi6nyhcz6bv0jab4vixkxhjmn84xi0q2xz15a097hn46cklx9";
+    fetchSubmodules = true;
+  };
+
+  # Two patches required to work with valhalla 3.1
+  patches = [
+    # require C++14 to match latest Valhalla
+    (fetchpatch {
+      url = "https://github.com/rinigus/osmscout-server/commit/78b41b9b4c607fe9bfd6fbd61ae31cb7c8a725cd.patch";
+      sha256 = "0gk9mdwa75awl0bj30gm8waj454d8k2yixxwh05m0p550cbv3lg0";
+    })
+    # add Valhalla 3.1 config
+    (fetchpatch {
+      url = "https://github.com/rinigus/osmscout-server/commit/584de8bd47700053960fa139a2d7f8d3d184c876.patch";
+      sha256 = "0liz72n83q93bzzyyiqjkxa6hp9zjx7v9rgsmpwf88gc4caqm2dz";
+    })
+  ];
+
+  nativeBuildInputs = [ qmake pkg-config qttools ];
+  buildInputs = [
+    kirigami2 qtquickcontrols2 qtlocation
+    mapnik valhalla libosmscout osrm-backend libmicrohttpd_0_9_70
+    libpostal sqlite marisa kyotocabinet boost protobuf date
+  ];
+
+  # OSMScout server currently defaults to an earlier version of valhalla,
+  # but valhalla 3.1 support has been added. (See patches above)
+  # Replace the default valhalla.json with the valhalla 3.1 version
+  postPatch = ''
+    mv data/valhalla.json-3.1 data/valhalla.json
+  '';
+
+  # Choose to build the kirigami UI variant
+  qmakeFlags = [ "SCOUT_FLAVOR=kirigami" ];
+
+  meta = with lib; {
+    description = "Maps server providing tiles, geocoder, and router";
+    homepage = "https://github.com/rinigus/osmscout-server";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
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/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
index 37905b8e444..404c95f52a8 100644
--- a/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfsam-basic";
-  version = "4.2.2";
+  version = "4.2.3";
 
   src = fetchurl {
     url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
-    sha256 = "sha256-fbcU3NZdQ8NR5tLjEJyOPneVWNMBddLdttLeVwIUtpg=";
+    sha256 = "sha256-WmJ+atndIXm5Z6RvRVSvf2de1Gda+cs5kSw4iotPVfU=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/misc/pdfslicer/default.nix b/pkgs/applications/misc/pdfslicer/default.nix
new file mode 100644
index 00000000000..31bc4714015
--- /dev/null
+++ b/pkgs/applications/misc/pdfslicer/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gettext
+, intltool
+, pkg-config
+, wrapGAppsHook
+, gtkmm3
+, libuuid
+, poppler
+, qpdf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pdfslicer";
+  version = "1.8.8";
+
+  src = fetchFromGitHub {
+    owner = "junrrein";
+    repo = "pdfslicer";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "0sja0ddd9c8wjjpzk2ag8q1lxpj09adgmhd7wnsylincqnj2jyls";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    gettext
+    intltool
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtkmm3
+    libuuid
+    poppler
+    qpdf
+  ];
+
+  meta = with lib; {
+    description = "A simple application to extract, merge, rotate and reorder pages of PDF documents";
+    homepage = "https://junrrein.github.io/pdfslicer/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
index 57ec820a090..bb365ecfefd 100644
--- a/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
+++ b/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [ plasma-framework kwindowsystem plasma-pa ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "A fork of the default volume plasmoid with a Windows 7 theme (vertical sliders)";
     homepage = "https://github.com/Zren/plasma-applet-volumewin7mixer";
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/portfolio-filemanager/default.nix b/pkgs/applications/misc/portfolio-filemanager/default.nix
new file mode 100644
index 00000000000..6b4946976bf
--- /dev/null
+++ b/pkgs/applications/misc/portfolio-filemanager/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, python3
+, fetchFromGitHub
+, appstream-glib
+, desktop-file-utils
+, gettext
+, glib
+, gobject-introspection
+, gtk3
+, libhandy
+, librsvg
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "portfolio";
+  version = "0.9.10";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "tchx84";
+    repo = "Portfolio";
+    rev = "v${version}";
+    sha256 = "06hk0kx6h8w263qa71bik68rg4r8qs94b6s60pyhzicfc822k0j4";
+  };
+
+  postPatch = ''
+    patchShebangs build-aux/meson
+  '';
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    gettext
+    glib
+    gobject-introspection
+    gtk3
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gobject-introspection
+    libhandy
+    librsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pygobject3
+  ];
+
+  postInstall = ''
+    ln -s dev.tchx84.Portfolio "$out/bin/portfolio"
+  '';
+
+  meta = with lib; {
+    description = "A minimalist file manager for those who want to use Linux mobile devices";
+    homepage = "https://github.com/tchx84/Portfolio";
+    changelog = "https://github.com/tchx84/Portfolio/blob/v${version}/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/misc/projectlibre/default.nix b/pkgs/applications/misc/projectlibre/default.nix
index fd83d74edd5..ceb61d71866 100644
--- a/pkgs/applications/misc/projectlibre/default.nix
+++ b/pkgs/applications/misc/projectlibre/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "0vy5vgbp45ai957gaby2dj1hvmbxfdlfnwcanwqm9f8q16qipdbq";
   };
 
-  buildInputs = [ ant jdk makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ant jdk ];
   buildPhase = ''
     export ANT_OPTS=-Dbuild.sysclasspath=ignore
     ${ant}/bin/ant -f openproj_build/build.xml
diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index 14894159843..4175cb2b222 100644
--- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -1,6 +1,4 @@
-{
-  stdenv, lib, fetchFromGitHub, makeDesktopItem, prusa-slicer
-}:
+{ lib, fetchFromGitHub, makeDesktopItem, prusa-slicer }:
 let
   appname = "SuperSlicer";
   version = "2.2.54.2";
diff --git a/pkgs/applications/misc/pueue/default.nix b/pkgs/applications/misc/pueue/default.nix
index dd46c566cd8..cc1ae14350e 100644
--- a/pkgs/applications/misc/pueue/default.nix
+++ b/pkgs/applications/misc/pueue/default.nix
@@ -1,20 +1,22 @@
-{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, SystemConfiguration, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "pueue";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "Nukesor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yOUVDq/wRY35ZQjQVwTLYHKukkKpoggN51wBDdZnhI4=";
+    sha256 = "sha256-wcOF34GzlB6YKISkjDgYgsaN1NmWBMIntfT23A6byx8=";
   };
 
-  cargoSha256 = "sha256-56jJ8IjxWTBlaDd1CVit4RP659Mgw2j2wMWcSDYVihM=";
+  cargoSha256 = "sha256-7SJjtHNSabE/VqdiSwKZ/yNzk6GSMNsQLaSx/MjN5NA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration libiconv ];
+
   checkFlags = [ "--skip=test_single_huge_payload" "--skip=test_create_unix_socket" ];
 
   postInstall = ''
@@ -27,6 +29,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "A daemon for managing long running shell commands";
     homepage = "https://github.com/Nukesor/pueue";
+    changelog = "https://github.com/Nukesor/pueue/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/pkgs/applications/misc/pure-maps/default.nix b/pkgs/applications/misc/pure-maps/default.nix
new file mode 100644
index 00000000000..3f964824e6d
--- /dev/null
+++ b/pkgs/applications/misc/pure-maps/default.nix
@@ -0,0 +1,49 @@
+{ lib, mkDerivation, fetchFromGitHub
+, qmake, qttools, kirigami2, qtquickcontrols2, qtlocation, qtsensors
+, nemo-qml-plugin-dbus, mapbox-gl-qml, s2geometry
+, python3, pyotherside
+}:
+
+mkDerivation rec {
+  pname = "pure-maps";
+  version = "2.6.5";
+
+  src = fetchFromGitHub {
+    owner = "rinigus";
+    repo = "pure-maps";
+    rev = version;
+    sha256 = "17gfb7rdaadmcdba4mhish0jrz9lmiban6fpzwhyvn8z1rc43zx9";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    qmake python3 qttools python3.pkgs.wrapPython
+  ];
+
+  buildInputs = [
+    kirigami2 qtquickcontrols2 qtlocation qtsensors
+    nemo-qml-plugin-dbus pyotherside mapbox-gl-qml s2geometry
+  ];
+
+  postPatch = ''
+    substituteInPlace pure-maps.pro \
+      --replace '$$[QT_HOST_BINS]/lconvert' 'lconvert'
+  '';
+
+  qmakeFlags = [ "FLAVOR=kirigami" ];
+
+  pythonPath = with python3.pkgs; [ gpxpy ];
+
+  preInstall = ''
+    buildPythonPath "$pythonPath"
+    qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
+  '';
+
+  meta = with lib; {
+    description = "Display vector and raster maps, places, routes, and provide navigation instructions with a flexible selection of data and service providers";
+    homepage = "https://github.com/rinigus/pure-maps";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.Thra11 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix
index c6b9d82bcf4..6b2418ab57c 100644
--- a/pkgs/applications/misc/qcad/default.nix
+++ b/pkgs/applications/misc/qcad/default.nix
@@ -15,16 +15,17 @@
 
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "qcad";
-  version = "3.25.2.0";
+  version = "3.26.0.1";
 
   src = fetchFromGitHub {
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    sha256 = "1lz6q9n2p0l7k8rwqsdj6av9p3426423g5avc4y6s7nbk36280mz";
+    sha256 = "sha256-V+QlwM8BWmcarwZtqJfc+MYHOZgIH1W5R8m2EHhNJls=";
   };
 
   patches = [
+    # Patch directory lookup, remove __DATE__ and executable name
     ./application-dir.patch
   ];
 
@@ -90,12 +91,10 @@ mkDerivationWith stdenv.mkDerivation rec {
     qttools
   ];
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "2D CAD package based on Qt";
     homepage = "https://qcad.org";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ yvesf ];
     platforms = qtbase.meta.platforms;
   };
diff --git a/pkgs/applications/misc/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix
index 721c95c028b..261a597f8d7 100644
--- a/pkgs/applications/misc/qlcplus/default.nix
+++ b/pkgs/applications/misc/qlcplus/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, qmake, pkg-config, udev
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake, pkg-config, udev
 , qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb-compat-0_1
 , libsndfile, libmad
 }:
@@ -14,6 +14,14 @@ mkDerivation rec {
     sha256 = "PB1Y8N1TrJMcS7A2e1nKjsUlAxOYjdJqBhbyuDCAbGs=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "qt5.15-deprecation-fixes.patch";
+      url = "https://github.com/mcallegari/qlcplus/commit/e4ce4b0226715876e8e9e3b23785d43689b2bb64.patch";
+      sha256 = "1zhrg6ava1nyc97xcx75r02zzkxmar0973w4jwkm5ch3iqa8bqnh";
+    })
+  ];
+
   nativeBuildInputs = [ qmake pkg-config ];
   buildInputs = [
     udev qtmultimedia qtscript alsaLib ola libftdi1 libusb-compat-0_1 libsndfile libmad
diff --git a/pkgs/applications/misc/qpdfview/default.nix b/pkgs/applications/misc/qpdfview/default.nix
index 6ae81fca27c..954c1709761 100644
--- a/pkgs/applications/misc/qpdfview/default.nix
+++ b/pkgs/applications/misc/qpdfview/default.nix
@@ -14,11 +14,13 @@ let
   buildInputs = [
     qtbase qtsvg poppler djvulibre libspectre cups file ghostscript
   ];
+  # apply upstream fix for qt5.15 https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104
+  patches = [ ./qpdfview-qt515-compat.patch ];
 in
 mkDerivation {
   pname = s.baseName;
   inherit (s) version;
-  inherit nativeBuildInputs buildInputs;
+  inherit nativeBuildInputs buildInputs patches;
   src = fetchurl {
     inherit (s) url sha256;
   };
@@ -40,7 +42,7 @@ mkDerivation {
   meta = {
     inherit (s) version;
     description = "A tabbed document viewer";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
     homepage = "https://launchpad.net/qpdfview";
diff --git a/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch b/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch
new file mode 100644
index 00000000000..1fbf5ec3f10
--- /dev/null
+++ b/pkgs/applications/misc/qpdfview/qpdfview-qt515-compat.patch
@@ -0,0 +1,17 @@
+Fix compatibility with Qt 5.15.
+
+Patch copied from upstream source repository:
+
+https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104
+
+--- a/sources/model.h	2017-04-19 21:01:25 +0000
++++ b/sources/model.h	2020-06-09 06:24:11 +0000
+@@ -24,6 +24,7 @@
+ #define DOCUMENTMODEL_H
+ 
+ #include <QList>
++#include <QPainterPath>
+ #include <QtPlugin>
+ #include <QWidget>
+ #include <QVector>
+
diff --git a/pkgs/applications/misc/qtbitcointrader/default.nix b/pkgs/applications/misc/qtbitcointrader/default.nix
index fafd91f7811..1bdcd6ea8a6 100644
--- a/pkgs/applications/misc/qtbitcointrader/default.nix
+++ b/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -31,6 +31,5 @@ mkDerivation {
     homepage = "https://centrabit.com/";
     license = licenses.gpl3;
     platforms = qt5.qtbase.meta.platforms;
-    maintainers = [ maintainers.ehmry ];
   };
 }
diff --git a/pkgs/applications/misc/ranger/default.nix b/pkgs/applications/misc/ranger/default.nix
index 10ea22a1eca..4bd8a182d6f 100644
--- a/pkgs/applications/misc/ranger/default.nix
+++ b/pkgs/applications/misc/ranger/default.nix
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec {
 
   meta =  with lib; {
     description = "File manager with minimalistic curses interface";
-    homepage = "http://ranger.github.io/";
+    homepage = "https://ranger.github.io/";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ toonn magnetophon ];
diff --git a/pkgs/applications/misc/reddsaver/default.nix b/pkgs/applications/misc/reddsaver/default.nix
index fae4948d8ba..279d3e4b15d 100644
--- a/pkgs/applications/misc/reddsaver/default.nix
+++ b/pkgs/applications/misc/reddsaver/default.nix
@@ -7,27 +7,27 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.2.3";
   pname = "reddsaver";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "manojkarthick";
     repo = "reddsaver";
     rev = "v${version}";
-    sha256 = "sha256-K6SyfYx8VG0t6yogHwd80AxQuj3TXofHLEqZcDsRs1s=";
+    sha256 = "0ffci3as50f55n1v36hji4n0b3lkch5ylc75awjz65jz2gd2y2j4";
   };
 
-  cargoSha256 = "sha256-VDr7fcE13Wy7KoGG3U1GSbWqF5Oad4EobgzOL7dtJDo=";
+  cargoSha256 = "1cx3sqr7zb1vlfdvbcxp0yva9xh654qczpy8s09c8cviy8hac5sr";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
     ++ lib.optional stdenv.isDarwin Security;
 
-  # package does not contain tests as of v0.2.3
+  # package does not contain tests as of v0.3.2
   docCheck = false;
 
   meta = with lib; {
-    description = "CLI tool to download saved images from Reddit";
+    description = "CLI tool to download saved media from Reddit";
     homepage = "https://github.com/manojkarthick/reddsaver";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.manojkarthick ];
diff --git a/pkgs/applications/misc/redis-desktop-manager/default.nix b/pkgs/applications/misc/redis-desktop-manager/default.nix
index 844fd19e22c..8c4fa2efb22 100644
--- a/pkgs/applications/misc/redis-desktop-manager/default.nix
+++ b/pkgs/applications/misc/redis-desktop-manager/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, fetchFromGitiles, pkg-config, libssh2
-, qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols
+{ mkDerivation, lib, fetchFromGitHub, fetchFromGitiles, pkg-config, libssh2
+, qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols2
 , qtsvg, qttools, qtquick1, qtcharts
 , qmake
 }:
@@ -13,7 +13,7 @@ let
 
 in
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "redis-desktop-manager";
   version = "0.9.1";
 
@@ -28,10 +28,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config qmake ];
   buildInputs = [
     libssh2 qtbase qtdeclarative qtgraphicaleffects qtimageformats
-    qtquick1 qtquickcontrols qtsvg qttools qtcharts
+    qtquick1 qtquickcontrols2 qtsvg qttools qtcharts
   ];
 
   dontUseQmakeConfigure = true;
+  dontWrapQtApps = true;
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated" ];
 
@@ -76,7 +77,7 @@ EOF
   meta = with lib; {
     description = "Cross-platform open source Redis DB management tool";
     homepage = "https://redisdesktop.com/";
-    license = licenses.lgpl21;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cstrahan ];
   };
diff --git a/pkgs/applications/misc/redshift-plasma-applet/default.nix b/pkgs/applications/misc/redshift-plasma-applet/default.nix
index fa5ee0c753a..b8d25f0db1d 100644
--- a/pkgs/applications/misc/redshift-plasma-applet/default.nix
+++ b/pkgs/applications/misc/redshift-plasma-applet/default.nix
@@ -35,6 +35,8 @@ stdenv.mkDerivation {
     kwindowsystem
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "KDE Plasma 5 widget for controlling Redshift";
     homepage = "https://github.com/kotelnik/plasma-applet-redshift-control";
diff --git a/pkgs/applications/misc/regextester/default.nix b/pkgs/applications/misc/regextester/default.nix
index eac131d6ef7..b7eb2367528 100644
--- a/pkgs/applications/misc/regextester/default.nix
+++ b/pkgs/applications/misc/regextester/default.nix
@@ -6,7 +6,7 @@
 , pkg-config
 , glib
 , gtk3
-, gnome3
+, libgee
 , meson
 , ninja
 , gobject-introspection
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     pantheon.elementary-icon-theme
     pantheon.granite
     glib
-    gnome3.libgee
+    libgee
     gsettings-desktop-schemas
     gtk3
   ];
diff --git a/pkgs/applications/misc/robo3t/default.nix b/pkgs/applications/misc/robo3t/default.nix
index 30fd51fa990..1b19d9ab9cc 100644
--- a/pkgs/applications/misc/robo3t/default.nix
+++ b/pkgs/applications/misc/robo3t/default.nix
@@ -1,19 +1,23 @@
-{ lib, stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig, libGL,
+{ lib, stdenv, fetchurl, curl, zlib, glib, xorg, dbus, fontconfig, libGL,
   freetype, xkeyboard_config, makeDesktopItem, makeWrapper }:
 
+let
+  curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
+in
+
 stdenv.mkDerivation rec {
   pname = "robo3t";
-  version = "1.3.1";
-  rev = "7419c406";
+  version = "1.4.3";
+  rev = "48f7dfd";
 
   src = fetchurl {
-    url = "https://download-test.robomongo.org/linux/robo3t-${version}-linux-x86_64-${rev}.tar.gz";
-    sha256 = "1mp5i8iahd4qkwgi5ix98hlg17ivw5da27n0drnr0wk458wn99hi";
+    url = "https://github.com/Studio3T/robomongo/releases/download/v${version}/robo3t-${version}-linux-x86_64-${rev}.tar.gz";
+    sha256 = "sha256-pH4q/O3bq45ZZn+s/12iScd0WbfkcLjK4MBdVCMXK00=";
   };
 
   icon = fetchurl {
-    url = "https://github.com/Studio3T/robomongo/raw/${version}/trash/install/linux/robomongo.png";
-    sha256 = "15li8536x600kkfkb3h6mw7y0f2ljkv951pc45dpiw036vldibv2";
+    url = "https://github.com/Studio3T/robomongo/raw/${rev}/install/macosx/robomongo.iconset/icon_128x128.png";
+    sha256 = "sha256-2PkUxBq2ow0wl09k8B6LJJUQ+y4GpnmoAeumKN1u5xg=";
   };
 
   desktopItem = makeDesktopItem {
@@ -43,6 +47,7 @@ stdenv.mkDerivation rec {
     fontconfig
     freetype
     libGL
+    curlWithGnuTls
   ];
 
   installPhase = ''
diff --git a/pkgs/applications/misc/robomongo/default.nix b/pkgs/applications/misc/robomongo/default.nix
index e8bba1f7a34..af5285909c6 100644
--- a/pkgs/applications/misc/robomongo/default.nix
+++ b/pkgs/applications/misc/robomongo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig,
+{ lib, stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig,
   freetype, xkeyboard_config, makeDesktopItem, makeWrapper }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/applications/misc/rofi/wrapper.nix b/pkgs/applications/misc/rofi/wrapper.nix
index 4e69f9cce14..2f98fe16416 100644
--- a/pkgs/applications/misc/rofi/wrapper.nix
+++ b/pkgs/applications/misc/rofi/wrapper.nix
@@ -1,4 +1,4 @@
-{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, hicolor-icon-theme, theme ? null, plugins ? [] }:
+{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, wrapGAppsHook, gdk-pixbuf, hicolor-icon-theme, theme ? null, plugins ? [], symlink-dmenu ? false }:
 
 symlinkJoin {
   name = "rofi-${rofi-unwrapped.version}";
@@ -7,21 +7,30 @@ symlinkJoin {
     rofi-unwrapped.out
   ] ++ (lib.forEach plugins (p: p.out));
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+  buildInputs = [ gdk-pixbuf ];
+
   preferLocalBuild = true;
   passthru.unwrapped = rofi-unwrapped;
+
+  dontWrapGApps = true;
+
   postBuild = ''
     rm -rf $out/bin
     mkdir $out/bin
     ln -s ${rofi-unwrapped}/bin/* $out/bin
-
     rm $out/bin/rofi
+
+    gappsWrapperArgsHook
     makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi \
+      ''${gappsWrapperArgs[@]} \
       --prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \
       ${lib.optionalString (plugins != []) ''--prefix XDG_DATA_DIRS : ${lib.concatStringsSep ":" (lib.forEach plugins (p: "${p.out}/share"))}''} \
       ${lib.optionalString (theme != null) ''--add-flags "-theme ${theme}"''} \
       ${lib.optionalString (plugins != []) ''--add-flags "-plugin-path $out/lib/rofi"''}
 
+    ${lib.optionalString symlink-dmenu "ln -s ${rofi-unwrapped}/bin/rofi $out/bin/dmenu"}
+
     rm $out/bin/rofi-theme-selector
     makeWrapper ${rofi-unwrapped}/bin/rofi-theme-selector $out/bin/rofi-theme-selector \
       --prefix XDG_DATA_DIRS : $out/share
diff --git a/pkgs/applications/misc/sc-im/default.nix b/pkgs/applications/misc/sc-im/default.nix
index 0ae7a5c1ec0..9a05ac22afb 100644
--- a/pkgs/applications/misc/sc-im/default.nix
+++ b/pkgs/applications/misc/sc-im/default.nix
@@ -1,43 +1,56 @@
-{ lib, stdenv, fetchFromGitHub, yacc, ncurses, libxml2, libzip, libxls, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, pkg-config
+, which
+, bison
+, gnuplot
+, libxls
+, libxml2
+, libzip
+, ncurses
+}:
 
 stdenv.mkDerivation rec {
-  version = "0.7.0";
   pname = "sc-im";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "andmarti1424";
     repo = "sc-im";
     rev = "v${version}";
-    sha256 = "0xi0n9qzby012y2j7hg4fgcwyly698sfi4i9gkvy0q682jihprbk";
+    sha256 = "sha256-AIYa3d1ml1f5GNLKijeFPX+UabgEqzdXiP60BGvBPsQ=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ yacc ncurses libxml2 libzip libxls ];
+  sourceRoot = "${src.name}/src";
 
-  buildPhase = ''
-    cd src
+  nativeBuildInputs = [
+    makeWrapper
+    pkg-config
+    which
+    bison
+  ];
 
-    sed 's/LDLIBS += -lm/& -lncurses/' -i Makefile
+  buildInputs = [
+    gnuplot
+    libxls
+    libxml2
+    libzip
+    ncurses
+  ];
 
-    sed -e "\|^prefix  = /usr/local|   s|/usr/local|$out|" \
-        -e "\|^#LDLIBS += -lxlsreader| s|^#||            " \
-        -e "\|^#CFLAGS += -DXLS|       s|^#||            " \
-        -i Makefile
+  makeFlags = [ "prefix=${placeholder "out"}" ];
 
-    make
-    export DESTDIR=$out
-  '';
-
-  installPhase = ''
-    make install prefix=
+  postInstall = ''
+    wrapProgram "$out/bin/sc-im" --prefix PATH : "${lib.makeBinPath [ gnuplot ]}"
   '';
 
   meta = with lib; {
     homepage = "https://github.com/andmarti1424/sc-im";
-    description = "SC-IM - Spreadsheet Calculator Improvised - SC fork";
+    description = "An ncurses spreadsheet program for terminal";
     license = licenses.bsdOriginal;
-    maintainers = [ ];
+    maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/applications/misc/sent/default.nix b/pkgs/applications/misc/sent/default.nix
index f4b811e0752..fcf021a5ac7 100644
--- a/pkgs/applications/misc/sent/default.nix
+++ b/pkgs/applications/misc/sent/default.nix
@@ -2,10 +2,11 @@
 , patches ? [] }:
 
 stdenv.mkDerivation rec {
-  name = "sent-1";
+  pname = "sent";
+  version = "1";
 
   src = fetchurl {
-    url = "https://dl.suckless.org/tools/${name}.tar.gz";
+    url = "https://dl.suckless.org/tools/sent-${version}.tar.gz";
     sha256 = "0cxysz5lp25mgww73jl0mgip68x7iyvialyzdbriyaff269xxwvv";
   };
 
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "A simple plaintext presentation tool";
     homepage = "https://tools.suckless.org/sent/";
     license = licenses.isc;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/applications/misc/senv/default.nix b/pkgs/applications/misc/senv/default.nix
new file mode 100644
index 00000000000..6df8dc781e7
--- /dev/null
+++ b/pkgs/applications/misc/senv/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "senv";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "SpectralOps";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "014422sdks2xlpsgvynwibz25jg1fj5s8dcf8b1j6djgq5glhfaf";
+  };
+
+  vendorSha256 = "05n55yf75r7i9kl56kw9x6hgmyf5bva5dzp9ni2ws0lb1389grfc";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Friends don't let friends leak secrets on their terminal window";
+    homepage = "https://github.com/SpectralOps/senv";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix
index 6dad2eaf812..c83cd772659 100644
--- a/pkgs/applications/misc/sidequest/default.nix
+++ b/pkgs/applications/misc/sidequest/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }:
   let
     pname = "sidequest";
-    version = "0.10.11";
+    version = "0.10.19";
 
     desktopItem = makeDesktopItem rec {
       name = "SideQuest";
@@ -15,11 +15,11 @@
       inherit pname version;
 
       src = fetchurl {
-        url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
-        sha256 = "0fw952kdh1gn00y6sx2ag0rnb2paxq9ikg4bzgmbj7rrd1c6l2k9";
+        url = "https://github.com/SideQuestVR/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
+        sha256 = "14zqp12nigc4kv6hppyx2s59mmriimnzczay4xi3vh7zcw207px2";
       };
 
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ makeWrapper ];
 
       buildCommand = ''
         mkdir -p "$out/lib/SideQuest" "$out/bin"
@@ -46,8 +46,8 @@
 
       meta = with lib; {
         description = "An open app store and side-loading tool for Android-based VR devices such as the Oculus Go, Oculus Quest or Moverio BT 300";
-        homepage = "https://github.com/the-expanse/SideQuest";
-        downloadPage = "https://github.com/the-expanse/SideQuest/releases";
+        homepage = "https://github.com/SideQuestVR/SideQuest";
+        downloadPage = "https://github.com/SideQuestVR/SideQuest/releases";
         license = licenses.mit;
         maintainers = with maintainers; [ joepie91 rvolosatovs ];
         platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix
index 840b37351c7..5032836ab9f 100644
--- a/pkgs/applications/misc/simplenote/default.nix
+++ b/pkgs/applications/misc/simplenote/default.nix
@@ -17,10 +17,10 @@ let
 
   pname = "simplenote";
 
-  version = "2.2.0";
+  version = "2.8.0";
 
   sha256 = {
-    x86_64-linux = "123b0fh14068s2z3k6s5mmh46xwlz02qfnpmj838zlm5hckjmifv";
+    x86_64-linux = "sha256-W8+LzWMPDCrFZCm9p/Gcj7OXqJw/gs7lMxTKjOQChQY=";
   }.${system} or throwSystem;
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/spacenav-cube-example/default.nix b/pkgs/applications/misc/spacenav-cube-example/default.nix
new file mode 100644
index 00000000000..1221db1ad96
--- /dev/null
+++ b/pkgs/applications/misc/spacenav-cube-example/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, libspnav, libX11, mesa_glu }:
+
+stdenv.mkDerivation {
+  pname = "spacenav-cube-example";
+  version = libspnav.version;
+
+  src = libspnav.src;
+
+  sourceRoot = "source/examples/cube";
+
+  buildInputs = [ libX11 mesa_glu libspnav ];
+
+  configureFlags = [ "--disable-debug" ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp cube $out/bin/spacenav-cube-example
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://spacenav.sourceforge.net/";
+    description = "An example application to test the spacenavd driver";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sohalt ];
+  };
+}
diff --git a/pkgs/applications/misc/spicetify-cli/default.nix b/pkgs/applications/misc/spicetify-cli/default.nix
index 2b97d2f0188..62a6d4785f1 100644
--- a/pkgs/applications/misc/spicetify-cli/default.nix
+++ b/pkgs/applications/misc/spicetify-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "spicetify-cli";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "khanhas";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Gkq19OlX6ci2i5mno77O/v3VfUkv6FRQFcH98qaUuXs=";
+    sha256 = "sha256-HASFaPqm/A1QQ4nkd2hgeyqWplwE1RTrWA937rJA5Oo=";
   };
 
-  vendorSha256 = "sha256-ARhWKYh8Wy2UEYGabn6l/kbnJ0nHYTIt4hn9wuVgBkw=";
+  vendorSha256 = "sha256-g0RYIVIq4oMXdRZDBDnVYg7ombN5WEo/6O9hChQvOYs=";
 
   # used at runtime, but not installed by default
   postInstall = ''
diff --git a/pkgs/applications/misc/spnavcfg/default.nix b/pkgs/applications/misc/spnavcfg/default.nix
new file mode 100644
index 00000000000..caeaa42192d
--- /dev/null
+++ b/pkgs/applications/misc/spnavcfg/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchFromGitHub, pkg-config, gtk2 }:
+
+stdenv.mkDerivation rec {
+  pname = "spnavcfg";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "FreeSpacenav";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "180mkdis15gxs79rr3f7hpwa1p6v81bybw37pzzdjnmqwqrc08a0";
+  };
+
+  postPatch = ''
+    sed -i s/4775/775/ Makefile.in
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk2 ];
+
+  meta = with lib; {
+    homepage = "http://spacenav.sourceforge.net/";
+    description = "Interactive configuration GUI for space navigator input devices";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ gebner ];
+  };
+}
diff --git a/pkgs/applications/misc/stork/default.nix b/pkgs/applications/misc/stork/default.nix
new file mode 100644
index 00000000000..16d56eeaa95
--- /dev/null
+++ b/pkgs/applications/misc/stork/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "stork";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "jameslittle230";
+    repo = "stork";
+    rev = "v${version}";
+    sha256 = "sha256-pBJ9n1pQafXagQt9bnj4N1jriczr47QLtKiv+UjWgTg=";
+  };
+
+  cargoSha256 = "sha256-u8L4ZeST4ExYB2y8E+I49HCy41dOfhR1fgPpcVMVDuk=";
+
+  meta = with lib; {
+    description = "Impossibly fast web search, made for static sites";
+    homepage = "https://github.com/jameslittle230/stork";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ chuahou ];
+  };
+}
diff --git a/pkgs/applications/misc/subsurface/default.nix b/pkgs/applications/misc/subsurface/default.nix
index 51d015c6e41..19fdd4640e4 100644
--- a/pkgs/applications/misc/subsurface/default.nix
+++ b/pkgs/applications/misc/subsurface/default.nix
@@ -1,16 +1,17 @@
 { lib, stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, wrapQtAppsHook, pkg-config, qmake
 , curl, grantlee, libgit2, libusb-compat-0_1, libssh2, libxml2, libxslt, libzip, zlib
 , qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite
+, bluez
 }:
 
 let
-  version = "4.9.6";
+  version = "4.9.10";
 
   subsurfaceSrc = (fetchFromGitHub {
     owner = "Subsurface";
     repo = "subsurface";
     rev = "v${version}";
-    sha256 = "1w1ak0fi6ljhg2jc4mjqyrbpax3iawrnsaqq6ls7qdzrhi37rggf";
+    sha256 = "12ndhjplz3cwndwzhfc959dc0i6rm2qf3v2d8n9kba8nj63iblfs";
     fetchSubmodules = true;
   });
 
@@ -52,6 +53,8 @@ let
 
     buildInputs = [ qtbase qtlocation libXcomposite ];
 
+    dontWrapQtApps = true;
+
     pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins";
 
     installPhase = ''
@@ -82,6 +85,7 @@ in stdenv.mkDerivation {
     libdc googlemaps
     curl grantlee libgit2 libssh2 libusb-compat-0_1 libxml2 libxslt libzip
     qtbase qtconnectivity qtsvg qttools qtwebkit
+    bluez
   ];
 
   nativeBuildInputs = [ cmake wrapQtAppsHook pkg-config ];
@@ -103,7 +107,7 @@ in stdenv.mkDerivation {
     '';
     homepage = "https://subsurface-divelog.org";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ mguentner ];
+    maintainers = with maintainers; [ mguentner adisbladis ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/sunwait/default.nix b/pkgs/applications/misc/sunwait/default.nix
new file mode 100644
index 00000000000..c9581fe79f6
--- /dev/null
+++ b/pkgs/applications/misc/sunwait/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "sunwait";
+  version = "2020-10-26";
+
+  src = fetchFromGitHub {
+    owner = "risacher";
+    repo = "sunwait";
+    rev = "102cb417ecbb7a3757ba9ee4b94d6db3225124c4";
+    sha256 = "0cs8rdcnzsl10zia2k49a6c2z6gvp5rnf31sgn3hn5c7kgy7l3ax";
+  };
+
+  installPhase = ''
+    install -Dm755 sunwait -t $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Calculates sunrise or sunset times with civil, nautical, astronomical and custom twilights";
+    homepage = "https://github.com/risacher/sunwait";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ etu ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/surface-control/default.nix b/pkgs/applications/misc/surface-control/default.nix
index 2c5db1fe15a..7904af3e7e1 100644
--- a/pkgs/applications/misc/surface-control/default.nix
+++ b/pkgs/applications/misc/surface-control/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "surface-control";
-  version = "0.3.1-1";
+  version = "0.3.1-2";
 
   src = fetchFromGitHub {
     owner = "linux-surface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wclzlix0a2naxbdg3wym7yw19p2wqpcjmkf7gn8cs00shrmzjld";
+    sha256 = "sha256-SLJ4mwBafLGL5pneMTHLc4S4Tgds2xLqByWFH95TK1k=";
   };
 
-  cargoSha256 = "0vi26v9mvx298kx6k5g7h8dnn7r208an9knadc23vxcrrxjr6pn5";
+  cargoSha256 = "sha256-a+4oOkO90TObfYnq9NZsWy5RmYFYN1BKvUKxpvjiJc8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/misc/swappy/default.nix b/pkgs/applications/misc/swappy/default.nix
index bf1fdf63fed..69d7836e762 100644
--- a/pkgs/applications/misc/swappy/default.nix
+++ b/pkgs/applications/misc/swappy/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib
+, stdenv
+, fetchFromGitHub
 , meson
 , ninja
 , wayland
@@ -6,27 +8,29 @@
 , pango
 , gtk
 , pkg-config
-, cmake
 , scdoc
 , libnotify
-, gio-sharp
 , glib
+, wrapGAppsHook
+, hicolor-icon-theme
 }:
 
 stdenv.mkDerivation rec {
-  name = "swappy-${version}";
-  version = "1.2.1";
+  pname = "swappy";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "jtheoof";
-    repo = "swappy";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "14ac2jmnak7avcz0jhqjm30vk7pv3gq5aq5rdyh84k8c613kkicf";
+    sha256 = "12z643c7vzffhjsxaz1lak99i4nwm688pha0hh4pg69jf5wz5xx3";
   };
 
-  nativeBuildInputs = [ glib meson ninja pkg-config cmake scdoc ];
+  nativeBuildInputs = [ glib meson ninja pkg-config scdoc wrapGAppsHook ];
 
-  buildInputs = [ cairo pango gtk libnotify wayland glib ];
+  buildInputs = [
+    cairo pango gtk libnotify wayland glib hicolor-icon-theme
+  ];
 
   strictDeps = true;
 
@@ -37,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jtheoof/swappy";
-    description = "A Wayland native snapshot editing tool, inspired by Snappy on macOS ";
+    description = "A Wayland native snapshot editing tool, inspired by Snappy on macOS";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix
index afbf5b364ed..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,23 +42,30 @@ 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
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_x11.so
     '';
 
-    buildInputs = [ ant jdk makeWrapper p7zip gtk3 gsettings-desktop-schemas ];
+    nativeBuildInputs = [ makeWrapper ];
+    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/.
 
@@ -59,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 08bc5b90fd9..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
 
@@ -23,15 +35,20 @@ let
       categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
-    buildInputs = [ ant jre jdk makeWrapper gtk3 gsettings-desktop-schemas ];
+    nativeBuildInputs = [ makeWrapper ];
+    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/syncthingtray/default.nix b/pkgs/applications/misc/syncthingtray/default.nix
index 2a395a227ba..dc4569c6fca 100644
--- a/pkgs/applications/misc/syncthingtray/default.nix
+++ b/pkgs/applications/misc/syncthingtray/default.nix
@@ -19,24 +19,29 @@
 }:
 
 mkDerivation rec {
-  version = "1.1.2";
+  version = "1.1.3";
   pname = "syncthingtray";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "syncthingtray";
     rev = "v${version}";
-    sha256 = "sha256-I5QhnYp4ga3ERJ3w4qjh5gFFU+S1Htw26vHK/2M8j5s=";
+    sha256 = "sha256-ovit2XSkxSjcbpqQUv8IzMqfsfItbtXLbx0/Vy0+J0Y=";
   };
 
   buildInputs = [ qtbase cpp-utilities qtutilities ]
     ++ lib.optionals webviewSupport [ qtwebengine ]
     ++ lib.optionals jsSupport [ qtdeclarative ]
     ++ lib.optionals kioPluginSupport [ kio ]
-    ++ lib.optionals plasmoidSupport [ extra-cmake-modules plasma-framework ]
+    ++ lib.optionals plasmoidSupport [ plasma-framework ]
   ;
 
-  nativeBuildInputs = [ cmake qttools ];
+  nativeBuildInputs = [
+    cmake
+    qttools
+  ]
+    ++ lib.optionals plasmoidSupport [ extra-cmake-modules ]
+  ;
 
   # No tests are available by upstream, but we test --help anyway
   doInstallCheck = true;
@@ -56,7 +61,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Martchus/syncthingtray";
     description = "Tray application and Dolphin/Plasma integration for Syncthing";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/misc/tabula/default.nix b/pkgs/applications/misc/tabula/default.nix
index 1804f3c04e8..b396c578c90 100644
--- a/pkgs/applications/misc/tabula/default.nix
+++ b/pkgs/applications/misc/tabula/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
 
   installPhase = ''
diff --git a/pkgs/applications/misc/taskwarrior-tui/default.nix b/pkgs/applications/misc/taskwarrior-tui/default.nix
index 530d60c7631..9c1e778bdf3 100644
--- a/pkgs/applications/misc/taskwarrior-tui/default.nix
+++ b/pkgs/applications/misc/taskwarrior-tui/default.nix
@@ -5,19 +5,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "taskwarrior-tui";
-  version = "0.9.10";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "kdheepak";
     repo = "taskwarrior-tui";
     rev = "v${version}";
-    sha256 = "sha256-NQzZhWoLeDF7iTgIljbVi0ULAe7DeIn45Cu6bgFCfKQ=";
+    sha256 = "1rs6xpnmqzp45jkdzi8x06i8764gk7zl86sp6s0hiirbfqf7vwsy";
   };
 
   # Because there's a test that requires terminal access
   doCheck = false;
 
-  cargoSha256 = "sha256-9qfqQ7zFw+EwY7o35Y6RhBJ8h5eXnTAsdbqo/w0zO5w=";
+  cargoSha256 = "0xblxsp7jgqbb3kr5k7yy6ziz18a8wlkrhls0vz9ak2n0ngddg3r";
 
   meta = with lib; {
     description = "A terminal user interface for taskwarrior ";
diff --git a/pkgs/applications/misc/taskwarrior/default.nix b/pkgs/applications/misc/taskwarrior/default.nix
index b3f26c87c50..ee781c75e69 100644
--- a/pkgs/applications/misc/taskwarrior/default.nix
+++ b/pkgs/applications/misc/taskwarrior/default.nix
@@ -1,19 +1,37 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libuuid, gnutls }:
+{ lib, stdenv, fetchurl, cmake, libuuid, gnutls, python3, bash }:
 
 stdenv.mkDerivation rec {
   pname = "taskwarrior";
-  version = "2.5.2";
-
-  src = fetchFromGitHub {
-    owner = "GothenburgBitFactory";
-    repo = "taskwarrior";
-    rev = "v${version}";
-    sha256 = "0jv5b56v75qhdqbrfsddfwizmbizcsv3mn8gp92nckwlx9hrk5id";
-    fetchSubmodules = true;
-  };
+  version = "2.5.3";
+
+  srcs = [
+    (fetchurl {
+      url = " https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/${sourceRoot}.tar.gz";
+      sha256 = "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj";
+    })
+    (fetchurl {
+      url = "https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${version}/tests-${version}.tar.gz";
+      sha256 = "165xmf9h6rb7l6l9nlyygj0mx9bi1zyd78z0lrl3nadhmgzggv0b";
+    })
+  ];
+
+  sourceRoot = "task-${version}";
+
+  postUnpack = ''
+    mv test ${sourceRoot}
+  '';
 
   nativeBuildInputs = [ cmake libuuid gnutls ];
 
+  doCheck = true;
+  preCheck = ''
+    find test -type f -exec sed -i \
+      -e "s|/usr/bin/env python3|${python3.interpreter}|" \
+      -e "s|/usr/bin/env bash|${bash}/bin/bash|" \
+      {} +
+  '';
+  checkTarget = "test";
+
   postInstall = ''
     mkdir -p "$out/share/bash-completion/completions"
     ln -s "../../doc/task/scripts/bash/task.sh" "$out/share/bash-completion/completions/task.bash"
@@ -28,6 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "https://taskwarrior.org";
     license = licenses.mit;
     maintainers = with maintainers; [ marcweber ];
-    platforms = platforms.linux ++ platforms.darwin;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/tellico/default.nix b/pkgs/applications/misc/tellico/default.nix
index 7037b40816c..65cd003253d 100644
--- a/pkgs/applications/misc/tellico/default.nix
+++ b/pkgs/applications/misc/tellico/default.nix
@@ -1,29 +1,30 @@
 { lib
 , fetchurl
 , mkDerivation
-, libkcddb
-, kinit
-, kdelibs4support
-, solid
-, kxmlgui
+, cmake
+, exempi
+, extra-cmake-modules
 , karchive
+, kdoctools
 , kfilemetadata
 , khtml
+, kitemmodels
 , knewstuff
-, libksane
-, cmake
-, exempi
-, extra-cmake-modules
+, kxmlgui
 , libcdio
-, poppler
+, libkcddb
+, libksane
 , makeWrapper
-, kdoctools
+, poppler
+, qtcharts
+, qtwebengine
+, solid
 , taglib
 }:
 
 mkDerivation rec {
-  name = "tellico";
-  version = "3.3.3";
+  pname = "tellico";
+  version = "3.4";
 
   src = fetchurl {
     # version 3.3.0 just uses 3.3 in its name
@@ -31,7 +32,7 @@ mkDerivation rec {
       "https://tellico-project.org/files/tellico-${version}.tar.xz"
       "https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz"
     ];
-    sha256 = "sha256-9cdbUTa2Mt3/yNylOSdGjgDETD74sR0dU4C58uW0Y6o=";
+    sha256 = "sha256-YXMJrAkfehe3ox4WZ19igyFbXwtjO5wxN3bmgP01jPs=";
   };
 
   nativeBuildInputs = [
@@ -43,17 +44,18 @@ mkDerivation rec {
 
   buildInputs = [
     exempi
-    extra-cmake-modules
     karchive
-    libkcddb
-    kdelibs4support
     kfilemetadata
     khtml
+    kitemmodels
     knewstuff
     kxmlgui
     libcdio
+    libkcddb
     libksane
     poppler
+    qtcharts
+    qtwebengine
     solid
     taglib
   ];
diff --git a/pkgs/applications/misc/ticker/default.nix b/pkgs/applications/misc/ticker/default.nix
new file mode 100644
index 00000000000..fd37a692d84
--- /dev/null
+++ b/pkgs/applications/misc/ticker/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "ticker";
+  version = "4.0.3";
+
+  src = fetchFromGitHub {
+    owner = "achannarasappa";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-YVpspFBwao/7M2nTVMw+ANc0roL0vBO4DpNUb7Thp3Q=";
+  };
+
+  vendorSha256 = "sha256-nidOIjrTL4llV5GORebXOOPGeL6TxkurDY82cIc7+mU=";
+
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/achannarasappa/ticker/cmd.Version=v${version}")
+  '';
+
+  # Tests require internet
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Terminal stock ticker with live updates and position tracking";
+    homepage = "https://github.com/achannarasappa/ticker";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/pkgs/applications/misc/tickrs/default.nix b/pkgs/applications/misc/tickrs/default.nix
index b9fd02650a6..8866e2a07c2 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.11.0";
+  version = "0.14.4";
 
   src = fetchFromGitHub {
     owner = "tarkah";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Hx/9WW94rDAjlSZoUz5/43MQ6830OELLogRvHTbmWv0=";
+    sha256 = "sha256-OOsBo+NCfn++2XyfQVoeEPcbSv645Ng7g9s4W7X2xg4=";
   };
 
-  cargoSha256 = "sha256-TYDNx1TNGcREaeHXaejTeMDEITTTUrHCrExZYa+MSHg=";
+  cargoSha256 = "sha256-PW8f4PZGctHd8YBBRvmueR8UgtyDQZpqf2lTU1t68iM=";
 
   nativeBuildInputs = [ perl ];
 
diff --git a/pkgs/applications/misc/tipp10/default.nix b/pkgs/applications/misc/tipp10/default.nix
index 3333760a759..37aafb7827e 100644
--- a/pkgs/applications/misc/tipp10/default.nix
+++ b/pkgs/applications/misc/tipp10/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "tipp10";
-  version = "unstable-20200616";
+  version = "3.2.1";
 
   src = fetchFromGitLab {
     owner = "tipp10";
     repo = "tipp10";
-    rev = "2dd6d45c8a91cff7075675d8875721456cdd5f1b";
-    sha256 = "16x51rv4r6cz5vsmrfbakqzbfxy456h82ibzacknp35f41cjdqq4";
+    rev = "v${version}";
+    sha256 = "4cxN2AnvYhZAMuA/qfmdLVICJNk6VCpRnfelbxYRvPg=";
   };
 
   nativeBuildInputs = [ cmake qttools ];
@@ -17,8 +17,8 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Learn and train typing with the ten-finger system";
-    homepage = "https://gitlab.com/a_a/tipp10";
-    license = licenses.gpl2;
+    homepage = "https://gitlab.com/tipp10/tipp10";
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ petabyteboy ];
     platforms = platforms.all;
   };
diff --git a/pkgs/applications/misc/todoist-electron/default.nix b/pkgs/applications/misc/todoist-electron/default.nix
index cdcb54cbc6c..945b0b32491 100644
--- a/pkgs/applications/misc/todoist-electron/default.nix
+++ b/pkgs/applications/misc/todoist-electron/default.nix
@@ -1,65 +1,51 @@
-{ stdenv, lib, fetchurl, makeDesktopItem, dpkg, atk, at-spi2-atk, glib, pango, gdk-pixbuf
-, gtk3, cairo, freetype, fontconfig, dbus, xorg, nss, nspr, alsaLib, cups, expat
-, udev, libpulseaudio, util-linux, makeWrapper }:
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_11, libsecret }:
 
 stdenv.mkDerivation rec {
   pname = "todoist-electron";
-  version = "1.24.0";
+  version = "0.2.4";
 
   src = fetchurl {
-    url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}_amd64.deb";
-    sha256 = "0g35518z6nf6pnfyx4ax75rq8b8br72mi6wv6jzgac9ric1q4h2s";
+    url = "https://electron-dl.todoist.com/linux/Todoist-${version}.AppImage";
+    sha256 = "1xrf2qjhq116z18qx7n1zd7mhvkb2dccaq7az4w6fs216l8q5zf2";
   };
 
-  desktopItem = makeDesktopItem {
-    name = "Todoist";
-    exec = "todoist %U";
-    icon = "todoist";
-    comment = "Todoist for Linux";
-    desktopName = "Todoist";
-    categories = "Utility";
+  appimageContents = appimageTools.extractType2 {
+    name = "${pname}-${version}";
+    inherit src;
   };
 
-  nativeBuildInputs = [ makeWrapper dpkg ];
-  unpackPhase = ''
-    mkdir pkg
-    dpkg-deb -x $src pkg
-    sourceRoot=pkg
-  '';
-  installPhase = let
-    libPath = lib.makeLibraryPath ([
-      stdenv.cc.cc gtk3 atk at-spi2-atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
-      nss nspr alsaLib libpulseaudio cups expat udev util-linux
-    ] ++ (with xorg; [
-      libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
-      libXrender libX11 libXtst libXScrnSaver
-    ]));
-  in ''
-    mkdir -p "$out/bin"
-    mv opt "$out/"
-    mv usr/share "$out/share"
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
 
-    # Patch binary
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${libPath}:\$ORIGIN" \
-      $out/opt/Todoist/todoist
+    mkdir -p $out/bin $out/share/${pname} $out/share/applications $out/share/icons/hicolor/512x512
 
-    # Hacky workaround for RPATH problems
-    makeWrapper $out/opt/Todoist/todoist $out/bin/todoist \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpulseaudio udev ]}
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+    cp -a ${appimageContents}/todoist.desktop $out/share/applications/${pname}.desktop
+    cp -a ${appimageContents}/usr/share/icons/hicolor/0x0/apps $out/share/icons/hicolor/512x512
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+
+    runHook postInstall
+  '';
 
-    # Desktop item
-    mkdir -p "$out/share"
-    rm -r "$out/share/applications"
-    cp -r "${desktopItem}/share/applications" "$out/share/applications"
+  postFixup = ''
+    makeWrapper ${electron_11}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app.asar \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc libsecret ]}"
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/KryDos/todoist-linux";
-    description = "The Linux wrapper for Todoist web version";
+    homepage = "https://todoist.com";
+    description = "The official Todoist electron app";
     platforms = [ "x86_64-linux" ];
-    license = licenses.mit;
-    maintainers = with maintainers; [ i077 ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ i077 kylesferrazza ];
   };
 }
diff --git a/pkgs/applications/misc/translate-shell/default.nix b/pkgs/applications/misc/translate-shell/default.nix
index 03ed031be85..319ba3643da 100644
--- a/pkgs/applications/misc/translate-shell/default.nix
+++ b/pkgs/applications/misc/translate-shell/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "075vqnha21rhr1b61dim7dqlfwm1yffyzcaa83s36rpk9r5sddzx";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installFlags = [ "PREFIX=$(out)" ];
 
diff --git a/pkgs/applications/misc/tty-share/default.nix b/pkgs/applications/misc/tty-share/default.nix
index a402a669fbe..08c88e376bb 100644
--- a/pkgs/applications/misc/tty-share/default.nix
+++ b/pkgs/applications/misc/tty-share/default.nix
@@ -3,13 +3,13 @@
 # Upstream has a `./vendor` directory with all deps which we rely upon.
 buildGoPackage rec {
   pname = "tty-share";
-  version = "2.0.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "elisescu";
     repo = "tty-share";
     rev = "v${version}";
-    sha256 = "1d2vd3d1lb4n0jq4s0p5mii1vz4r3z36hykr5mnx53srsni1wsj5";
+    sha256 = "sha256-+bdQ7KyGEdJJAopzGnDOcLvFNyiKqpagPR1EoU1VR5E=";
   };
 
   goPackagePath = "github.com/elisescu/tty-share";
diff --git a/pkgs/applications/misc/tty-solitaire/default.nix b/pkgs/applications/misc/tty-solitaire/default.nix
index 9b2fcf3d17a..9ea26b52bc3 100644
--- a/pkgs/applications/misc/tty-solitaire/default.nix
+++ b/pkgs/applications/misc/tty-solitaire/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile";
 
-  makeFlags = [ "CC=cc" "PREFIX=${placeholder "out"}" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
     description = "Klondike Solitaire in your ncurses terminal";
diff --git a/pkgs/applications/misc/udiskie/default.nix b/pkgs/applications/misc/udiskie/default.nix
index 87c49a19a19..d780f9e35d5 100644
--- a/pkgs/applications/misc/udiskie/default.nix
+++ b/pkgs/applications/misc/udiskie/default.nix
@@ -1,37 +1,50 @@
-{ lib, fetchFromGitHub, asciidoc-full, gettext
-, gobject-introspection, gtk3, libappindicator-gtk3, libnotify, librsvg
-, udisks2, wrapGAppsHook
-, python3Packages
+{ lib
+, fetchFromGitHub
+, asciidoc-full
+, buildPythonApplication
+, docopt
+, gettext
+, gobject-introspection
+, gtk3
+, keyutils
+, libappindicator-gtk3
+, libnotify
+, librsvg
+, nose
+, pygobject3
+, pyyaml
+, udisks2
+, wrapGAppsHook
 }:
 
-python3Packages.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "udiskie";
-  version = "2.2.0";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "coldfix";
     repo = "udiskie";
-    rev = version;
-    sha256 = "0kn5w6bm3rmbszphzbxpjfnkawb2naa230svzkpmh3n6dcdvk4qa";
+    rev = "v${version}";
+    hash = "sha256-eucAFMzLf2RfMfVgFTfPAgVNpDADddvTUZQO/XbBhGo=";
   };
 
   nativeBuildInputs = [
+    asciidoc-full # Man page
     gettext
-    asciidoc-full        # For building man page.
     gobject-introspection
     wrapGAppsHook
   ];
 
   buildInputs = [
-    librsvg              # required for loading svg icons (udiskie uses svg icons)
     gobject-introspection
-    libnotify
     gtk3
-    udisks2
     libappindicator-gtk3
+    libnotify
+    librsvg # Because it uses SVG icons
+    udisks2
   ];
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = [
     docopt
     pygobject3
     pyyaml
@@ -44,7 +57,7 @@ python3Packages.buildPythonApplication rec {
     cp -v doc/udiskie.8 $out/share/man/man8/
   '';
 
-  checkInputs = with python3Packages; [
+  checkInputs = [
     nose
     keyutils
   ];
@@ -54,9 +67,23 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
+    homepage = "https://github.com/coldfix/udiskie";
     description = "Removable disk automounter for udisks";
+    longDescription = ''
+      udiskie is a udisks2 front-end that allows to manage removeable media such
+      as CDs or flash drives from userspace.
+
+      Its features include:
+      - automount removable media
+      - notifications
+      - tray icon
+      - command line tools for manual un-/mounting
+      - LUKS encrypted devices
+      - unlocking with keyfiles (requires udisks 2.6.4)
+      - loop devices (mounting iso archives)
+      - password caching (requires python keyutils 0.3)
+    '';
     license = licenses.mit;
-    homepage = "https://github.com/coldfix/udiskie";
     maintainers = with maintainers; [ AndersonTorres ];
   };
 }
diff --git a/pkgs/applications/misc/unipicker/default.nix b/pkgs/applications/misc/unipicker/default.nix
new file mode 100644
index 00000000000..fc47a872848
--- /dev/null
+++ b/pkgs/applications/misc/unipicker/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, lib, fzf, xclip }:
+
+stdenv.mkDerivation rec {
+   pname = "unipicker";
+   version = "unstable-2018-07-10";
+
+   src = fetchFromGitHub {
+      owner = "jeremija";
+      repo = pname;
+      rev = "767571c87cdb1e654408d19fc4db98e5e6725c04";
+      sha256 = "1k4v53pm3xivwg9vq2kndpcmah0yn4679r5jzxvg38bbkfdk86c1";
+   };
+
+   buildInputs = [
+      fzf
+      xclip
+   ];
+
+   preInstall = ''
+      substituteInPlace unipicker --replace "/etc/unipickerrc" "$out/etc/unipickerrc"
+      substituteInPlace unipickerrc --replace "/usr/local" "$out"
+   '';
+
+   makeFlags = [
+      "PREFIX=$(out)"
+      "DESTDIR=$(out)"
+   ];
+
+   meta = with lib; {
+    description = "A CLI utility for searching unicode characters by description and optionally copying them to clipboard";
+    homepage = "https://github.com/jeremija/unipicker";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kiyengar ];
+    platforms = with platforms; unix;
+   };
+}
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index 36fd4047761..9b8821b5115 100644
--- a/pkgs/applications/misc/upwork/default.nix
+++ b/pkgs/applications/misc/upwork/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook, writeShellScript
+{ lib, stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook
 , alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
 , gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid
 , libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "upwork";
-  version = "5.4.9.6";
+  version = "5.5.0.1";
 
   src = fetchurl {
-    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_4_9_6_2565cdd0547940a2/${pname}_${version}_amd64.deb";
-    sha256 = "ff6246b3b4a1ed79cc9bca2934652fefb40bdac4b7e95997f3a46e354ce52456";
+    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_5_0_1_291c031686ed44ff/${pname}_${version}_amd64.deb";
+    sha256 = "49192ecfb10929b5b51cf8899186059649c894109ec172695cd7cfaa50923f6a";
   };
 
   dontWrapGApps = true;
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
     mv usr $out
     mv opt $out
     sed -e "s|/opt/Upwork|$out/bin|g" -i $out/share/applications/upwork.desktop
@@ -44,6 +45,7 @@ stdenv.mkDerivation rec {
       $out/bin/upwork \
       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
       --prefix LD_LIBRARY_PATH : ${libPath}
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/vifm/default.nix b/pkgs/applications/misc/vifm/default.nix
index 18d190a9dd6..7bc4bd1ff76 100644
--- a/pkgs/applications/misc/vifm/default.nix
+++ b/pkgs/applications/misc/vifm/default.nix
@@ -40,5 +40,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://vifm.info/";
     inherit version;
     updateWalker = true;
+    changelog = "https://github.com/vifm/vifm/blob/v${version}/ChangeLog";
   };
 }
diff --git a/pkgs/applications/misc/viking/default.nix b/pkgs/applications/misc/viking/default.nix
index 61ebfb0fcc6..71f67baa6c5 100644
--- a/pkgs/applications/misc/viking/default.nix
+++ b/pkgs/applications/misc/viking/default.nix
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
     libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2
   ] ++ lib.optional withMapnik mapnik
     ++ lib.optional withGeoClue geoclue2
diff --git a/pkgs/applications/misc/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix
index b7f9d6ca1a6..fc609b280f9 100644
--- a/pkgs/applications/misc/visidata/default.nix
+++ b/pkgs/applications/misc/visidata/default.nix
@@ -44,7 +44,7 @@ buildPythonApplication rec {
     description = "Interactive terminal multitool for tabular data";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.raskin ];
-    platforms = with lib.platforms; linux ++ darwin;
     homepage = "http://visidata.org/";
+    changelog = "https://github.com/saulpw/visidata/blob/v${version}/CHANGELOG.md";
   };
 }
diff --git a/pkgs/applications/misc/vit/default.nix b/pkgs/applications/misc/vit/default.nix
index 3ae4aacb872..d5c454a06e8 100644
--- a/pkgs/applications/misc/vit/default.nix
+++ b/pkgs/applications/misc/vit/default.nix
@@ -8,12 +8,12 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "vit";
-  version = "2.0.0";
+  version = "2.1.0";
   disabled = lib.versionOlder python.version "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5282d8076d9814d9248071aec8784cffbd968601542533ccb28ca61d1d08205e";
+    sha256 = "fd34f0b827953dfdecdc39f8416d41c50c24576c33a512a047a71c1263eb3e0f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix
index 0cbe325f62a..d730f966347 100644
--- a/pkgs/applications/misc/waybar/default.nix
+++ b/pkgs/applications/misc/waybar/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , meson
 , pkg-config
 , ninja
@@ -36,6 +37,17 @@ stdenv.mkDerivation rec {
     sha256 = "1kzrgqaclfk6gcwhknxn28xl74gm5swipgn8kk8avacb4nsw1l9q";
   };
 
+  patches = [
+    # XXX: REMOVE ON NEXT VERSION BUMP
+    # Fixes compatibility of the bluetooth and network modules with linux kernel
+    # >=5.11
+    # c.f. https://github.com/Alexays/Waybar/issues/994
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/Alexays/Waybar/pull/1015.patch";
+      sha256 = "sha256-jQZEM3Yru2yxcXAzapU47DoAv4ZoabrV80dH42I2OFk=";
+    })
+  ];
+
   nativeBuildInputs = [
     meson ninja pkg-config scdoc wrapGAppsHook cmake
   ] ++ lib.optional withMediaPlayer gobject-introspection;
@@ -82,7 +94,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Highly customizable Wayland bar for Sway and Wlroots based compositors";
     license = licenses.mit;
-    maintainers = with maintainers; [ FlorianFranzen minijackson synthetica ];
+    maintainers = with maintainers; [ FlorianFranzen minijackson synthetica lovesegfault ];
     platforms = platforms.unix;
     homepage = "https://github.com/alexays/waybar";
   };
diff --git a/pkgs/applications/misc/wordnet/default.nix b/pkgs/applications/misc/wordnet/default.nix
index 32c1f0eaa64..27694174d70 100644
--- a/pkgs/applications/misc/wordnet/default.nix
+++ b/pkgs/applications/misc/wordnet/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "08pgjvd2vvmqk3h641x63nxp7wqimb9r30889mkyfh2agc62sjbc";
   };
 
-  buildInputs = [ tcl tk xlibsWrapper makeWrapper ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ tcl tk xlibsWrapper ]
     ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/misc/worker/default.nix b/pkgs/applications/misc/worker/default.nix
index 12ac72b6021..20ed6d55f36 100644
--- a/pkgs/applications/misc/worker/default.nix
+++ b/pkgs/applications/misc/worker/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "worker";
-  version = "4.5.0";
+  version = "4.7.0";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
-    sha256 = "02xrdg1v784p4gfqjm1mlxqwi40qlbzhp68p5ksj96cjv6av5b5s";
+    sha256 = "sha256-9x/nHd2nUeFSH7a2qH4qlyH4FRH/NfNvTE1LEaMMSwU=";
   };
 
   buildInputs = [ libX11 ];
diff --git a/pkgs/applications/misc/writefreely/default.nix b/pkgs/applications/misc/writefreely/default.nix
new file mode 100644
index 00000000000..5f38d405cb8
--- /dev/null
+++ b/pkgs/applications/misc/writefreely/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub, go-bindata }:
+
+buildGoModule rec {
+  pname = "writefreely";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "writeas";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-6LpRfDu3xvE1eIRLfZliKnzsrrG5pjjf2ydxn9HQJJU=";
+  };
+
+  vendorSha256 = "sha256-U17AkMJQr/OIMED0i2ThcNVw3+aOvRLbpLNP/wEv6k8=";
+
+  nativeBuildInputs = [ go-bindata ];
+
+  preBuild = ''
+    make assets
+    export buildFlagsArray=(
+      "-ldflags=-s -w -X github.com/writeas/writefreely.softwareVer=${version}"
+      "-tags='sqlite'"
+    )
+  '';
+
+  subPackages = [ "cmd/writefreely" ];
+
+  meta = with lib; {
+    description = "Build a digital writing community";
+    homepage = "https://github.com/writeas/writefreely";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/applications/misc/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix
index 4a7b7ad63b7..962059600a4 100644
--- a/pkgs/applications/misc/wtf/default.nix
+++ b/pkgs/applications/misc/wtf/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "wtf";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "wtfutil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xzMXbF0M7asZtyo8DmM5yyNoHKy0H6amRDhu6hjHgq4=";
+    sha256 = "sha256-JVHcunpS+2/0d7XaUZ95m9QpVHCG1Tq8LJ9KNURSRy8=";
    };
 
-  vendorSha256 = "sha256-6ij0NQMjDnZJhuqkUR7MdBLAMS5Xa2HKIgQjegKJyvc=";
+  vendorSha256 = "sha256-4uRhbRPfCRYwFlfucXOYhLruj7hkV4G9Sxjh9yQkDEQ=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/xchm/default.nix b/pkgs/applications/misc/xchm/default.nix
index f3764ce60f3..a7037522c62 100644
--- a/pkgs/applications/misc/xchm/default.nix
+++ b/pkgs/applications/misc/xchm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xchm";
-  version = "1.31";
+  version = "1.32";
 
   src = fetchFromGitHub {
     owner = "rzvncj";
     repo = "xCHM";
     rev = version;
-    sha256 = "1mzafbpc1c211byf8bnwl13by7vi8xvxlaykyrajb1bj0ynbmmgp";
+    sha256 = "sha256-Ss8kdfUAMC8v05rdt2SoO6vPyssG5v8gOzdf/v18cdg=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/misc/xfontsel/default.nix b/pkgs/applications/misc/xfontsel/default.nix
index 10034fbe1b1..365f6217861 100644
--- a/pkgs/applications/misc/xfontsel/default.nix
+++ b/pkgs/applications/misc/xfontsel/default.nix
@@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0700lf6hx7dg88wq1yll7zjvf9gbwh06xff20yffkxb289y0pai5";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [libX11 makeWrapper libXaw];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [libX11 libXaw];
 
   # Without this, it gets Xmu as a dependency, but without rpath entry
   NIX_LDFLAGS = "-lXmu";
diff --git a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
index d787705be15..05f6c2b6a65 100644
--- a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
+++ b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
@@ -6,7 +6,7 @@
 , jbig2dec
 , libjpeg
 , mupdf
-, openjpeg_2
+, openjpeg
 , pkg-config
 , zathura_core
 }:
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     jbig2dec
     libjpeg
     mupdf
-    openjpeg_2
+    openjpeg
     zathura_core
   ] ++ lib.optional stdenv.isDarwin gtk-mac-integration;
 
diff --git a/pkgs/applications/misc/zathura/wrapper.nix b/pkgs/applications/misc/zathura/wrapper.nix
index 60e3bb9fd53..49f78729a31 100644
--- a/pkgs/applications/misc/zathura/wrapper.nix
+++ b/pkgs/applications/misc/zathura/wrapper.nix
@@ -4,8 +4,7 @@ symlinkJoin {
 
   paths = with zathura_core; [ man dev out ] ++ plugins;
 
-
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = let
     fishCompletion = "share/fish/vendor_completions.d/zathura.fish";
diff --git a/pkgs/applications/misc/zettlr/default.nix b/pkgs/applications/misc/zettlr/default.nix
index 3d762d9ab2a..eb8c81dae7e 100644
--- a/pkgs/applications/misc/zettlr/default.nix
+++ b/pkgs/applications/misc/zettlr/default.nix
@@ -1,18 +1,26 @@
-{ appimageTools, lib, fetchurl, gtk3, gsettings-desktop-schemas}:
+{ appimageTools
+, lib
+, fetchurl
+, gtk3
+, gsettings-desktop-schemas
+, texlive
+, pandoc
+}:
 
 # Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
 let
   pname = "zettlr";
-  version = "1.7.5";
+  version = "1.8.7";
   name = "${pname}-${version}";
   src = fetchurl {
     url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
-    sha256 = "040lx01ywdpla34d4abkmh51kchr11s17la6fk6yq77y8zb87xzi";
+    sha256 = "0zbmlk5qk92b3zycs0bmdwgc8fn4a4dv1yvq9q8q2wxz4ammx6c0";
   };
   appimageContents = appimageTools.extractType2 {
     inherit name src;
   };
-in appimageTools.wrapType2 rec {
+in
+appimageTools.wrapType2 rec {
   inherit name src;
 
   profile = ''
@@ -20,11 +28,11 @@ in appimageTools.wrapType2 rec {
   '';
 
   multiPkgs = null; # no 32bit needed
-  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+  extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ texlive pandoc ];
   extraInstallCommands = ''
     mv $out/bin/{${name},${pname}}
-    install -m 444 -D ${appimageContents}/zettlr.desktop $out/share/applications/zettlr.desktop
-    install -m 444 -D ${appimageContents}/zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
+    install -m 444 -D ${appimageContents}/Zettlr.desktop $out/share/applications/zettlr.desktop
+    install -m 444 -D ${appimageContents}/Zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
     substituteInPlace $out/share/applications/zettlr.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
 
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index a1ea1d64c63..3b5e00a7ffb 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -17,7 +17,7 @@
 , glib
 , gtk3
 , icu
-, iproute
+, iproute2
 , krb5
 , lib
 , mesa
@@ -133,7 +133,7 @@ stdenv.mkDerivation rec {
         --replace "/bin/sh" "${bash}/bin/sh" \
         --replace "cat" "${coreutils}/bin/cat" \
         --replace "chattr" "${e2fsprogs}/bin/chattr" \
-        --replace "mv" "${coreutils}/bin/mv" \
+        --replace "mv " "${coreutils}/bin/mv " \
         --replace "pkill" "${procps}/bin/pkill"
     done
 
@@ -145,7 +145,7 @@ stdenv.mkDerivation rec {
         --replace "/bin/sh" "${bash}/bin/sh" \
         --replace "/opt/" "$out/opt/" \
         --replace "chattr" "${e2fsprogs}/bin/chattr" \
-        --replace "mv" "${coreutils}/bin/mv"
+        --replace "mv " "${coreutils}/bin/mv "
     done
 
     substituteInPlace $out/lib/systemd/system/appgatedriver.service \
@@ -169,12 +169,12 @@ stdenv.mkDerivation rec {
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "$ORIGIN:$out/opt/appgate/service/:$out/opt/appgate/:${rpath}" $binary
     done
 
-    wrapProgram $out/opt/appgate/appgate-driver --prefix PATH : ${lib.makeBinPath [ iproute networkmanager dnsmasq ]}
+    wrapProgram $out/opt/appgate/appgate-driver --prefix PATH : ${lib.makeBinPath [ iproute2 networkmanager dnsmasq ]}
     wrapProgram $out/opt/appgate/linux/set_dns --set PYTHONPATH $PYTHONPATH
   '';
   meta = with lib; {
     description = "Appgate SDP (Software Defined Perimeter) desktop client";
-    homepage = https://www.appgate.com/support/software-defined-perimeter-support;
+    homepage = "https://www.appgate.com/support/software-defined-perimeter-support";
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ymatsiuk ];
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/bee/bee.nix b/pkgs/applications/networking/bee/bee.nix
index 5ffff918750..b0d05d928c0 100644
--- a/pkgs/applications/networking/bee/bee.nix
+++ b/pkgs/applications/networking/bee/bee.nix
@@ -1,4 +1,4 @@
-{ version ? "release", stdenv, lib, fetchFromGitHub, buildGoModule, coreutils }:
+{ version ? "release", lib, fetchFromGitHub, buildGoModule, coreutils }:
 
 let
 
@@ -9,16 +9,16 @@ let
       rev = "824636a2c2629c329ab10275cef6a0b7395343ad";
       goVersionString = "g" + builtins.substring 0 7 rev;     # this seems to be some kind of standard of git describe...
       sha256 = "0ly1yqjq29arbak8lchdradf39l5bmxpbfir6ljjc7nyqdxz0sxg";
-      vendorSha256 = "0w1db7xpissdpf8i5bb96z92zbasj5x9kk3kcisxn0dwla6n55n3";
+      vendorSha256 = "sha256-w5ZijaK8Adt1ZHPMmXqRWq0v0jdprRKRu03rePtZLXA=";
     };
     release = rec {
       pname = "bee";
-      version = "0.4.2";
+      version = "0.5.0";
       rev = "refs/tags/v${version}";
-      sha256 = "1jg7aivsgdb9bm87dlmwpf1g6gla8j6v55xmzs8h5xmwqcybbmag";
-      vendorSha256 = "0w1db7xpissdpf8i5bb96z92zbasj5x9kk3kcisxn0dwla6n55n3";
+      sha256 = "sha256-3Oy9RhgMPRFjUs3Dj8XUhAqoxx5BTi32OiK4Y8YEG2Q=";
+      vendorSha256 = "sha256-w5ZijaK8Adt1ZHPMmXqRWq0v0jdprRKRu03rePtZLXA=";
     };
-    "0.4.2" = release;
+    "0.5.0" = release;
     "0.4.1" = rec {
       pname = "bee";
       version = "0.4.1";
diff --git a/pkgs/applications/networking/browsers/amfora/default.nix b/pkgs/applications/networking/browsers/amfora/default.nix
index e951f4c53c0..04871239eda 100644
--- a/pkgs/applications/networking/browsers/amfora/default.nix
+++ b/pkgs/applications/networking/browsers/amfora/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "amfora";
-  version = "1.7.2";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "makeworld-the-better-one";
     repo = "amfora";
     rev = "v${version}";
-    sha256 = "KAOIx401G/kB/TclhidOnUja1P+mLo/mUwAqGJfVfyg=";
+    sha256 = "sha256-q83fKs27vkrUs3+AoKZ2342llj6u3bvbLsdnT9DnVUs=";
   };
 
-  vendorSha256 = "rOEM7iEkm42g8yJxY7qdTCSbkPMDHqlAsK7/ud8IDLY=";
+  vendorSha256 = "sha256-0blHwZwOcgC4LcmZSJPRvyQzArCsaMGgIw+cesO+qOo=";
 
   postInstall = lib.optionalString (!stdenv.isDarwin) ''
     sed -i "s:amfora:$out/bin/amfora:" amfora.desktop
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/makeworld-the-better-one/amfora";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ deifactor ];
+    changelog = "https://github.com/makeworld-the-better-one/amfora/blob/v${version}/CHANGELOG.md";
   };
 }
diff --git a/pkgs/applications/networking/browsers/angelfish/default.nix b/pkgs/applications/networking/browsers/angelfish/default.nix
new file mode 100644
index 00000000000..831fabf2deb
--- /dev/null
+++ b/pkgs/applications/networking/browsers/angelfish/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, corrosion
+, extra-cmake-modules
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kirigami2
+, knotifications
+, kpurpose
+, kwindowsystem
+, qtquickcontrols2
+, qtwebengine
+, rustPlatform
+}:
+
+mkDerivation rec {
+  pname = "angelfish";
+  version = "1.8.0";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "plasma-mobile";
+    repo = "angelfish";
+    rev = "v${version}";
+    sha256 = "0pj2kw7lmxh7diwdcmk24qxqslavhvf23r2i6h549gbllbzk219f";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "0cyrmhlg0kjr14842ckbjdljc2zc28al0y9i8w5l0qzr18krgc0m";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    corrosion
+    extra-cmake-modules
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  cmakeFlags = [
+    "-DRust_CARGO=${rustPlatform.rust.cargo}/bin/cargo"
+  ];
+
+  buildInputs = [
+    kconfig
+    kcoreaddons
+    kdbusaddons
+    ki18n
+    kirigami2
+    knotifications
+    kpurpose
+    kwindowsystem
+    qtquickcontrols2
+    qtwebengine
+  ];
+
+  meta = with lib; {
+    description = "Web browser for Plasma Mobile";
+    homepage = "https://apps.kde.org/en/mobile.angelfish";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/networking/browsers/asuka/default.nix b/pkgs/applications/networking/browsers/asuka/default.nix
index 98c8a8afae0..6702fdaf7a9 100644
--- a/pkgs/applications/networking/browsers/asuka/default.nix
+++ b/pkgs/applications/networking/browsers/asuka/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, rustPlatform, fetchurl, pkg-config, ncurses, openssl, Security }:
+{ lib, stdenv, rustPlatform, fetchFromSourcehut, pkg-config, ncurses, openssl, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "asuka";
   version = "0.8.1";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
-    sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06";
+  src = fetchFromSourcehut {
+    owner = "~julienxx";
+    repo = pname;
+    rev = version;
+    sha256 = "1y8v4qc5dng3v9k0bky1xlf3qi9pk2vdsi29lff4ha5310467f0k";
   };
 
   cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 6e772c7931d..f544660913f 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -30,6 +30,7 @@
 , libXrandr
 , libXrender
 , libXScrnSaver
+, libxshmfence
 , libXtst
 , mesa
 , nspr
@@ -72,6 +73,7 @@ rpath = lib.makeLibraryPath [
   libXi
   libXrandr
   libXrender
+  libxshmfence
   libXtst
   libuuid
   mesa
@@ -88,11 +90,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.19.88";
+  version = "1.21.77";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "jySedvm9V3O4kri1PgoqC0OsC1gvB0Nwx8leoUZnHK0=";
+    sha256 = "Q7paeGAvdmc4+FP28ASLlJhN1ui7M5fDpxnrh+gbEm4=";
   };
 
   dontConfigure = true;
@@ -158,7 +160,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://brave.com/";
     description = "Privacy-oriented browser for Desktop and Laptop computers";
-    changelog = "https://github.com/brave/brave-browser/blob/v${version}/CHANGELOG.md";
+    changelog = "https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md";
     longDescription = ''
       Brave browser blocks the ads and trackers that slow you down,
       chew up your bandwidth, and invade your privacy. Brave lets you
diff --git a/pkgs/applications/networking/browsers/castor/default.nix b/pkgs/applications/networking/browsers/castor/default.nix
index be3d8295f99..259a8780901 100644
--- a/pkgs/applications/networking/browsers/castor/default.nix
+++ b/pkgs/applications/networking/browsers/castor/default.nix
@@ -1,5 +1,5 @@
 { lib
-, fetchurl
+, fetchFromSourcehut
 , rustPlatform
 , pkg-config
 , wrapGAppsHook
@@ -15,9 +15,11 @@ rustPlatform.buildRustPackage rec {
   pname = "castor";
   version = "0.8.16";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~julienxx/castor/archive/${version}.tar.gz";
-    sha256 = "1qwsprwazkzcs70h219fhh5jj5s5hm1k120fn3pk4qivii4lyhah";
+  src = fetchFromSourcehut {
+    owner = "~julienxx";
+    repo = pname;
+    rev = version;
+    sha256 = "0rwg1w7srjwa23mkypl8zk6674nhph4xsc6nc01f6g5k959szylr";
   };
 
   cargoSha256 = "0yn2kfiaz6d8wc8rdqli2pwffp5vb1v3zi7520ysrd5b6fc2csf2";
@@ -39,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   postInstall = "make PREFIX=$out copy-data";
 
   # Sometimes tests fail when run in parallel
-  cargoParallelTestThreads = false;
+  dontUseCargoParallelThreads = true;
 
   meta = with lib; {
     description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index c4a5508b753..1fecadc2ec0 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -89,5 +89,6 @@ mkChromiumDerivation (base: rec {
       then ["aarch64-linux" "x86_64-linux"]
       else [];
     timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
+    broken = elem channel [ "beta" "dev" ];
   };
 })
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index d93fc5ceb40..8d0a59f2919 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -8,7 +8,7 @@
 , libusb1, pciutils, nss, re2
 
 , python2Packages, perl, pkg-config
-, nspr, systemd, kerberos
+, nspr, systemd, libkrb5
 , util-linux, alsaLib
 , bison, gperf
 , glib, gtk3, dbus-glib
@@ -17,7 +17,7 @@
 , protobuf, speechd, libXdamage, cups
 , ffmpeg, libxslt, libxml2, at-spi2-core
 , jre8
-, pipewire_0_2
+, pipewire
 , libva
 , libdrm, wayland, mesa, libxkbcommon # Ozone
 
@@ -135,12 +135,12 @@ let
     buildInputs = defaultDependencies ++ [
       nspr nss systemd
       util-linux alsaLib
-      bison gperf kerberos
+      bison gperf libkrb5
       glib gtk3 dbus-glib
       libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
       pciutils protobuf speechd libXdamage at-spi2-core
       jre
-      pipewire_0_2
+      pipewire
       libva
       libdrm wayland mesa.drivers libxkbcommon
     ] ++ optional gnomeKeyringSupport libgnome-keyring3
@@ -250,13 +250,10 @@ let
       symbol_level = 0;
       fieldtrial_testing_like_official_build = true;
 
-      # Google API keys, see:
-      #   http://www.chromium.org/developers/how-tos/api-keys
-      # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
-      # please get your own set of keys.
+      # Google API key, see: https://www.chromium.org/developers/how-tos/api-keys
+      # Note: The API key is for NixOS/nixpkgs use ONLY.
+      # For your own distribution, please get your own set of keys.
       google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
-      google_default_client_id = "404761575300.apps.googleusercontent.com";
-      google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
     } // optionalAttrs proprietaryCodecs {
       # enable support for the H.264 codec
       proprietary_codecs = true;
@@ -266,6 +263,7 @@ let
       use_pulseaudio = true;
       link_pulseaudio = true;
     } // optionalAttrs (chromiumVersionAtLeast "89") {
+      rtc_pipewire_version = "0.3"; # TODO: Can be removed once ungoogled-chromium is at M90
       # Disable PGO (defaults to 2 since M89) because it fails without additional changes:
       # error: Could not read profile ../../chrome/build/pgo_profiles/chrome-linux-master-1610647094-405a32bcf15e5a84949640f99f84a5b9f61e2f2e.profdata: Unsupported instrumentation profile format version
       chrome_pgo_phase = 0;
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 79899d822b0..1ad7bc8bfa8 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,8 +1,8 @@
 { newScope, config, stdenv, fetchurl, makeWrapper
-, llvmPackages_11, ed, gnugrep, coreutils, xdg-utils
+, llvmPackages_11, llvmPackages_12, ed, gnugrep, coreutils, xdg-utils
 , glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
 , libva ? null
-, pipewire_0_2
+, pipewire
 , gcc, nspr, nss, runCommand
 , lib
 
@@ -13,7 +13,6 @@
 , gnomeKeyringSupport ? false
 , proprietaryCodecs ? true
 , enableWideVine ? false
-, enableVaapi ? false # Disabled by default due to unofficial support
 , ungoogled ? false # Whether to build chromium or ungoogled-chromium
 , cupsSupport ? true
 , pulseSupport ? config.pulseaudio or stdenv.isLinux
@@ -40,6 +39,8 @@ let
           inherit (upstream-info.deps.gn) url rev sha256;
         };
       });
+    } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "90") {
+      llvmPackages = llvmPackages_12;
     });
 
     browser = callPackage ./browser.nix { inherit channel enableWideVine ungoogled; };
@@ -161,14 +162,13 @@ in stdenv.mkDerivation {
 
   buildCommand = let
     browserBinary = "${chromiumWV}/libexec/chromium/chromium";
-    libPath = lib.makeLibraryPath [ libva pipewire_0_2 ];
+    libPath = lib.makeLibraryPath [ libva pipewire ];
 
   in with lib; ''
     mkdir -p "$out/bin"
 
     eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
-      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
-      ${lib.optionalString enableVaapi "--add-flags --enable-accelerated-video-decode"}
+      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)}
 
     ed -v -s "$out/bin/chromium" << EOF
     2i
diff --git a/pkgs/applications/networking/browsers/chromium/get-commit-message.py b/pkgs/applications/networking/browsers/chromium/get-commit-message.py
new file mode 100755
index 00000000000..1aafc6147fd
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/get-commit-message.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p python3Packages.feedparser python3Packages.requests
+
+# This script prints the Git commit message for stable channel updates.
+
+import re
+import textwrap
+
+import feedparser
+import requests
+
+feed = feedparser.parse('https://chromereleases.googleblog.com/feeds/posts/default')
+html_tags = re.compile(r'<[^>]+>')
+
+for entry in feed.entries:
+    if entry.title != 'Stable Channel Update for Desktop':
+        continue
+    url = requests.get(entry.link).url.split('?')[0]
+    content = entry.content[0].value
+    if re.search(r'Linux', content) is None:
+        continue
+    #print(url)  # For debugging purposes
+    version = re.search(r'\d+(\.\d+){3}', content).group(0)
+    print('chromium: TODO -> ' + version)
+    print('\n' + url)
+    if fixes := re.search(r'This update includes .+ security fixes\.', content):
+        fixes = html_tags.sub('', fixes.group(0))
+        zero_days = re.search(r'Google is aware of reports that .+ in the wild\.', content)
+        if zero_days:
+            fixes += " " + zero_days.group(0)
+        print('\n' + '\n'.join(textwrap.wrap(fixes, width=72)))
+    if cve_list := re.findall(r'CVE-[^: ]+', content):
+        cve_string = ' '.join(cve_list)
+        print("\nCVEs:\n" + '\n'.join(textwrap.wrap(cve_string, width=72)))
+    break  # We only care about the most recent stable channel update
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 4a408ad208b..7660f2f9e69 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,62 +1,62 @@
 {
   "stable": {
-    "version": "88.0.4324.182",
-    "sha256": "10av060ix6lgsvv99lyvyy03r0m3zwdg4hddbi6dycrdxk1iyh9h",
-    "sha256bin64": "1rjg23xiybpnis93yb5zkvglm3r4fds9ip5mgl6f682z5x0yj05b",
+    "version": "89.0.4389.114",
+    "sha256": "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j",
+    "sha256bin64": "06wblyvyr93032fbzwm6qpzz4jjm6adziq4i4n6kmfdix2ajif8a",
     "deps": {
       "gn": {
-        "version": "2020-11-05",
+        "version": "2021-01-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
-        "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
+        "rev": "595e3be7c8381d4eeefce62a63ec12bae9ce5140",
+        "sha256": "08y7cjlgjdbzja5ij31wxc9i191845m01v1hc7y176svk9y0hj1d"
       }
     },
     "chromedriver": {
-      "version": "88.0.4324.96",
-      "sha256_linux": "0hhy3c50hlnic6kz19565s8wv2yn7k45hxnkxbvb46zhcc5s2z41",
-      "sha256_darwin": "11mzcmp6dr8wzyv7v2jic7l44lr77phi4y3z1ghszhfdz5dil5xp"
+      "version": "89.0.4389.23",
+      "sha256_linux": "169inx1xl7750mdd1g7yji72m33kvpk7h1dy4hyj0qignrifdm0r",
+      "sha256_darwin": "1a84nn4rnd215h4sjghmw03mdr49wyab8j4vlnv3xp516yn07gr3"
     }
   },
   "beta": {
-    "version": "89.0.4389.47",
-    "sha256": "022fq3mbd3j9a7lf02936ks0yvf73bwz1ws6m6zmnn9v8waardj2",
-    "sha256bin64": "09gjbg8678xfh22r3gzjvrkhgda77pr8an4j5ka5672jvhj4hbq9",
+    "version": "90.0.4430.51",
+    "sha256": "1k87fw0pv0d2zlxm0il9b5p60gdz6l44jssmsns4zy2fmd9316wr",
+    "sha256bin64": "0q5yx7bc266azs3nl29ksz4yafvy2nmzn09ifcgr69fjkvsr1qh7",
     "deps": {
       "gn": {
-        "version": "2021-01-07",
+        "version": "2021-02-09",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "595e3be7c8381d4eeefce62a63ec12bae9ce5140",
-        "sha256": "08y7cjlgjdbzja5ij31wxc9i191845m01v1hc7y176svk9y0hj1d"
+        "rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
+        "sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
       }
     }
   },
   "dev": {
-    "version": "90.0.4412.3",
-    "sha256": "1yjpfircdl38nrjh3an469g7q8178jyvawkfpnzc5aqsgkpkl442",
-    "sha256bin64": "1asdjicb4l4l2ak3fkxcwdx1avpc1m8wvyhxmj1k3bqa4qmvz3hz",
+    "version": "91.0.4464.5",
+    "sha256": "1djwlb74cgfc5ns7w2m10qcd2d2fz0i90k5szcfsm899c7x3zgyf",
+    "sha256bin64": "0kqr5mlbq23ahmyg67lh15j5sqa29wi301s8rvfgh0gxf10vgc2l",
     "deps": {
       "gn": {
-        "version": "2021-01-25",
+        "version": "2021-03-30",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "55ad154c961d8326315b1c8147f4e504cd95e9e6",
-        "sha256": "0x5i1axkg44z412357sdb6kgs1h9ykzy8p5c7s40bybs4hg33lkc"
+        "rev": "5667cc61018864b17542e0baff8b790f245583b0",
+        "sha256": "0mr7jqk1r46ngrx4hrg8gxnzqxfxc1c9a966gpsjlgc00k390m5s"
       }
     }
   },
   "ungoogled-chromium": {
-    "version": "88.0.4324.150",
-    "sha256": "1hrqrggg4g1hjmaajbpydwsij2mfkfj5ccs1lj76nv4qj91yj4mf",
-    "sha256bin64": "0xyhvhppxk95clk6vycg2yca1yyzpi13rs3lhs4j9a482api6ks0",
+    "version": "89.0.4389.114",
+    "sha256": "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j",
+    "sha256bin64": "06wblyvyr93032fbzwm6qpzz4jjm6adziq4i4n6kmfdix2ajif8a",
     "deps": {
       "gn": {
-        "version": "2020-11-05",
+        "version": "2021-01-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
-        "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
+        "rev": "595e3be7c8381d4eeefce62a63ec12bae9ce5140",
+        "sha256": "08y7cjlgjdbzja5ij31wxc9i191845m01v1hc7y176svk9y0hj1d"
       },
       "ungoogled-patches": {
-        "rev": "88.0.4324.150-1",
-        "sha256": "0hzap19pbnfcskpzbqq7dqrankmlrq9q7m1xrf7aygqiir0ksp4y"
+        "rev": "89.0.4389.114-1",
+        "sha256": "0cr2i51gxhgl55c8f9w0ra3m5q2dk03sf7p2qn4bqq1l1l72hw6s"
       }
     }
   }
diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix
index 12adbc0a9b7..9a7551a6fff 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib
-, brotli, zstd, lzma, openssl, autoreconfHook, gettext, pkg-config, libev
+, brotli, zstd, xz, openssl, autoreconfHook, gettext, pkg-config, libev
 , gpm, libidn, tre, expat
 , # Incompatible licenses, LGPLv3 - GPLv2
   enableGuile        ? false,                                         guile ? null
@@ -13,17 +13,17 @@ 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 = [
-    ncurses xlibsWrapper bzip2 zlib brotli zstd lzma
+    ncurses xlibsWrapper bzip2 zlib brotli zstd xz
     openssl libidn tre expat libev
   ]
     ++ lib.optional stdenv.isLinux gpm
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 6b8a3b1c338..93b89e9031e 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -13,7 +13,7 @@
 , glibc
 , gtk2
 , gtk3
-, kerberos
+, libkrb5
 , libX11
 , libXScrnSaver
 , libxcb
@@ -33,6 +33,7 @@
 , nspr
 , nss
 , pango
+, pciutils
 , libheimdal
 , libpulseaudio
 , systemd
@@ -92,7 +93,6 @@ stdenv.mkDerivation {
   libPath = lib.makeLibraryPath
     [ stdenv.cc.cc
       alsaLib
-      (lib.getDev alsaLib)
       atk
       cairo
       curl
@@ -106,7 +106,7 @@ stdenv.mkDerivation {
       glibc
       gtk2
       gtk3
-      kerberos
+      libkrb5
       mesa
       libX11
       libXScrnSaver
@@ -126,9 +126,9 @@ stdenv.mkDerivation {
       nspr
       nss
       pango
+      pciutils
       libheimdal
       libpulseaudio
-      (lib.getDev libpulseaudio)
       systemd
       ffmpeg
     ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 4d72f210619..0971dd3b63f 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,965 +1,975 @@
 {
-  version = "85.0.2";
+  version = "87.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/87.0/linux-x86_64/ach/firefox-87.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "24a938fb96347b938db028452e5a1b9f6c63c43f1e9b7ff0bf2a43f92d1df45c";
+      sha256 = "656c92c9a588aed2059f4f68968735f884db6ee94b0619d983bd4affd2100174";
     }
-    { 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/87.0/linux-x86_64/af/firefox-87.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "5799e2c1c5408da29f9922cd1a694a0ef7d4250b504dd827d5cdeeb41bc7de6e";
+      sha256 = "0f8fe2b470177df3525fbf533934c66a5e4abdaa3dfb7848962ac148b224592d";
     }
-    { 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/87.0/linux-x86_64/an/firefox-87.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "04ee06350b7cc1f1ab808e8cff3d02060effbb9fa656c2f687b7cbe9d18b9c2b";
+      sha256 = "a96ae593965364871d35ba0fd6dcd1029254110ee59f4a7abe27cf6d273c7be6";
     }
-    { 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/87.0/linux-x86_64/ar/firefox-87.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "a92dbd6c4253a8ded0cf4681a6c165e6809e495d1aba84d2158b80d571c1c660";
+      sha256 = "58eaefaba44b4b0592442e709604b597c74fd81390f8fcc410a8e605956a0bdd";
     }
-    { 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/87.0/linux-x86_64/ast/firefox-87.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "eeee2c9a00ab94630f331d7f1e781ba5085415d816d403e14f356717cf5fa967";
+      sha256 = "ca33473b77b8a57c305fe89cdd66b95810441aa54295ed687736a24c9160e45f";
     }
-    { 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/87.0/linux-x86_64/az/firefox-87.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "107fab10c5ac5947676509fce31dec23e70b4cc2f1467e914157fab0555dbada";
+      sha256 = "6965f0b68279228a575dfb503eabae8d75f32e0fa8de119f4d48f0e9ec36d61c";
     }
-    { 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/87.0/linux-x86_64/be/firefox-87.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "a04273533574232e0b2c370e2d48ab2206b53b45743543fe0efeea8bd51988cc";
+      sha256 = "a19d6d94cc15d269dbddccae06b4c92a3436e57d45dbebe8c6a2ff23df66fd28";
     }
-    { 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/87.0/linux-x86_64/bg/firefox-87.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "0b18c8862ce9c26cb63919c3bd3aa911b6179eebcbc9a38001953b49dd09ad36";
+      sha256 = "885a44cf0acedc5ffbfcc73cce41f6eb2dcab13d070eeb156e64277b346a4fb1";
     }
-    { 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/87.0/linux-x86_64/bn/firefox-87.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "8aa13bccd6fcd9f9c91a18dae807394dc46ea32103608c829d4dd073861b95f3";
+      sha256 = "09773257768f061819fa92ec229c1f94b217c04e78781d8e59a8dc1225f92be7";
     }
-    { 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/87.0/linux-x86_64/br/firefox-87.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "121f9474e56deb5f2a606aa153c8f3c6b857f0966c9843257d22a8be01b609a6";
+      sha256 = "23ec95e130593c51384a64165c33f02c4c5af753313fbaf8fa0f94bca1184506";
     }
-    { 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/87.0/linux-x86_64/bs/firefox-87.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "c4781d938cd86988edc31674a46acb0120209b101d9b563c20ec6a213d161a03";
+      sha256 = "30455df45e86894fd5a75ef6b9989b64f49da8ac8bee9656ea2724cfca59555c";
     }
-    { 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/87.0/linux-x86_64/ca-valencia/firefox-87.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "f0b0e35ae0ba98d0585c45a660c85345b71f834e61875f923713f0c05a78509d";
+      sha256 = "8ca8a4ee40ac57140560c3aeb664d60be5ecd8842f328544924a97d910c02303";
     }
-    { 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/87.0/linux-x86_64/ca/firefox-87.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "1208d84a85694ce1327c9a8ab6cdb6aeb45b990704bbb9fef9b1edd664597fbb";
+      sha256 = "3cc1cd1c7657a704d3c6c1a42934eac75439c05af5617d2d24991d62d412237e";
     }
-    { 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/87.0/linux-x86_64/cak/firefox-87.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "ddbc3a5d3283994b7408fd8970023b71178c83db12ba8be54553395791bc9ace";
+      sha256 = "160c598f55c012fc92c0882f7062a82b8057177398edfcdeb41c60aa83570f1f";
     }
-    { 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/87.0/linux-x86_64/cs/firefox-87.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "c02faaf56a820c45bb38119c03becc53cd2ae25e93bed3ad93cc88f091b00a2d";
+      sha256 = "1209d5401b55441126bcc64faa9d7692c92d2c009a40587923c048bec0cf2508";
     }
-    { 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/87.0/linux-x86_64/cy/firefox-87.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "1d206ea516202af87511d13cbd8482b9dcbeca2447ac8b684937668afac68439";
+      sha256 = "d177530e3e31900a38e9127b5d60bcc3b937c76e8b12b13c289a29e2afd06c40";
     }
-    { 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/87.0/linux-x86_64/da/firefox-87.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "68976d8cd0ce910c6b8155a68a955f4dfd182fe7625ea3386f083fff27f216a9";
+      sha256 = "2e623b11e18d38dee391863115af75fae4119894a89606aa6f4194d04a1773c2";
     }
-    { 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/87.0/linux-x86_64/de/firefox-87.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "6510c8105420027f1632da15060d332f9ec93353c03111a592477bf45dae5925";
+      sha256 = "a29837d6c062ded4aed732cee06fe23773a57d62aecbca1e1a56c9d7a37423df";
     }
-    { 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/87.0/linux-x86_64/dsb/firefox-87.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "736a478e15f11126ad5dbdca66cd8938d72602041ff0c1f5f78101d4f62b1aa3";
+      sha256 = "cf584f97b136444861845bf1db0fe9d65d809f4a167a0f8bed780f94048fbb12";
     }
-    { 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/87.0/linux-x86_64/el/firefox-87.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "d0c2f1c156d239c2c410d15216a8d331cde8cdb7d54bdf40aa6519f582b93bbf";
+      sha256 = "73d03707575ef3270f7419d031fc85babdc498b1576d316abac273cd88dde30b";
     }
-    { 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/87.0/linux-x86_64/en-CA/firefox-87.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "0b68ac180a828a94743349cb53f64224d0013de610a5c9cffed9a9242caadab1";
+      sha256 = "1d11c8a1f23df4e88668beecee244f2d0743b006e46d96e4a6a35bffc341569d";
     }
-    { 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/87.0/linux-x86_64/en-GB/firefox-87.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "978397ce347115b87ac24c174ac4363bd345ef8471d25bfc4a639722ed7098e1";
+      sha256 = "d885931198cf3958fca683ee4c301f25610f6b4d5777068fd812bd53048aecb6";
     }
-    { 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/87.0/linux-x86_64/en-US/firefox-87.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "98763f4b1526811967d71e1bbb9552a9a3fd877321ecb497083b9e313b528c31";
+      sha256 = "3c9207bee0a998634c4fd12293acfae207d16508749ad405bf1e8717d06acf02";
     }
-    { 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/87.0/linux-x86_64/eo/firefox-87.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "a44c9b60e0e8342dcff31ab0bc2776680b9a94bea51ef237fc4b1f013fea6ab6";
+      sha256 = "3d57787fc840f80271f4d26810f347929a96479ca58bd416bf1f94e3499a07b9";
     }
-    { 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/87.0/linux-x86_64/es-AR/firefox-87.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "3229e32a2db2f5a7638a734c538fbaf1b83f9dd203bb67008460783239da04c8";
+      sha256 = "294c83cce5bbead7c263e950ed8bb2787d4735f4086521726400ef97c5d26b35";
     }
-    { 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/87.0/linux-x86_64/es-CL/firefox-87.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "574c90358de584b2bf4ec874a8f5a22fd777ceeca92c2894fe978a793faea7c2";
+      sha256 = "4e57c8a517084eee27edb6ad706a250ebb323419407f1ef9c9f9ae4f0dc8d8b9";
     }
-    { 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/87.0/linux-x86_64/es-ES/firefox-87.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "1e92995900cfdbb94d673d5efb02e84321dc8917edab1ce6c86b98f860f483a8";
+      sha256 = "9cdea632b1c1365d3c6ec08e9acd154819d081f025473b027da8d5e873da66bb";
     }
-    { 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/87.0/linux-x86_64/es-MX/firefox-87.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "56de604e9b32c7552825d87c0c2802bff66d72faad5d173fc71388118a47c046";
+      sha256 = "3698541ca4e9eb7f5c422082cbacd407870ffb170c9f9d0fe5f0c55dfe2b5449";
     }
-    { 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/87.0/linux-x86_64/et/firefox-87.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "53297a8e1f8c5d3ac05d44c3aac1f886d7065cec6666548c3a571ec06702eb63";
+      sha256 = "86a1986a7c63f63c559d36d3d42e95def0eb8a89075879c3253156e80ed161c1";
     }
-    { 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/87.0/linux-x86_64/eu/firefox-87.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "3b392831ee487279ffbc2156421243990a2abe94cdcf233c375f7949c28571a1";
+      sha256 = "5db12874991a1583ec09c934e18c93225b9831acc857d8c1b633f48c65e7a415";
     }
-    { 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/87.0/linux-x86_64/fa/firefox-87.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "bdaf06e327bc17ff05d82e27d85d4ff747b8af58e8a0b95599d4af0068c6948c";
+      sha256 = "5066d7b66933924442d683aaa19aec9385b66eaf49a55b155653ffba57c287d0";
     }
-    { 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/87.0/linux-x86_64/ff/firefox-87.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "8e029e2f755f107bbdaf4833332f94b062284529230ef148ec404d9954da5b83";
+      sha256 = "35c8271fa506fcb43c20ccafb928b109125f3a17f80870a82365bc36f787b5ba";
     }
-    { 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/87.0/linux-x86_64/fi/firefox-87.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "b1cf30bbd4046c3f6b200b876bfa022b34771d1aebb48a56b35817d5d0f46d18";
+      sha256 = "a3a0dc8cee1db20eb795aea5e94efafc96fc624e50159d8be7f449a093ffd291";
     }
-    { 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/87.0/linux-x86_64/fr/firefox-87.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "95f5265e9e7be13a8d50ff4e0c45f1247531fc78076081cf7045ffcf5e366846";
+      sha256 = "d9c1cdbbe2bacb06608f60745ab213cf80b27051c6b58f0ed7ef834b839da7fe";
     }
-    { 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/87.0/linux-x86_64/fy-NL/firefox-87.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "f22756db0256f2d7b3ccb15c15f1006834e8a53251ba8a315f0d72365d7140e3";
+      sha256 = "6f15a66cee03b494edf6a68641e0d5f886fe8528e23b9e129b11702cb9a4442e";
     }
-    { 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/87.0/linux-x86_64/ga-IE/firefox-87.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "7c67dc57553eca0c59293cff6f3097e56719d3c6b67d6599ea56ef799992e566";
+      sha256 = "31fcb9d815afc52db6328b076d89eab85a89d4553748ee7741912d23c420fea2";
     }
-    { 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/87.0/linux-x86_64/gd/firefox-87.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "a1a4ceefc1f83454280e70316fcc9d0c2bb635a77596bafeed2f06d3cb133340";
+      sha256 = "c9d0b868022bf5c0335ed488df0d6006541cdb7609f8854aedf22b931017ed31";
     }
-    { 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/87.0/linux-x86_64/gl/firefox-87.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "02afd3809826d41a75f6554cc7f49eb65725df2721f16484907eb0ad3cb172c4";
+      sha256 = "b546355345950e17202c4f2676731b0fe126d4d551131648f10e8c61cb8a2f26";
     }
-    { 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/87.0/linux-x86_64/gn/firefox-87.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "dc4de709435a0015d3c4fcb615cf8ed96814b2f6038c37ee5045e632891f8719";
+      sha256 = "51c403ad0460db69e2ed6213410d9fe2cb6ae9a5f100bd4f5ac7d36cc68b65c3";
     }
-    { 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/87.0/linux-x86_64/gu-IN/firefox-87.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "f9a66be242916abf1576397204c8fd0c88574fcc68fb06480d82a6d7008f1f67";
+      sha256 = "dad776c9a4809c574967bb18d1ef96ab8eb5e95df713fe88fce044b755951550";
     }
-    { 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/87.0/linux-x86_64/he/firefox-87.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "8739ec72ada89c64be8ebf692734a80f7a825c7201b4f7d43c3b0b8e18f8edba";
+      sha256 = "972135a17b091e8338762c4f3e9c60d826dd8b4f4e65c22d6cb07daabac95558";
     }
-    { 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/87.0/linux-x86_64/hi-IN/firefox-87.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "db9f6f97951291d86f8406d919377ef1121195665734edcb4ae731ebb15efa12";
+      sha256 = "5eec4571d25c0c62a0d773af25b2be93d158e06302a6e5d47a0fa60f0819941a";
     }
-    { 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/87.0/linux-x86_64/hr/firefox-87.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "b8fe4cf3e7c9d30c377504d58ae11c612cf74f0a02c3b25d4efe3ed6ee7365f6";
+      sha256 = "3183694fccb7a9560911d3d0813bf22ef79e1fdc8e72a5547258ff28b5ddbb6a";
     }
-    { 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/87.0/linux-x86_64/hsb/firefox-87.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "73207d15a6146e4bfe5b2324421993382a41f8648c0fe5e4f2ef72ed5182fc74";
+      sha256 = "82c02b623b0833468950a174a6c46bbf6c657252f0f876abb48e5b839a51f0c8";
     }
-    { 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/87.0/linux-x86_64/hu/firefox-87.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "d57ac494fa650d1f0d46f9109952c1493ed476dcf26fbe843c3e9c5a722eac3a";
+      sha256 = "0db68343a32b3a69b323b8cf7eade47a453499e092eae5d57414739e2ea92619";
     }
-    { 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/87.0/linux-x86_64/hy-AM/firefox-87.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "58ea459134ccddc63156161300f075cb747125a16aeeb8f616662783b2a8be73";
+      sha256 = "65b9c3902feac56c5563fe24a8c1d0f3510fca9b90062f88e4072a0ef6258c06";
     }
-    { 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/87.0/linux-x86_64/ia/firefox-87.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "d0e4ab532d39eb094de62ae41fb40055e8dc20f2b69856f0ff28633f3c2a5139";
+      sha256 = "50023eb339a5886cabdf7b71a65ab130fd0a5609cf18ceec9266100ce96e7c92";
     }
-    { 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/87.0/linux-x86_64/id/firefox-87.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "f60c707585e197263fd64a85a120cd4c52da17194d54a2fc538bdface62b1c08";
+      sha256 = "9a7279bcaeed8c6f6c44c4af728eddada5a96fd3c0204d10cd647d09721ec4e5";
     }
-    { 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/87.0/linux-x86_64/is/firefox-87.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "f0d2a9052ebefee0f7774e47fe13de41ba8c2b7cba5ca784d6d218fbb2549a75";
+      sha256 = "697d1ac2cbc467d8526b8cf6a525b21a22fecb78f421936901ed3ecf91911146";
     }
-    { 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/87.0/linux-x86_64/it/firefox-87.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "4946d59a1b5fe36ddeacb371efe2072f66623d82eb4f26cf0fe6b96e8dd54203";
+      sha256 = "4f51f5c632f21a0b589e2c358972f69107ccde6a32c5619e5b9273cd54198e98";
     }
-    { 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/87.0/linux-x86_64/ja/firefox-87.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "2a9f7705b5ef1258f925a6e48ccd99243003cb429bef9bba4ad56dfbd294ce11";
+      sha256 = "2ce4af36d057c26f8b9f95b3c578dc738ea9ee80fbbb20f0c7257312499fb3bc";
     }
-    { 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/87.0/linux-x86_64/ka/firefox-87.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "443b974d1631602734402a2a6dedaec8a7cc017e1abbb768ceb5e767978c36af";
+      sha256 = "9d4d54895d3237c7431c367a5c9fc07b99b11c91a1645e89fa7668111bb70ffd";
     }
-    { 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/87.0/linux-x86_64/kab/firefox-87.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "8f8283696206450cf21a4c88384ca915030a1dd7df9e93911b620dc9375e5db6";
+      sha256 = "4e67ce270e0a56f5acbe61a22368bc011ccf420201716bd36f5aec42a5d477bc";
     }
-    { 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/87.0/linux-x86_64/kk/firefox-87.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c9d78fdd7ac9d79dbb713a7130baceb4f19aca6bf8e7218950190ff95d921b6d";
+      sha256 = "c1f1feaad98c108f73d575c2b59c3ff2fa26f9fb97a8d30182aeb4bd587063b1";
     }
-    { 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/87.0/linux-x86_64/km/firefox-87.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "1fb2612268f53fe300955daadae60be238070dae35555707027a8a62ce4ec3f7";
+      sha256 = "f99973849aa9e9ca4f7534cc6eb3bb7ccd75cf95f600a4a124dd2750da16d2a0";
     }
-    { 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/87.0/linux-x86_64/kn/firefox-87.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "86208426d917883c2eb6ea9248feead33d4115093bddf5f1c690ed176adb9c84";
+      sha256 = "4625c75234dfdd35aaa383ebcef3ba9e093c73aec2ca524a0f7b5b28a2438de1";
     }
-    { 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/87.0/linux-x86_64/ko/firefox-87.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "b8057874e199124ebf283ab67e184dd2fed016b1bcb31a2f220e2e5d38d4f438";
+      sha256 = "d65454c1b36d26d7df7a1eb510f73e7fea47431c6e51dc2119ae6932e11f351e";
     }
-    { 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/87.0/linux-x86_64/lij/firefox-87.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "2e5bdea7a0f68efb0e6bdbe64a1df287644e14ce5fbb896040f3315c6412fc43";
+      sha256 = "ef7668799697e1d9c35661f1f6c403307a6deb6b2f265a2906d8baa699c224a4";
     }
-    { 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/87.0/linux-x86_64/lt/firefox-87.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "e1f79eba23036cdee87b9a5a2f48284bc006a191644d26e50a7ec61cb26d26c4";
+      sha256 = "bd34fdcad69d3e0c79e226899d0df49e5244a4072446fd1cb7a290261f8473c1";
     }
-    { 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/87.0/linux-x86_64/lv/firefox-87.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "4d8f26a3b6211799a87dbbab6692f4a00c81b1d70c6af990a684b1b65c255482";
+      sha256 = "34c379fa36cb7d1de95c99bfae8476f57a40d6d041941ad1884a8314f8511499";
     }
-    { 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/87.0/linux-x86_64/mk/firefox-87.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "3e5741eee9b27aa91827ef19e9b2b0200719120d07dccd37f5752ba1b746e29b";
+      sha256 = "4a9020fd5864d35efda8ee36454d72392ef3d2e5c50f0bcd6e6f3326dc8fb984";
     }
-    { 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/87.0/linux-x86_64/mr/firefox-87.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "247a11da64a28084d68d450cfa92ba66868891796d60a09ff9bf28d2af347a05";
+      sha256 = "6195db5fcfb95148c243d7fa4675fac0467f1093191bbb02dba714723a4f833a";
     }
-    { 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/87.0/linux-x86_64/ms/firefox-87.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "79e1823ce9d454d70660464776f1d492f67c3489f7e9ed20fef5a7331def0cf2";
+      sha256 = "95410958dbe73ead9ef89fcd81bdc3bd0bc6079cb8997962fd43fa07c6b546c7";
     }
-    { 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/87.0/linux-x86_64/my/firefox-87.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "ebe50de263127be29aecc611c2e4b5c60068245fe64ee0a72beb2680253f85dc";
+      sha256 = "c43a08c4410d7d5d48c29ebbb96765d45dcd20335125bc664f5593d56440e8f6";
     }
-    { 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/87.0/linux-x86_64/nb-NO/firefox-87.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "7e5f1266acf220fa8db165c3cc3ed2bf287ca809e3dce9b74e6284a8a3bd9e63";
+      sha256 = "7f39e801ca6ce05bf6398b914acff4a3cd9016503a4401f9b51f92bd4b2c6737";
     }
-    { 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/87.0/linux-x86_64/ne-NP/firefox-87.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "0b7fecf7497937709d83e002951ec4425b080fe4a6f6cc967a3eab65db93a212";
+      sha256 = "b3ccaa031229d8e369f1acedb49bd159d282cd771205beb2876a8c7d4fc90413";
     }
-    { 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/87.0/linux-x86_64/nl/firefox-87.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "7125adcabd21b4edb2828b295713b3a35cd174abea748d5d4f8456c3e18e5707";
+      sha256 = "3647e87528883cd7bc3310000f77237dac6dc57b62b664c434b16b9bf736930c";
     }
-    { 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/87.0/linux-x86_64/nn-NO/firefox-87.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "560d195e6b472228403b2fd5651c7a61e84491e788faafb77af511e3c74e7fb5";
+      sha256 = "3a94b93c5bd68f82ff9d310295f6397b902390061d21c0560a0906415e7150f0";
     }
-    { 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/87.0/linux-x86_64/oc/firefox-87.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "ae15b401c284e5e68819e68b0e9e76ca909ff167f2d15b3d77b546708a7e7369";
+      sha256 = "a6fcecb568052565e051879487b34fce54b0e3ca3cc761dd27749d949153523b";
     }
-    { 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/87.0/linux-x86_64/pa-IN/firefox-87.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "32d9ef570e718ef79b004fcbb9a7e212d06e8171c0056f90709423495c3c7bdd";
+      sha256 = "14b10789c0d94e60c85be5594a0a11654a31e60518c78c04e4bea2b5e64843bb";
     }
-    { 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/87.0/linux-x86_64/pl/firefox-87.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "2201fb7b8edb8ce2b3446a4accf3f0ace2b1a18a7690a20b6e64ecb5ee1a61e2";
+      sha256 = "44aadea74c71dc86d7a5e0cbc04acbe2e26e46add5daaf0f8b31c4a17b439346";
     }
-    { 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/87.0/linux-x86_64/pt-BR/firefox-87.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "f80d4d45078bb3884d8302913ac738f33cd984709e95e279d341284b9c29749c";
+      sha256 = "057eb47c7f45a1c0005a508bb36ee04b3edfce0e23e175fa311c9f1cc49b7e03";
     }
-    { 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/87.0/linux-x86_64/pt-PT/firefox-87.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "aba0a4166f0b815e1bc96c4faca818e82adc4b4d1bb8d26cd1f086de681eb56b";
+      sha256 = "dd33f93ef7acd1e183902bd85b292b7073beb9fca3b46279f0405bcd06016771";
     }
-    { 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/87.0/linux-x86_64/rm/firefox-87.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "450640a39b0773a255c97d884d51f7dd0de04da523e28dcfb9680e750b68e965";
+      sha256 = "dd7649d8de678648f54a6dab7a66246abb6b514ccb5044eebff5f6689bae99d7";
     }
-    { 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/87.0/linux-x86_64/ro/firefox-87.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "eb20d1a28f510ca98baf24c10feb186d21900690d9f0c8be5c180b72c9d3408d";
+      sha256 = "bcbc82632f8a6802285f23bf0238738a5abe5e77d70596261cf7fbe6649c9560";
     }
-    { 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/87.0/linux-x86_64/ru/firefox-87.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "7b0c8c5b5cdbb66b36366289f7b65263abb19c174ac89cbb2970a5742eec2d66";
+      sha256 = "bedcd965e2a460bbe2aef0fad6bfe524044ad29225d26009d5311b8796bcb64f";
     }
-    { 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/87.0/linux-x86_64/si/firefox-87.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "1f2e5c35d9766cb46c9c5ce5ff0f6c95ca12d0c14d12cc29d098562b8f35e9b1";
+      sha256 = "bb93e1dc7621094f32e385632844169a8dc51369be8c5ca459dc17708e1d1ed8";
     }
-    { 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/87.0/linux-x86_64/sk/firefox-87.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "528d3270d9bd722545fb57ab09059e0f43c0f605e479c0869cbe0757d1f38d8e";
+      sha256 = "d7dfbfcded930a7d8aa03e482c66004202824256255cf08aee5a84a41d825285";
     }
-    { 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/87.0/linux-x86_64/sl/firefox-87.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "d4948a03a97424c7b499e339a509b2ebba9b716c84e4713b140576bd787178ca";
+      sha256 = "3ab06c56331850805e8e925deefb3cd0d21913fe88e04d6cd16ad9c59041d444";
     }
-    { 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/87.0/linux-x86_64/son/firefox-87.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "34a841faec9720c9ec32d6e00ca775d266f47ca3b660876cbd4a1d7c9d7b87af";
+      sha256 = "6b93d5b1eeaf64ed591a285b1384d63dec16f388609c845e12f4565ed2bb32af";
     }
-    { 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/87.0/linux-x86_64/sq/firefox-87.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "aa5688e676bbb8ae87f089d78d4d6cb2a9c3393bf252a7c277ab6a8c97a80951";
+      sha256 = "834a04d54a73886c58d0360c675b137b44a69b34003e5d77ba8516397e976874";
     }
-    { 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/87.0/linux-x86_64/sr/firefox-87.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "882263a340ef6b11b35e91262620218078c87b193f3d0ca8eb3a9365dfb98d60";
+      sha256 = "d629d7004fd5c3298e61ec154c7983b8b7bcc4ee8552ebbd53df81eec85e5cb0";
     }
-    { 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/87.0/linux-x86_64/sv-SE/firefox-87.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "5b8baf5ee22e5da51040afb4cbdb4a6f165aecb117d181561c97903a0e63b74d";
+      sha256 = "c3d19f42894dac47f78684ea1a9bc9d7a6fbfd51b4186bcb06679a6666a280e6";
     }
-    { 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/87.0/linux-x86_64/szl/firefox-87.0.tar.bz2";
+      locale = "szl";
+      arch = "linux-x86_64";
+      sha256 = "3572e4ef3dc20960e60f342e0dcbb4ca374c9184cf84c40d644c3677b8dbf4b8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ta/firefox-87.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "14a00497f7a4f27680e95126b4584a13d3376b8d4f39fe0a0de9a7356bd8dca2";
+      sha256 = "b2f40c2f906fa1cdc67ba12faaab62468e71b9c9ec1c28790db56a4728e5f897";
     }
-    { 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/87.0/linux-x86_64/te/firefox-87.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "0de38fdd91056121d68734c76b799534921e8adf37566465a72b4fce9d5af693";
+      sha256 = "81f135e5b9e1c90cb22baee13c5ebd5d2a954f3d3a31be74489eb9bbf4dda7ce";
     }
-    { 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/87.0/linux-x86_64/th/firefox-87.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "80aff43b79ab4343d6b9bb2a5eebada3ef376313fe47cb2d1d7ad51f2f2a57ad";
+      sha256 = "dac4e7326e9a2b0c6eec8361ebcf23afc95087f5fabb964c7802856bd8de02cb";
     }
-    { 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/87.0/linux-x86_64/tl/firefox-87.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "acdcbb66a68421030634bf1ea1c265ff38e84dbe010aa41058da64ce966d1e57";
+      sha256 = "9be7f3be1ebdfc19c8da8a70b1eef8108c6508dc6c37b39824ef11756f62768c";
     }
-    { 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/87.0/linux-x86_64/tr/firefox-87.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "a3365e32fb78743ae45f89ae1740a7c51cd11e927454cc836bac4e9f62cd9abe";
+      sha256 = "d7be3f1cab9759042cc30002063764dc66a9f622df71291daf93faa204090b02";
     }
-    { 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/87.0/linux-x86_64/trs/firefox-87.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "a9da73cdade15ce508678c8347c6bf03c2d93578cfd095e0c586682efba7f2fd";
+      sha256 = "31b5dc1f40614975a8e3fa05caa0dd8dcab6b15dd0ff1ac4626d9c19b3e763ba";
     }
-    { 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/87.0/linux-x86_64/uk/firefox-87.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "05ebea023813ea0755e105f6f1451ee0d85bba5e52660230f25487bb9d997bd0";
+      sha256 = "a53842d484e2a632931a72b16b3c8e30c902dc1e46c3cf2a7711bea1fd0911b2";
     }
-    { 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/87.0/linux-x86_64/ur/firefox-87.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "ee4cda80858fc6ab33996a546be8de565a5d4d969ce26d0d1aa70ba7a923e496";
+      sha256 = "1353882717c9ae8e35523ab403870fb08f06ddec2df0730637195b1ee112e746";
     }
-    { 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/87.0/linux-x86_64/uz/firefox-87.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "7be525a02c9bbd4beee8678eb8488f50337aaf16883ebd41f5b2f67586b4e57d";
+      sha256 = "43feb49aefcd292f61faadda2771251017c6104038ab1474d43f5cae1e8ee3ab";
     }
-    { 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/87.0/linux-x86_64/vi/firefox-87.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "cc6a9d73810294f3261aaf26d4678c4a49b88375f48321384443f027a5a0b5ba";
+      sha256 = "d74a8de627e877e9c28cd19832605e039398dcea312a4784099151972d380516";
     }
-    { 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/87.0/linux-x86_64/xh/firefox-87.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "5eee0a8b232448992ab37546d698d4f212df53c562f29261023e64cf5762138c";
+      sha256 = "3251086b6f58c311906c49a6b499db17eaa3122a8ffcafb6f303db0489530560";
     }
-    { 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/87.0/linux-x86_64/zh-CN/firefox-87.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "94ac5a87b53fc8aa6769a4f6faf56d0089965514d8e811ca94ce2cd996e536e2";
+      sha256 = "4d3471f60685d251b10dd1dc06610bb3ebf9d7a4e03616a6f6d988278868dc05";
     }
-    { 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/87.0/linux-x86_64/zh-TW/firefox-87.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "025c04100a427e231db031aa43694a51191ded2c31f22913bcd694c734bd516d";
+      sha256 = "8fcfa5987a0cfa37d5408c88701378e970960d21d181342ea2a3d6c43f4e4cc3";
     }
-    { 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/87.0/linux-i686/ach/firefox-87.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "9f770cc6655b31ee907f949e0ba2f197d0d6fb3ae33ec1fcab311ffb7b109fb2";
+      sha256 = "42ba93ba360aac202bd0b653a982dea3c1ea0d5cd6c530deef47c29c189c197f";
     }
-    { 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/87.0/linux-i686/af/firefox-87.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "7ecd58201a5f3eb6fce474bdcbb0f672c8f492f30de3ec4f8f3cc48c2c967313";
+      sha256 = "9aef316b230194ec02ebb1e7780e61d85b1a4cd398d56ec0c5238bfb9af8278d";
     }
-    { 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/87.0/linux-i686/an/firefox-87.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "362d8bf290f67ea40c93fa058813c073a51911940b916595c0a8f1599ef46713";
+      sha256 = "a645abc8fafb548a495efdf9e88ce96af06d0fa4703ed5ea6b63ae79d309f3f6";
     }
-    { 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/87.0/linux-i686/ar/firefox-87.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "6b66c3f25eeea055e42a74ce6c327f09e8fe4f18acb1f947deee351d2cdda1da";
+      sha256 = "c85e9eaf8480ec226eab70a8b434f56fbd5f4f8a7e57f13b341d478142e4ef99";
     }
-    { 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/87.0/linux-i686/ast/firefox-87.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "0efef2406fe4d8093a1ce6bb56d1a54eaef5bb429b6fa560fff7373a7435cb3d";
+      sha256 = "96a1fe1ab748ba2f99a23fd149f1d0b60a27f4d96ad12bb2473ec0393597e968";
     }
-    { 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/87.0/linux-i686/az/firefox-87.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "bb0dc33a53a2f871b9743f17a36f50fabed87c137521404675e69df69f121350";
+      sha256 = "52d3bc8e60196814f7ed1d1732faf32b4129a25379e9f526db7e6b755bbd5746";
     }
-    { 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/87.0/linux-i686/be/firefox-87.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "7459818c037c45ff2969998b8d3f481eb8384802e5444e2f3c58340f316aec14";
+      sha256 = "8cadf14d2ce8341e8a6a11a298203e121125d12ca63833642186b79ae79b5643";
     }
-    { 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/87.0/linux-i686/bg/firefox-87.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "55f10b4a5cc1d06dcb81aca68c59a0aa64d7934e01c3f5f3dbcc27dd7497e3a5";
+      sha256 = "b60d8361c16f9b200255e6a904fdbf8da00a6f33a95280e456b471d54cac75d4";
     }
-    { 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/87.0/linux-i686/bn/firefox-87.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "6491efbf19bdf11b877d04dc22707864c07e9b52452408cf386bcb7bda3cf840";
+      sha256 = "1818bdfc297e2928255c006f8772478ce574c34748102ef64c5645ff59e3e2c3";
     }
-    { 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/87.0/linux-i686/br/firefox-87.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "4ae74e5843edbb01d35b7564b1e998f58fc1c50d849fca9a9e97e540abe6f140";
+      sha256 = "7989cb7ba1a6984891c6eaa48a35b09281d0b8c7532c46cb1c87008bff5b68fc";
     }
-    { 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/87.0/linux-i686/bs/firefox-87.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "c796121189e7bcf5ec5a90218db35fb34393d4e70ab7100567b3f7aa43daaea4";
+      sha256 = "d618086558e44219582ff263d9555855bd562e0a8b9d588c2a03734d003e1138";
     }
-    { 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/87.0/linux-i686/ca-valencia/firefox-87.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "a2097281cb1d5191992399686c26754a57d0a3bf241961374e335c225c4f7324";
+      sha256 = "8f74cf450192bc9dfd2877269f98663ebeb06fdd0cd6d25db3261e5d1f6b36c2";
     }
-    { 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/87.0/linux-i686/ca/firefox-87.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "4135f8421b6594a468dad1057d2684cc8c5e3fee1b095653d42c86c6b4b62ab2";
+      sha256 = "dee6a1ded1c10b4771294435c23e433ed209dfe55db9cbcc0454b0da23d26cec";
     }
-    { 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/87.0/linux-i686/cak/firefox-87.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "93799eaee71f6e1914c9161d075163bbc7c42d85b196301eb6891bb7c3debba6";
+      sha256 = "9e55f71f4040c21d79fabe4487cf5b660baca37c23875a31015e70a520fe0737";
     }
-    { 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/87.0/linux-i686/cs/firefox-87.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "25678ecf83437174adca71c682ff36145b0f68e45cdaec515fda671907c21133";
+      sha256 = "3121a7d49718ebf6c9a8babe0f57962547b54b99864f917d045f78ea4a4aede7";
     }
-    { 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/87.0/linux-i686/cy/firefox-87.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "85b571e0fe4f0bdedb8b433f8363a7649a1c5fdfeba40b35f069ef1518a28600";
+      sha256 = "02c5a049462f3d4c0a538a62756af8b4e59b1acdfc4d92d43639ee3a27e568a1";
     }
-    { 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/87.0/linux-i686/da/firefox-87.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "d998daa0d89d7d4a632c576f9d81d5fe7af3c0e54332968d593d88e5f81fa246";
+      sha256 = "8bc3ad5f69850d0fd4c91ef2296462fc2c641e8eb9835ac5ffe88a9dd518821a";
     }
-    { 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/87.0/linux-i686/de/firefox-87.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "a84adef78975397d45941ced4b17abfacc2a26a0b758336c99eb174b33f51c89";
+      sha256 = "2e9e562e10477f4a54d677bf2cd6becf87e4f40336fea8f4337f5e7d928f28f8";
     }
-    { 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/87.0/linux-i686/dsb/firefox-87.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "6647771748299fe56d9f023e612de6c3dfcd1b711cdcde74ea39bafb957deb5c";
+      sha256 = "fc1881741d5aeaa5cc34e9b86515c8ad637984d88814c48f8f014dfab55bf02c";
     }
-    { 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/87.0/linux-i686/el/firefox-87.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "73a7a168b65362901a4b198200e2a5167244e886131203543bcf83f2998261cc";
+      sha256 = "cc44c88c82adbdcde8690825851711b48212a49aa74b7485cc51d234a5027cfa";
     }
-    { 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/87.0/linux-i686/en-CA/firefox-87.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "d47e5707ab2ea2e369adffaaa49c52f461d3c01b6b28b31b0876bc5284d2de66";
+      sha256 = "c6a32c84bd3ed42ee801a5780cf45a6061fc8b37de4220907a98d674831c0a00";
     }
-    { 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/87.0/linux-i686/en-GB/firefox-87.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "6a50517b8ecd2fdbb897dca8de5a948214180fcb25ba3654faee7bb563d049d9";
+      sha256 = "cbf4e049602873ae13eabc2176657bdfb95fd4277360991ab4ef2a4e7be697f6";
     }
-    { 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/87.0/linux-i686/en-US/firefox-87.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "83ace0384a14e383e65716ef9305d72e39832b855ebecf2035e6267b4c9a97a5";
+      sha256 = "9127aee106dd9f09fac0c3cb89c5d75553384da4ec9be5943b60a5f55f31fccc";
     }
-    { 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/87.0/linux-i686/eo/firefox-87.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "2e8b25943115edae1dda4265aa3fd1edd8683318e47aa3b11f9e2f3d6f89a372";
+      sha256 = "7f75cb2fa8c73bc98a4d5b0f60ddbc66eff63a9caa271b98bb8eb4897fecdd49";
     }
-    { 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/87.0/linux-i686/es-AR/firefox-87.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "559b0de8d0d846f58e15675e31e0db57ba00ad2b98d3a042c1d6d25a9727e1a0";
+      sha256 = "090b13b1698e70c0d13409ffac5b45a044356556e3ecab970fd34907e16cfc11";
     }
-    { 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/87.0/linux-i686/es-CL/firefox-87.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "3297f38424fc6cdf2ddefa72732f977cb1ba1b309dbd3d845b63a038d748359c";
+      sha256 = "1453a40f9c2ae6794dc886d1c5462e4341141fe84792e32a08b0e6c4ac5183c9";
     }
-    { 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/87.0/linux-i686/es-ES/firefox-87.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "614e69e978f0e814b54150a013872081d6365d9e5bb03ee1147c5310d6315dff";
+      sha256 = "3dc986b05c389dab03cacd1672c8621f1ec93e5781dd79ec18358e3a1f2e8f84";
     }
-    { 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/87.0/linux-i686/es-MX/firefox-87.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "765d1ca2685a462f173d7ba1863a2263008cba71738548dcdab83f6c010b7dc9";
+      sha256 = "e6b18f0adf5ff99d1c7f84dbabc00b44ad7c3c2a4b95586f58d18421f28dfa1c";
     }
-    { 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/87.0/linux-i686/et/firefox-87.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "1465b6447bd476f98060321562ec0ab47b117f1271dc97f9924da573c77b5a3d";
+      sha256 = "573cabc8b8eed9e80d43ce960660737fad1f3bf43266d3e72ea475bec931eb9d";
     }
-    { 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/87.0/linux-i686/eu/firefox-87.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "4f25ccef829ad465d62676aec9c6daff9e5910cdb5447c0d9b5befee89b7e4f7";
+      sha256 = "5b3d1ecd842b30029fa1749ad7a1aa6486bf96f977d5f274ecababe7909c71b0";
     }
-    { 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/87.0/linux-i686/fa/firefox-87.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "c2bed62b36d648133edd1541799b231dbfb1c0c5fb6213ac28c3abc0a38ee66d";
+      sha256 = "41edf84920463d8c1f6ac8a8c0c5068143652129ec42377e3a3973d54e8477c0";
     }
-    { 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/87.0/linux-i686/ff/firefox-87.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "527591e25cd83c6ba7fe443dd40ad6963dd1b7f69a693e76cd1e18a2bf74c082";
+      sha256 = "492d2b1307558b1b19b5d1d88bcc0eb151d00ebc1331356520068597614919f4";
     }
-    { 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/87.0/linux-i686/fi/firefox-87.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "3c89fb2c42b854fa800c47e5c91d19defe56be5f6474c500bab309eb84df0a74";
+      sha256 = "f495c5d6965c2fdfd06d23616f4b017c600e07efc22984be743c3eadcb5eceb5";
     }
-    { 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/87.0/linux-i686/fr/firefox-87.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "a7b033c9df0e11abb6dae08f62dbfb34f740fb9d849e0bd8a027ecf0461ff5ac";
+      sha256 = "ba0cbea290a3911a6bc24fd52e726234f90213b05756a57aeeb01a8ebcc7af73";
     }
-    { 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/87.0/linux-i686/fy-NL/firefox-87.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "d162a3c113182178a7de0c5f3dab907badf9625ab50e8a922ceb4c34c4616c31";
+      sha256 = "9e9dfcea10f89836b3d63420f90f992b123dcec3beceb3eb739d47b15ced4a1a";
     }
-    { 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/87.0/linux-i686/ga-IE/firefox-87.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "637d65856d46474d51cff1da13b9b1e74984cb646cc5a6a643fcbc7fc1ec37fe";
+      sha256 = "316b6877a46f452d628509bf94c4e729080d93cb8590d8c17f9ce030823a3b86";
     }
-    { 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/87.0/linux-i686/gd/firefox-87.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "aab2f06d6ed6108fe48350ce0275d3d244f175e6c2427f54b403d6bd6ddc18cd";
+      sha256 = "34f2b2660f76ca13697ca029fe06cbdada7e8a0ee3f703c55b5290af4f59d687";
     }
-    { 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/87.0/linux-i686/gl/firefox-87.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "a5945bf732fc6e3edddb0e7bb9067c591f4fc347f56a35c8622311706d8c135b";
+      sha256 = "b61531887132193a3b68fc1394682305bf242bb8244f19c6e6dc158b0e6dda61";
     }
-    { 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/87.0/linux-i686/gn/firefox-87.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "6036a369187f5e30322d140e1add09cc0a51e5d092693a5acb65176c872bf53b";
+      sha256 = "286d7c949488a93370055dc650a70825df689b496de47382c7c326d0be16cf11";
     }
-    { 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/87.0/linux-i686/gu-IN/firefox-87.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "2b6d3c13a44b1234f591536c8f7f3cf5d1b56af53f366150e0565a36d4fa678e";
+      sha256 = "c04e2f3cd9514b8494122af0baa474b2e3ac91d62939ec1117f3b07efbffecc0";
     }
-    { 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/87.0/linux-i686/he/firefox-87.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "c3d01e14f24de5635a9c0d3c7625fcb9b84129ce9505d2601390f2d40fff5a3a";
+      sha256 = "9f4436ba36fe3d73f22c0837fa124e712c58169d9db1cccaad91187d895f4b95";
     }
-    { 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/87.0/linux-i686/hi-IN/firefox-87.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "23f1dd3a9603d797abf6a1411c7b6e44d4fb2dc7b26294670ce4c63cb859e42f";
+      sha256 = "e1c3674ef1a401c6f8f5f9f3f4cfdc9a858fc670f71d0b09d79677820ed6ddb1";
     }
-    { 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/87.0/linux-i686/hr/firefox-87.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "e30d8a599b28b05a3f83692dbadeb9185829b1a87c84ab5449f142ad1a7a8a44";
+      sha256 = "7dc0f6c2cf38f90741a8c0a2f5df22b32abb6399d9b24cc827f1ae972a481b23";
     }
-    { 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/87.0/linux-i686/hsb/firefox-87.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "1a6cb70573e9e0356e18a18d1a0a4d2f7188549c19cbed7e28d3b801915c22ca";
+      sha256 = "d59ee63de2bcb95575a782294cad35a0ea99eb4c8e4bde8539cd20326d85b41b";
     }
-    { 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/87.0/linux-i686/hu/firefox-87.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "c2cc048b05e197e028606535fdeb62a205c037eb5823560f187ec4152be41d97";
+      sha256 = "c9d13a693183290db6a62eda37da63f0d1535db5604a6f62d88b990ac3ea39ef";
     }
-    { 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/87.0/linux-i686/hy-AM/firefox-87.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "a4b6b0d0f05ce86d13dbf08448724106278891cb79387e29f9ba3874c1aa6ec7";
+      sha256 = "7edb84df00e57987f4cbef235a1fecc22b6dd7aaafe101f62e002e4e59caf56e";
     }
-    { 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/87.0/linux-i686/ia/firefox-87.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "f7d761ea9ee5d6037886a9aa8eb93747ae9f943957a296cdcca0dbbb0e7a2b38";
+      sha256 = "501cafeb34aef4d8dae63f47446abf8b04dcfee93b9931ec06f809823a6c675a";
     }
-    { 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/87.0/linux-i686/id/firefox-87.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "1599cd0ea460ee1280753bea5d5c84419506f72f8d87818114665ced3237407f";
+      sha256 = "9913aec5634c32300c2f556017be415ef6516a4380af3e597b2abd8e449e82a6";
     }
-    { 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/87.0/linux-i686/is/firefox-87.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "ec9b790cc55ed72fcd79afb6502db207906f89aff4053d62efa12a37bbe85b93";
+      sha256 = "71b1bf3205043c5c23988de6955a51091ec812e82701d0f37c12e937ed774b69";
     }
-    { 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/87.0/linux-i686/it/firefox-87.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "97c625e01e9a565ef10079ae980cd2ee45761f428594158f6c05fb4a3f1142c9";
+      sha256 = "7a842251175a2db53e0bec3b65c2db0007a1fe5d84ec126fa9029c6d9dbc732c";
     }
-    { 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/87.0/linux-i686/ja/firefox-87.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "625dc84ed56bb46032eae0087ae96d17127594efd99e4aeea410d4c8bef93819";
+      sha256 = "6a8aa33e333fcfa9bb2a011d08af0d10b445be1a22dacc4458c121e8943b1f62";
     }
-    { 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/87.0/linux-i686/ka/firefox-87.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "45a00fe06fc302d59744b8c9dfc9d7a4e27ed4ac3727848f52597208020ce16a";
+      sha256 = "f2d2cc7b079e0ca69de3568b10bdf6d7f74ef7f8b0bd05a89442be41df3d2239";
     }
-    { 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/87.0/linux-i686/kab/firefox-87.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "32b8ce9f195ecc610e3327402953609eb8621cbe116e22bba76131c9dd1b9738";
+      sha256 = "7211457301c54fed01aa3b0735fc7f0814d4fbfeb7862ebe438f5cebf7fed6e6";
     }
-    { 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/87.0/linux-i686/kk/firefox-87.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "651f3c7314b919af1348771ef7c5ea986fe3d9d7e42e056172fa55d675e17e3e";
+      sha256 = "8b18ac077d961279b2bb179ea37819de964e488ab528d4591ce2479ecae167ee";
     }
-    { 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/87.0/linux-i686/km/firefox-87.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "1a62be10235639a7c2256521838fee8637ebd575cee39c5744a65ef057afe1b8";
+      sha256 = "6b06454f9e061ae6d099ffbb2079d92538b32eb619d12858c3d759f004c427c6";
     }
-    { 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/87.0/linux-i686/kn/firefox-87.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "1cdb648165896ccda8da7ef6862605723089cbd8e3c9e6b8692ffeb2d28f9593";
+      sha256 = "4b8d711f0f33c850d2bf39f16ef0da7e004374445ad8bb3e69e0b74ff0765cd1";
     }
-    { 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/87.0/linux-i686/ko/firefox-87.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "70781041791a7c64e518de27955cf2b57ce3d3ee7afad36737f62783b5255d64";
+      sha256 = "f6da2239dc4e457623a64f2ac5e56868e70115941ddd3c19093ba180a3aeea7a";
     }
-    { 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/87.0/linux-i686/lij/firefox-87.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "ea44fdf528da53d7f2ba9d447c70079873f802647ee708f6580447af6adc1834";
+      sha256 = "fc45263e353af69c7dc2e5d74edefa793b0f1d2bb86f496dd75ad66bdfc7ffe1";
     }
-    { 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/87.0/linux-i686/lt/firefox-87.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "ffca3845c97f4d87e0d601c483e2bde8fa8f7f59b44ee85259fc70b1dcfb727f";
+      sha256 = "f030574f0bfb8574ce07159fdd213f1e21c4293bf7e1961080e6ef10f7f14b42";
     }
-    { 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/87.0/linux-i686/lv/firefox-87.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "b513e100141d1df78de9f05dac72da91c6cf65a8fcc22b9091ec00e6c6ee21ef";
+      sha256 = "7648c4616260b09161a3431120fd99c97c5630347ad4ac196956eae4cb4b18f6";
     }
-    { 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/87.0/linux-i686/mk/firefox-87.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "c65febe8a9f9b59ecdc61880a5c1a5b2b29fc53ffbc8d968f1773fe60adb082e";
+      sha256 = "c7bfcf5ee846d340d454d6cce2e66c0245bca10d1b74887170ba3820c392155a";
     }
-    { 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/87.0/linux-i686/mr/firefox-87.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "b4d3b6758c67f72e8f8c9dbb0e32fcd7b527b701e41d3d492e3e7ba7817cc544";
+      sha256 = "808207c6efa62312abf14091992022a3d37ba906c8003316d6af943228ba534a";
     }
-    { 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/87.0/linux-i686/ms/firefox-87.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "2fe81086a7a15bb29b909987063c058c1826bee6c0c645cae1e7a0907207d1ae";
+      sha256 = "f836343cd1116657b8f8f28f49df99b36a13a4255d0499945953b64934f80e64";
     }
-    { 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/87.0/linux-i686/my/firefox-87.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "40661cc4fa51c2782bd0da0d6f460c3a5fbfaab72e91b15c77f9b7b537484ab8";
+      sha256 = "1c01f7dcea9ecbf1af3cc29cb38aa8cd928dc6c10f67fdb20f98a588951336de";
     }
-    { 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/87.0/linux-i686/nb-NO/firefox-87.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "9ce253d8bc316fb976c4f64135f7767060aed90111b54dac687011a772e650ab";
+      sha256 = "f196268af59a118a4c5ca50b5c7f9ace27d642fd1952085dd693f09462eb27a9";
     }
-    { 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/87.0/linux-i686/ne-NP/firefox-87.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "7fb96857d5da6726e68038a9659ac7c18b8e746d0dd5e4823655c8fd093238a4";
+      sha256 = "6a80edda7e3b0f97282840eaacd9d4d003e6562c4931a14736bd1aba6ea8eb7c";
     }
-    { 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/87.0/linux-i686/nl/firefox-87.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "1d03b2eb31dca3cfbfb38af4e59d3eb84845b8fdaf488b76949a98f744253935";
+      sha256 = "495a43b18aa2078bd86468cbd1545ea04b0fc63c847a459156489c18432fe5ff";
     }
-    { 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/87.0/linux-i686/nn-NO/firefox-87.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "64fdf6e8e8086c04c53c84f792382c32579b43548f9410dc074b2aff95165d88";
+      sha256 = "a3d58b74e2ee2c97a2b4aa5855040f34f79024df55d8de6623991df61cfc3b46";
     }
-    { 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/87.0/linux-i686/oc/firefox-87.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "6db5c30ca7d449534289f5b84e328484edd5d04512cde11f097f28f5ffb986bb";
+      sha256 = "c71e444eb03df8c4b28dc34d4cfc32db2471ba12389f448c28a9dc03fc0dbfb1";
     }
-    { 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/87.0/linux-i686/pa-IN/firefox-87.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "102ac2026af2d21f27502f190dfeb0f39b148ce39324e480f653f6868df770d3";
+      sha256 = "69eedac3a7f2912f179e2c5838f4dbe109c1b1c570ea1f375d5563a622553f13";
     }
-    { 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/87.0/linux-i686/pl/firefox-87.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "f0a03e6a95a67af8e6949f5b6ad32179f7bf4978f050ca3c453287bdfaca6252";
+      sha256 = "106012905a00d898ad3fa43c733c1f568c0df2e74165276feb5b3f5eb79a3b20";
     }
-    { 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/87.0/linux-i686/pt-BR/firefox-87.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "7177392c8f0c049ad685676aa6aab258274b7d5871c06467f7e87292779b7575";
+      sha256 = "18434861a77abb7810008af068589250ae5621c1719ed4d37643c7aa3607070a";
     }
-    { 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/87.0/linux-i686/pt-PT/firefox-87.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "1fcae4be8cb31d30b1187b7d94fde71c41eb95c858467136af32fd7ad1117147";
+      sha256 = "b27fc0941804f4bedf10c15e26fd14fc381416a2c29fbe9b4d01f328e2164022";
     }
-    { 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/87.0/linux-i686/rm/firefox-87.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "86f801260baccff9e8d9036dae46b0796edc8d90c9a2238da1e1547ac2684da9";
+      sha256 = "2283c43282caeee2798a93af96979e46a103b3ab7c645e72384fe19973c49534";
     }
-    { 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/87.0/linux-i686/ro/firefox-87.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "c1b02e43cc649acef6cdc9498814a4582b46b42de96dc48fcbac4d83b44ba35b";
+      sha256 = "6d7ba9b40f17f373c4eb151a4bbf6399d27a8e5071342d25a374afc67914bace";
     }
-    { 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/87.0/linux-i686/ru/firefox-87.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "c067538578c2891f062716f56f3ae057ef8db2814a03ec7f1eb8855b95f9ace0";
+      sha256 = "77341829394b41ed8cf63090c30b993e3a540b838bb476239398795eb026442b";
     }
-    { 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/87.0/linux-i686/si/firefox-87.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "8131b12c390e31c06752115abf62426565433261e73ffa37a8389b102ccd06bf";
+      sha256 = "b7aaa753f54ca1aa5172c39e9899c662f62cb81628f29d29ed8774c68697d1fc";
     }
-    { 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/87.0/linux-i686/sk/firefox-87.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "f45f32063d34930b7e0ba4c087e97a78af642a59270c62fbea86b0bd87e06171";
+      sha256 = "fc70db60786a652dfa0d8614c24bb4b5cb46849a468903723c9e9cdfebd9eb52";
     }
-    { 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/87.0/linux-i686/sl/firefox-87.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "df8602e60a895887170ff2d18aae487730ef8e0bcfe08010fbe0da30f05af91e";
+      sha256 = "392eccb8277c76b4178b6fb74c8974ad31e0b36fe8778b5933b37f6249d3c9b9";
     }
-    { 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/87.0/linux-i686/son/firefox-87.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "3dd3bb220c4cfeee6ecd79977e1a619470a2504a4597f314286497164984cd9f";
+      sha256 = "c95c7ff206a42cf5c4caba9a3377834c1b8b4d258de566efed15ab0815b64726";
     }
-    { 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/87.0/linux-i686/sq/firefox-87.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "cc04ff65bb4fbc714e21a416af26256d4b203f327e5678c71378fa507242ec6e";
+      sha256 = "7eb9cbe937262ed47711df80143b49d369bfb185119a3fb51f8a723bb99b1f9d";
     }
-    { 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/87.0/linux-i686/sr/firefox-87.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "abb30a4c0eb7ea9910b21c0f10cace395f9d413ce39051494c97ddd1e18e2c10";
+      sha256 = "4d4b88503ccc6d5f5c16988c626027516681d265b32ee205324919a170caa1b7";
     }
-    { 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/87.0/linux-i686/sv-SE/firefox-87.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "76ae51342d5b8a93ae5f3927a69b9b1a6cd4877b98a7a103f8250bbe105ecf6a";
+      sha256 = "fe2fdf76541c95166fae7b9d1c0b3390552968ac0a8f47f2e23da750c8b8753a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/szl/firefox-87.0.tar.bz2";
+      locale = "szl";
+      arch = "linux-i686";
+      sha256 = "af91e1a4d0afefd890ce9ab04ac800427670a314089b67dc41e12bfa43ecf112";
     }
-    { 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/87.0/linux-i686/ta/firefox-87.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "1e9866ac793705555c15ae4d0e16753e90e8deae19e6694ce9f85e8dfa6ee476";
+      sha256 = "043162612ff54115953c25333fcc03d801176db1d379cb7c94f22c0da5a1ae00";
     }
-    { 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/87.0/linux-i686/te/firefox-87.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "66dcd400f89054f194f1a794c8731c7344b04f97209023559bfcd0f008e005c8";
+      sha256 = "2fca2c54dd357d8d5e3bb8804dbc3cfcc7fd1c17f538eaf1e1fd60c95baf7252";
     }
-    { 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/87.0/linux-i686/th/firefox-87.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "adef4cf7769510a8b47628eff5ee0f3b00c23862634fd8f6975daf599cf7b056";
+      sha256 = "b049f6cc876fce2d57387d2c90afff4f261baf38e582821656efd455fdbadc03";
     }
-    { 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/87.0/linux-i686/tl/firefox-87.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "465d089eb0c68d8279e3cc7f8ceb5c08527fc48b0292cc8ce523879c4643fbb1";
+      sha256 = "be18fe1caae3a85e3a48b0a5a45cb175bd11c31d1cfbe726dbe4952c50338299";
     }
-    { 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/87.0/linux-i686/tr/firefox-87.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "00d75ff3605672f6704fb600208872e536f76907ed25a4f90325cabc1924f991";
+      sha256 = "5c43338e0fc0138c280f9231e05c14a553d2b0504053b5c090adb7ecb96cf8d7";
     }
-    { 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/87.0/linux-i686/trs/firefox-87.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "299be659a464911dd27d92c36f567f675a26aa6d92af63deb002e172ba6b40e0";
+      sha256 = "510ee9988f4d1c6e0e50fc07d00d2aa80380f89f8db4b0655c7a9c0aaf07fc51";
     }
-    { 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/87.0/linux-i686/uk/firefox-87.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "49c2084ec32c03fd2821c8f1220bbbf954b98705e44a6a7fa65ec6f1abb12c02";
+      sha256 = "a01aa11750b6027f01b45763d691c425b65aa577fe9fcae6f492b40bb8ff6056";
     }
-    { 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/87.0/linux-i686/ur/firefox-87.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "d703344d8f03186b0fb246108892432f137cc033ae66bef395e7216cfa7bbdd3";
+      sha256 = "f2e83dfd361dc8abfc3fab5554d1c545b216a05f57718aa1f8976f7c2dda3b17";
     }
-    { 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/87.0/linux-i686/uz/firefox-87.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "02379c1fd1766eb15d9e99f8a6f08074df943c49ecf6b50a6b29ae8e922bf347";
+      sha256 = "4c570ba3aa3480efd63ba230b550d750a49289b3bafe9ede881b28184ac26ca1";
     }
-    { 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/87.0/linux-i686/vi/firefox-87.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "0577b4c2891ba646a67a93b4d6373095b98466e32b95993abc79e7bfd240f7d5";
+      sha256 = "846862d789b275ba1184b1f65a95570043ee1f8e2f7da5678252c192a8d31966";
     }
-    { 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/87.0/linux-i686/xh/firefox-87.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "83e40e1b33b2782d5dc68d32286da290188e8b5c3d689e5352d53411f95bed4c";
+      sha256 = "5c5a88654bcec7a8c5bb7245567270542823a377c7843a6b14d8f12cf57b7b59";
     }
-    { 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/87.0/linux-i686/zh-CN/firefox-87.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "695e647135b911a5e60374595197cd096b7bc180e63ee3069e4550a612354369";
+      sha256 = "b7774306c5941feb5b7abf4fbc3e3d3af854145fff741f561708b5ee94d1816b";
     }
-    { 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/87.0/linux-i686/zh-TW/firefox-87.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "5dcc5aa463f3c2325dcc7f4f768580dca6adf66e052470ec932bfabe9b3f8f29";
+      sha256 = "d115d7086947003940bc270b6a83aa612324f7913e044a194c1e05648e241b17";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index fb340ee1ace..3a8fec2c6ef 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -23,8 +23,8 @@
 , ffmpegSupport ? true
 , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
 , waylandSupport ? true, libxkbcommon
-, ltoSupport ? stdenv.isLinux, overrideCC, buildPackages
-, gssSupport ? true, kerberos
+, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
+, gssSupport ? true, libkrb5
 , pipewireSupport ? waylandSupport && webrtcSupport, pipewire
 
 ## privacy-related options
@@ -111,6 +111,13 @@ let
                 else stdenv;
 
   nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss;
+
+  # --enable-release adds -ffunction-sections & LTO that require a big amount of
+  # RAM and the 32-bit memory space cannot handle that linking
+  # We also disable adding "-g" for easier linking
+  releaseFlags = if stdenv.is32bit
+                 then [ "--disable-release" "--disable-debug-symbols" ]
+                 else [ "--enable-release" ];
 in
 
 buildStdenv.mkDerivation ({
@@ -120,8 +127,9 @@ buildStdenv.mkDerivation ({
   inherit src unpackPhase meta;
 
   patches = [
-    ./env_var_for_system_dir.patch
   ] ++
+  lib.optional (lib.versionOlder ffversion "86") ./env_var_for_system_dir-ff85.patch ++
+  lib.optional (lib.versionAtLeast ffversion "86") ./env_var_for_system_dir-ff86.patch ++
   lib.optional (lib.versionOlder ffversion "83") ./no-buildconfig-ffx76.patch ++
   lib.optional (lib.versionAtLeast ffversion "84") ./no-buildconfig-ffx84.patch ++
   lib.optional (ltoSupport && lib.versionOlder ffversion "84") ./lto-dependentlibs-generation-ffx83.patch ++
@@ -153,7 +161,7 @@ buildStdenv.mkDerivation ({
     xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
     xorg.pixman yasm libGLU libGL
     xorg.xorgproto
-    xorg.libXext unzip makeWrapper
+    xorg.libXext makeWrapper
     libevent libstartup_notification /* cairo */
     libpng jemalloc glib
     nasm icu67 libvpx_1_8
@@ -166,7 +174,7 @@ buildStdenv.mkDerivation ({
   ++ lib.optional  alsaSupport alsaLib
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
   ++ lib.optional  gtk3Support gtk3
-  ++ lib.optional  gssSupport kerberos
+  ++ lib.optional  gssSupport libkrb5
   ++ lib.optional  waylandSupport libxkbcommon
   ++ lib.optional  pipewireSupport pipewire
   ++ lib.optional  (lib.versionAtLeast ffversion "82") gnum4
@@ -214,6 +222,7 @@ buildStdenv.mkDerivation ({
       rust-cbindgen
       rustc
       which
+      unzip
     ]
     ++ lib.optional gtk3Support wrapGAppsHook
     ++ lib.optionals buildStdenv.isDarwin [ xcbuild rsync ]
@@ -296,9 +305,9 @@ buildStdenv.mkDerivation ({
   ++ lib.optional drmSupport "--enable-eme=widevine"
 
   ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ]
-                    else [ "--disable-debug" "--enable-release"
+                    else ([ "--disable-debug"
                            "--enable-optimize"
-                           "--enable-strip" ])
+                           "--enable-strip" ] ++ releaseFlags))
   ++ lib.optional enableOfficialBranding "--enable-official-branding"
   ++ extraConfigureFlags;
 
diff --git a/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch b/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch
index 18d31356989..18d31356989 100644
--- a/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch
+++ b/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch
diff --git a/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch b/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch
new file mode 100644
index 00000000000..f7a9cb77345
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch
@@ -0,0 +1,21 @@
+diff -r 22fc47c968f2 toolkit/xre/nsXREDirProvider.cpp
+--- a/toolkit/xre/nsXREDirProvider.cpp	Mon Dec 14 15:09:17 2020 +0000
++++ b/toolkit/xre/nsXREDirProvider.cpp	Tue Feb 23 23:38:56 2021 +0100
+@@ -11,6 +11,7 @@
+ 
+ #include "jsapi.h"
+ #include "xpcpublic.h"
++#include "prenv.h"
+ 
+ #include "nsIAppStartup.h"
+ #include "nsIFile.h"
+@@ -305,7 +306,8 @@
+       "/usr/lib/mozilla"_ns
+ #    endif
+       ;
+-  rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir));
++  const char* pathVar = PR_GetEnv("MOZ_SYSTEM_DIR");
++  rv = NS_NewNativeLocalFile((pathVar && *pathVar) ? nsDependentCString(pathVar) : reinterpret_cast<const nsCString&>(dirname), false, getter_AddRefs(localDir));
+ #  endif
+ 
+   if (NS_SUCCEEDED(rv)) {
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index bbc3f7308f9..7a3fc9b9a07 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,16 +7,16 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    ffversion = "85.0.2";
+    ffversion = "87.0";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "2m46li5ni1m4xv42h99rn2hhhv2mqy229wihmzxmgvws1rh2h11yf6x2a07akkjrsp2dmwxmmkhmf9dhakgj9i55z5qqi99azyx07df";
+      sha512 = "c1c08be2283e7a162c8be2f2647ec2bb85cab592738dc45e4b4ffb72969229cc0019a30782a4cb27f09a13b088c63841071dd202b3543dfba295140a7d6246a4";
     };
 
     meta = {
       description = "A web browser built from Firefox source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
-      maintainers = with lib.maintainers; [ eelco lovesegfault ];
+      maintainers = with lib.maintainers; [ eelco lovesegfault hexa ];
       platforms = lib.platforms.unix;
       badPlatforms = lib.platforms.darwin;
       broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
@@ -32,16 +32,16 @@ rec {
 
   firefox-esr-78 = common rec {
     pname = "firefox-esr";
-    ffversion = "78.7.1esr";
+    ffversion = "78.9.0esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "138dcfpdkp78yqgygac212vg5fm5ich2a82p7258ch8hk6bpvpdxbws4sdqwljs92x831dblcsshwkl06vh48899489gx87mdkqd0nm";
+      sha512 = "28582fc0a03fb50c0a817deb1083817bb7f2f5d38e98439bf655ed4ee18c83568b3002a59ef76edf357bfb11f55832a221d14130f116aac19d850768fba3ac8b";
     };
 
     meta = {
       description = "A web browser built from Firefox Extended Support Release source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
-      maintainers = with lib.maintainers; [ eelco ];
+      maintainers = with lib.maintainers; [ eelco hexa ];
       platforms = lib.platforms.unix;
       badPlatforms = lib.platforms.darwin;
       broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 96a4e15adf8..26fb49ef2a3 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -8,7 +8,7 @@
 , tridactyl-native
 , fx_cast_bridge
 , udev
-, kerberos
+, libkrb5
 , libva
 , mesa # firefox wants gbm for drm+dmabuf
 }:
@@ -51,27 +51,6 @@ let
       alsaSupport = browser.alsaSupport or false;
       pipewireSupport = browser.pipewireSupport or false;
 
-      # FIXME: This should probably be an assertion now?
-      plugins =
-        let
-          removed = lib.filter (a: builtins.hasAttr a cfg) [
-            "enableAdobeFlash"
-            "enableAdobeReader"
-            "enableBluejeans"
-            "enableDjvu"
-            "enableFriBIDPlugin"
-            "enableGoogleTalkPlugin"
-            "enableMPlayer"
-            "enableVLC"
-            "icedtea"
-            "jre"
-          ];
-        in if removed != [] then
-          throw "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) removed}. All plugin related options have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)."
-        else
-          []
-        ;
-
       nativeMessagingHosts =
         ([ ]
           ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass)
@@ -86,7 +65,7 @@ let
       libs =   lib.optionals stdenv.isLinux [ udev libva mesa libnotify xorg.libXScrnSaver ]
             ++ lib.optional (pipewireSupport && lib.versionAtLeast version "83") pipewire
             ++ lib.optional ffmpegSupport ffmpeg
-            ++ lib.optional gssSupport kerberos
+            ++ lib.optional gssSupport libkrb5
             ++ lib.optional useGlvnd libglvnd
             ++ lib.optionals (cfg.enableQuakeLive or false)
             (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
@@ -164,7 +143,24 @@ let
       #                           #
       #############################
 
-    in stdenv.mkDerivation {
+      # TODO: remove this after the next release (21.03)
+      configPlugins = lib.filter (a: builtins.hasAttr a cfg) [
+        "enableAdobeFlash"
+        "enableAdobeReader"
+        "enableBluejeans"
+        "enableDjvu"
+        "enableFriBIDPlugin"
+        "enableGoogleTalkPlugin"
+        "enableMPlayer"
+        "enableVLC"
+        "icedtea"
+        "jre"
+      ];
+      pluginsError =
+        "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) configPlugins}. All plugin related options have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins).";
+
+    in if configPlugins != [] then throw pluginsError else
+      (stdenv.mkDerivation {
       inherit pname version;
 
       desktopItem = makeDesktopItem {
@@ -262,12 +258,9 @@ let
 
         makeWrapper "$oldExe" \
           "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \
-            --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
             --suffix LD_LIBRARY_PATH ':' "$libs" \
             --suffix-each GTK_PATH ':' "$gtk_modules" \
-            --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \
             --prefix PATH ':' "${xdg-utils}/bin" \
-            --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \
             --suffix PATH ':' "$out${browser.execdir or "/bin"}" \
             --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \
             --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \
@@ -351,9 +344,6 @@ let
 
       preferLocalBuild = true;
 
-      # Let each plugin tell us (through its `mozillaPlugin') attribute
-      # where to find the plugin in its tree.
-      plugins = map (x: x + x.mozillaPlugin) plugins;
       libs = lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs;
       gtk_modules = map (x: x + x.gtkModule) gtk_modules;
 
@@ -362,14 +352,9 @@ let
       disallowedRequisites = [ stdenv.cc ];
 
       meta = browser.meta // {
-        description =
-          browser.meta.description
-          + " (with plugins: "
-          + lib.concatStrings (lib.intersperse ", " (map (x: x.name) plugins))
-          + ")";
+        description = browser.meta.description;
         hydraPlatforms = [];
         priority = (browser.meta.priority or 0) - 1; # prefer wrapper over the package
       };
-    };
-in
-  lib.makeOverridable wrapper
+    });
+in lib.makeOverridable wrapper
diff --git a/pkgs/applications/networking/browsers/gmni/default.nix b/pkgs/applications/networking/browsers/gmni/default.nix
new file mode 100644
index 00000000000..7baca62e673
--- /dev/null
+++ b/pkgs/applications/networking/browsers/gmni/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchFromSourcehut, pkg-config, bearssl, scdoc }:
+
+stdenv.mkDerivation rec {
+  pname = "gmni";
+  version = "unstable-2021-03-26";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "gmni";
+    rev = "77b73efbcd3ea7ed9e3e4c0aa19d9247e21d3c87";
+    sha256 = "1wvnzyv7vyddcd39y6q5aflpnnsdl4k4y5aj5ssb7vgkld0h1b7r";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ bearssl scdoc ];
+
+  meta = with lib; {
+    description = "A Gemini client";
+    homepage = "https://git.sr.ht/~sircmpwn/gmni";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ bsima jb55 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index c5e5aff77e0..d903cb3c083 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -5,7 +5,7 @@
 , libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb
 , alsaLib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups
 , dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
-, kerberos, libdrm, mesa
+, libkrb5, libdrm, mesa
 , libxkbcommon, wayland # ozone/wayland
 
 # Command line programs
@@ -39,6 +39,12 @@
 
 , gsettings-desktop-schemas
 , gnome3
+
+# For video acceleration via VA-API (--enable-features=VaapiVideoDecoder)
+, libvaSupport ? true, libva
+
+# For Vulkan support (--enable-features=Vulkan)
+, vulkanSupport ? true, vulkan-loader
 }:
 
 with lib;
@@ -60,9 +66,11 @@ let
     liberation_ttf curl util-linux xdg-utils wget
     flac harfbuzz icu libpng opusWithCustomModes snappy speechd
     bzip2 libcap at-spi2-atk at-spi2-core
-    kerberos libdrm mesa coreutils
+    libkrb5 libdrm mesa coreutils
     libxkbcommon wayland
   ] ++ optional pulseSupport libpulseaudio
+    ++ optional libvaSupport libva
+    ++ optional vulkanSupport vulkan-loader
     ++ [ gtk3 ];
 
   suffix = if channel != "stable" then "-" + channel else "";
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index 64f4c27c96c..30e154e5222 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.3.0";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "0c7w4a19cwx3bkmbhc9c1wx0zmqd3a1grrj4ffifdic95wdihv7x";
+    sha256 = "sha256-85KshJEL7ri10mSm/KgcT03WLEwRMMTGczb6mGx66Jw=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index ec57bcfae18..a6cf5ad531e 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.21";
+  version = "2.22";
   pname = "links2";
 
   src = fetchurl {
     url = "${meta.homepage}/download/links-${version}.tar.bz2";
-    sha256 = "0qqdcghsdqm7l6kyi0k752ws3ak5crw85pqkcb11wy67j62yspi8";
+    sha256 = "sha256-A2SYazp/Ho4xcb6jYrU/ceHdM2CohC1m/cZVgOvCCE0=";
   };
 
   buildInputs = with lib;
diff --git a/pkgs/applications/networking/browsers/luakit/default.nix b/pkgs/applications/networking/browsers/luakit/default.nix
index 917da034c30..8656b4aaa27 100644
--- a/pkgs/applications/networking/browsers/luakit/default.nix
+++ b/pkgs/applications/networking/browsers/luakit/default.nix
@@ -1,34 +1,56 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, wrapGAppsHook
-, help2man, luafilesystem, luajit, sqlite
-, webkitgtk, gtk3, gst_all_1, glib-networking
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, wrapGAppsHook
+, help2man
+, glib-networking
+, gst_all_1
+, gtk3
+, luafilesystem
+, luajit
+, sqlite
+, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
   pname = "luakit";
-  version = "2.2.1";
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "luakit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-78B8vXkWsFMJIHA72Qrk2SWubrY6YuArqcM0UAPjpzc=";
+    hash = "sha256-5YeJkbWk1wHxWXqWOvhEDeScWPU/aRVhuOWRHLSHVZM=";
   };
 
   nativeBuildInputs = [
-    pkg-config help2man wrapGAppsHook
+    pkg-config
+    help2man
+    wrapGAppsHook
   ];
-
   buildInputs = [
-    webkitgtk luafilesystem luajit sqlite gtk3
+    gtk3
     glib-networking # TLS support
-  ] ++ ( with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good
-                           gst-plugins-bad gst-plugins-ugly gst-libav ]);
+    luafilesystem
+    luajit
+    sqlite
+    webkitgtk
+  ] ++ ( with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+    gst-libav
+  ]);
+
 
+  # build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found
+  # TODO: why is not this the default? The test runner adds
+  # ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils
+  # scripts don't add an equivalent
   preBuild = ''
-    # build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found
-    # TODO: why is not this the default? The test runner adds
-    # ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils
-    # scripts don't add an equivalent
     export LUA_PATH="$LUA_PATH;./?.lua;./?/init.lua"
   '';
 
@@ -52,6 +74,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "https://luakit.github.io/";
     description = "Fast, small, webkit-based browser framework extensible in Lua";
     longDescription = ''
       Luakit is a highly configurable browser framework based on the WebKit web
@@ -60,9 +83,8 @@ stdenv.mkDerivation rec {
       power users, developers and anyone who wants to have fine-grained control
       over their web browser’s behaviour and interface.
     '';
-    homepage    = "https://luakit.github.io/";
     license     = licenses.gpl3Only;
-    platforms   = platforms.unix;
     maintainers = [ maintainers.AndersonTorres ];
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/browsers/nyxt/default.nix b/pkgs/applications/networking/browsers/nyxt/default.nix
index b4bec6ead3f..1f8cb746465 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
@@ -52,6 +52,6 @@ stdenv.mkDerivation rec {
     homepage = "https://nyxt.atlas.engineer";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lewo ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index 8207040f1b8..cf5f13fa745 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -16,14 +16,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.0.1";
+  version = "29.1.0";
 
   src = fetchFromGitHub {
     githubBase = "repo.palemoon.org";
     owner = "MoonchildProductions";
     repo = "Pale-Moon";
     rev = "${version}_Release";
-    sha256 = "18flr64041cvffj6jbzx0njnynvyk3k5yljb446a4lwmksvd3nmq";
+    sha256 = "02blhk3v7gpnicd7s5l5fpqvdvj2279g3rq8xyhcd4sw6qnms8m6";
     fetchSubmodules = true;
   };
 
@@ -43,14 +43,14 @@ in stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook
+    desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook unzip
   ];
 
   buildInputs = [
     alsaLib bzip2 cairo dbus dbus-glib ffmpeg fontconfig freetype
     gnome2.GConf gtk2 hunspell libevent libjpeg libnotify
     libstartup_notification libGLU libGL
-    libpulseaudio unzip yasm zip zlib
+    libpulseaudio yasm zip zlib
   ]
   ++ (with xorg; [
     libX11 libXext libXft libXi libXrender libXScrnSaver
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index b1235fe2d8f..6cb947cb816 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -31,12 +31,12 @@ let
 
 in mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "qutebrowser";
-  version = "2.0.2";
+  version = "2.1.1";
 
   # the release tarballs are different from the git checkout!
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0fxkazz4ykmkiww27l92yr96hq00qn5vvjmknxcy4cl97d2pxa28";
+    sha256 = "sha256-txsArX1JiRGXjlu9FTpt0EUKxq3j5b85j8luFTKDQs4=";
   };
 
   # Needs tox
@@ -60,6 +60,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
     # scripts and userscripts libs
     tldextract beautifulsoup4
     pyreadability pykeepass stem
+    pynacl
     # extensive ad blocking
     adblock
   ]
@@ -109,17 +110,18 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
     done
   '';
 
-  postFixup = ''
-    wrapProgram $out/bin/qutebrowser \
-      "''${gappsWrapperArgs[@]}" \
-      "''${qtWrapperArgs[@]}" \
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
+      "''${qtWrapperArgs[@]}"
       --add-flags '--backend ${backend}'
+    )
   '';
 
   meta = with lib; {
     homepage    = "https://github.com/The-Compiler/qutebrowser";
     description = "Keyboard-focused browser with a minimal GUI";
     license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry ];
+    maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry dotlambda ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 9b0a9078ee5..b4ca094be13 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -33,9 +33,6 @@
 
 , gmp
 
-# Pluggable transport dependencies
-, python27
-
 # Wrapper runtime
 , coreutils
 , glibcLocales
@@ -91,19 +88,19 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "10.0.9";
+  version = "10.0.15";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "Dtlfm/memHSxir5XkUGkJICGEM+tPs//ET4PdVM1HPM=";
+      sha256 = "1ah69jmfgik063f9gkvyv9d4k706pqihmzc4k7cc95zyd17v8wrs";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "GZywFEX/5Br+Zu1w6pegoNOTrSIVQNE2LINsa3Vdlxs=";
+      sha256 = "0gyhxfs4qpg6ys038d52cxnmb4khbng1w4hcsavi2rlgv18bz75p";
     };
   };
 in
@@ -133,7 +130,7 @@ stdenv.mkDerivation rec {
 
     # Unpack & enter
     mkdir -p "$TBB_IN_STORE"
-    tar xf "${src}" -C "$TBB_IN_STORE" --strip-components=2
+    tar xf "$src" -C "$TBB_IN_STORE" --strip-components=2
     pushd "$TBB_IN_STORE"
 
     # Set ELF interpreter
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 57a4155e179..96355789eb3 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libxkbcommon
+{ lib, stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libxkbcommon, libxshmfence
 , libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
 , alsaLib, dbus, cups, libexif, ffmpeg_3, systemd
 , freetype, fontconfig, libXft, libXrender, libxcb, expat
@@ -18,11 +18,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "3.6.2165.36-1";
+  version = "3.7.2218.45-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "1wgxzggy5sg98k4lzd34k4hyw2jgc14db41z7s7j3c5whlnifh08";
+    sha256 = "11q3whw01nbwvzccgn55b4lkr7dzlql961406r6by8xqvf8zgmp4";
   };
 
   unpackPhase = ''
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ patchelf makeWrapper ];
 
   buildInputs = [
-    stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb libxkbcommon
+    stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb libxkbcommon libxshmfence
     libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
     atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg_3 systemd
     freetype fontconfig libXrender libuuid expat glib nss nspr
diff --git a/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/pkgs/applications/networking/browsers/vivaldi/widevine.nix
index 3b3a0a85890..81c95418e69 100644
--- a/pkgs/applications/networking/browsers/vivaldi/widevine.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/widevine.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0l743f2yyaq1vvc3iicajgnfpjxjsfvjcqvanndbxs23skgjcv6r";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = ''
     unzip $src
diff --git a/pkgs/applications/networking/browsers/webbrowser/default.nix b/pkgs/applications/networking/browsers/webbrowser/default.nix
index d9e997f514b..327fc5f31e2 100644
--- a/pkgs/applications/networking/browsers/webbrowser/default.nix
+++ b/pkgs/applications/networking/browsers/webbrowser/default.nix
@@ -41,12 +41,12 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gnum4 makeWrapper perl pkg-config python2
+    gnum4 makeWrapper perl pkg-config python2 unzip
   ];
 
   buildInputs = [
     alsaLib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2
-    unzip gnome2.GConf xorg.libXt
+    gnome2.GConf xorg.libXt
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/networking/calls/default.nix b/pkgs/applications/networking/calls/default.nix
index 01797397f4e..8937404e91d 100644
--- a/pkgs/applications/networking/calls/default.nix
+++ b/pkgs/applications/networking/calls/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitLab
 , meson
 , ninja
-, cmake
 , pkg-config
 , libhandy
 , modemmanager
@@ -13,37 +12,46 @@
 , feedbackd
 , callaudiod
 , evolution-data-server
+, glib
 , folks
 , desktop-file-utils
+, appstream-glib
 , libpeas
 , dbus
 , vala
 , wrapGAppsHook
-, xorg
 , xvfb_run
-, libxml2
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gobject-introspection
 }:
 
 stdenv.mkDerivation rec {
   pname = "calls";
-  version = "0.2.0";
+  version = "0.3.1";
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
     owner = "Librem5";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qmjdhnr95dawccw1ss8hc3lk0cypj86xg2amjq7avzn86ryd76l";
+    sha256 = "0igap5ynq269xqaky6fqhdg2dpsvxa008z953ywa4s5b5g5dk3dd";
   };
 
+  outputs = [ "out" "devdoc" ];
+
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     desktop-file-utils
+    appstream-glib
     vala
-    cmake
     wrapGAppsHook
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
   ];
 
   buildInputs = [
@@ -64,10 +72,10 @@ stdenv.mkDerivation rec {
     xvfb_run
   ];
 
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
   mesonFlags = [
-    # docs fail to build
-    # https://source.puri.sm/Librem5/calls/issues/99
-    "-Dgtk_doc=false"
+    "-Dgtk_doc=true"
   ];
 
   doCheck = true;
@@ -75,6 +83,7 @@ stdenv.mkDerivation rec {
   checkPhase = ''
     runHook preCheck
     NO_AT_BRIDGE=1 \
+    XDG_DATA_DIRS=${folks}/share/gsettings-schemas/${folks.name} \
     xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
       --config-file=${dbus.daemon}/share/dbus-1/session.conf \
       meson test --print-errorlogs
diff --git a/pkgs/applications/networking/charles/default.nix b/pkgs/applications/networking/charles/default.nix
index 03d1911333e..1e44d46689f 100644
--- a/pkgs/applications/networking/charles/default.nix
+++ b/pkgs/applications/networking/charles/default.nix
@@ -3,11 +3,12 @@ lib, stdenv
 , makeWrapper
 , makeDesktopItem
 , fetchurl
+, jdk11
 , jdk8
 }:
 
 let
-  generic = { version, sha256, ... }@attrs:
+  generic = { version, sha256, platform ? "", jdk, ... }@attrs:
   let
     desktopItem = makeDesktopItem {
       categories = "Network;Development;WebDevelopment;Java;";
@@ -25,13 +26,13 @@ let
       inherit version;
 
       src = fetchurl {
-        url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}.tar.gz";
+        url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}${platform}.tar.gz";
         inherit sha256;
       };
-      buildInputs = [ makeWrapper ];
+      nativeBuildInputs = [ makeWrapper ];
 
       installPhase = ''
-        makeWrapper ${jdk8.jre}/bin/java $out/bin/charles \
+        makeWrapper ${jdk}/bin/java $out/bin/charles \
           --add-flags "-Xmx1024M -Dcharles.config='~/.charles.config' -jar $out/share/java/charles.jar"
 
         for fn in lib/*.jar; do
@@ -56,12 +57,15 @@ let
 
 in {
   charles4 = (generic {
-    version = "4.2.8";
-    sha256 = "1jzjdhzxgrq7pdfryfkg0hsjpyni14ma4x8jbdk1rqll78ccr080";
+    version = "4.6.1";
+    sha256 = "1kl83jjj5wjhdpj34gcj04vf1asxlqlfx9zi91ln4v90swlaaclv";
+    platform = "_amd64";
+    jdk = jdk11;
   });
   charles3 = (generic {
     version = "3.12.3";
     sha256 = "13zk82ny1w5zd9qcs9qkq0kdb22ni5byzajyshpxdfm4zv6p32ss";
+    jdk = jdk8.jre;
   });
 }
 
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index 6b1df1acf5a..8310d058492 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2021.2.1";
+  version = "2021.3.3";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    sha256 = "sha256-kmlyj6Q+OAJ0cKMeWxajPDBm99WpRf+Gpvc+Jy79DCo=";
+    sha256 = "sha256-St2WBdy76OVFlYoY1RGwQj1WsUpPtsL7yX1MFwztKgs=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index fead762996a..6e5d05ff0d7 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,13 +19,13 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "2.12.8";
+  version = "2.12.10";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-JtT4SMoozfTWsQ4YsoQ8xLQ/vCO7hnVEp2umg+p7mRw=";
+    sha256 = "sha256-A4s6D3/1FsqrJ+Jaql4IuyD9ySChL3SXqVvl8wUDRDE=";
   };
 
   vendorSha256 = "sha256-4XPMixVNj6PUKobNLwpsOBT7Zs/7pkhDtQacLIB5EfE=";
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index c3e9a774fa9..f1c98e0ed84 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.3";
-  commit = "ef5010c3a0b5e027fd642732d03c5b0391b1e574";
+  version = "1.8.6";
+  commit = "28aea3dfdede00443b52cc584814d80e8f896200";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    sha256 = "sha256-do5DAxaQ1gBdvNN/YGKAkmkFcJ+j/ojBaWPwrXXQko0=";
+    sha256 = "sha256-kJ3/1owK5T+FbcvjmK2CO+i/KwmVZRSGzF6fCt8J9E8=";
   };
 
-  vendorSha256 = "sha256-6DOay+aeXz7EQKe5SzQSmg/5KyUI0g6wzPgx/+F2RW4=";
+  vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index de032cc60e9..a251886ebdd 100644
--- a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, fetchurl, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, fetchurl, installShellFiles }:
 
 buildGoModule rec {
   pname = "cloudfoundry-cli";
diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix
index a45f3553b92..1d8a8228af1 100644
--- a/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,26 +1,39 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
+
+let
+  version = "0.11.0";
+
+  manifests = fetchzip {
+    url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
+    sha256 = "sha256-nqvFJriNMK3SvAsNzhE8MCzVNR8j/TjYU+f1PbuxkuI=";
+    stripRoot = false;
+  };
+in
 
 buildGoModule rec {
+  inherit version;
+
   pname = "fluxcd";
-  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "fluxcd";
     repo = "flux2";
     rev = "v${version}";
-    sha256 = "1k7zcn8l60qfgiixkjcmp94w87w88n475mmhf58vl5pfz21p9vky";
+    sha256 = "sha256-V4cZuRlC1Hu4gBG5/8ZNBKlSBFLgOtSJ3GbpjW5/8xM=";
   };
 
-  vendorSha256 = "16yixz47zrzjkb2k4n03zfivpc2cavcrrv4fz8s5a4xzfrcp4nvx";
+  vendorSha256 = "sha256-aVVvrOjCKxzFer5uZRSu1LCQKkGkPcBdKdebN5uHUUg=";
 
   nativeBuildInputs = [ installShellFiles ];
 
-  doCheck = false;
-
   subPackages = [ "cmd/flux" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
 
+  postUnpack = ''
+    cp -r ${manifests} source/cmd/flux/manifests
+  '';
+
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/flux --version | grep ${version} > /dev/null
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index 4a8f42e3cc7..1d02e675f9c 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.21.1";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "sha256-/go8V1EjY/iL3csoNpPyeWORvWCf0WnnaSOgiZ8UFQ8=";
+    sha256 = "sha256-SaDO3a50CLhgLafCdgKEfHpuHdIweSy5L/TUgEUv5CM=";
   };
 
-  vendorSha256 = "sha256-GEU0Q2Elhiel20xvup+i1DSXCjQdA9s7cWykcbKR5KA=";
+  vendorSha256 = "sha256-4uSw/9lI/rdDqy78jNC9eHYW/v/sMFb+sQvwYG6GZks=";
 
   nativeBuildInputs = [ installShellFiles ];
 
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/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 5da9e9220a8..501956ec938 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.5.2";
+  version = "3.5.3";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-XFWJtzKQrZL6lcr8JNiEQ8ldG5289x5pE21E8XgoYkA=";
+    sha256 = "sha256-7xO07JDy6ujWlDF+5Xd3myRQ8ajTppCXz9fNe4yizVw=";
   };
-  vendorSha256 = "sha256-mjWQxCCtTgj1VCFjnuJWgDjwMt/r4jiFC9Of+CXRgPg=";
+  vendorSha256 = "sha256-lpEoUgABtJczwShNdvD+zYAPDFTJqILSei2YY6mQ2mw=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/helm/plugins/default.nix b/pkgs/applications/networking/cluster/helm/plugins/default.nix
new file mode 100644
index 00000000000..edd19a25f9b
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helm/plugins/default.nix
@@ -0,0 +1,11 @@
+{ callPackage }:
+
+{
+
+  helm-diff = callPackage ./helm-diff.nix {};
+
+  helm-s3 = callPackage ./helm-s3.nix {};
+
+  helm-secrets = callPackage ./helm-secrets.nix {};
+
+}
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
new file mode 100644
index 00000000000..ce6491bfba4
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -0,0 +1,35 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "helm-diff";
+  version = "3.1.3";
+
+  src = fetchFromGitHub {
+    owner = "databus23";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-h26EOjKNrlcrs2DAYj0NmDRgNRKozjfw5DtxUgHNTa4=";
+  };
+
+  vendorSha256 = "sha256-+n/QBuZqtdgUkaBG7iqSuBfljn+AdEzDoIo5SI8ErQA=";
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  postInstall = ''
+    install -dm755 $out/${pname}
+    mv $out/bin $out/${pname}/
+    mv $out/${pname}/bin/{helm-,}diff
+    install -m644 -Dt $out/${pname} plugin.yaml
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that shows a diff";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
new file mode 100644
index 00000000000..661048a0c72
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
@@ -0,0 +1,38 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "helm-s3";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "hypnoglow";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-2BQ/qtoL+iFbuLvrJGUuxWFKg9u1sVDRcRm2/S0mgyc=";
+  };
+
+  vendorSha256 = "sha256-/9TiY0XdkiNxW5JYeC5WD9hqySCyYYU8lB+Ft5Vm96I=";
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  checkPhase = ''
+    make test-unit
+  '';
+
+  postInstall = ''
+    install -dm755 $out/${pname}
+    mv $out/bin $out/${pname}/
+    install -m644 -Dt $out/${pname} plugin.yaml
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that shows a diff";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
new file mode 100644
index 00000000000..bef5d230ece
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchFromGitHub, makeWrapper, coreutils, findutils, getopt, gnugrep, gnused, sops, vault }:
+
+stdenv.mkDerivation rec {
+  pname = "helm-secrets";
+  version = "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "jkroepke";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-EXCr0QjupsBBKTm6Opw5bcNwAD4FGGyOiqaa8L91/OI=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ getopt sops ];
+
+  # NOTE: helm-secrets is comprised of shell scripts.
+  dontBuild = true;
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -dm755 $out/${pname} $out/${pname}/scripts
+    install -m644 -Dt $out/${pname} plugin.yaml
+    cp -r scripts/* $out/${pname}/scripts
+    wrapProgram $out/${pname}/scripts/run.sh \
+        --prefix PATH : ${lib.makeBinPath [ coreutils findutils getopt gnugrep gnused sops vault ]}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that helps manage secrets";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/helm/wrapper.nix b/pkgs/applications/networking/cluster/helm/wrapper.nix
new file mode 100644
index 00000000000..21a29e31243
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helm/wrapper.nix
@@ -0,0 +1,46 @@
+{ symlinkJoin, lib, makeWrapper, writeText }:
+
+helm:
+
+let
+  wrapper = {
+    plugins ? [],
+    extraMakeWrapperArgs ? ""
+  }:
+  let
+
+  initialMakeWrapperArgs = [
+      "${helm}/bin/helm" "${placeholder "out"}/bin/helm"
+      "--argv0" "$0" "--set" "HELM_PLUGINS" "${pluginsDir}"
+  ];
+
+  pluginsDir = symlinkJoin {
+    name = "helm-plugins";
+    paths = plugins;
+  };
+in
+  symlinkJoin {
+    name = "helm-${lib.getVersion helm}";
+
+    # Remove the symlinks created by symlinkJoin which we need to perform
+    # extra actions upon
+    postBuild = ''
+      rm $out/bin/helm
+      makeWrapper ${lib.escapeShellArgs initialMakeWrapperArgs}  ${extraMakeWrapperArgs}
+    '';
+    paths = [ helm pluginsDir ];
+
+    preferLocalBuild = true;
+
+    nativeBuildInputs = [ makeWrapper ];
+    passthru = { unwrapped = helm; };
+
+    meta = helm.meta // {
+      # To prevent builds on hydra
+      hydraPlatforms = [];
+      # prefer wrapper over the package
+      priority = (helm.meta.priority or 0) - 1;
+    };
+  };
+in
+  lib.makeOverridable wrapper
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index 72fcc2f9c35..3c6d6676906 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.138.4";
+  version = "0.138.7";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-Y0/0wC00s7QY7/B6igOoPKXv5TE2P8NoGd9UhfVmLOk=";
+    sha256 = "sha256-LFNsSd+S+mQiTk7bCnSD/Kp/D0Jefxo80eRsGkStBhs=";
   };
 
   vendorSha256 = "sha256-WlV6moJymQ7VyZXXuViCNN1WP4NzBUszavxpKjQR8to=";
diff --git a/pkgs/applications/networking/cluster/helmsman/default.nix b/pkgs/applications/networking/cluster/helmsman/default.nix
index ccfeb6ed87a..ed828feefda 100644
--- a/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helmsman";
-  version = "3.6.4";
+  version = "3.6.6";
 
   src = fetchFromGitHub {
     owner = "Praqma";
     repo = "helmsman";
     rev = "v${version}";
-    sha256 = "sha256-4oJ/undqDSNn+Xn8eFEgOx+7263tmdXTHxXBkyFLpsE=";
+    sha256 = "sha256-SGVch7mMtHi5GYFOrSss4dk29aRTQmBzkPYOetPdF88=";
   };
 
   vendorSha256 = "sha256-mktq5Dnk1mBO2yy5SeMDxa/akXdO5i2WafMTGtH53H8=";
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index a7d99fc5bd5..1c7a39d91bd 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-GfQjgtjFynYa8SfQyoGjsyXEv0XuaK8ZbTcMhQGkcTg=";
+    sha256 = "sha256-WcIcI+y8tTY0YfyuR/DUCjN1xbGpCOBWvEHBo+q2EV8=";
   };
-  vendorSha256 = "sha256-Xj9nC9ijLVmrSvgKq33yUyMO+RmeDkf7FKKCehP4GFE=";
+  vendorSha256 = "sha256-pSiJfQTvJ6OisdrWTH6mOcAn/wBA1OcVaGtOwBe1qvQ=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix
index 739992e6bc0..285e1db536d 100644
--- a/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/pkgs/applications/networking/cluster/k3s/default.nix
@@ -3,7 +3,7 @@
 , makeWrapper
 , socat
 , iptables
-, iproute
+, iproute2
 , bridge-utils
 , conntrack-tools
 , buildGoPackage
@@ -19,6 +19,7 @@
 , fetchurl
 , fetchzip
 , fetchgit
+, zstd
 }:
 
 with lib;
@@ -43,9 +44,9 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.19.4+k3s2";     # k3s git tag
+  k3sVersion = "1.20.4+k3s1";     # k3s git tag
   traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
-  k3sRootVersion = "0.7.1";       # taken from ./scripts/download at the above k3s tag
+  k3sRootVersion = "0.8.1";       # taken from ./scripts/download at the above k3s tag
   k3sCNIVersion = "0.8.6-k3s1";   # taken from ./scripts/version.sh at the above k3s tag
   # bundled into the k3s binary
   traefikChart = fetchurl {
@@ -64,7 +65,7 @@ let
   k3sRoot = fetchzip {
     # Note: marked as apache 2.0 license
     url = "https://github.com/k3s-io/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar";
-    sha256 = "1wjg54816plbdwgv0dibq6dzmcakcmx0wiqijvr4f3gsxgk59zwf";
+    sha256 = "sha256-r3Nkzl9ccry7cgD3YWlHvEWOsWnnFGIkyRH9sx12gks=";
     stripRoot = false;
   };
   k3sPlugins = buildGoPackage rec {
@@ -95,7 +96,7 @@ let
     url = "https://github.com/k3s-io/k3s";
     rev = "v${k3sVersion}";
     leaveDotGit = true; # ./scripts/version.sh depends on git
-    sha256 = "1qxjdgnq8mf54760f0vngcqa2y3b048pcmfsf1g593b2ij1kg1zi";
+    sha256 = "0rmn3nh8a94axv6lb2xjnn3gpq0scnvj69bvcs74azvw62fvq016";
   };
   # Stage 1 of the k3s build:
   # Let's talk about how k3s is structured.
@@ -126,7 +127,12 @@ let
 
     src = k3sRepo;
 
-    patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
+    # Patch build scripts so that we can use them.
+    # This makes things more dynamically linked (because nix can deal with
+    # dynamically linked dependencies just fine), removes the upload at the
+    # end, and skips building runc + cni, since we have our own derivations for
+    # those.
+    patches = [ ./patches/0002-Add-nixpkgs-patches.patch ];
 
     nativeBuildInputs = [ git pkg-config ];
     buildInputs = [ libseccomp ];
@@ -166,9 +172,10 @@ let
 
     src = k3sRepo;
 
-    patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
+    # See the above comment in k3sBuildStage1
+    patches = [ ./patches/0002-Add-nixpkgs-patches.patch ];
 
-    nativeBuildInputs = [ git pkg-config ];
+    nativeBuildInputs = [ git pkg-config zstd ];
     # These dependencies are embedded as compressed files in k3s at runtime.
     # Propagate them to avoid broken runtime references to libraries.
     propagatedBuildInputs = [ k3sPlugins k3sBuildStage1 runc ];
@@ -233,7 +240,7 @@ stdenv.mkDerivation rec {
     kmod
     socat
     iptables
-    iproute
+    iproute2
     bridge-utils
     ethtool
     util-linux
@@ -255,10 +262,12 @@ stdenv.mkDerivation rec {
   # Use a wrapper script to reference all the binaries that k3s tries to
   # execute, but that we didn't bundle with it.
   installPhase = ''
+    runHook preInstall
     mkdir -p "$out/bin"
     makeWrapper ${k3sBin}/bin/k3s "$out/bin/k3s" \
       --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \
       --prefix PATH : "$out/bin"
+    runHook postInstall
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch b/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
deleted file mode 100644
index c439241e855..00000000000
--- a/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e79ddef65d08599ae3fe8ff39d202ea2416650b8 Mon Sep 17 00:00:00 2001
-From: Euan Kemp <euank@euank.com>
-Date: Sun, 31 May 2020 17:27:05 -0700
-Subject: [PATCH 1/2] Use 'rm' from path in go generate
-
-/bin/rm is less portable. On some distros, like nixos, it doesn't exist
-at all.
----
- main.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/main.go b/main.go
-index 62908bb7bb..0527222887 100644
---- a/main.go
-+++ b/main.go
-@@ -1,5 +1,5 @@
- //go:generate go run pkg/codegen/cleanup/main.go
--//go:generate /bin/rm -rf pkg/generated
-+//go:generate rm -rf pkg/generated
- //go:generate go run pkg/codegen/main.go
- //go:generate go fmt pkg/deploy/zz_generated_bindata.go
- //go:generate go fmt pkg/static/zz_generated_bindata.go
--- 
-2.25.4
-
diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix
index 11e2b0a2915..ee16f923b78 100644
--- a/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.24.2";
+  version = "0.24.6";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "0cr7ap9yfd9flcph98rxap2f46fc3v689v31mc8n7vxi9jr07irh";
+    sha256 = "sha256-uqtjAvtsF+4cz3M60Xj9sCNotaoPzaeeTKnXQUB4CIo=";
   };
 
   buildFlagsArray = ''
@@ -18,7 +18,7 @@ buildGoModule rec {
       -X github.com/derailed/k9s/cmd.commit=${src.rev}
   '';
 
-  vendorSha256 = "01g50sfk0k7v60m3anfiq2w9pzl2wpa985s22ciq911h3fscka3f";
+  vendorSha256 = "sha256-/4Aof09MYHPc4VJJV2EyB7T9zNFtYY4JeDGJi67FQic=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/kconf/default.nix b/pkgs/applications/networking/cluster/kconf/default.nix
new file mode 100644
index 00000000000..683a91ffee8
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kconf/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kconf";
+  version = "1.10.1";
+
+  src = fetchFromGitHub {
+    owner = "particledecay";
+    repo = "kconf";
+    rev = "v${version}";
+    sha256 = "NlTpHQFOJJcIt/xMT3fvdrlxANyg//wtYMmXzEtaFXo=";
+  };
+
+  vendorSha256 = "2d4o87wE9QZltk2YOHc20XVYF8n0EOrDf5mJ6i6EB0c=";
+
+  meta = with lib; {
+    description = "An opinionated command line tool for managing multiple kubeconfigs";
+    homepage = "https://github.com/particledecay/kconf";
+    license = licenses.mit;
+    maintainers = with maintainers; [ thmzlt ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kpt/default.nix b/pkgs/applications/networking/cluster/kpt/default.nix
index ae9380c5139..577e52ed49d 100644
--- a/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/pkgs/applications/networking/cluster/kpt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kpt";
-  version = "0.37.1";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4SGCYkx9U6XNUrJfVPgNEhFA75CF8GOrtS4BSm6f7mM=";
+    sha256 = "sha256-MBZa4LdpCZnVVbjzkYpPi9/CYGqVLeYy2N/AS1PSYBE=";
   };
 
-  vendorSha256 = "sha256-y/l9k3oTrN+9OGgyiVzCyYi+6lJpcKaEygirytbn9aI=";
+  vendorSha256 = "sha256-P0cN8aw62nPD1OlUAw1E36YxptxtPqqruZfDDG4Ag2w=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/kube-capacity/default.nix b/pkgs/applications/networking/cluster/kube-capacity/default.nix
index 08dfa8bcdf0..78cbaca80ab 100644
--- a/pkgs/applications/networking/cluster/kube-capacity/default.nix
+++ b/pkgs/applications/networking/cluster/kube-capacity/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "kube-capacity";
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/kube-score/default.nix b/pkgs/applications/networking/cluster/kube-score/default.nix
new file mode 100644
index 00000000000..76bd115a9b1
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kube-score";
+  version = "1.10.1";
+
+  src = fetchFromGitHub {
+    owner = "zegl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-TYsuSPWTiIlPscul/QO59+lt6sbjJdt7pJuJYO5R9Tc=";
+  };
+
+  vendorSha256 = "sha256-ob7mNheyeTcDWml4gi1SD3Pq+oWtJeySIUg2ZrCj0y0=";
+
+  meta = with lib; {
+    description = "Kubernetes object analysis with recommendations for improved reliability and security";
+    homepage    = "https://github.com/zegl/kube-score";
+    license     = licenses.mit;
+    maintainers = [ maintainers.j4m3s ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index 5bfceefad5a..5cb52c47173 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.0-k3s2" }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.4-k3s1" }:
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "4.2.0";
+  version = "4.4.0";
 
   excludedPackages = "tools";
 
@@ -10,20 +10,17 @@ buildGoModule rec {
     owner = "rancher";
     repo = "k3d";
     rev = "v${version}";
-    sha256 = "sha256-R2RbQlceOD/uY3IdLLiM23gESh/oWnsiTWxHeH/Si18=";
+    sha256 = "sha256-+9VtFHZ4ZZiX04u5YvPoQaelH9Q9oKMrbFHFFiNUxBA=";
   };
 
   vendorSha256 = null;
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-w"
-    "-s"
-    "-X github.com/rancher/k3d/v4/version.Version=v${version}"
-    "-X github.com/rancher/k3d/v4/version.K3sVersion=v${k3sVersion}"
-  ];
+  preBuild = let t = "github.com/rancher/k3d/v4/version"; in
+    ''
+      buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.K3sVersion=v${k3sVersion}")
+    '';
 
   doCheck = false;
 
@@ -34,8 +31,17 @@ buildGoModule rec {
       --zsh <($out/bin/k3d completion zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/k3d --help
+    $out/bin/k3d version | grep "k3d version v${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/rancher/k3d";
+    changelog = "https://github.com/rancher/k3d/blob/v${version}/CHANGELOG.md";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container - k3d";
     longDescription = ''
       k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
@@ -44,7 +50,7 @@ buildGoModule rec {
       multi-node k3s cluster on a single machine using docker.
     '';
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix
index 561bcbf7ad3..4fda7db9f19 100644
--- a/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,6 +1,6 @@
 { lib, buildGoPackage, fetchFromGitHub, ... }:
 
-let version = "0.17.0"; in
+let version = "0.18.0"; in
 
 buildGoPackage {
   pname = "kubecfg";
@@ -10,7 +10,7 @@ buildGoPackage {
     owner = "bitnami";
     repo = "kubecfg";
     rev = "v${version}";
-    sha256 = "sha256-/91im204vBS3NjrMOvwTVO6tEBgdpirqJFqCnbIB+iQ=";
+    sha256 = "sha256-TJbuJZDj9ZwEaN8LV/M30+5+IgN8EZCTTBBDB0OgdEE=";
   };
 
   goPackagePath = "github.com/bitnami/kubecfg";
diff --git a/pkgs/applications/networking/cluster/kubeconform/default.nix b/pkgs/applications/networking/cluster/kubeconform/default.nix
new file mode 100644
index 00000000000..ca5e30154da
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubeconform";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "yannh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-lduHYYskEPUimEX54ymOyo5jY7GGBB42YTefDMNS4qo=";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "A FAST Kubernetes manifests validator, with support for Custom Resources!";
+    homepage    = "https://github.com/yannh/kubeconform/";
+    license     = licenses.asl20;
+    maintainers = [ maintainers.j4m3s ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubectl-doctor/default.nix b/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
new file mode 100644
index 00000000000..5d056907264
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubectl-doctor";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "emirozer";
+    repo = pname;
+    rev = version;
+    sha256 = "0x784jbcwd34vzdnhg2yldh5ivkxvs2qlbsvaammbxkn04ch1ijz";
+  };
+
+  vendorSha256 = "04xq5kp1m7c98gb4fd0dni258vpfnhv535gl2qllfcp2mvk3mn55";
+
+  postInstall = ''
+    mv $out/bin/{cmd,kubectl-doctor}
+  '';
+
+  meta = with lib; {
+    description = "kubectl cluster triage plugin for k8s";
+    homepage = "https://github.com/emirozer/kubectl-doctor";
+    changelog = "https://github.com/emirozer/kubectl-doctor/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.zimbatm ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubectl-example/default.nix b/pkgs/applications/networking/cluster/kubectl-example/default.nix
new file mode 100644
index 00000000000..04677cb4277
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubectl-example/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubectl-example";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "seredot";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "18vp53cda93qjssxygwqp55yc80a93781839gf3138awngf731yq";
+  };
+
+  vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+
+  meta = with lib; {
+    description = "kubectl plugin for retrieving resource example YAMLs";
+    homepage = "https://github.com/seredot/kubectl-example";
+    changelog = "https://github.com/seredot/kubectl-example/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubelogin/default.nix b/pkgs/applications/networking/cluster/kubelogin/default.nix
index d7f829dc00e..0a928ac9299 100644
--- a/pkgs/applications/networking/cluster/kubelogin/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubelogin";
-  version = "0.0.7";
+  version = "0.0.9";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jw8v6ff0iwkwxlhcr35cvhy4zg31dsm1s3q4fxgi901yj1wn6zy";
+    sha256 = "sha256-0+4hrC7A60dbf+1uvTVU2JRynvA3O/lXfgcra1fV9bI=";
   };
 
-  vendorSha256 = "0al8y65xvnwl34jkpqyf6zwr21xn30zswknlym9nnn1n47fyayxb";
+  vendorSha256 = "sha256-erGqCpWlAQanY1ghpNVRhzUEIXv3lCiBGRs888MmHN8=";
 
   buildFlagsArray = ''
     -ldflags=
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index d4ec9cf5ef3..12127e223a3 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -20,19 +20,21 @@
 
 stdenv.mkDerivation rec {
   pname = "kubernetes";
-  version = "1.19.5";
+  version = "1.20.5";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "15bv620fj4x731f2z2a9dcdss18rk379kc40g49bpqsdn42jjx2z";
+    sha256 = "sha256-RDaD7tlTtAucW8ido9FumKb5E9n6F9H8HwxQ9TPyOLk=";
   };
 
   nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
 
   outputs = [ "out" "man" "pause" ];
 
+  patches = [ ./fixup-addonmanager-lib-path.patch ];
+
   postPatch = ''
     # go env breaks the sandbox
     substituteInPlace "hack/lib/golang.sh" \
@@ -53,7 +55,7 @@ stdenv.mkDerivation rec {
 
   postBuild = ''
     ./hack/update-generated-docs.sh
-    (cd build/pause && cc pause.c -o pause)
+    (cd build/pause/linux && cc pause.c -o pause)
   '';
 
   installPhase = ''
@@ -61,14 +63,19 @@ stdenv.mkDerivation rec {
       install -D _output/local/go/bin/''${p##*/} -t $out/bin
     done
 
-    install -D build/pause/pause -t $pause/bin
+    install -D build/pause/linux/pause -t $pause/bin
     installManPage docs/man/man1/*.[1-9]
 
-    cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons
+    # Unfortunately, kube-addons-main.sh only looks for the lib file in either the current working dir
+    # or in /opt. We have to patch this for now.
+    substitute cluster/addons/addon-manager/kube-addons-main.sh $out/bin/kube-addons \
+      --subst-var out
+
+    chmod +x $out/bin/kube-addons
     patchShebangs $out/bin/kube-addons
     wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
 
-    cp ${./mk-docker-opts.sh} $out/bin/mk-docker-opts.sh
+    cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
 
     for tool in kubeadm kubectl; do
       installShellCompletion --cmd $tool \
diff --git a/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch b/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch
new file mode 100644
index 00000000000..ef2904bdcfe
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch
@@ -0,0 +1,23 @@
+diff --git a/cluster/addons/addon-manager/kube-addons-main.sh b/cluster/addons/addon-manager/kube-addons-main.sh
+index 849973470d1..e4fef30eaea 100755
+--- a/cluster/addons/addon-manager/kube-addons-main.sh
++++ b/cluster/addons/addon-manager/kube-addons-main.sh
+@@ -17,17 +17,7 @@
+ # Import required functions. The addon manager is installed to /opt in
+ # production use (see the Dockerfile)
+ # Disabling shellcheck following files as the full path would be required.
+-if [ -f "kube-addons.sh" ]; then
+-  # shellcheck disable=SC1091
+-  source "kube-addons.sh"
+-elif [ -f "/opt/kube-addons.sh" ]; then
+-  # shellcheck disable=SC1091
+-  source "/opt/kube-addons.sh"
+-else
+-  # If the required source is missing, we have to fail.
+-  log ERR "== Could not find kube-addons.sh (not in working directory or /opt) at $(date -Is) =="
+-  exit 1
+-fi
++source "@out@/bin/kube-addons-lib.sh"
+ 
+ # The business logic for whether a given object should be created
+ # was already enforced by salt, and /etc/kubernetes/addons is the
diff --git a/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh b/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
deleted file mode 100755
index 22a459f5134..00000000000
--- a/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright 2014 The Kubernetes Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Generate Docker daemon options based on flannel env file.
-
-# exit on any error
-set -e
-
-usage() {
-  echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY]
-
-Generate Docker daemon options based on flannel env file
-OPTIONS:
-    -f  Path to flannel env file. Defaults to /run/flannel/subnet.env
-    -d  Path to Docker env file to write to. Defaults to /run/docker_opts.env
-    -i  Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500
-    -c  Output combined Docker options into DOCKER_OPTS var
-    -k  Set the combined options key to this value (default DOCKER_OPTS=)
-    -m  Do not output --ip-masq (useful for older Docker version)
-" >/dev/stderr
-  exit 1
-}
-
-flannel_env="/run/flannel/subnet.env"
-docker_env="/run/docker_opts.env"
-combined_opts_key="DOCKER_OPTS"
-indiv_opts=false
-combined_opts=false
-ipmasq=true
-val=""
-
-while getopts "f:d:icmk:" opt; do
-  case $opt in
-    f)
-      flannel_env=$OPTARG
-      ;;
-    d)
-      docker_env=$OPTARG
-      ;;
-    i)
-      indiv_opts=true
-      ;;
-    c)
-      combined_opts=true
-      ;;
-    m)
-      ipmasq=false
-      ;;
-    k)
-      combined_opts_key=$OPTARG
-      ;;
-    \?)
-      usage
-      ;;
-  esac
-done
-
-if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then
-  indiv_opts=true
-  combined_opts=true
-fi
-
-if [[ -f "${flannel_env}" ]]; then
-  source "${flannel_env}"
-fi
-
-if [[ -n "$FLANNEL_SUBNET" ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET"
-fi
-
-if [[ -n "$FLANNEL_MTU" ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU"
-fi
-
-if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_IPMASQ="--ip-masq=false"
-fi
-
-eval docker_opts="\$${combined_opts_key}"
-docker_opts+=" "
-
-echo -n "" >"${docker_env}"
-
-# OPT_LOOP
-for opt in $(compgen -v DOCKER_OPT_); do
-  eval val=\$"${opt}"
-
-  if [[ "$indiv_opts" = true ]]; then
-    echo "$opt=\"$val\"" >>"${docker_env}"
-  fi
-
-  docker_opts+="$val "
-done
-
-if [[ "$combined_opts" = true ]]; then
-  echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}"
-fi
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/kubeval/default.nix b/pkgs/applications/networking/cluster/kubeval/default.nix
index 28b3b719997..af8e04667b7 100644
--- a/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeval";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "instrumenta";
     repo = "kubeval";
     rev = version;
-    sha256 = "05li0qv4q7fy2lr50r6c1r8dhx00jb1g01qmgc72a9zqp378yiq0";
+    sha256 = "sha256-c5UESyWK1rfnD0etOuIroBUSqZQuu57jio7/ArItMP0=";
   };
 
-  vendorSha256 = "1kpwvi84i3h1yjprd6m6hn8l9j235931871y3qk9cl0g8q0hv9ja";
+  vendorSha256 = "sha256-SqYNAUYPUJYmHj4cFEYqQ8hEkYWmmpav9AGOSFDc/M4=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/kuttl/default.nix b/pkgs/applications/networking/cluster/kuttl/default.nix
new file mode 100644
index 00000000000..0c8f7f1574c
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kuttl/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub}:
+
+buildGoModule rec {
+  name = "kuttl";
+  pname = "kuttl";
+  version = "0.9.0";
+  cli = "kubectl-kuttl";
+
+  src = fetchFromGitHub {
+    owner  = "kudobuilder";
+    repo   = "kuttl";
+    rev    = "v${version}";
+    sha256 = "sha256:1cji0py2340mvcpplwq3licdkzjx7q5f27fdjjxvbhrgksnyw6hs";
+  };
+
+  vendorSha256 = "sha256:1shra42ifa2knxp58fj5hn074jg89f3nqdqk4rqbp3ybir84ahsd";
+
+  subPackages = [ "cmd/kubectl-kuttl" ];
+
+  buildFlagsArray = ''
+    -ldflags=-s -w
+    -X  github.com/kudobuilder/kuttl/pkg/version.gitVersion=${version}
+  '';
+
+  meta = with lib; {
+    description = "The KUbernetes Test TooL (KUTTL) provides a declarative approach to testing production-grade Kubernetes operators";
+    homepage = "https://github.com/kudobuilder/kuttl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ diegolelis ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/lens/default.nix b/pkgs/applications/networking/cluster/lens/default.nix
index 656badfe5a0..a4dac9dd624 100644
--- a/pkgs/applications/networking/cluster/lens/default.nix
+++ b/pkgs/applications/networking/cluster/lens/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "lens";
-  version = "3.6.7";
+  version = "4.2.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.AppImage";
-    sha256 = "0var7d31ab6lq2vq6brk2dnhlnhqjp2gdqhygif567cdmcpn4vz8";
+    url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.x86_64.AppImage";
+    sha256 = "0g60d1h2dn41qdzdnqavwknqynjqil7s8kcqy01h021r81rdpn2q";
     name="${pname}.AppImage";
   };
 
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index 81ca2283d20..79cfebd2aff 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,9 +11,9 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.17.1";
+  version = "1.18.1";
 
-  vendorSha256 = "1flny2f7n3vqhl9vkwsqxvzl8q3fv8v0h1p0d0qaqp9lgn02q3bh";
+  vendorSha256 = "sha256-rw1tqz+Y5iSXWIxXV4433Hwgyfz8jYMzKWurCi2hmhM=";
 
   doCheck = false;
 
@@ -21,7 +21,7 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "1m4kw77j4swwg3vqwmwrys7cq790w4g6y4gvdg33z9n1y9xzqys3";
+    sha256 = "sha256-8QI/Kn5LHSD3at7icmEDhjuYP811A4l+2KrRmKTwi8w=";
   };
 
   nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index 28f7b540722..62c12ac8afc 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -2,50 +2,58 @@
 , buildGoModule
 , fetchFromGitHub
 , makeWrapper
+, installShellFiles
 , buildkit
 , cni-plugins
-, extraPackages ? []
+, extraPackages ? [ ]
 }:
 
-let
-  binPath = lib.makeBinPath ([
-    buildkit
-  ] ++ extraPackages);
-in
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.5.0";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
-    owner = "AkihiroSuda";
+    owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lSvYiTh67gK9kJls7VsayV8T3H6RzFEEKe49BOWnUBw=";
+    sha256 = "sha256-0q3UmlXzW0fGYPc1IptuIbCMnKW4pyDm1KxkRqU2voA=";
   };
 
-  vendorSha256 = "sha256-qywiaNoO3pI7sfyPbwWR8BLd86RvJ2xSWwCJUsm3RkM=";
+  vendorSha256 = "sha256-QVvID9rrOFngL94LWN75HSnyTgh3F0KaScWxMIKUqDM=";
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-w"
-    "-s"
-    "-X github.com/AkihiroSuda/nerdctl/pkg/version.Version=v${version}"
-    "-X github.com/AkihiroSuda/nerdctl/pkg/version.Revision=<unknown>"
-  ];
+  preBuild = let t = "github.com/containerd/nerdctl/pkg/version"; in
+    ''
+      buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.Revision=<unknown>")
+    '';
+
+  # Many checks require a containerd socket and running nerdctl after it's built
+  doCheck = false;
 
   postInstall = ''
     wrapProgram $out/bin/nerdctl \
-      --prefix PATH : "${binPath}" \
+      --prefix PATH : "${lib.makeBinPath ([ buildkit ] ++ extraPackages)}" \
       --prefix CNI_PATH : "${cni-plugins}/bin"
+
+    installShellCompletion --cmd nerdctl \
+      --bash <($out/bin/nerdctl completion bash)
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/nerdctl --help
+    $out/bin/nerdctl --version | grep "nerdctl version ${version}"
+    runHook postInstallCheck
   '';
 
   meta = with lib; {
+    homepage = "https://github.com/containerd/nerdctl/";
+    changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}";
     description = "A Docker-compatible CLI for containerd";
-    homepage = src.meta.homepage;
     license = licenses.asl20;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ jk ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/cluster/nixops/default.nix b/pkgs/applications/networking/cluster/nixops/default.nix
index 3885278f1f1..6515885fd8e 100644
--- a/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/pkgs/applications/networking/cluster/nixops/default.nix
@@ -2,7 +2,6 @@
 , poetry2nix
 , lib
 , overrides ? (self: super: {})
-, stdenv
 }:
 
 let
diff --git a/pkgs/applications/networking/cluster/nixops/shell.nix b/pkgs/applications/networking/cluster/nixops/shell.nix
index 6d298b8df83..3fc06b0bc73 100644
--- a/pkgs/applications/networking/cluster/nixops/shell.nix
+++ b/pkgs/applications/networking/cluster/nixops/shell.nix
@@ -3,7 +3,7 @@
 pkgs.mkShell {
   buildInputs = [
     pkgs.poetry2nix.cli
-    pkgs.pkgconfig
+    pkgs.pkg-config
     pkgs.libvirt
     pkgs.poetry
   ];
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/octant/default.nix b/pkgs/applications/networking/cluster/octant/default.nix
index 453c1406fd2..0e97b541a5d 100644
--- a/pkgs/applications/networking/cluster/octant/default.nix
+++ b/pkgs/applications/networking/cluster/octant/default.nix
@@ -15,12 +15,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "octant";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchsrc version {
-    x86_64-linux = "sha256-kYS8o97HBjNgwmrG4fjsqFWxZy6ATFOhxt6j3KMZbEc=";
-    aarch64-linux = "sha256-/Tpna2Y8+PQt+SeOJ9NDweRWGiQXU/sN+Wh/vLYQPwM=";
-    x86_64-darwin = "sha256-aOUmnD+l/Cc5qTiHxFLBjCatszmPdUc4YYZ6Oy5DT3U=";
+    x86_64-linux = "sha256-D/pHOXR7XQoJCGqUep1lBAY4239HH35m+evFd21pcK0=";
+    aarch64-linux = "sha256-aL1axz3ebqrKQ3xK2UgDMQ+o6ZKgIvwy6Phici7WT2c=";
+    x86_64-darwin = "sha256-MFxOAAEnLur0LJJNU0SSlO+bH4f18zOfZNA49fKEQEw=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/cluster/openshift/default.nix b/pkgs/applications/networking/cluster/openshift/default.nix
index 53209d2edd6..a1d4b146837 100644
--- a/pkgs/applications/networking/cluster/openshift/default.nix
+++ b/pkgs/applications/networking/cluster/openshift/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, util-linux
-, coreutils, kerberos, ncurses, clang, installShellFiles
+, coreutils, libkrb5, ncurses, clang, installShellFiles
 , components ? [
   "cmd/oc"
   "cmd/openshift"
@@ -33,7 +33,7 @@ in buildGoPackage rec {
 
   goPackagePath = "github.com/openshift/origin";
 
-  buildInputs = [ kerberos ncurses ];
+  buildInputs = [ libkrb5 ncurses ];
 
   nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix
new file mode 100644
index 00000000000..52c9c191218
--- /dev/null
+++ b/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "pgo-client";
+  version = "4.6.2";
+
+  src = fetchFromGitHub {
+    owner = "CrunchyData";
+    repo = "postgres-operator";
+    rev = "v${version}";
+    sha256 = "sha256-zPFsLKbuVq2wMjFsqjBGiatPBwGR/X6q3mj8o5BE+r0=";
+  };
+
+  vendorSha256 = "sha256-DU1kc7YDQ+denj6tHVGt79s494aBFZ2KM7PVSn951KI=";
+
+  subPackages = [ "cmd/pgo" ];
+
+  meta = with lib; {
+    description = "A CLI client for Crunchy PostgreSQL Kubernetes Operator";
+    homepage = "https://github.com/CrunchyData/postgres-operator";
+    changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/qbec/default.nix b/pkgs/applications/networking/cluster/qbec/default.nix
index a4f15586ad0..485eba2721d 100644
--- a/pkgs/applications/networking/cluster/qbec/default.nix
+++ b/pkgs/applications/networking/cluster/qbec/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "qbec";
-  version = "0.13.4";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "splunk";
     repo = "qbec";
     rev = "v${version}";
-    sha256 = "sha256-jbGEkBBXb1dDv4E7vEPVyvDahz27Kpyo3taenCH/vfw=";
+    sha256 = "sha256-+CzY/ifH+U3I36uHXyO2FSkPCz+SWRpSPnxfd2LHHhY=";
   };
 
-  vendorSha256 = "sha256-rzxtLaGUl8hxcJ+GWlrkjN+f7mb0lXrtkHj/pBO8HzQ=";
+  vendorSha256 = "sha256-wtpXqIixjRYYSIPe43Q5627g6mu05WdvwCi9cXVgCBs=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/sonobuoy/default.nix b/pkgs/applications/networking/cluster/sonobuoy/default.nix
index f344b8c3eb9..8f4324f4343 100644
--- a/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -5,7 +5,7 @@ let rev = "f6e19140201d6bf2f1274bf6567087bc25154210";
 in
 buildGoModule rec {
   pname = "sonobuoy";
-  version = "0.20.0"; # Do not forget to update `rev` above
+  version = "0.50.0"; # Do not forget to update `rev` above
 
   buildFlagsArray =
     let t = "github.com/vmware-tanzu/sonobuoy";
@@ -17,13 +17,13 @@ buildGoModule rec {
     '';
 
   src = fetchFromGitHub {
-    sha256 = "11qawsv82i1pl4mwfc85wb4fbq961bplvmygnjfm79m8z87863ri";
+    sha256 = "sha256-LhprsDlWZjNRE6pu7V9WBszy/+bNpn5KoRopIoWvdsg=";
     rev = "v${version}";
     repo = "sonobuoy";
     owner = "vmware-tanzu";
   };
 
-  vendorSha256 = "1kxzd4czv8992y7y47la5jjrbhk76sxcj3v5sx0k4xplgki7np6i";
+  vendorSha256 = "sha256-0Vx74nz0djJB12UPybo2Z8KVpSyKHuKPFymh/Rlpv88=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix
index 071636ec443..76230b8e100 100644
--- a/pkgs/applications/networking/cluster/spark/default.nix
+++ b/pkgs/applications/networking/cluster/spark/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
   };
 
-  buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre pythonPackages.python pythonPackages.numpy ]
     ++ optional RSupport R;
 
   untarDir = "${pname}-${version}-bin-without-hadoop";
diff --git a/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch b/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
new file mode 100644
index 00000000000..364f7653efa
--- /dev/null
+++ b/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
@@ -0,0 +1,44 @@
+From bea6307ec2a77d90d59c13940381d73ec0f05b70 Mon Sep 17 00:00:00 2001
+From: Graham Christensen <graham@grahamc.com>
+Date: Mon, 1 Mar 2021 10:57:44 -0500
+Subject: [PATCH] Disable NIC tests that fail in the Nix sandbox.
+
+---
+ agent/managedInstances/fingerprint/fingerprint_integ_test.go | 2 ++
+ agent/ssm/service_test.go                                    | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/agent/managedInstances/fingerprint/fingerprint_integ_test.go b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+index a1f969ff..631ea1f5 100644
+--- a/agent/managedInstances/fingerprint/fingerprint_integ_test.go
++++ b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+@@ -28,12 +28,14 @@ func TestHostnameInfo(t *testing.T) {
+ }
+ 
+ func TestPrimaryIpInfo(t *testing.T) {
++	t.Skip("The Nix build sandbox has no non-loopback IPs, causing this test to fail.");
+ 	ip, err := primaryIpInfo()
+ 	assert.NoError(t, err, "expected no error fetching the primary ip")
+ 	assert.NotEmpty(t, ip, "expected to fetch primary ip")
+ }
+ 
+ func TestMacAddrInfo(t *testing.T) {
++	t.Skip("The Nix build sandbox has no non-loopback interfaces, causing this test to fail.");
+ 	mac, err := macAddrInfo()
+ 	assert.NoError(t, err, "expected no error fetching the mac addr")
+ 	assert.NotEmpty(t, mac, "expected to fetch mac address")
+diff --git a/agent/ssm/service_test.go b/agent/ssm/service_test.go
+index f4b34f83..d8216dba 100644
+--- a/agent/ssm/service_test.go
++++ b/agent/ssm/service_test.go
+@@ -85,6 +85,7 @@ func (suite *SsmServiceTestSuite) TestUpdateEmptyInstanceInformation() {
+ // Test function for update instance information
+ // This function update the agent name, agent statuc, and agent version.
+ func (suite *SsmServiceTestSuite) TestUpdateInstanceInformation() {
++	suite.T().Skip("The Nix build sandbox has no interfaces for IP and MAC address reports.");
+ 	// Give mock value to test UpdateInstanceInformation, assert the error is nil, assert the log.Debug function get called.
+ 	response, err := suite.sdkService.UpdateInstanceInformation(suite.logMock, "2.2.3.2", "active", "Amazon-ssm-agent")
+ 	assert.Nil(suite.T(), err, "Err should be nil")
+-- 
+2.29.2
+
diff --git a/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch b/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
new file mode 100644
index 00000000000..234e510d3d1
--- /dev/null
+++ b/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
@@ -0,0 +1,46 @@
+From 473e3f8544915a35b3a45c548743978b34e5310e Mon Sep 17 00:00:00 2001
+From: Cole Helbling <cole.e.helbling@outlook.com>
+Date: Tue, 2 Mar 2021 00:24:00 -0800
+Subject: [PATCH] version-gen: don't use unnecessary constants
+
+This prevents the tool from being built with Nix, because this project
+doesn't use Go modules (or something; I'm not really familiar with Go,
+much less Go + Nix).
+---
+ agent/version/versiongenerator/version-gen.go | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/agent/version/versiongenerator/version-gen.go b/agent/version/versiongenerator/version-gen.go
+index d710effc..55c9a001 100644
+--- a/agent/version/versiongenerator/version-gen.go
++++ b/agent/version/versiongenerator/version-gen.go
+@@ -22,8 +22,6 @@ import (
+ 	"path/filepath"
+ 	"strings"
+ 	"text/template"
+-
+-	"github.com/aws/amazon-ssm-agent/agent/appconfig"
+ )
+ 
+ const versiongoTemplate = `// This is an autogenerated file and should not be edited.
+@@ -59,7 +57,7 @@ func main() {
+ 	versionStr := strings.TrimSpace(string(versionContent))
+ 
+ 	fmt.Printf("Agent Version: %v", versionStr)
+-	if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), appconfig.ReadWriteAccess); err != nil {
++	if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), 0600); err != nil {
+ 		log.Fatalf("Error writing to VERSION file. %v", err)
+ 	}
+ 
+@@ -108,7 +106,7 @@ func main() {
+ 
+ 	releaseNoteOutFile := strings.Join(releaseNoteLines, "\n")
+ 
+-	if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), appconfig.ReadWriteAccess); err != nil {
++	if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), 0600); err != nil {
+ 		log.Fatalf("Error writing to RELEASENOTES.md file. %v", err)
+ 	}
+ 
+-- 
+2.30.0
+
diff --git a/pkgs/applications/networking/cluster/ssm-agent/default.nix b/pkgs/applications/networking/cluster/ssm-agent/default.nix
index 928fb351c6a..3aa583f3ae3 100644
--- a/pkgs/applications/networking/cluster/ssm-agent/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -1,63 +1,110 @@
-{ lib, fetchFromGitHub, buildGoPackage, bash, makeWrapper }:
+{ lib
+, writeShellScriptBin
+, buildGoPackage
+, makeWrapper
+, fetchFromGitHub
+, coreutils
+, nettools
+, dmidecode
+, util-linux
+, bashInteractive
+}:
 
+let
+  # Tests use lsb_release, so we mock it (the SSM agent used to not
+  # read from our /etc/os-release file, but now it does) because in
+  # reality, it won't (shouldn't) be used when active on a system with
+  # /etc/os-release. If it is, we fake the only two fields it cares about.
+  fake-lsb-release = writeShellScriptBin "lsb_release" ''
+    . /etc/os-release || true
+
+    case "$1" in
+      -i) echo "''${NAME:-unknown}";;
+      -r) echo "''${VERSION:-unknown}";;
+    esac
+  '';
+in
 buildGoPackage rec {
-  pname   = "amazon-ssm-agent";
-  version = "2.3.1319.0";
+  pname = "amazon-ssm-agent";
+  version = "3.0.755.0";
 
   goPackagePath = "github.com/aws/${pname}";
-  subPackages   = [
-    "agent"
-    "agent/framework/processor/executer/outofproc/worker"
-    "agent/framework/processor/executer/outofproc/worker"
-    "agent/framework/processor/executer/outofproc/sessionworker"
-    "agent/session/logging"
-    "agent/cli-main"
-  ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   src = fetchFromGitHub {
-    rev    = version;
-    owner  = "aws";
-    repo   = pname;
-    sha256 = "1yiyhj7ckqa32b1rnbwn7zx89rsj00m5imn1xlpsw002ywxsxbnv";
+    rev = version;
+    owner = "aws";
+    repo = "amazon-ssm-agent";
+    hash = "sha256-yVQJL1MJ1JlAndlrXfEbNLQihlbLhSoQXTKzJMRzhao=";
   };
 
+  patches = [
+    # Some tests use networking, so we skip them.
+    ./0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
+
+    # They used constants from another package that I couldn't figure
+    # out how to resolve, so hardcoded the constants.
+    ./0002-version-gen-don-t-use-unnecessary-constants.patch
+  ];
+
+  preConfigure = ''
+    rm -r ./Tools/src/goreportcard
+    printf "#!/bin/sh\ntrue" > ./Tools/src/checkstyle.sh
+
+    substituteInPlace agent/platform/platform_unix.go \
+        --replace "/usr/bin/uname" "${coreutils}/bin/uname" \
+        --replace '"/bin", "hostname"' '"${nettools}/bin/hostname"' \
+        --replace '"lsb_release"' '"${fake-lsb-release}/bin/lsb_release"'
+
+    substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \
+        --replace /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode
+
+    substituteInPlace agent/session/shell/shell_unix.go \
+        --replace '"script"' '"${util-linux}/bin/script"'
+
+    echo "${version}" > VERSION
+  '';
+
   preBuild = ''
-    mv go/src/${goPackagePath}/vendor strange-vendor
-    mv strange-vendor/src go/src/${goPackagePath}/vendor
+    cp -r go/src/${goPackagePath}/vendor/src go
 
-    cd go/src/${goPackagePath}
-    echo ${version} > VERSION
+    pushd go/src/${goPackagePath}
 
-    substituteInPlace agent/plugins/inventory/gatherers/application/dataProvider.go \
-      --replace '"github.com/aws/amazon-ssm-agent/agent/plugins/configurepackage/localpackages"' ""
+    # Note: if this step fails, please patch the code to fix it! Please only skip
+    # tests if it is not feasible for the test to pass in a sandbox.
+    make quick-integtest
 
-    go run agent/version/versiongenerator/version-gen.go
-    substituteInPlace agent/appconfig/constants_unix.go \
-      --replace /usr/bin/ssm-document-worker $bin/bin/ssm-document-worker \
-      --replace /usr/bin/ssm-session-worker $bin/bin/ssm-session-worker \
-      --replace /usr/bin/ssm-session-logger $bin/bin/ssm-session-logger
-    cd -
+    make pre-release
+    make pre-build
+
+    popd
   '';
 
   postBuild = ''
-    mv go/bin/agent go/bin/amazon-ssm-agent
-    mv go/bin/worker go/bin/ssm-document-worker
-    mv go/bin/sessionworker go/bin/ssm-session-worker
-    mv go/bin/logging go/bin/ssm-session-logger
-    mv go/bin/cli-main go/bin/ssm-cli
+    pushd go/bin
+
+    rm integration-cli versiongenerator generator
+
+    mv core amazon-ssm-agent
+    mv agent ssm-agent-worker
+    mv cli-main ssm-cli
+    mv worker ssm-document-worker
+    mv logging ssm-session-logger
+    mv sessionworker ssm-session-worker
+
+    popd
   '';
 
-  postInstall = ''
-    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bash}/bin
+  postFixup = ''
+    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin
   '';
 
   meta = with lib; {
     description = "Agent to enable remote management of your Amazon EC2 instance configuration";
-    homepage    = "https://github.com/aws/amazon-ssm-agent";
-    license     = licenses.asl20;
-    platforms   = platforms.unix;
+    homepage = "https://github.com/aws/amazon-ssm-agent";
+    license = licenses.asl20;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ copumpkin manveru ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
index 44ad3dfd72c..8e7731590aa 100644
--- a/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/pkgs/applications/networking/cluster/tanka/default.nix
@@ -2,20 +2,22 @@
 
 buildGoModule rec {
   pname = "tanka";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-y2HhtYKgC9Y397dZ14eQoPZxqS1fTOXVD8B4wdLIHzM=";
+    sha256 = "sha256-ckXvDB3TU9HAXowAAr/fRmX3mylVvPKW8I74R/vUaRY=";
   };
 
   vendorSha256 = "sha256-vpm2y/CxRNWkz6+AOMmmZH5AjRQWAa6WD5Fnx5lqJYw=";
 
   doCheck = false;
 
-  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+  subPackages = [ "cmd/tk" ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -extldflags \"-static\" -X github.com/grafana/tanka/pkg/tanka.CURRENT_VERSION=v${version}" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -26,7 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Flexible, reusable and concise configuration for Kubernetes";
-    homepage = "https://github.com/grafana/tanka/";
+    homepage = "https://tanka.dev";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
index 581af59f0c8..c59c0371489 100644
--- a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
+++ b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -2,23 +2,20 @@
 
 buildGoModule rec {
   pname = "tektoncd-cli";
-  version = "0.16.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "tektoncd";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-IY9iJa4HcZ60jDPdP47jjC0FiOJesvf2vEENMAYVd4Q=";
+    sha256 = "sha256-xwUTSJ0rlNzQqGQp6jL03L4SuHUvvD3aWXxa1Xp0UyM=";
   };
 
   vendorSha256 = null;
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}")
+  '';
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -40,6 +37,14 @@ buildGoModule rec {
       --zsh <($out/bin/tkn completion zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/tkn --help
+    $out/bin/tkn version | grep "Client version: ${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://tekton.dev";
     changelog = "https://github.com/tektoncd/cli/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/cluster/terraform-docs/default.nix b/pkgs/applications/networking/cluster/terraform-docs/default.nix
index a5b6e7d2f5e..313bd46a519 100644
--- a/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -1,24 +1,26 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-buildGoPackage rec {
+{ lib, buildGoModule, fetchFromGitHub }:
+buildGoModule rec {
   pname = "terraform-docs";
-  version = "0.9.1";
-
-  goPackagePath = "github.com/segmentio/${pname}";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
-    owner  = "segmentio";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "00sfzdqhf8g85m03r6mbzfas5vvc67iq7syb8ljcgxg8l1knxnjx";
+    owner = "terraform-docs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-zQFPuHxfFvfwPVV0vPeA+A6XCw2Vt4tY4S2JBGcqaBQ=";
   };
 
+  vendorSha256 = "sha256-HO2E8i5A/2Xi7Pq+Mqb/2ogK1to8IvZjRuDXfzGvOXk=";
+
+  subPackages = [ "." ];
+
   preBuild = ''
     buildFlagsArray+=("-ldflags" "-X main.version=${version}")
   '';
 
   meta = with lib; {
     description = "A utility to generate documentation from Terraform modules in various output formats";
-    homepage = "https://github.com/segmentio/terraform-docs/";
+    homepage = "https://github.com/terraform-docs/terraform-docs/";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
   };
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 198a05621a5..329b1be682c 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -359,10 +359,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/google",
     "repo": "terraform-provider-google",
-    "rev": "v3.47.0",
-    "sha256": "05xb0q56y9088qbyaf3vzjm9im1s2azxffhjffjpzi0i79k0g2p0",
-    "vendorSha256": "1h83p7ncv7b4ci7qdig7hb81zk9458fq9aqqbkryawf1w7wbaq2a",
-    "version": "3.47.0"
+    "rev": "v3.62.0",
+    "sha256": "0x0qp8nk88667hvlpgxrdjsgirw8iwv85gn3k9xb37a3lw7xs4qz",
+    "vendorSha256": "0w6aavj1c4blpvsy00vz4dcj8rnxx6a586b16lqp6s1flqmlqrbi",
+    "version": "3.62.0"
   },
   "google-beta": {
     "owner": "hashicorp",
@@ -398,10 +398,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/helm",
     "repo": "terraform-provider-helm",
-    "rev": "v1.3.2",
-    "sha256": "0mpbf03483jqrwd9cx4pdn2pcv4swfs5nbp021gaqr0jf1w970x6",
+    "rev": "v2.0.2",
+    "sha256": "119zvlkwa7ygwsjxxdl7z8cqb0c4m6gy21356jnsasf4c3557rrb",
     "vendorSha256": null,
-    "version": "1.3.2"
+    "version": "2.0.2"
   },
   "heroku": {
     "owner": "terraform-providers",
@@ -504,16 +504,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v1.13.3",
-    "sha256": "01hkbb81r3k630s3ww6379p66h1fsd5cd1dz14jm833nsr142c0i",
-    "version": "1.13.3"
+    "rev": "v2.0.2",
+    "sha256": "129aylw6hxa44syfnb0kkkihwvlaa6d1jnxrcbwkql6xxhn9zizf",
+    "vendorSha256": null,
+    "version": "2.0.2"
   },
   "kubernetes-alpha": {
     "owner": "hashicorp",
+    "provider-source-address": "registry.terraform.io/hashicorp/kubernetes-alpha",
     "repo": "terraform-provider-kubernetes-alpha",
-    "rev": "nightly20200608",
-    "sha256": "1g171sppf3kq5qlp6g0qqdm0x8lnpizgw8bxjlhp9b6cl4kym70m",
-    "version": "nightly20200608"
+    "rev": "v0.3.2",
+    "sha256": "0lgh42fvfwvj6cw8i7800k016ay4babqiz38q0y7apq4s7vs62sb",
+    "vendorSha256": null,
+    "version": "0.3.2"
   },
   "launchdarkly": {
     "owner": "terraform-providers",
@@ -1071,9 +1074,9 @@
   "vultr": {
     "owner": "vultr",
     "repo": "terraform-provider-vultr",
-    "rev": "v1.5.0",
-    "sha256": "04qy366ignn53bbdj9s3032qr1x7h84q36qzl5ywydlw2va0qbsd",
-    "version": "1.5.0"
+    "rev": "v2.1.3",
+    "sha256": "sha256-fvqkzg3j2TYAMbPc8Ifh35sBe0D76LYH6Ut5Ugdyexg=",
+    "version": "2.1.3"
   },
   "wavefront": {
     "owner": "terraform-providers",
@@ -1083,10 +1086,11 @@
     "version": "2.3.0"
   },
   "yandex": {
-    "owner": "terraform-providers",
+    "owner": "yandex-cloud",
     "repo": "terraform-provider-yandex",
-    "rev": "v0.40.0",
-    "sha256": "0dymhdrdm00m9xn4xka3zbvjqnckhl06vz5zm6rqivkmw8m2q0mz",
-    "version": "0.40.0"
+    "rev": "v0.54.0",
+    "sha256": "0q9m7520zl7q1liri6x849xjp221wbc9l2w6dj19mmgfwspqv02l",
+    "vendorSha256": "0rzldsb8gyhvnsd26wg9byqngzzj64pi86v2hb4i63rlfmnn77xi",
+    "version": "0.54.0"
   }
 }
diff --git a/pkgs/applications/networking/cluster/terraform-providers/update-provider b/pkgs/applications/networking/cluster/terraform-providers/update-provider
index e1f1a0ef38a..f97bbce83fa 100755
--- a/pkgs/applications/networking/cluster/terraform-providers/update-provider
+++ b/pkgs/applications/networking/cluster/terraform-providers/update-provider
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i bash -p coreutils curl jq moreutils
+#! nix-shell -I nixpkgs=../../../../.. -i bash -p coreutils curl jq moreutils nix
 # shellcheck shell=bash
 # vim: ft=sh
 #
@@ -161,7 +161,8 @@ if [[ -z "$vendorSha256" ]]; then
       exit 1
     fi
     rm -f vendor_log.txt
-    vendorSha256=${BASH_REMATCH[1]}
+    # trim the results in case it they have a sha256: prefix or contain more than one line
+    vendorSha256=$(echo "${BASH_REMATCH[1]#sha256:}" | head -n 1)
     # Deal with nix unstable
     if [[ $vendorSha256 = sha256-* ]]; then
       vendorSha256=$(nix to-base32 "$vendorSha256")
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 317666a2c7c..d3aeee6bc68 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -117,7 +117,7 @@ let
         else
           lib.appendToName "with-plugins" (stdenv.mkDerivation {
             inherit (terraform) name meta;
-            buildInputs = [ makeWrapper ];
+            nativeBuildInputs = [ makeWrapper ];
 
             buildCommand = pluginDir + ''
               mkdir -p $out/bin/
@@ -157,9 +157,9 @@ in rec {
   });
 
   terraform_0_14 = pluggable (generic {
-    version = "0.14.6";
-    sha256 = "0ba3vd6lswy4pd0qywdbx8cf71j5z3p8p8kdjs9m4qbyrzsbq0fk";
-    vendorSha256 = "0pk5mgj19a8by7wbn5xd6kgr1kxrazhvg851fvs8mq3j0ayb32nb";
+    version = "0.14.9";
+    sha256 = "0r9d28mbj7h9prr39gm5kd49l7sm8l1ab9rwrkpyhwgr119zf35b";
+    vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
diff --git a/pkgs/applications/networking/cluster/terraforming/Gemfile b/pkgs/applications/networking/cluster/terraforming/Gemfile
new file mode 100644
index 00000000000..e6a4991e899
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraforming/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem 'terraforming'
diff --git a/pkgs/applications/networking/cluster/terraforming/Gemfile.lock b/pkgs/applications/networking/cluster/terraforming/Gemfile.lock
new file mode 100644
index 00000000000..ae2a40cc35b
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraforming/Gemfile.lock
@@ -0,0 +1,92 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    aws-eventstream (1.1.1)
+    aws-partitions (1.436.0)
+    aws-sdk-autoscaling (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-cloudwatch (1.50.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-core (3.113.0)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.239.0)
+      aws-sigv4 (~> 1.1)
+      jmespath (~> 1.0)
+    aws-sdk-dynamodb (1.60.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ec2 (1.230.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-efs (1.39.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticache (1.54.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticloadbalancing (1.31.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticloadbalancingv2 (1.61.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-iam (1.51.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-kms (1.43.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-rds (1.117.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-redshift (1.58.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-route53 (1.48.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.93.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sns (1.39.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sqs (1.38.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.2.3)
+      aws-eventstream (~> 1, >= 1.0.2)
+    jmespath (1.4.0)
+    multi_json (1.12.2)
+    terraforming (0.18.0)
+      aws-sdk-autoscaling (~> 1)
+      aws-sdk-cloudwatch (~> 1)
+      aws-sdk-dynamodb (~> 1.18)
+      aws-sdk-ec2 (~> 1)
+      aws-sdk-efs (~> 1, >= 1.13.0)
+      aws-sdk-elasticache (~> 1)
+      aws-sdk-elasticloadbalancing (~> 1)
+      aws-sdk-elasticloadbalancingv2 (~> 1)
+      aws-sdk-iam (~> 1)
+      aws-sdk-kms (~> 1)
+      aws-sdk-rds (~> 1)
+      aws-sdk-redshift (~> 1)
+      aws-sdk-route53 (~> 1)
+      aws-sdk-s3 (~> 1)
+      aws-sdk-sns (~> 1)
+      aws-sdk-sqs (~> 1)
+      multi_json (~> 1.12.1)
+      thor
+    thor (1.1.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  terraforming
+
+BUNDLED WITH
+   2.1.4
diff --git a/pkgs/applications/networking/cluster/terraforming/default.nix b/pkgs/applications/networking/cluster/terraforming/default.nix
new file mode 100644
index 00000000000..85d522257cd
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraforming/default.nix
@@ -0,0 +1,20 @@
+{ lib, bundlerApp, bundlerUpdateScript, ruby }:
+
+bundlerApp rec {
+  inherit ruby;
+
+  pname = "terraforming";
+  gemdir = ./.;
+  exes = [ "terraforming" ];
+
+  passthru.updateScript = bundlerUpdateScript "terraforming";
+
+  meta = with lib; {
+    inherit (ruby.meta) platforms;
+
+    description = "Export existing AWS resources to Terraform style (tf, tfstate)";
+    homepage    = "https://github.com/dtan4/terraforming";
+    license     = with licenses; mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/terraforming/gemset.nix b/pkgs/applications/networking/cluster/terraforming/gemset.nix
new file mode 100644
index 00000000000..9882efc29e8
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraforming/gemset.nix
@@ -0,0 +1,261 @@
+{
+  aws-eventstream = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  aws-partitions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gn09cafg2n6gdc3ja80r3xjllly05r0m7x3w3b3rywir6k6ai4f";
+      type = "gem";
+    };
+    version = "1.436.0";
+  };
+  aws-sdk-autoscaling = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0br6hfi2i5rri8ivamkmnx00p640s24pqmp8s67sm5asvdfzx4vr";
+      type = "gem";
+    };
+    version = "1.59.0";
+  };
+  aws-sdk-cloudwatch = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xga00dn925rfgz4p2zf734aaik00dqb9psll27lg5626jd6xr0c";
+      type = "gem";
+    };
+    version = "1.50.0";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1774xyfqf307qvh5npvf01948ayrviaadq576r4jxin6xvlg8j9z";
+      type = "gem";
+    };
+    version = "3.113.0";
+  };
+  aws-sdk-dynamodb = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dfsmkzv9cziykzc56g9pwxmbdqjpykxka3fq07b6iarzh38j1i3";
+      type = "gem";
+    };
+    version = "1.60.0";
+  };
+  aws-sdk-ec2 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c7qqly2f94db3643xwjj9mcb34vilx11awbv40v2f8z7xisvvz3";
+      type = "gem";
+    };
+    version = "1.230.0";
+  };
+  aws-sdk-efs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kmpz86sxkm6nzcf80nd65902fy29hz8lvx1kjwl5idx07ls8pnd";
+      type = "gem";
+    };
+    version = "1.39.0";
+  };
+  aws-sdk-elasticache = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05kn2k437rnsf9nkwc1x5i2klrasjgyk1pj89f2gb0za86swjcza";
+      type = "gem";
+    };
+    version = "1.54.0";
+  };
+  aws-sdk-elasticloadbalancing = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j3px8dn2yxsnmy010kfkwa1a2flbdxachmly20f436ysi3ql3v3";
+      type = "gem";
+    };
+    version = "1.31.0";
+  };
+  aws-sdk-elasticloadbalancingv2 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16hknbqv5s1im04dch9kdbc79x072613imdih62w48mvsf12c1mm";
+      type = "gem";
+    };
+    version = "1.61.0";
+  };
+  aws-sdk-iam = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x2768blsy8lpib9pi2f2d67flabar3bq6chmbj07iqzpwvpz569";
+      type = "gem";
+    };
+    version = "1.51.0";
+  };
+  aws-sdk-kms = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh";
+      type = "gem";
+    };
+    version = "1.43.0";
+  };
+  aws-sdk-rds = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hwxgcka6bmzdn5pazss0fv8xgbbgas4h2cwpzwhkjkwhh23dx6a";
+      type = "gem";
+    };
+    version = "1.117.0";
+  };
+  aws-sdk-redshift = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sp186v00lj517hia6rsn28ph8rqknz9r79vbkbyh5fgrbh2j6bd";
+      type = "gem";
+    };
+    version = "1.58.0";
+  };
+  aws-sdk-route53 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p9g0scw9c6qancdwvaw3kkj3pywchy2vl3qz2rqpjncqvj04pn5";
+      type = "gem";
+    };
+    version = "1.48.0";
+  };
+  aws-sdk-s3 = {
+    dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94";
+      type = "gem";
+    };
+    version = "1.93.0";
+  };
+  aws-sdk-sns = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pmxi871r2nkl6by89vsy05ahk8dr6hmkny56fycrby6r9kri9q4";
+      type = "gem";
+    };
+    version = "1.39.0";
+  };
+  aws-sdk-sqs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01m2l8y4q4fixjvl70w5bi1ihmmx2y4krms9kkjwd3ch21y14hif";
+      type = "gem";
+    };
+    version = "1.38.0";
+  };
+  aws-sigv4 = {
+    dependencies = ["aws-eventstream"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x";
+      type = "gem";
+    };
+    version = "1.12.2";
+  };
+  terraforming = {
+    dependencies = ["aws-sdk-autoscaling" "aws-sdk-cloudwatch" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-efs" "aws-sdk-elasticache" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-iam" "aws-sdk-kms" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-s3" "aws-sdk-sns" "aws-sdk-sqs" "multi_json" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03fyhqx6bxpbn26pbcz748gz7rh7q3r9r0jimq7vj07fl454fmwh";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+}
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 21777252f3b..eb230062fee 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,25 +2,30 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.28.5";
+  version = "0.28.18";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LSUWEgCajIBgRPiuvGJ9I3tJLXk1JrVDDsgS7lpbVYk=";
+    sha256 = "sha256-W0HjGILezhuc1lXvGCHw23h8Sx1uw4YLLsOOBZYGvU8=";
   };
 
-  vendorSha256 = "sha256-lRJerUYafpkXAGf8MEM8SeG3aB86mlMo7iLpeHFAnd4=";
+  vendorSha256 = "sha256-kcRM76xfajtQist1aJTmaRludxRlfvHQ9ucB3LOgnBk=";
 
   doCheck = false;
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X main.VERSION=v${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -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";
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index 7f7f34d1cb5..ccbe9d9a7ac 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
     running in development environment and try to serve assets from the
     source tree, which is not there once build completes.  */
-  version = "0.18.9";
+  version = "0.18.10";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-bsLqTpBhYeDMAv8vmnbjz+bmkyGqX3V7OkOwCprftC0=";
+    sha256 = "sha256-SvvvHGR3UPyV61MaoFB68SaZKUT3ItYOPT1a7AddxlY=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/networking/cluster/velero/default.nix b/pkgs/applications/networking/cluster/velero/default.nix
index 6b878cec927..daa9f486bf7 100644
--- a/pkgs/applications/networking/cluster/velero/default.nix
+++ b/pkgs/applications/networking/cluster/velero/default.nix
@@ -40,6 +40,6 @@ buildGoModule rec {
       "https://github.com/vmware-tanzu/velero/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.mbode maintainers.bryanasdev000 ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix
index 3d62a1dcf29..7675dc0de88 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.1";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bCvi5xIL6xAtQ9mgf4feh076sAmog/3eGBlgvcLXJyc=";
+    sha256 = "sha256-6sV2e/m0qVSRWgdvVZ9VxEL/J57nTcTClxHF5X8/8PQ=";
   };
 
   deleteVendor = true;
-  vendorSha256 = "sha256-ArebHOjP3zvpASVAoaPXpSbrG/jq+Jbx7+EaQ1uHSVY=";
+  vendorSha256 = "sha256-NPE3YHulqllWDGrxQgPmy/KKE7xFPOUorLQNIU8cP50=";
 
   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/compactor/default.nix b/pkgs/applications/networking/compactor/default.nix
index d0db8cc10b9..f4535c9120c 100644
--- a/pkgs/applications/networking/compactor/default.nix
+++ b/pkgs/applications/networking/compactor/default.nix
@@ -1,5 +1,5 @@
 { autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libctemplate, libmaxminddb
-, libpcap, libtins, libtool, lzma, openssl, pkg-config, lib, stdenv, tcpdump, wireshark-cli
+, libpcap, libtins, libtool, xz, openssl, pkg-config, lib, stdenv, tcpdump, wireshark-cli
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     libpcap
     openssl
     libtins
-    lzma
+    xz
     libctemplate
     libmaxminddb
   ];
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index 2af3e8fe560..39073985fa1 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.6.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-I1PaDHPocQuoSOyfnxDWwIR+7S9l/odX4SCeAae/jv8=";
+    sha256 = "sha256-VSNvyigaGfGDbcng6ltdq+X35zT2tb2p4j/4KAjd1Yk=";
   };
 
-  vendorSha256 = "sha256-H0i5MoVX5O0CgHOvefDEyzBWvBZvJZUrC9xBq9CHgeE=";
+  vendorSha256 = "sha256-VU0uJDp5koVU+wDwr3ctrDY0R3vd/JmpA7gtWWpwpfw=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/pkgs/applications/networking/dyndns/cfdyndns/default.nix
index dae9ad3bc33..51f62529e9c 100644
--- a/pkgs/applications/networking/dyndns/cfdyndns/default.nix
+++ b/pkgs/applications/networking/dyndns/cfdyndns/default.nix
@@ -17,11 +17,6 @@ buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ];
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -p $releaseDir/cfdyndns $out/bin/
-  '';
-
   meta = with lib; {
     description = "CloudFlare Dynamic DNS Client";
     homepage = "https://github.com/colemickens/cfdyndns";
diff --git a/pkgs/applications/networking/feedreaders/feedreader/default.nix b/pkgs/applications/networking/feedreaders/feedreader/default.nix
index d550a126547..c9339601a4b 100644
--- a/pkgs/applications/networking/feedreaders/feedreader/default.nix
+++ b/pkgs/applications/networking/feedreaders/feedreader/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkg-config, vala, gettext, python3
 , appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts
-, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas, pantheon
+, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas
 , curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
 }:
 
diff --git a/pkgs/applications/networking/feedreaders/newsboat/default.nix b/pkgs/applications/networking/feedreaders/newsboat/default.nix
index b032d3de332..38bc05b1f86 100644
--- a/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -3,27 +3,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "newsboat";
-  version = "2.22.1";
+  version = "2.23";
 
   src = fetchFromGitHub {
     owner = "newsboat";
     repo = "newsboat";
     rev = "r${version}";
-    sha256 = "1j3z34dhqw0f1v6v2lfwcvzqnm2kr2940bgxibfi0npacp74izh3";
+    sha256 = "0a0g9km515kipqmz6c09aj3lgy3nkzqwgnp87fh8f2vr098fn144";
   };
 
-  cargoSha256 = "08ywaka1lib8yrqjmfx1i37f7b33y3i6jj7f50pwhw8n6lr9f7lc";
+  cargoSha256 = "11dn1ixc7i29cv8kpqfkmikdqzr2v79vlyfxcvjwhgd0r34w4xhn";
 
-  postPatch = ''
-    substituteInPlace Makefile --replace "|| true" ""
-  ''
-    # TODO: Check if that's still needed
-    + lib.optionalString stdenv.isDarwin ''
-      # Allow other ncurses versions on Darwin
-      substituteInPlace config.sh \
-        --replace "ncurses5.4" "ncurses"
-    ''
-  ;
+  # TODO: Check if that's still needed
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    # Allow other ncurses versions on Darwin
+    substituteInPlace config.sh \
+      --replace "ncurses5.4" "ncurses"
+  '';
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/networking/feedreaders/newsflash/default.nix b/pkgs/applications/networking/feedreaders/newsflash/default.nix
index e8a76b3d491..ac7af8e53b3 100644
--- a/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitLab
 , meson
@@ -17,25 +18,33 @@
 , gst_all_1
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "newsflash";
-  version = "1.1.1";
+  version = "1.4.0";
 
   src = fetchFromGitLab {
     owner = "news-flash";
     repo = "news_flash_gtk";
     rev = version;
-    sha256 = "1z47h23g87dqmr9sfjl36fs5xjm2wj7z2bri9g0a4jcpwzl5awsd";
+    hash = "sha256-EInI5Unaz9m8/gJ7vAzJVyMynJGq0KZh12dNK8r1wnY=";
   };
 
-  cargoSha256 = "0rnrdh9ganj63hf9j890yj9pahcgza95z7x020w72mbb4648hq26";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-xrWZhjfYnO6M3LMTP6l3+oZOusvUWuRBDesIlsiEJ6s=";
+  };
 
   patches = [
+    # Post install tries to generate an icon cache & update the
+    # desktop database. The gtk setup hook drop-icon-theme-cache.sh
+    # would strip out the icon cache and the desktop database wouldn't
+    # be included in $out. They will generated by xdg.mime.enable &
+    # gtk.iconCache.enable instead.
     ./no-post-install.patch
   ];
 
   postPatch = ''
-    chmod +x build-aux/cargo.sh
     patchShebangs .
   '';
 
@@ -50,7 +59,11 @@ rustPlatform.buildRustPackage rec {
 
     # Provides glib-compile-resources to compile gresources
     glib
-  ];
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
 
   buildInputs = [
     gtk3
@@ -72,13 +85,6 @@ rustPlatform.buildRustPackage rec {
     gst-plugins-bad
   ]);
 
-  # Unset default rust phases to use meson & ninja instead
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-  installCheckPhase = null;
-
   meta = with lib; {
     description = "A modern feed reader designed for the GNOME desktop";
     homepage = "https://gitlab.com/news-flash/news_flash_gtk";
diff --git a/pkgs/applications/networking/feedreaders/rss2email/default.nix b/pkgs/applications/networking/feedreaders/rss2email/default.nix
index 23b79dccd6d..9ecadd56f15 100644
--- a/pkgs/applications/networking/feedreaders/rss2email/default.nix
+++ b/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -1,32 +1,19 @@
-{ pythonPackages, fetchurl, fetchpatch, lib, nixosTests }:
+{ pythonPackages, fetchurl, lib, nixosTests }:
 
 with pythonPackages;
 
 buildPythonApplication rec {
   pname = "rss2email";
-  version = "3.12.2";
+  version = "3.13";
 
   propagatedBuildInputs = [ feedparser html2text ];
   checkInputs = [ beautifulsoup4 ];
 
   src = fetchurl {
     url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz";
-    sha256 = "12w6x80wsw6xm17fxyymnl45aavsagg932zw621wcjz154vjghjr";
+    sha256 = "09vp2y0ibv20y9yysniv6njzigif4h74pkj31l2a8xw5g19gclna";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "rss2email-feedparser6.patch";
-      url = "https://github.com/rss2email/rss2email/pull/149/commits/338343c92f956c31ff5249ef4bcf7aeea81f687e.patch";
-      sha256 = "0h8b3g9332vdrkqbh6lp00k97asrhmlxi13zghrgc78ia13czy3z";
-    })
-    (fetchpatch {
-      name = "rss2email-feedparser6-test.patch";
-      url = "https://github.com/rss2email/rss2email/pull/149/commits/8c99651eced3f29f05ba2c0ca02abb8bb9a18967.patch";
-      sha256 = "1scljak6xyqxlilg3j39v4qm9a9jks1bnvnrh62hyf3g53yw2xlg";
-    })
-  ];
-
   outputs = [ "out" "man" "doc" ];
 
   postPatch = ''
@@ -45,8 +32,10 @@ buildPythonApplication rec {
     cp AUTHORS COPYING CHANGELOG README.rst $doc/share/doc/rss2email/
   '';
 
-  postCheck = ''
+  checkPhase = ''
+    runHook preCheck
     env PATH=$out/bin:$PATH python ./test/test.py
+    runHook postCheck
   '';
 
   meta = with lib; {
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/firehol/default.nix b/pkgs/applications/networking/firehol/default.nix
index ee0b561e675..424c6772104 100644
--- a/pkgs/applications/networking/firehol/default.nix
+++ b/pkgs/applications/networking/firehol/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub, pkgs
-, autoconf, automake, curl, iprange, iproute, ipset, iptables, iputils
+, autoconf, automake, curl, iprange, iproute2, ipset, iptables, iputils
 , kmod, nettools, procps, tcpdump, traceroute, util-linux, whois
 
 # If true, just install FireQOS without FireHOL
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake ];
   buildInputs = [
-    curl iprange iproute ipset iptables iputils kmod
+    curl iprange iproute2 ipset iptables iputils kmod
     nettools procps tcpdump traceroute util-linux whois
   ];
 
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 2e5713627e4..fd68dfc49f4 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.106";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "d2d17a5ea821a580c55680294fce9ecf7012ef86c086c742414ec5bcb8468972";
+    sha256 = "f0ff300a1762d701b77eb16142dcc13d9d099bbed695f1e950392c1d1bb988eb";
   };
 
   postPatch = ''
@@ -55,7 +55,7 @@ python3Packages.buildPythonApplication rec {
     terminaltables
     zxcvbn
     # plugins
-    transmissionrpc
+    transmission-rpc
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix
index 877cdec4ca8..f8e9fcc87b0 100644
--- a/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.51.0";
+  version = "3.53.0";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
-    sha256 = "0k3c7gm16snc6dr9a3xgq14ajyqj4hxcrd6hk6jk5fsi9x51rgl2";
+    sha256 = "sha256-MJXnYN9PVADttNqj3hshLElHk2Dy9FzE67clMMh85CA=";
   };
 
   # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
diff --git a/pkgs/applications/networking/giara/default.nix b/pkgs/applications/networking/giara/default.nix
new file mode 100644
index 00000000000..940756855b9
--- /dev/null
+++ b/pkgs/applications/networking/giara/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, fetchFromGitLab
+, meson
+, gobject-introspection
+, pkg-config
+, ninja
+, python3
+, wrapGAppsHook
+, gtk3
+, gdk-pixbuf
+, webkitgtk
+, gtksourceview4
+, libhandy
+, glib-networking
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "giara";
+  version = "0.3";
+
+  format = "other";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = pname;
+    rev = version;
+    sha256 = "004qmkfrgd37axv0b6hfh6v7nx4pvy987k5yv4bmlmkj9sbqm6f9";
+  };
+
+  nativeBuildInputs = [
+    meson
+    gobject-introspection
+    pkg-config
+    ninja
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    gdk-pixbuf
+    webkitgtk
+    gtksourceview4
+    libhandy
+    glib-networking
+  ];
+
+  pythonPath = with python3.pkgs; [
+    pygobject3
+    pycairo
+    dateutil
+    praw
+    pillow
+    mistune
+    beautifulsoup4
+  ];
+
+  # Fix setup-hooks https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
+  meta = with lib; {
+    description = "A Reddit app, built with Python, GTK and Handy; Created with mobile Linux in mind";
+    maintainers = with maintainers; [ dasj19 ];
+    homepage = "https://gitlab.gnome.org/World/giara";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/gns3/gui.nix b/pkgs/applications/networking/gns3/gui.nix
index 8eb688bcd56..f206c645ae2 100644
--- a/pkgs/applications/networking/gns3/gui.nix
+++ b/pkgs/applications/networking/gns3/gui.nix
@@ -44,6 +44,6 @@ in python.pkgs.buildPythonPackage rec {
     changelog = "https://github.com/GNS3/gns3-gui/releases/tag/v${version}";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix
index 5ba6b57d5bd..b0d215c47bb 100644
--- a/pkgs/applications/networking/gns3/server.nix
+++ b/pkgs/applications/networking/gns3/server.nix
@@ -6,17 +6,6 @@ let
   defaultOverrides = commonOverrides ++ [
     (mkOverride "aiofiles" "0.5.0"
       "98e6bcfd1b50f97db4980e182ddd509b7cc35909e903a8fe50d8849e02d815af")
-    (self: super: {
-      py-cpuinfo = super.py-cpuinfo.overridePythonAttrs (oldAttrs: rec {
-        version = "7.0.0";
-        src = fetchFromGitHub {
-           owner = "workhorsy";
-           repo = "py-cpuinfo";
-           rev = "v${version}";
-           sha256 = "10qfaibyb2syiwiyv74l7d97vnmlk079qirgnw3ncklqjs0s3gbi";
-        };
-      });
-    })
   ];
 
   python = python3.override {
@@ -62,6 +51,6 @@ in python.pkgs.buildPythonPackage {
     changelog = "https://github.com/GNS3/gns3-server/releases/tag/v${version}";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/networking/ids/snort/default.nix b/pkgs/applications/networking/ids/snort/default.nix
index 17ace3021d8..714ca1c8990 100644
--- a/pkgs/applications/networking/ids/snort/default.nix
+++ b/pkgs/applications/networking/ids/snort/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "13lzvjli6kbsnkd7lf0rm71l2mnz38pxk76ia9yrjb6clfhlbb73";
   };
 
-  buildInputs = [ makeWrapper pkg-config luajit openssl libpcap pcre libdnet daq zlib flex bison libtirpc ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pkg-config luajit openssl libpcap pcre libdnet daq zlib flex bison libtirpc ];
 
   NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
 
diff --git a/pkgs/applications/networking/ids/zeek/default.nix b/pkgs/applications/networking/ids/zeek/default.nix
index f7b526f29b5..a12e914097c 100644
--- a/pkgs/applications/networking/ids/zeek/default.nix
+++ b/pkgs/applications/networking/ids/zeek/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , cmake
 , flex
@@ -10,47 +11,48 @@
 , curl
 , libmaxminddb
 , gperftools
-, python
+, python3
 , swig
 , gettext
-, fetchpatch
 , coreutils
+, ncurses
+, caf
 }:
-let
-  preConfigure = (import ./script.nix {inherit coreutils;});
-in
+
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "3.2.3";
+  version = "4.0.0";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "1in25clpbb2vdhms3iypj6r5sp8d1dxjcfn85c272sh7shnmqagr";
+    sha256 = "0m7zy5k2595vf5xr2r4m75rfsdddigrv2hilm1c3zaif4srxmvpj";
   };
 
   nativeBuildInputs = [ cmake flex bison file ];
-  buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig ]
+  buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python3 swig ncurses ]
     ++ lib.optionals stdenv.isDarwin [ gettext ];
 
-  #see issue https://github.com/zeek/zeek/issues/804 to modify hardlinking duplicate files.
-  inherit preConfigure;
-
-  patches = lib.optionals stdenv.cc.isClang [
-    # Fix pybind c++17 build with Clang. See: https://github.com/pybind/pybind11/issues/1604
-    (fetchpatch {
-      url = "https://github.com/pybind/pybind11/commit/759221f5c56939f59d8f342a41f8e2d2cacbc8cf.patch";
-      sha256 = "17qznp8yavnv84fjsbghv3d59z6k6rx74j49w0izakmgw5a95w84";
-      extraPrefix = "auxil/broker/bindings/python/3rdparty/pybind11/";
-      stripLen = 1;
-    })
-  ];
+  outputs = [ "out" "lib" "py" ];
 
   cmakeFlags = [
-    "-DPY_MOD_INSTALL_DIR=${placeholder "out"}/${python.sitePackages}"
+    "-DCAF_ROOT=${caf}"
+    "-DZEEK_PYTHON_DIR=${placeholder "py"}/lib/${python3.libPrefix}/site-packages"
     "-DENABLE_PERFTOOLS=true"
     "-DINSTALL_AUX_TOOLS=true"
   ];
 
+  postInstall = ''
+    for file in $out/share/zeek/base/frameworks/notice/actions/pp-alarms.zeek $out/share/zeek/base/frameworks/notice/main.zeek; do
+      substituteInPlace $file \
+         --replace "/bin/rm" "${coreutils}/bin/rm" \
+         --replace "/bin/cat" "${coreutils}/bin/cat"
+    done
+
+    for file in $out/share/zeek/policy/misc/trim-trace-file.zeek $out/share/zeek/base/frameworks/logging/postprocessors/scp.zeek $out/share/zeek/base/frameworks/logging/postprocessors/sftp.zeek; do
+      substituteInPlace $file --replace "/bin/rm" "${coreutils}/bin/rm"
+    done
+  '';
+
   meta = with lib; {
     description = "Powerful network analysis framework much different from a typical IDS";
     homepage = "https://www.zeek.org";
diff --git a/pkgs/applications/networking/ids/zeek/script.nix b/pkgs/applications/networking/ids/zeek/script.nix
deleted file mode 100644
index 4c8bbcf22c0..00000000000
--- a/pkgs/applications/networking/ids/zeek/script.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{coreutils}:
-''
-   sed -i 's|/bin/mv|${coreutils}/bin/mv|' scripts/base/frameworks/logging/writers/ascii.zeek
-   sed -i 's|/bin/mv|${coreutils}/bin/mv|' scripts/policy/misc/trim-trace-file.zeek
-   sed -i 's|/bin/cat|${coreutils}/bin/cat|' scripts/base/frameworks/notice/actions/pp-alarms.zeek
-   sed -i 's|/bin/cat|${coreutils}/bin/cat|' scripts/base/frameworks/notice/main.zeek
-
-   sed -i "1i##! test dpd" $PWD/scripts/base/frameworks/dpd/__load__.zeek
-   sed -i "1i##! test x509" $PWD/scripts/base/files/x509/__load__.zeek
-   sed -i "1i##! test files-extract" $PWD/scripts/base/files/extract/__load__.zeek
-   sed -i "1i##! test files-hash" $PWD/scripts/base/files/hash/__load__.zeek
-   sed -i "1i##! test files-pe" $PWD/scripts/base/files/pe/__load__.zeek
-   sed -i "1i##! test analyzer" $PWD/scripts/base/frameworks/analyzer/__load__.zeek
-   sed -i "1i##! test cluster" $PWD/scripts/base/frameworks/cluster/__load__.zeek
-   sed -i "1i##! test config" $PWD/scripts/base/frameworks/config/__load__.zeek
-   sed -i "1i##! test contro" $PWD/scripts/base/frameworks/control/__load__.zeek
-   sed -i "1i##! test files" $PWD/scripts/base/frameworks/files/__load__.zeek
-   sed -i "1i##! test files-magic" $PWD/scripts/base/frameworks/files/magic/__load__.zeek
-   sed -i "1i##! test input" $PWD/scripts/base/frameworks/input/__load__.zeek
-   sed -i "1i##! test intel" $PWD/scripts/base/frameworks/intel/__load__.zeek
-   sed -i "1i##! test logging" $PWD/scripts/base/frameworks/logging/__load__.zeek
-   sed -i "1i##! test logging-postprocessors" $PWD/scripts/base/frameworks/logging/postprocessors/__load__.zeek
-   sed -i "1i##! test netcontrol" $PWD/scripts/base/frameworks/netcontrol/__load__.zeek
-   sed -i "1i##! test netcontrol-plugins" $PWD/scripts/base/frameworks/netcontrol/plugins/__load__.zeek
-   sed -i "1i##! test notice" $PWD/scripts/base/frameworks/notice/__load__.zeek
-   sed -i "1i##! test openflow" $PWD/scripts/base/frameworks/openflow/__load__.zeek
-   sed -i "1i##! test openflow-plugins" $PWD/scripts/base/frameworks/openflow/plugins/__load__.zeek
-   sed -i "1i##! test packet-filter" $PWD/scripts/base/frameworks/packet-filter/__load__.zeek
-   sed -i "1i##! test reporter" $PWD/scripts/base/frameworks/reporter/__load__.zeek
-   sed -i "1i##! test signatures" $PWD/scripts/base/frameworks/signatures/__load__.zeek
-   sed -i "1i##! test software" $PWD/scripts/base/frameworks/software/__load__.zeek
-   sed -i "1i##! test sumstats" $PWD/scripts/base/frameworks/sumstats/__load__.zeek
-   sed -i "1i##! test sumstats-plugins" $PWD/scripts/base/frameworks/sumstats/plugins/__load__.zeek
-   sed -i "1i##! test conn" $PWD/scripts/base/protocols/conn/__load__.zeek
-   sed -i "1i##! test dce-rpc" $PWD/scripts/base/protocols/dce-rpc/__load__.zeek
-   sed -i "1i##! test dhcp" $PWD/scripts/base/protocols/dhcp/__load__.zeek
-   sed -i "1i##! test dnp3" $PWD/scripts/base/protocols/dnp3/__load__.zeek
-   sed -i "1i##! test dns" $PWD/scripts/base/protocols/dns/__load__.zeek
-   sed -i "1i##! test ftp" $PWD/scripts/base/protocols/ftp/__load__.zeek
-   sed -i "1i##! test http" $PWD/scripts/base/protocols/http/__load__.zeek
-   sed -i "1i##! test tunnels" $PWD/scripts/base/protocols/tunnels/__load__.zeek
-   sed -i "1i##! test imap" $PWD/scripts/base/protocols/imap/__load__.zeek
-   sed -i "1i##! test irc" $PWD/scripts/base/protocols/irc/__load__.zeek
-   sed -i "1i##! test krb" $PWD/scripts/base/protocols/krb/__load__.zeek
-   sed -i "1i##! test modbus" $PWD/scripts/base/protocols/modbus/__load__.zeek
-   sed -i "1i##! test mqtt" $PWD/scripts/base/protocols/mqtt/__load__.zeek
-   sed -i "1i##! test mysql" $PWD/scripts/base/protocols/mysql/__load__.zeek
-   sed -i "1i##! test ntlm" $PWD/scripts/base/protocols/ntlm/__load__.zeek
-   sed -i "1i##! test ntp" $PWD/scripts/base/protocols/ntp/__load__.zeek
-   sed -i "1i##! test pop3" $PWD/scripts/base/protocols/pop3/__load__.zeek
-   sed -i "1i##! test radius" $PWD/scripts/base/protocols/radius/__load__.zeek
-   sed -i "1i##! test rdp" $PWD/scripts/base/protocols/rdp/__load__.zeek
-   sed -i "1i##! test rfb" $PWD/scripts/base/protocols/rfb/__load__.zeek
-   sed -i "1i##! test sip" $PWD/scripts/base/protocols/sip/__load__.zeek
-   sed -i "1i##! test smb" $PWD/scripts/base/protocols/smb/__load__.zeek
-   sed -i "1i##! test smtp" $PWD/scripts/base/protocols/smtp/__load__.zeek
-   sed -i "1i##! test snmp" $PWD/scripts/base/protocols/snmp/__load__.zeek
-   sed -i "1i##! test socks" $PWD/scripts/base/protocols/socks/__load__.zeek
-   sed -i "1i##! test ssh" $PWD/scripts/base/protocols/ssh/__load__.zeek
-   sed -i "1i##! test ssl" $PWD/scripts/base/protocols/ssl/__load__.zeek
-   sed -i "1i##! test syslog" $PWD/scripts/base/protocols/syslog/__load__.zeek
-   sed -i "1i##! test xmpp" $PWD/scripts/base/protocols/xmpp/__load__.zeek
-   sed -i "1i##! test unified2" $PWD/scripts/policy/files/unified2/__load__.zeek
-   sed -i "1i##! test intel-seen" $PWD/scripts/policy/frameworks/intel/seen/__load__.zeek
-   sed -i "1i##! test notice" $PWD/scripts/policy/frameworks/notice/__load__.zeek
-   sed -i "1i##! test barnyard2" $PWD/scripts/policy/integration/barnyard2/__load__.zeek
-   sed -i "1i##! test collective-intel" $PWD/scripts/policy/integration/collective-intel/__load__.zeek
-   sed -i "1i##! test detect-traceroute" $PWD/scripts/policy/misc/detect-traceroute/__load__.zeek
-''
diff --git a/pkgs/applications/networking/ike/default.nix b/pkgs/applications/networking/ike/default.nix
index 7a8c3d395f6..7b4ddb6134d 100644
--- a/pkgs/applications/networking/ike/default.nix
+++ b/pkgs/applications/networking/ike/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
-, gcc, nettools, iproute, linuxHeaders }:
+, gcc, nettools, iproute2, linuxHeaders }:
 
 # NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
 # launch with "iked -f /etc/iked.conf"
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake flex bison makeWrapper ];
-  buildInputs = [ openssl libedit qt4 nettools iproute ];
+  buildInputs = [ openssl libedit qt4 nettools iproute2 ];
 
   postPatch = ''
     # fix build with bison3
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.shrew.net/software";
     description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems";
     platforms = platforms.unix;
-    maintainers = [ maintainers.domenkozar ];
+    maintainers = [ ];
     license = licenses.sleepycat;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index 1a83a04a1fa..c5a718c3a70 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, fetchpatch, stdenv, gnutls, glib, pkg-config, check, libotr, python
+{ lib, fetchurl, fetchpatch, stdenv, gnutls, glib, pkg-config, check, libotr, python2
 , enableLibPurple ? false, pidgin ? null
 , enablePam ? false, pam ? null
 }:
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ] ++ optional doCheck check;
 
-  buildInputs = [ gnutls libotr python ]
+  buildInputs = [ gnutls libotr python2 ]
     ++ optional enableLibPurple pidgin
     ++ optional enablePam pam;
 
diff --git a/pkgs/applications/networking/instant-messengers/blink/default.nix b/pkgs/applications/networking/instant-messengers/blink/default.nix
index 7ed3b167383..805278b4e45 100644
--- a/pkgs/applications/networking/instant-messengers/blink/default.nix
+++ b/pkgs/applications/networking/instant-messengers/blink/default.nix
@@ -1,7 +1,7 @@
-{ lib, fetchdarcs, pythonPackages, libvncserver, zlib
+{ lib, fetchdarcs, python2Packages, libvncserver, zlib
 , gnutls, libvpx, makeDesktopItem, mkDerivationWith }:
 
-mkDerivationWith pythonPackages.buildPythonApplication rec {
+mkDerivationWith python2Packages.buildPythonApplication rec {
 
   pname = "blink";
   version = "3.2.0";
@@ -17,16 +17,16 @@ mkDerivationWith pythonPackages.buildPythonApplication rec {
     sed -i 's|@out@|'"''${out}"'|g' blink/resources.py
   '';
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python2Packages; [
     pyqt5_with_qtwebkit
     cjson
     sipsimple
     twisted
-    google_api_python_client
+    google-api-python-client
   ];
 
   buildInputs = [
-    pythonPackages.cython
+    python2Packages.cython
     zlib
     libvncserver
     libvpx
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
index e58e73fdc85..0134fac0e20 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
@@ -1,21 +1,25 @@
-{ lib, fetchurl, appimageTools }:
+{ lib, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }:
 
 let
   pname = "deltachat-electron";
-  version = "1.3.0";
+  version = "1.15.5";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url =
-      "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
-    sha256 = "1xyp8cg11px8rras12sncjmq85alyvz7ycw1v1py8w8rlz60wkij";
+    url = "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
+    sha256 = "sha256-BTGwgC0zSr1tq/X4v/fS/12E7/mGVYQ0m+Bt6o7VL4o=";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
 
-in appimageTools.wrapType2 {
+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/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index c7ddc495546..fe75418ebe3 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -7,10 +7,10 @@ in {
     pname = "discord";
     binaryName = "Discord";
     desktopName = "Discord";
-    version = "0.0.13";
+    version = "0.0.14";
     src = fetchurl {
       url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-      sha256 = "0d5z6cbj9dg3hjw84pyg75f8dwdvi2mqxb9ic8dfqzk064ssiv7y";
+      sha256 = "1rq490fdl5pinhxk8lkfcfmfq7apj79jzf3m14yql1rc9gpilrf2";
     };
   };
   ptb = callPackage ./base.nix rec {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index f5f20202fc2..72a5b86c625 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "src/electron-main.js",
-  "version": "1.7.21",
+  "version": "1.7.24",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
@@ -62,7 +62,7 @@
   },
   "build": {
     "appId": "im.riot.app",
-    "electronVersion": "10.2.0",
+    "electronVersion": "11.2.3",
     "files": [
       "package.json",
       {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index f706a4399be..dcb22815e9e 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -8,12 +8,12 @@
 
 let
   executableName = "element-desktop";
-  version = "1.7.21";
+  version = "1.7.24";
   src = fetchFromGitHub {
     owner = "vector-im";
     repo = "element-desktop";
     rev = "v${version}";
-    sha256 = "sha256-tpFiKaJB6KN97ipN3OCTyxpiS0b980MQ1Ynxj8CjCuI=";
+    sha256 = "sha256-16sqiOwJvKTs6MPmdkuiPhnr1G7ErWCT5ctp5xqZRlk=";
   };
 in mkYarnPackage rec {
   name = "element-desktop-${version}";
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 285e525efbb..1b6d83bd354 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -12,11 +12,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "element-web";
-  version = "1.7.21";
+  version = "1.7.24";
 
   src = fetchurl {
     url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
-    sha256 = "sha256-JJXl+jDlXw8fZ1ZeeAACvilbqG9zanCmBsHy6BEla8M=";
+    sha256 = "sha256-u6mcO+MMjrr2YujVVcsaA7qsruirmHJz3o8nAPOecSU=";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/fractal/default.nix b/pkgs/applications/networking/instant-messengers/fractal/default.nix
index 14cf45e97bb..23a4aebb026 100644
--- a/pkgs/applications/networking/instant-messengers/fractal/default.nix
+++ b/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -1,12 +1,9 @@
 { lib, stdenv
 , fetchFromGitLab
 , nix-update-script
-, fetchpatch
 , meson
 , ninja
 , gettext
-, cargo
-, rustc
 , python3
 , rustPlatform
 , pkg-config
@@ -24,7 +21,7 @@
 , wrapGAppsHook
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "fractal";
   version = "4.4.0";
 
@@ -36,16 +33,21 @@ rustPlatform.buildRustPackage rec {
     sha256 = "DSNVd9YvI7Dd3s3+M0+wE594tmL1yPNMnD1W9wLhSuw=";
   };
 
-  cargoSha256 = "xim5sOzeXJjRXbTOg2Gk/LHU0LioiyMK5nSr1LwMPjc=";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-xim5sOzeXJjRXbTOg2Gk/LHU0LioiyMK5nSr1LwMPjc=";
+  };
 
   nativeBuildInputs = [
-    cargo
     gettext
     meson
     ninja
     pkg-config
     python3
-    rustc
+    rustPlatform.rust.cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.rustc
     wrapGAppsHook
     glib
   ];
@@ -76,12 +78,6 @@ rustPlatform.buildRustPackage rec {
     patchShebangs scripts/meson_post_install.py scripts/test.sh
   '';
 
-  # Don't use buildRustPackage phases, only use it for rust deps setup
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
   passthru = {
     updateScript = nix-update-script {
       attrPath = pname;
@@ -92,7 +88,6 @@ rustPlatform.buildRustPackage rec {
     description = "Matrix group messaging app";
     homepage = "https://gitlab.gnome.org/GNOME/fractal";
     license = licenses.gpl3;
-    broken = stdenv.isDarwin;
     maintainers = with maintainers; [ dtzWill worldofpeace ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index a2d12124dbf..0fea57ea9cc 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -13,20 +13,21 @@
 
 buildGoModule rec {
   pname = "gomuks";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = pname;
     rev = "v${version}";
-    sha256 = "169xyd44jyfh5njwmhsmkah8njfgnp9q9c2b13p0ry5saicwm5h5";
+    sha256 = "0g0aa6h6bm00mdgkb38wm66rcrhqfvs2xj9rl04bwprsa05q5lca";
   };
 
-  vendorSha256 = "1l8qnz0qy90zpywfx7pbkqpxg7rkvc9j622zcmkf38kdc1z6w20a";
+  vendorSha256 = "14ya5advpv4q5il235h5dxy8c2ap2yzrvqs0sjqgw0v1vm6vpwdx";
 
   doCheck = false;
 
-  buildInputs = [ makeWrapper olm ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ olm ];
 
   # Upstream issue: https://github.com/tulir/gomuks/issues/260
   patches = lib.optional stdenv.isLinux (substituteAll {
@@ -54,8 +55,8 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://maunium.net/go/gomuks/";
     description = "A terminal based Matrix client written in Go";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ charvp emily ];
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ chvp emily ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index f3736bfc64f..cbbe74481c2 100644
--- a/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -47,7 +47,7 @@ in stdenv.mkDerivation {
     sha256 = "03pz8wskafn848yvciq29kwdvqcgjrk6sjnm8nk9acl89xf0sn96";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildCommand = ''
     ar x $src
diff --git a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index feffbe312d5..d10c5359e35 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -2,19 +2,20 @@
 , fetchurl
 , appimageTools
 , makeWrapper
-, electron_10
+, electron_12
+, xorg
 }:
 
 let
-  electron = electron_10;
+  electron = electron_12;
 in
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-electron";
-  version = "2.4.2";
+  version = "2.7.0";
 
   src = fetchurl {
     url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
-    sha256 = "1lv3ca9qlggyb8vcg8zlxv46i8fgx5qrx7i7y71dlqblajalf42p";
+    sha256 = "1g8was4anrsdpv4h11z544mi0v79him2xjyknixyrqfy87cbh97n";
     name = "${pname}-${version}.AppImage";
   };
 
@@ -47,7 +48,7 @@ stdenv.mkDerivation rec {
   postFixup = ''
     makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst ]}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/mirage/default.nix b/pkgs/applications/networking/instant-messengers/mirage/default.nix
index 3b6b9bfc6f9..42ea1c52fa9 100644
--- a/pkgs/applications/networking/instant-messengers/mirage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mirage/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, mkDerivation, fetchFromGitHub
 , qmake, pkg-config, olm, wrapQtAppsHook
-, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qttools, qtgraphicaleffects
+, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qtgraphicaleffects
 , python3Packages, pyotherside, libXScrnSaver
 }:
 
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/pidgin-plugins/carbons/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
index 46f8458f153..f702a667ae1 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pidgin-carbons";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "gkdr";
     repo  = "carbons";
     rev   = "v${version}";
-    sha256 = "1aq9bwgpmbwrigq6ywf0pjkngqcm0qxncygaj1fi57npjhcjs6ln";
+    sha256 = "sha256-qiyIvmJbRmCrAi/93UxDVtO76nSdtzUVfT/sZGxxAh8=";
   };
 
   makeFlags = [ "PURPLE_PLUGIN_DIR=$(out)/lib/pidgin" ];
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
index 2862e4df796..9845491f235 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
   ];
 
-  buildFlags = [ "CC=cc" ]; # fix build on darwin
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; # fix build on darwin
 
   meta = with lib; {
     homepage = "https://github.com/matrix-org/purple-matrix";
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 65b9c245a38..edbc28f793b 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -29,11 +29,13 @@ let unwrapped = stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
 
-  buildInputs = [
+  buildInputs = let
+    python-with-dbus = python.withPackages (pp: with pp; [ dbus-python ]);
+  in [
     aspell startupnotification
     gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
     libxml2 nss nspr
-    libXScrnSaver ncurses python
+    libXScrnSaver ncurses python-with-dbus
     avahi dbus dbus-glib intltool libidn
     libICE libXext libSM cyrus_sasl
   ]
@@ -72,6 +74,15 @@ let unwrapped = stdenv.mkDerivation rec {
       --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
   '';
 
+  doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+  # In particular, this detects missing python imports in some of the tools.
+  postInstallCheck = ''
+    for f in "''${!outputBin}"/bin/{purple-remote,pidgin}; do
+      echo "Testing: $f --help"
+      "$f" --help
+    done
+  '';
+
   meta = with lib; {
     description = "Multi-protocol instant messaging client";
     homepage = "http://pidgin.im";
diff --git a/pkgs/applications/networking/instant-messengers/profanity/default.nix b/pkgs/applications/networking/instant-messengers/profanity/default.nix
index c373d23948b..5aaed6eb211 100644
--- a/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -4,7 +4,7 @@
 
 , autoAwaySupport ? true,       libXScrnSaver ? null, libX11 ? null
 , notifySupport ? true,         libnotify ? null, gdk-pixbuf ? null
-, traySupport ? true,           gnome2 ? null
+, traySupport ? true,           gtk2 ? null
 , pgpSupport ? true,            gpgme ? null
 , pythonPluginSupport ? true,   python ? null
 , omemoSupport ? true,          libsignal-protocol-c ? null, libgcrypt ? null
@@ -12,7 +12,7 @@
 
 assert autoAwaySupport     -> libXScrnSaver != null && libX11 != null;
 assert notifySupport       -> libnotify != null && gdk-pixbuf != null;
-assert traySupport         -> gnome2 != null;
+assert traySupport         -> gtk2 != null;
 assert pgpSupport          -> gpgme != null;
 assert pythonPluginSupport -> python != null;
 assert omemoSupport        -> libsignal-protocol-c != null && libgcrypt != null;
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     curl libmesode cmocka libmicrohttpd sqlite
   ] ++ optionals autoAwaySupport     [ libXScrnSaver libX11 ]
     ++ optionals notifySupport       [ libnotify gdk-pixbuf ]
-    ++ optionals traySupport         [ gnome2.gtk ]
+    ++ optionals traySupport         [ gtk2 ]
     ++ optionals pgpSupport          [ gpgme ]
     ++ optionals pythonPluginSupport [ python ]
     ++ optionals omemoSupport        [ libsignal-protocol-c libgcrypt ];
diff --git a/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index e5221d861d3..6d6e70ff26a 100755
--- a/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -1,7 +1,7 @@
-{ lib, mkDerivation, fetchurl, makeFontsConf, appimageTools,
-  qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats,
-  autoPatchelfHook, desktop-file-utils, imagemagick, makeWrapper,
-  twemoji-color-font, xorg, libsodium, libopus, libGL, zlib, alsaLib }:
+{ lib, mkDerivation, fetchurl, makeFontsConf, appimageTools
+, qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats
+, autoPatchelfHook, desktop-file-utils, imagemagick
+, twemoji-color-font, xorg, libsodium, libopus, libGL, alsaLib }:
 
 mkDerivation rec {
   pname = "ripcord";
@@ -19,9 +19,9 @@ mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoPatchelfHook desktop-file-utils imagemagick ];
-  buildInputs = [ libsodium libopus libGL alsaLib ] ++
-                [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ] ++
-                (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]);
+  buildInputs = [ libsodium libopus libGL alsaLib ]
+    ++ [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ]
+    ++ (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]);
 
   fontsConf = makeFontsConf {
     fontDirectories = [ twemoji-color-font ];
@@ -60,10 +60,8 @@ mkDerivation rec {
   meta = with lib; {
     description = "Desktop chat client for Slack and Discord";
     homepage = "https://cancel.fm/ripcord/";
-
     # See: https://cancel.fm/ripcord/shareware-redistribution/
     license = licenses.unfreeRedistributable;
-
     maintainers = with maintainers; [ infinisil ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index 0ef024225f6..05ab8b49a69 100644
--- a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "signal-cli";
-  version = "0.8.0";
+  version = "0.8.1";
 
   # Building from source would be preferred, but is much more involved.
   src = fetchurl {
     url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
-    sha256 = "sha256-0YzeGtdsCUG8N7Av/zzHoC9KKu1rqjQDToaOEXzuoJc=";
+    sha256 = "sha256-Lq1RSJ1VIa6MFTiTbGqNy7IqliJwGeuegm/1+RRtu+I=";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 19e48bf88d6..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.39.6"; # 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 = "04fd81vc0dxk0b47crm5zacf4x79pdn483xicygnc1z6v7mnrmgk";
+    sha256 = "0k57r1x64w38n0295qdrf3p19d3z8m530h46ps0j2x0krhah47w7";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index fe7a2e3ba0f..764a5ac3db5 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, dpkg
 , alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome3
 , gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
-, at-spi2-atk, libuuid, at-spi2-core }:
+, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon }:
 
 let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.68.0.100";
+  version = "8.69.0.77";
 
   rpath = lib.makeLibraryPath [
     alsaLib
@@ -40,8 +40,11 @@ let
     pango
     stdenv.cc.cc
     systemd
-    libv4l
 
+    libv4l
+    libdrm
+    mesa
+    libxkbcommon
     xorg.libxkbfile
     xorg.libX11
     xorg.libXcomposite
@@ -65,7 +68,7 @@ let
           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "gHjgQRdNABO+R+fcDurHDAQtZpckIxLbODM6Txz+LH4=";
+        sha256 = "PaqlPp+BRS0cH7XI4x1/5HqYti63rQThmTtPaghIQH0=";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 44642ab8a93..1775e45d4e6 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -26,6 +26,7 @@
 , libuuid
 , libxcb
 , libxkbcommon
+, libxshmfence
 , mesa
 , nspr
 , nss
@@ -41,11 +42,11 @@ let
 
   pname = "slack";
 
-  x86_64-darwin-version = "4.12.2";
-  x86_64-darwin-sha256 = "0qflv2glfy7d77zjgqi7qcjr53c9dni26gmqkg9vk2xijmmd3xy7";
+  x86_64-darwin-version = "4.14.0";
+  x86_64-darwin-sha256 = "0kpjsnriav6rcddjkz0z9arxjd09i6bw2krnmf3dc31my64nmxs6";
 
-  x86_64-linux-version = "4.12.2";
-  x86_64-linux-sha256 = "sha256-G5uQI078N7AbhEJs6a/17Hoi5DSdwvYLM1T/ttrEw4s=";
+  x86_64-linux-version = "4.14.0";
+  x86_64-linux-sha256 = "0xy9i8ssjba62ca7lfan58rhwx69wkapfd0jzkaj95qhqnv019fg";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
@@ -117,6 +118,7 @@ let
       xorg.libXi
       xorg.libXrandr
       xorg.libXrender
+      xorg.libxshmfence
       xorg.libXtst
       xorg.libxkbfile
     ] + ":${stdenv.cc.cc.lib}/lib64";
diff --git a/pkgs/applications/networking/instant-messengers/stride/default.nix b/pkgs/applications/networking/instant-messengers/stride/default.nix
index 0ce5f764128..47027da9a91 100644
--- a/pkgs/applications/networking/instant-messengers/stride/default.nix
+++ b/pkgs/applications/networking/instant-messengers/stride/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat, fontconfig
-, freetype, gdk-pixbuf, glib, gnome2, nspr, nss, pango, udev, xorg }:
+, freetype, gdk-pixbuf, glib, gnome2, gtk2, nspr, nss, pango, udev, xorg }:
 let
   fullPath = lib.makeLibraryPath [
     alsaLib
@@ -13,7 +13,7 @@ let
     gdk-pixbuf
     glib
     gnome2.GConf
-    gnome2.gtk
+    gtk2
     nspr
     nss
     pango
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index 1625878a2d0..aaa00e031d1 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "teams";
-  version = "1.3.00.30857";
+  version = "1.4.00.4855";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
-    sha256 = "06r48h1fr2si2g5ng8hsnbcmr70iapnafj21v5bzrzzrigzb2n2h";
+    sha256 = "1g0lsydz4l536qf890drdz6g86xb0sm3326hz3ymj9pi8vvbs7d9";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ];
@@ -38,9 +38,13 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin:${xdg-utils}/bin")
+    gappsWrapperArgs+=(--add-flags --disable-namespace-sandbox)
+    gappsWrapperArgs+=(--add-flags --disable-setuid-sandbox)
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/{opt,bin}
 
     mv share/teams $out/opt/
@@ -54,6 +58,8 @@ stdenv.mkDerivation rec {
     # Work-around screen sharing bug
     # https://docs.microsoft.com/en-us/answers/questions/42095/sharing-screen-not-working-anymore-bug.html
     rm $out/opt/teams/resources/app.asar.unpacked/node_modules/slimcore/bin/rect-overlay
+
+    runHook postInstall
   '';
 
   dontAutoPatchelf = true;
@@ -76,6 +82,11 @@ stdenv.mkDerivation rec {
       echo "Adding runtime dependencies to RPATH of Node module $mod"
       patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod"
     done;
+
+    # fix for https://docs.microsoft.com/en-us/answers/questions/298724/open-teams-meeting-link-on-linux-doens39t-work.html?childToView=309406#comment-309406
+    # while we create the wrapper ourselves, gappsWrapperArgs leads to the same issue
+    # another option would be to introduce gappsWrapperAppendedArgs, to allow control of positioning
+    substituteInPlace "$out/bin/teams" --replace '.teams-wrapped"  --disable-namespace-sandbox --disable-setuid-sandbox "$@"' '.teams-wrapped" "$@" --disable-namespace-sandbox --disable-setuid-sandbox'
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
index 3dfbb69e83c..e266265291b 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
@@ -4,13 +4,13 @@ let
   arch = if stdenv.is64bit then "amd64" else "x86";
 in stdenv.mkDerivation rec {
   pname = "teamspeak-server";
-  version = "3.13.2";
+  version = "3.13.3";
 
   src = fetchurl {
     url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
     sha256 = if stdenv.is64bit
-      then "1l9i9667wppwxbbnf6kxamnqlbxzkz9ync4rsypfla124b6cidpz"
-      else "0qhd05abiycsgc16r1p6y8bfdrl6zji21xaqwdizpr0jb01z335g";
+      then "sha256-+b9S0ekQmXF5KwvVcmHIDpp0iZRO2W1ls8eYhDzjUUw="
+      else "sha256-Qu6xPzbUdqO93j353cfQILlFYqmwFSnFWG9TjniX0+c=";
   };
 
   buildInputs = [ stdenv.cc.cc postgresql.lib ];
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index 676902d68ef..bfd4f28d0c0 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -1,6 +1,6 @@
 { mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja
 , qtbase, qtimageformats, libdbusmenu, hunspell, xdg-utils, ffmpeg_3, openalSoft
-, lzma, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
+, xz, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
 , range-v3
 }:
 
@@ -21,7 +21,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config python3 cmake ninja ];
 
   buildInputs = [
-    qtbase qtimageformats ffmpeg_3 openalSoft lzma lz4 xxHash libdbusmenu
+    qtbase qtimageformats ffmpeg_3 openalSoft xz lz4 xxHash libdbusmenu
     zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3
   ];
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 693a01f5d89..4d6e22bd89c 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,10 +1,11 @@
-{ mkDerivation, lib, fetchurl, callPackage
+{ mkDerivation, lib, fetchurl, fetchpatch, callPackage
 , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
 , qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
 , dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
-, tl-expected, hunspell
-# TODO: Shouldn't be required:
-, pcre, xorg, util-linux, libselinux, libsepol, epoxy, at-spi2-core, libXtst
+, tl-expected, hunspell, glibmm
+# Transitive dependencies:
+, pcre, xorg, util-linux, libselinux, libsepol, epoxy
+, at-spi2-core, libXtst, libthai, libdatrie
 , xdg-utils
 }:
 
@@ -19,15 +20,19 @@ with lib;
 
 let
   tg_owt = callPackage ./tg_owt.nix {};
+  tgcalls-gcc10-fix = fetchpatch { # "Fix build on GCC 10, second attempt."
+    url = "https://github.com/TelegramMessenger/tgcalls/commit/eded7cc540123eaf26361958b9a61c65cb2f7cfc.patch";
+    sha256 = "19n1hvn44pp01zc90g93vq2bcr2gdnscaj5il9f82klgh4llvjli";
+  };
 
 in mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.5.8";
+  version = "2.7.1";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "0zj1g24fi4m84p6zj9yk55v8sbhn0jdpdhp33y12d2msz0qwp2cw";
+    sha256 = "01fxzcfz3xankmdar55ja55pb9hkvlf1plgpgjpsda9xwqgbxgs1";
   };
 
   postPatch = ''
@@ -35,6 +40,7 @@ in mkDerivation rec {
       --replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
     substituteInPlace Telegram/CMakeLists.txt \
       --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
+    patch -d Telegram/ThirdParty/tgcalls/ -p1 < "${tgcalls-gcc10-fix}"
   '';
 
   # We want to run wrapProgram manually (with additional parameters)
@@ -46,10 +52,11 @@ in mkDerivation rec {
   buildInputs = [
     qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash
     dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
-    tl-expected hunspell
+    tl-expected hunspell glibmm
     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/telegram/tdesktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index b5a6579db57..6bd72134e02 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, ninja, yasm
 , libjpeg, openssl, libopus, ffmpeg, alsaLib, libpulseaudio, protobuf
+, xorg, libXtst
 }:
 
 let
-  rev = "be23804afce3bb2e80a1d57a7c1318c71b82b7de";
-  sha256 = "0avdxkig8z1ainzyxkm9vmlvkyqbjalwb4h9s9kcail82mnldnhc";
+  rev = "2d804d2c9c5d05324c8ab22f2e6ff8306521b3c3";
+  sha256 = "0kz0i381iwsgcc3yzsq7njx3gkqja4bb9fsgc24vhg0md540qhyn";
 
 in stdenv.mkDerivation {
   pname = "tg_owt";
@@ -23,6 +24,7 @@ in stdenv.mkDerivation {
 
   buildInputs = [
     libjpeg openssl libopus ffmpeg alsaLib libpulseaudio protobuf
+    xorg.libX11 libXtst
   ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
index 3fe88c287c5..deb01f1ef22 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, libxslt, telepathy-glib, libxml2, dbus-glib, dbus
+{ lib, stdenv, fetchurl, pkg-config, libxslt, telepathy-glib, python2, libxml2, dbus-glib, dbus
 , sqlite, libsoup, libnice, gnutls}:
 
 stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config libxslt ];
-  buildInputs = [ libxml2 dbus-glib sqlite libsoup libnice telepathy-glib gnutls telepathy-glib.python ];
+  buildInputs = [ libxml2 dbus-glib sqlite libsoup libnice telepathy-glib gnutls python2 ];
 
   checkInputs = [ dbus.daemon ];
 
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
index 74e4d1039e7..11acf05c19e 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, pidgin, telepathy-glib, glib, dbus-glib, pkg-config, libxslt }:
+{ lib, stdenv, fetchurl, fetchpatch, pidgin, telepathy-glib, python2, glib, dbus-glib, pkg-config, libxslt }:
 
 stdenv.mkDerivation rec {
   pname = "telepathy-haze";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1jgrp32p6rllj089ynbsk3n9xrvsvzmwzhf0ql05kkgj0nf08xiy";
   };
 
-  buildInputs = [ glib telepathy-glib dbus-glib pidgin telepathy-glib.python ];
+  buildInputs = [ glib telepathy-glib dbus-glib pidgin python2 ];
 
   nativeBuildInputs = [ pkg-config libxslt ];
 
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
index bc66d77e224..fe7ef49cd0d 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, glib, dconf, pkg-config, dbus-glib, telepathy-glib, libxslt, makeWrapper }:
+{ lib, stdenv, fetchurl, glib, dconf, pkg-config, dbus-glib, telepathy-glib, python2, libxslt, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "telepathy-idle";
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ glib telepathy-glib dbus-glib libxslt telepathy-glib.python (lib.getLib dconf) makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ glib telepathy-glib dbus-glib libxslt python2 (lib.getLib dconf) ];
 
   preFixup = ''
     wrapProgram "$out/libexec/telepathy-idle" \
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
index bae29f4b31f..a6b1a5256f4 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, pkg-config
+{ lib, stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, python2, pkg-config
 , dconf, makeWrapper, intltool, libxslt, gobject-introspection, dbus }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     dbus-glib libxml2 sqlite telepathy-glib
-    dbus telepathy-glib.python
+    dbus python2
   ];
 
   configureFlags = [ "--enable-call" ];
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
index cf166f7e2d3..99465cc7971 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, avahi, libsoup
+{ lib, stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, python2, avahi, libsoup
 , libuuid, openssl, pcre, sqlite, pkg-config }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   # pcre needed because https://github.com/NixOS/nixpkgs/pull/15046
   buildInputs = [ glib libxml2 telepathy-glib avahi libsoup libuuid openssl
-    sqlite pcre telepathy-glib.python ];
+    sqlite pcre python2 ];
 
   nativeBuildInputs = [ libxslt pkg-config ];
 
diff --git a/pkgs/applications/networking/instant-messengers/torchat/default.nix b/pkgs/applications/networking/instant-messengers/torchat/default.nix
index 087dd502946..dfc2613d3e9 100644
--- a/pkgs/applications/networking/instant-messengers/torchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/torchat/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0rb4lvv40pz6ab5kxq40ycvh7kh1yxn7swzgv2ff2nbhi62xnzp0";
   };
 
-  buildInputs = [ python unzip wxPython wrapPython ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ python wxPython wrapPython ];
   pythonPath = [ wxPython ];
 
   preConfigure = "cd torchat/src; rm portable.txt";
diff --git a/pkgs/applications/networking/instant-messengers/utox/default.nix b/pkgs/applications/networking/instant-messengers/utox/default.nix
index 668e614c474..e5a2c201d87 100644
--- a/pkgs/applications/networking/instant-messengers/utox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/utox/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     description = "Lightweight Tox client";
     homepage = "https://github.com/uTox/uTox";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ domenkozar ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/viber/default.nix b/pkgs/applications/networking/instant-messengers/viber/default.nix
index 4389ee153c5..0224edc652f 100644
--- a/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation {
     sha256 = "0rs26x0lycavybn6k1hbb5kzms0zzcmxlrmi4g8k7vyafj6s8dqh";
   };
 
-  buildInputs = [ dpkg makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ dpkg ];
 
   dontUnpack = true;
 
diff --git a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index d7deb7ee052..27312a18ec4 100644
--- a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -1,54 +1,73 @@
-{ stdenv, lib, fetchurl, rpmextract, autoPatchelfHook
+{ stdenv, lib, fetchurl, rpmextract, undmg, autoPatchelfHook
 , xorg, gtk3, gnome2, nss, alsaLib, udev, libnotify
 , wrapGAppsHook }:
 
 let
-  version = "5.0.1";
-in stdenv.mkDerivation {
   pname = "vk-messenger";
-  inherit version;
+  version = "5.2.3";
+
   src = {
     i686-linux = fetchurl {
       url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm";
-      sha256 = "1ji23x13lzbkiqfrrwx1pj6gmms0p58cjmjc0y4g16kqhlxl60v6";
+      sha256 = "09zi2rzsank6lhw1z9yar1rp634y6qskvr2i0rvqg2fij7cy6w19";
     };
     x86_64-linux = fetchurl {
       url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm";
-      sha256 = "01vvmia2qrxvrvavk9hkkyvfg4pg15m01grwb28884vy4nqw400y";
+      sha256 = "1m6saanpv1k5wc5s58jpf0wsgjsj7haabx8nycm1fjyhky1chirb";
+    };
+    x86_64-darwin = fetchurl {
+      url = "https://web.archive.org/web/20210310071550/https://desktop.userapi.com/mac/master/vk.dmg";
+      sha256 = "0j5qsr0fyl55d0x46xm4h2ykwr4y9z1dsllhqx5lnc15nc051s9b";
     };
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
-  nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ];
-  buildInputs = (with xorg; [
-    libXdamage libXtst libXScrnSaver libxkbfile
-  ]) ++ [
-    gtk3 nss alsaLib
-  ];
-  runtimeDependencies = [ (lib.getLib udev) libnotify ];
-
-  unpackPhase = ''
-    rpmextract $src
-  '';
-
-  buildPhase = ''
-    substituteInPlace usr/share/applications/vk.desktop \
-      --replace /usr/share/pixmaps/vk.png vk
-  '';
-
-  installPhase = ''
-    mkdir $out
-    cd usr
-    cp -r --parents bin $out
-    cp -r --parents share/vk $out
-    cp -r --parents share/applications $out
-    cp -r --parents share/pixmaps $out
-  '';
-
   meta = with lib; {
     description = "Simple and Convenient Messaging App for VK";
     homepage = "https://vk.com/messenger";
     license = licenses.unfree;
     maintainers = [ maintainers.gnidorah ];
-    platforms = ["i686-linux" "x86_64-linux"];
+    platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+  };
+
+  linux = stdenv.mkDerivation {
+    inherit pname version src meta;
+
+    nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ];
+    buildInputs = (with xorg; [
+      libXdamage libXtst libXScrnSaver libxkbfile
+    ]) ++ [ gtk3 nss alsaLib ];
+
+    runtimeDependencies = [ (lib.getLib udev) libnotify ];
+
+    unpackPhase = ''
+      rpmextract $src
+    '';
+
+    buildPhase = ''
+      substituteInPlace usr/share/applications/vk.desktop \
+        --replace /usr/share/pixmaps/vk.png vk
+    '';
+
+    installPhase = ''
+      mkdir $out
+      cd usr
+      cp -r --parents bin $out
+      cp -r --parents share/vk $out
+      cp -r --parents share/applications $out
+      cp -r --parents share/pixmaps $out
+    '';
+  };
+
+  darwin = stdenv.mkDerivation {
+    inherit pname version src meta;
+
+    nativeBuildInputs = [ undmg ];
+
+    sourceRoot = ".";
+
+    installPhase = ''
+      mkdir -p $out/Applications
+      cp -r *.app $out/Applications
+    '';
   };
-}
+in if stdenv.isDarwin then darwin else linux
diff --git a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
new file mode 100644
index 00000000000..7c0f80d2238
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -0,0 +1,38 @@
+{ fetchFromGitHub, lib, stdenv, gnome3, cmake, pkg-config,
+  libappindicator-gtk3, gst_all_1, pcre }:
+
+stdenv.mkDerivation rec {
+  pname = "whatsapp-for-linux";
+  version = "1.1.5";
+
+  src = fetchFromGitHub {
+    owner = "eneshecan";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1gzahls4givd2kbjdwx6yb3jv7a3r1krw40qihiz7hkamkrpaiaz";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    gnome3.gtkmm
+    gnome3.webkitgtk
+    libappindicator-gtk3
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-libav
+    pcre
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/eneshecan/whatsapp-for-linux";
+    description = "Whatsapp desktop messaging app";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ bartuka ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 966583d2089..4dc29dd2283 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -22,13 +22,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.21.3959";
-    x86_64-linux = "3.21.2936";
+    x86_64-darwin = "3.24.4059";
+    x86_64-linux = "3.24.2939";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "0fgzzqf1wnkjbcr0j0vjn6sggkz0z1kx6w4gi7gk4c4markdicm1";
-    x86_64-linux = "033804nkz1fdmq3p8iplrlx708x1fjlr09bmrpy36lqg5h7m3yd6";
+    x86_64-darwin = "1zjv3d8jp0wldrzl02q9kir7q3y5bcb6hsfli6wip8bmaq78dksy";
+    x86_64-linux = "1k9n58pr5fnqv9vacay5vrbs4pvq2p36c0dpg9rjdcnb2fwaqg5p";
   }.${system} or throwSystem;
 
   meta = with lib; {
@@ -95,9 +95,17 @@ let
 
     buildInputs = atomEnv.packages;
 
-    unpackPhase = "dpkg-deb -x $src .";
+    unpackPhase = ''
+      runHook preUnpack
+
+      dpkg-deb -x $src .
+
+      runHook postUnpack
+    '';
 
     installPhase = ''
+      runHook preInstall
+
       mkdir -p "$out/bin"
       cp -R "opt" "$out"
       cp -R "usr/share" "$out/share"
@@ -106,6 +114,8 @@ let
       # Desktop file
       mkdir -p "$out/share/applications"
       cp "${desktopItem}/share/applications/"* "$out/share/applications"
+
+      runHook postInstall
     '';
 
     runtimeDependencies = [
@@ -134,17 +144,29 @@ let
     ];
 
     unpackPhase = ''
+      runHook preUnpack
+
       xar -xf $src
       cd com.wearezeta.zclient.mac.pkg
+
+      runHook postUnpack
     '';
 
     buildPhase = ''
+      runHook preBuild
+
       cat Payload | gunzip -dc | cpio -i
+
+      runHook postBuild
     '';
 
     installPhase = ''
+      runHook preInstall
+
       mkdir -p $out/Applications
       cp -r Wire.app $out/Applications
+
+      runHook postInstall
     '';
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index c431b5d0ce6..1a92ca51aca 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -2,7 +2,6 @@
 , lib
 , fetchurl
 , makeWrapper
-, fetchFromGitHub
 # Dynamic libraries
 , alsaLib
 , atk
@@ -24,21 +23,19 @@
 , pciutils
 , procps
 , util-linux
-, qttools
 , pulseaudioSupport ? true, libpulseaudio ? null
 }:
 
 assert pulseaudioSupport -> libpulseaudio != null;
 
 let
-  version = "5.5.7011.0206";
+  version = "5.5.7938.0228";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
-      sha256 = "00ahly3kjjznn73vcxgm5wj2pxgw6wdk6vzgd8svfmnl5kqq6c02";
+      sha256 = "KM8o2tgIn0lecOM4gKdTOdk/zsohlFqtNX+ca/S6FGY=";
     };
   };
-  dontUnpack = true;
 
   libs = lib.makeLibraryPath ([
     # $ LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH:$PWD ldd zoom | grep 'not found'
@@ -68,8 +65,10 @@ let
     xorg.libXtst
   ] ++ lib.optional (pulseaudioSupport) libpulseaudio);
 
-in stdenv.mkDerivation {
-  name = "zoom-${version}";
+in stdenv.mkDerivation rec {
+  pname = "zoom";
+  inherit version;
+  src = srcs.${stdenv.hostPlatform.system};
 
   dontUnpack = true;
 
@@ -80,7 +79,7 @@ in stdenv.mkDerivation {
   installPhase = ''
     runHook preInstall
     mkdir $out
-    tar -C $out -xf ${srcs.${stdenv.hostPlatform.system}}
+    tar -C $out -xf ${src}
     mv $out/usr/* $out/
     runHook postInstall
   '';
@@ -101,9 +100,13 @@ in stdenv.mkDerivation {
     rm $out/bin/zoom
     # Zoom expects "zopen" executable (needed for web login) to be present in CWD. Or does it expect
     # everybody runs Zoom only after cd to Zoom package directory? Anyway, :facepalm:
+    # Also clear Qt environment variables to prevent
+    # zoom from tripping over "foreign" Qt ressources.
     makeWrapper $out/opt/zoom/ZoomLauncher $out/bin/zoom \
       --run "cd $out/opt/zoom" \
-      --prefix PATH : ${lib.makeBinPath [ coreutils glib.dev pciutils procps qttools.dev util-linux ]} \
+      --unset QML2_IMPORT_PATH \
+      --unset QT_PLUGIN_PATH \
+      --prefix PATH : ${lib.makeBinPath [ coreutils glib.dev pciutils procps util-linux ]} \
       --prefix LD_LIBRARY_PATH ":" ${libs}
 
     # Backwards compatiblity: we used to call it zoom-us
diff --git a/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
index 8f4b2200cc5..77935b30f06 100644
--- a/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "zulip-term";
-  version = "0.5.2";
+  version = "0.6.0";
 
   # no tests on PyPI
   src = fetchFromGitHub {
     owner = "zulip";
     repo = "zulip-terminal";
     rev = version;
-    sha256 = "1xhhy3v4wck74a83avil0rnmsi2grrh03cww19n5mv80p2q1cjmf";
+    sha256 = "sha256-nlvZaGMVRRCu8PZHxPWjNSxkqhZs0T/tE1js/3pDUFk=";
   };
 
   patches = [
@@ -26,7 +26,9 @@ python3.pkgs.buildPythonApplication rec {
     urwid-readline
     beautifulsoup4
     lxml
-    mypy-extensions
+    typing-extensions
+    python-dateutil
+    tzlocal
   ];
 
   checkInputs = [
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/insync/default.nix b/pkgs/applications/networking/insync/default.nix
index b52a81932e4..380aad6c329 100644
--- a/pkgs/applications/networking/insync/default.nix
+++ b/pkgs/applications/networking/insync/default.nix
@@ -12,9 +12,7 @@ stdenv.mkDerivation rec {
     else
       throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
-  buildInputs = [ makeWrapper ];
-
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
 
   postPatch = ''
     patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" client/insync-portable
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index c54b4428819..1b648108e78 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.7.0";
+  version = "0.8.0";
   rev = "v${version}";
 
   # go-ipfs makes changes to it's source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
-    sha256 = "1fkzwm4qxxpmbjammk6s5qcyjxivfa0ydqz4mpz1w756c4jq0jf3";
+    sha256 = "sha256-uK3+Ekr5AM6mmGmjFSj1Rotm5pbH657BYUlP9B39WEw=";
   };
 
   # tarball contains multiple files/directories
diff --git a/pkgs/applications/networking/irc/catgirl/default.nix b/pkgs/applications/networking/irc/catgirl/default.nix
new file mode 100644
index 00000000000..871dcc84c1d
--- /dev/null
+++ b/pkgs/applications/networking/irc/catgirl/default.nix
@@ -0,0 +1,23 @@
+{ ctags, fetchurl, lib, libressl, man, ncurses, pkg-config, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "catgirl";
+  version = "1.6";
+
+  src = fetchurl {
+    url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
+    sha256 = "0shg02zidqqmvywqqsaazlgg9rd5lhhrvjx6n0lzmdfaawxywciv";
+  };
+
+  nativeBuildInputs = [ ctags pkg-config ];
+  buildInputs = [ libressl man ncurses ];
+  strictDeps = true;
+
+  meta = with lib; {
+    homepage = "https://git.causal.agency/catgirl/about/";
+    license = licenses.gpl3Plus;
+    description = "A TLS-only terminal IRC client";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ xfnw ];
+  };
+}
diff --git a/pkgs/applications/networking/irc/communi/default.nix b/pkgs/applications/networking/irc/communi/default.nix
index 030737848a9..0d0144fbf91 100644
--- a/pkgs/applications/networking/irc/communi/default.nix
+++ b/pkgs/applications/networking/irc/communi/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  dontWrapQtApps = true;
+
   preConfigure = ''
     export QMAKEFEATURES=${libcommuni}/features
   '';
diff --git a/pkgs/applications/networking/irc/convos/default.nix b/pkgs/applications/networking/irc/convos/default.nix
index 9a42d0aa99b..4bbc1589ed2 100644
--- a/pkgs/applications/networking/irc/convos/default.nix
+++ b/pkgs/applications/networking/irc/convos/default.nix
@@ -6,13 +6,13 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "convos";
-  version = "5.11";
+  version = "6.06";
 
   src = fetchFromGitHub {
-    owner = "Nordaaker";
+    owner = "convos-chat";
     repo = pname;
-    rev = version;
-    sha256 = "08k8dqdgz2b3p8g1zfg9i74r5nm1w0sqdm759d1f3jcyp737r47x";
+    rev = "v${version}";
+    sha256 = "0b3c8hj9cjmpzy9k949vdv1y3v7b94nh0mq15rcv3ax0sj3gd0qr";
   };
 
   nativeBuildInputs = [ makeWrapper ]
@@ -28,7 +28,7 @@ perlPackages.buildPerlPackage rec {
 
   propagatedBuildInputs = [ openssl ];
 
-  checkInputs = with perlPackages; [ TestDeep TestMore ];
+  checkInputs = with perlPackages; [ TestDeep ];
 
   postPatch = ''
     patchShebangs script/convos
@@ -54,6 +54,9 @@ perlPackages.buildPerlPackage rec {
     #
     rm t/web-user.t
 
+    # Another web test fails, so we also remove this.
+    rm t/web-login.t
+
     # Module::Install is a runtime dependency not covered by the tests, so we add
     # a test for it.
     #
diff --git a/pkgs/applications/networking/irc/irssi/default.nix b/pkgs/applications/networking/irc/irssi/default.nix
index 91617a26782..7c9714b3555 100644
--- a/pkgs/applications/networking/irc/irssi/default.nix
+++ b/pkgs/applications/networking/irc/irssi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr }:
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr }:
 
 stdenv.mkDerivation rec {
   pname = "irssi";
@@ -9,6 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "0g2nxazn4lszmd6mf1s36x5ablk4999g1qx7byrnvgnjsihjh62k";
   };
 
+  # Fix irssi on GLib >2.62 input being stuck after entering a NUL byte
+  # See https://github.com/irssi/irssi/issues/1180 - remove after next update.
+  patches = fetchpatch {
+    url = "https://github.com/irssi/irssi/releases/download/1.2.2/glib-2-63.patch";
+    sha256 = "1ad1p7395n8dfmv97wrf751wwzgncqfh9fp27kq5kfdvh661da1i";
+  };
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ncurses glib openssl perl libintl libgcrypt libotr ];
 
diff --git a/pkgs/applications/networking/irc/qweechat/default.nix b/pkgs/applications/networking/irc/qweechat/default.nix
deleted file mode 100644
index c4a67c8098a..00000000000
--- a/pkgs/applications/networking/irc/qweechat/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, fetchFromGitHub, python27Packages }:
-
-python27Packages.buildPythonApplication rec {
-  version = "2016-07-29";
-  name = "qweechat-unstable-${version}";
-  namePrefix = "";
-
- src = fetchFromGitHub {
-    owner = "weechat";
-    repo = "qweechat";
-    rev = "f5e54d01691adb3abef47e051a6412186c33313c";
-    sha256 = "0dhlriwvkrsn7jj01p2wqhf2p63n9qd173jsgccgxlacm2zzvhaz";
-  };
-
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace 'qweechat = qweechat.qweechat' 'qweechat = qweechat.qweechat:main'
-  '';
-
-  propagatedBuildInputs = with python27Packages; [
-     pyside setuptools
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/weechat/qweechat";
-    description = "Qt remote GUI for WeeChat";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ ramkromberg ];
-    platforms = with platforms; linux;
-  };
-}
diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix
index 58952f28b55..daa08899730 100644
--- a/pkgs/applications/networking/irc/weechat/default.nix
+++ b/pkgs/applications/networking/irc/weechat/default.nix
@@ -27,12 +27,12 @@ let
   in
     assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
     stdenv.mkDerivation rec {
-      version = "3.0.1";
+      version = "3.1";
       pname = "weechat";
 
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
-        sha256 = "0f50kib8l99vlp9wqszq2r2g5panzphsgs7viga8lyc83v229b33";
+        sha256 = "06w147wzrzp6xbqiz6s5nq5xdjy7jn3f18xajxy50pynjd6vmfh5";
       };
 
       outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;
diff --git a/pkgs/applications/networking/irc/weechat/scripts/default.nix b/pkgs/applications/networking/irc/weechat/scripts/default.nix
index 07e75903546..1042c2d1dee 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -1,8 +1,12 @@
-{ callPackage, luaPackages, python3Packages }:
+{ callPackage, luaPackages, perlPackages, python3Packages }:
 
 {
   colorize_nicks = callPackage ./colorize_nicks { };
 
+  multiline = callPackage ./multiline {
+    inherit (perlPackages) PodParser;
+  };
+
   weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
     inherit (luaPackages) cjson luaffi;
   };
diff --git a/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix b/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix
new file mode 100644
index 00000000000..447d415c163
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchurl, substituteAll, PodParser }:
+
+stdenv.mkDerivation {
+  pname = "multiline";
+  version = "0.6.3";
+
+  src = fetchurl {
+    url = "https://raw.githubusercontent.com/weechat/scripts/945315bed4bc2beaf1e47f9b946ffe8f638f77fe/perl/multiline.pl";
+    sha256 = "1smialb21ny7brhij4sbw46xvsmrdv6ig2da0ip63ga2afngwsy4";
+  };
+
+  dontUnpack = true;
+  prePatch = ''
+    cp $src multiline.pl
+  '';
+
+  patches = [
+    # The script requires a special Perl environment.
+    (substituteAll {
+      src = ./libpath.patch;
+      env = PodParser;
+    })
+  ];
+
+  passthru.scripts = [ "multiline.pl" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D multiline.pl $out/share/multiline.pl
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Multi-line edit box";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch b/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch
new file mode 100644
index 00000000000..34299f20d8c
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch
@@ -0,0 +1,9 @@
+diff --git a/multiline.pl b/multiline.pl
+index 54474d4..42fbef8 100644
+--- a/multiline.pl
++++ b/multiline.pl
+@@ -1,3 +1,4 @@
++use lib '@env@/lib/perl5/site_perl';
+ use strict; use warnings;
+ $INC{'Encode/ConfigLocal.pm'}=1;
+ require Encode;
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/irc/weechat/scripts/weechat-notify-send/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
index b55266e5f37..78f9fc082e3 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A WeeChat script that sends highlight and message notifications through notify-send";
-    homepage = "https://github.com/s3rvac/weechat-notify-srnd";
+    homepage = "https://github.com/s3rvac/weechat-notify-send";
     license = licenses.mit;
     maintainers = with maintainers; [ tobim ];
   };
diff --git a/pkgs/applications/networking/jnetmap/default.nix b/pkgs/applications/networking/jnetmap/default.nix
index bac0048cc28..e6332832e3e 100644
--- a/pkgs/applications/networking/jnetmap/default.nix
+++ b/pkgs/applications/networking/jnetmap/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0nxsfa600jhazwbabxmr9j37mhwysp0fyrvczhv3f1smiy8rjanl";
   };
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   dontUnpack = true;
 
diff --git a/pkgs/applications/networking/lieer/default.nix b/pkgs/applications/networking/lieer/default.nix
index 3ad2762a2cf..420b9b28ccf 100644
--- a/pkgs/applications/networking/lieer/default.nix
+++ b/pkgs/applications/networking/lieer/default.nix
@@ -14,7 +14,7 @@ python3Packages.buildPythonApplication rec {
   propagatedBuildInputs = with python3Packages; [
     notmuch
     oauth2client
-    google_api_python_client
+    google-api-python-client
     tqdm
     setuptools
   ];
diff --git a/pkgs/applications/networking/maestral-qt/default.nix b/pkgs/applications/networking/maestral-qt/default.nix
index b568775481c..69d3bde42e8 100644
--- a/pkgs/applications/networking/maestral-qt/default.nix
+++ b/pkgs/applications/networking/maestral-qt/default.nix
@@ -6,18 +6,17 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "maestral-qt";
-  version = "1.3.1";
+  version = "1.4.3";
   disabled = python3.pkgs.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "SamSchott";
     repo = "maestral-qt";
     rev = "v${version}";
-    sha256 = "sha256-2S2sa2/HVt3IRsE98PT2XwpONjaYENBzYW+ezBFrJYI=";
+    sha256 = "sha256-+eBwBZx+kp2ACbFjtYK6ux9lcPmEQsunvxAAZ2HgAYw=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
-    bugsnag
     click
     markdown2
     maestral
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index b43e6bb093c..09ce39027b5 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -1,16 +1,17 @@
-{ lib, buildGoModule, fetchurl
-, go, ncurses, notmuch, scdoc
-, python3, perl, w3m, dante
-, fetchFromGitHub
+{ lib, buildGoModule, fetchFromSourcehut
+, ncurses, notmuch, scdoc
+, python3, w3m, dante
 }:
 
 buildGoModule rec {
   pname = "aerc";
   version = "0.5.2";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
-    sha256 = "h7kiRA5TuZ8mDSMymWU33stFLIOMd06TQLYzKW+faO4=";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = version;
+    sha256 = "1ja639qry8h2d6y7qshf62ypkzs2rzady59p81scqh8nx0g9bils";
   };
 
   runVend = true;
diff --git a/pkgs/applications/networking/mailreaders/alpine/default.nix b/pkgs/applications/networking/mailreaders/alpine/default.nix
index 62882818d72..d169e1fdea6 100644
--- a/pkgs/applications/networking/mailreaders/alpine/default.nix
+++ b/pkgs/applications/networking/mailreaders/alpine/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, ncurses, tcl, openssl, pam, kerberos
+{lib, stdenv, fetchurl, ncurses, tcl, openssl, pam, libkrb5
 , openldap
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    ncurses tcl openssl pam kerberos openldap
+    ncurses tcl openssl pam libkrb5 openldap
   ];
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 7eaefdd91c4..4a13cf68a88 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -1,52 +1,137 @@
-{ lib, config, fetchurl, stdenv, wrapGAppsHook, autoreconfHook
-, curl, dbus, dbus-glib, enchant, gtk2, gnutls, gnupg, gpgme, gumbo
-, libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager
-, openldap, perl, pkg-config, poppler, python, shared-mime-info
-, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
-# Build options
-# TODO: A flag to build the manual.
-# TODO: Plugins that complain about their missing dependencies, even when
-#       provided:
-#         gdata requires libgdata
-#         geolocation requires libchamplain
-, enableLdap ? false
-, enableNetworkManager ? config.networking.networkmanager.enable or false
+{ stdenv, lib, fetchgit, wrapGAppsHook, autoreconfHook, bison, flex
+, curl, gtk2, gtk3, pkg-config, python2, python3, shared-mime-info
+, glib-networking, gsettings-desktop-schemas
+
+# Use the experimental gtk3 branch.
+, useGtk3 ? false
+
+# Package compatibility: old parameters whose name were not directly derived
 , enablePgp ? true
-, enablePluginArchive ? false
-, enablePluginLitehtmlViewer ? false
 , enablePluginNotificationDialogs ? true
 , enablePluginNotificationSounds ? true
-, enablePluginPdf ? false
-, enablePluginPython ? false
-, enablePluginRavatar ? false
-, enablePluginRssyl ? false
-, enablePluginSmime ? false
-, enablePluginSpamassassin ? false
-, enablePluginSpamReport ? false
-, enablePluginVcalendar ? false
-, enableSpellcheck ? false
+, enablePluginPdf ? true
+, enablePluginRavatar ? true
+, enableSpellcheck ? true
+
+# Arguments to include external libraries
+, enableLibSM ? true, libSM
+, enableGnuTLS ? true, gnutls
+, enableEnchant ? enableSpellcheck, enchant
+, enableDbus ? true, dbus, dbus-glib
+, enableLdap ? true, openldap
+, enableNetworkManager ? true, networkmanager
+, enableLibetpan ? true, libetpan
+, enableValgrind ? true, valgrind
+, enableSvg ? true, librsvg
+
+# Configure claws-mail's plugins
+, enablePluginAcpiNotifier ? true
+, enablePluginAddressKeeper ? true
+, enablePluginArchive ? true, libarchive
+, enablePluginAttRemover ? true
+, enablePluginAttachWarner ? true
+, enablePluginBogofilter ? true
+, enablePluginBsfilter ? true
+, enablePluginClamd ? true
+, enablePluginDillo ? true
+, enablePluginFancy ? useGtk3, libsoup, webkitgtk
+, enablePluginFetchInfo ? true
+, enablePluginLibravatar ? enablePluginRavatar
+, enablePluginLitehtmlViewer ? true, gumbo
+, enablePluginMailmbox ? true
+, enablePluginManageSieve ? true
+, enablePluginNewMail ? true
+, enablePluginNotification ? (enablePluginNotificationDialogs || enablePluginNotificationSounds), libcanberra-gtk2, libcanberra-gtk3, libnotify
+, enablePluginPdfViewer ? enablePluginPdf, poppler
+, enablePluginPerl ? true, perl
+, enablePluginPython ? true
+, enablePluginPgp ? enablePgp, gnupg, gpgme
+, enablePluginRssyl ? true, libxml2
+, enablePluginSmime ? true
+, enablePluginSpamassassin ? true
+, enablePluginSpamReport ? true
+, enablePluginTnefParse ? true, libytnef
+, enablePluginVcalendar ? true, libical
 }:
 
 with lib;
 
-stdenv.mkDerivation rec {
-  pname = "claws-mail";
-  version = "3.17.8";
+let
+  version = if useGtk3 then "3.99.0" else "3.17.8";
 
-  src = fetchurl {
-    url = "https://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
-    sha256 = "sha256-zbeygUmV1vSpw7HwvBRn7Vw88qXg2hcwqqJaisyv3a8=";
+  # The official release uses gtk2 and contains the version tag.
+  gtk2src = {
+    sha256 = "0l4f8q11iyj8pi120lrapgq51k5j64xf0jlczkzbm99rym752ch5";
   };
 
-  outputs = [ "out" "dev" ];
+  # The corresponding commit in the gtk3 branch.
+  gtk3src = {
+    sha256 = "176h1swh1zx6dqyzfz470x4a1xicnv0zhy8ir47k7p23g6y17i2k";
+  };
+
+  python = if useGtk3 then python3 else python2;
+  pythonPkgs = if useGtk3
+    then
+      with python.pkgs; [ python wrapPython pygobject3 ]
+    else
+      with python.pkgs; [ python wrapPython pygtk pygobject2 ];
 
-  patches = [
-    ./mime.patch
+  features = [
+    { flags = [ "acpi_notifier-plugin" ]; enabled = enablePluginAcpiNotifier; }
+    { flags = [ "address_keeper-plugin" ]; enabled = enablePluginAddressKeeper; }
+    { flags = [ "archive-plugin" ]; enabled = enablePluginArchive; deps = [ libarchive ]; }
+    { flags = [ "att_remover-plugin" ]; enabled = enablePluginAttRemover; }
+    { flags = [ "attachwarner-plugin" ]; enabled = enablePluginAttachWarner; }
+    { flags = [ "bogofilter-plugin" ]; enabled = enablePluginBogofilter; }
+    { flags = [ "bsfilter-plugin" ]; enabled = enablePluginBsfilter; }
+    { flags = [ "clamd-plugin" ]; enabled = enablePluginClamd; }
+    { flags = [ "dbus" ]; enabled = enableDbus; deps = [ dbus dbus-glib ]; }
+    { flags = [ "dillo-plugin" ]; enabled = enablePluginDillo; }
+    { flags = [ "enchant" ]; enabled = enableEnchant; deps = [ enchant ]; }
+    { flags = [ "fancy-plugin" ]; enabled = enablePluginFancy; deps = [ libsoup webkitgtk ]; }
+    { flags = [ "fetchinfo-plugin" ]; enabled = enablePluginFetchInfo; }
+    { flags = [ "gnutls" ]; enabled = enableGnuTLS; deps = [ gnutls ]; }
+    { flags = [ "ldap" ]; enabled = enableLdap; deps = [ openldap ]; }
+    { flags = [ "libetpan" ]; enabled = enableLibetpan; deps = [ libetpan ]; }
+    { flags = [ "libravatar-plugin" ]; enabled = enablePluginLibravatar; }
+    { flags = [ "libsm" ]; enabled = enableLibSM; deps = [ libSM ]; }
+    { flags = [ "litehtml_viewer-plugin" ]; enabled = enablePluginLitehtmlViewer; deps = [ gumbo ]; }
+    { flags = [ "mailmbox-plugin" ]; enabled = enablePluginMailmbox; }
+    { flags = [ "managesieve-plugin" ]; enabled = enablePluginManageSieve; }
+    { flags = [ "networkmanager" ]; enabled = enableNetworkManager; deps = [ networkmanager ]; }
+    { flags = [ "newmail-plugin" ]; enabled = enablePluginNewMail; }
+    { flags = [ "notification-plugin" ]; enabled = enablePluginNotification; deps = [ libnotify ] ++ [(if useGtk3 then libcanberra-gtk3 else libcanberra-gtk2)]; }
+    { flags = [ "pdf_viewer-plugin" ]; enabled = enablePluginPdfViewer; deps = [ poppler ]; }
+    { flags = [ "perl-plugin" ]; enabled = enablePluginPerl; deps = [ perl ]; }
+    { flags = [ "pgpcore-plugin" "pgpinline-plugin" "pgpmime-plugin" ]; enabled = enablePluginPgp; deps = [ gnupg gpgme ]; }
+    { flags = [ "python-plugin" ]; enabled = enablePluginPython; }
+    { flags = [ "rssyl-plugin" ]; enabled = enablePluginRssyl; deps = [ libxml2 ]; }
+    { flags = [ "smime-plugin" ]; enabled = enablePluginSmime; }
+    { flags = [ "spam_report-plugin" ]; enabled = enablePluginSpamReport; }
+    { flags = [ "spamassassin-plugin" ]; enabled = enablePluginSpamassassin; }
+    { flags = [ "svg" ]; enabled = enableSvg; deps = [ librsvg ]; }
+    { flags = [ "tnef_parse-plugin" ]; enabled = enablePluginTnefParse; deps = [ libytnef ]; }
+    { flags = [ "valgrind" ]; enabled = enableValgrind; deps = [ valgrind ]; }
+    { flags = [ "vcalendar-plugin" ]; enabled = enablePluginVcalendar; deps = [ libical ]; }
   ];
+in stdenv.mkDerivation rec {
+  pname = "claws-mail";
+  inherit version;
+
+  src = fetchgit ({
+    rev = version;
+    url = "git://git.claws-mail.org/claws.git";
+  } // (if useGtk3 then gtk3src else gtk2src));
+
+  outputs = [ "out" "dev" ];
+
+  patches = [ ./mime.patch ];
 
   preConfigure = ''
     # autotools check tries to dlopen libpython as a requirement for the python plugin
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
+    # generate version without .git
+    [ -e version ] || echo "echo ${version}" > version
   '';
 
   postPatch = ''
@@ -54,51 +139,29 @@ stdenv.mkDerivation rec {
         --subst-var-by MIMEROOTDIR ${shared-mime-info}/share
   '';
 
-  nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook python.pkgs.wrapPython ];
-  propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ];
+  nativeBuildInputs = [ autoreconfHook pkg-config bison flex wrapGAppsHook ];
+  propagatedBuildInputs = pythonPkgs;
 
   buildInputs =
-    [ curl dbus dbus-glib gtk2 gnutls gsettings-desktop-schemas
-      libetpan perl glib-networking libSM libytnef
-    ]
-    ++ optional enableSpellcheck enchant
-    ++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
-    ++ optional enablePluginArchive libarchive
-    ++ optional enablePluginNotificationSounds libcanberra-gtk2
-    ++ optional enablePluginNotificationDialogs libnotify
-    ++ optional enablePluginLitehtmlViewer gumbo
-    ++ optional enablePluginRssyl libxml2
-    ++ optional enableNetworkManager networkmanager
-    ++ optional enableLdap openldap
-    ++ optional enablePluginPdf poppler
-    ++ optional enablePluginVcalendar libical;
+    [ curl gsettings-desktop-schemas glib-networking ]
+    ++ [(if useGtk3 then gtk3 else gtk2)]
+    ++ concatMap (f: optionals f.enabled f.deps) (filter (f: f ? deps) features)
+  ;
 
   configureFlags =
-    optional (!enableLdap) "--disable-ldap"
-    ++ optional (!enableNetworkManager) "--disable-networkmanager"
-    ++ optionals (!enablePgp) [
-      "--disable-pgpcore-plugin"
-      "--disable-pgpinline-plugin"
-      "--disable-pgpmime-plugin"
-    ]
-    ++ optional (!enablePluginArchive) "--disable-archive-plugin"
-    ++ optional (!enablePluginLitehtmlViewer) "--disable-litehtml_viewer-plugin"
-    ++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin"
-    ++ optional (!enablePluginPython) "--disable-python-plugin"
-    ++ optional (!enablePluginRavatar) "--disable-libravatar-plugin"
-    ++ optional (!enablePluginRssyl) "--disable-rssyl-plugin"
-    ++ optional (!enablePluginSmime) "--disable-smime-plugin"
-    ++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin"
-    ++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
-    ++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
-    ++ optional (!enableSpellcheck) "--disable-enchant";
+    [
+      "--disable-manual"   # Missing docbook-tools, e.g., docbook2html
+      "--disable-compface" # Missing compface library
+      "--disable-jpilot"   # Missing jpilot library
 
-  enableParallelBuilding = true;
+      "--disable-gdata-plugin" # Complains about missing libgdata, even when provided
+    ] ++
+    (map (feature: map (flag: strings.enableFeature feature.enabled flag) feature.flags) features);
 
-  pythonPath = with python.pkgs; [ pygobject2 pygtk ];
+  enableParallelBuilding = true;
 
   preFixup = ''
-    buildPythonPath "$out $pythonPath"
+    buildPythonPath "$out $pythonPkgs"
     gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH")
   '';
 
@@ -110,8 +173,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "The user-friendly, lightweight, and fast email client";
     homepage = "https://www.claws-mail.org/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ fpletz globin orivej ];
+    maintainers = with maintainers; [ fpletz globin orivej oxzi ajs124 ];
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix b/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix
deleted file mode 100644
index d5223092446..00000000000
--- a/pkgs/applications/networking/mailreaders/claws-mail/gtk3.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{ lib, config, fetchgit, stdenv, wrapGAppsHook, autoreconfHook, bison, flex
-, curl, dbus, dbus-glib, enchant, gtk3, gnutls, gnupg, gpgme
-, libarchive, libcanberra-gtk3, libetpan, libnotify, libsoup, libxml2, networkmanager
-, openldap, perl, pkg-config, poppler, python, shared-mime-info, webkitgtk
-, glib-networking, gsettings-desktop-schemas, libSM, libytnef, libical
-# Build options
-# TODO: A flag to build the manual.
-# TODO: Plugins that complain about their missing dependencies, even when
-#       provided:
-#         gdata requires libgdata
-#         geolocation requires libchamplain
-, enableLdap ? false
-, enableNetworkManager ? config.networking.networkmanager.enable or false
-, enablePgp ? true
-, enablePluginArchive ? false
-, enablePluginFancy ? true
-, enablePluginNotificationDialogs ? true
-, enablePluginNotificationSounds ? true
-, enablePluginPdf ? false
-, enablePluginPython ? false
-, enablePluginRavatar ? false
-, enablePluginRssyl ? false
-, enablePluginSmime ? false
-, enablePluginSpamassassin ? false
-, enablePluginSpamReport ? false
-, enablePluginVcalendar ? false
-, enableSpellcheck ? false
-}:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  pname = "claws-mail-gtk3";
-  version = "3.99.0";
-
-  src = fetchgit {
-    url = "git://git.claws-mail.org/claws.git";
-    rev = version;
-    sha256 = "176h1swh1zx6dqyzfz470x4a1xicnv0zhy8ir47k7p23g6y17i2k";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  patches = [ ./mime.patch ];
-
-  preConfigure = ''
-    # autotools check tries to dlopen libpython as a requirement for the python plugin
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
-    # generate version without .git
-    [ -e version ] || echo "echo ${version}" > version
-  '';
-
-  postPatch = ''
-    substituteInPlace src/procmime.c \
-        --subst-var-by MIMEROOTDIR ${shared-mime-info}/share
-  '';
-
-  nativeBuildInputs = [ autoreconfHook bison flex pkg-config wrapGAppsHook python.pkgs.wrapPython ];
-  propagatedBuildInputs = with python.pkgs; [ python ] ++ optionals enablePluginPython [ pygtk pygobject2 ];
-
-  buildInputs =
-    [ curl dbus dbus-glib gtk3 gnutls gsettings-desktop-schemas
-      libetpan perl glib-networking libSM libytnef
-    ]
-    ++ optional enableSpellcheck enchant
-    ++ optionals (enablePgp || enablePluginSmime) [ gnupg gpgme ]
-    ++ optional enablePluginArchive libarchive
-    ++ optional enablePluginNotificationSounds libcanberra-gtk3
-    ++ optional enablePluginNotificationDialogs libnotify
-    ++ optional enablePluginFancy libsoup
-    ++ optional enablePluginRssyl libxml2
-    ++ optional enableNetworkManager networkmanager
-    ++ optional enableLdap openldap
-    ++ optional enablePluginPdf poppler
-    ++ optional enablePluginFancy webkitgtk
-    ++ optional enablePluginVcalendar libical;
-
-  configureFlags =
-    optional (!enableLdap) "--disable-ldap"
-    ++ optional (!enableNetworkManager) "--disable-networkmanager"
-    ++ optionals (!enablePgp) [
-      "--disable-pgpcore-plugin"
-      "--disable-pgpinline-plugin"
-      "--disable-pgpmime-plugin"
-    ]
-    ++ optional (!enablePluginArchive) "--disable-archive-plugin"
-    ++ optional (!enablePluginFancy) "--disable-fancy-plugin"
-    ++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin"
-    ++ optional (!enablePluginPython) "--disable-python-plugin"
-    ++ optional (!enablePluginRavatar) "--disable-libravatar-plugin"
-    ++ optional (!enablePluginRssyl) "--disable-rssyl-plugin"
-    ++ optional (!enablePluginSmime) "--disable-smime-plugin"
-    ++ optional (!enablePluginSpamassassin) "--disable-spamassassin-plugin"
-    ++ optional (!enablePluginSpamReport) "--disable-spam_report-plugin"
-    ++ optional (!enablePluginVcalendar) "--disable-vcalendar-plugin"
-    ++ optional (!enableSpellcheck) "--disable-enchant";
-
-  enableParallelBuilding = true;
-
-  pythonPath = with python.pkgs; [ pygobject2 pygtk ];
-
-  preFixup = ''
-    buildPythonPath "$out $pythonPath"
-    gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH")
-  '';
-
-  postInstall = ''
-    mkdir -p $out/share/applications
-    cp claws-mail.desktop $out/share/applications
-  '';
-
-  NIX_CFLAGS_COMPILE = [ "-Wno-deprecated-declarations" ];
-
-  meta = {
-    description = "The user-friendly, lightweight, and fast email client";
-    homepage = "https://www.claws-mail.org/";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ fpletz globin orivej ];
-  };
-}
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index b8aaabca0fb..e17507366ff 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -10,6 +10,7 @@
 , gtk3
 , glib
 , libnotify
+, libpst
 , gspell
 , evolution-data-server
 , libgdata
@@ -41,11 +42,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.38.3";
+  version = "3.38.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1kfshljvkpbh965rjlyy1qjjm0ic3rdxisyy9c5jjvv2qlk65b3z";
+    sha256 = "NB+S0k4rRMJ4mwA38aiU/xZUh9qksAuA+uMTii4Fr9Q=";
   };
 
   nativeBuildInputs = [
@@ -80,6 +81,7 @@ stdenv.mkDerivation rec {
     libgweather
     libical
     libnotify
+    libpst
     librsvg
     libsecret
     nspr
@@ -99,7 +101,6 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DENABLE_AUTOAR=OFF"
     "-DENABLE_LIBCRYPTUI=OFF"
-    "-DENABLE_PST_IMPORT=OFF"
     "-DENABLE_YTNEF=OFF"
     "-DWITH_SPAMASSASSIN=${spamassassin}/bin/spamassassin"
     "-DWITH_SA_LEARN=${spamassassin}/bin/sa-learn"
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
index 050082c6f93..ea3f09b8f4c 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix
@@ -4,7 +4,7 @@ symlinkJoin {
   name = "evolution-with-plugins";
   paths = [ gnome3.evolution-data-server ] ++ plugins;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     for i in $out/bin/* $out/libexec/**; do
diff --git a/pkgs/applications/networking/mailreaders/mailpile/default.nix b/pkgs/applications/networking/mailreaders/mailpile/default.nix
index 1d1dc030c31..cab43750a56 100644
--- a/pkgs/applications/networking/mailreaders/mailpile/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailpile/default.nix
@@ -44,7 +44,7 @@ python2Packages.buildPythonApplication rec {
     homepage = "https://www.mailpile.is/";
     license = [ licenses.asl20 licenses.agpl3 ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.domenkozar ];
+    maintainers = [ ];
     knownVulnerabilities = [
       "Numerous and uncounted, upstream has requested we not package it. See more: https://github.com/NixOS/nixpkgs/pull/23058#issuecomment-283515104"
     ];
diff --git a/pkgs/applications/networking/mailreaders/mblaze/default.nix b/pkgs/applications/networking/mailreaders/mblaze/default.nix
index 2ac32f34304..278561e0e5f 100644
--- a/pkgs/applications/networking/mailreaders/mblaze/default.nix
+++ b/pkgs/applications/networking/mailreaders/mblaze/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mblaze";
-  version = "1.0";
+  version = "1.1";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
@@ -11,11 +11,13 @@ stdenv.mkDerivation rec {
     owner = "leahneukirchen";
     repo = "mblaze";
     rev = "v${version}";
-    sha256 = "0hxy3mjjv4hg856sl1r15fdmqaw4s9c26b3lidsd5x0kpqy601ai";
+    sha256 = "sha256-Ho2Qoxs93ig4yYUOaoqdYnLA8Y4+7CfRM0dju89JOa4=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
 
+  enableParallelBuilding = true;
+
   postInstall = ''
     installShellCompletion contrib/_mblaze
   '' + lib.optionalString (ruby != null) ''
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 874fa0d42e5..27c06c95d99 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -4,7 +4,7 @@
 , cyrus_sasl ? null
 , gnupg ? null
 , gpgme ? null
-, kerberos ? null
+, libkrb5 ? null
 , headerCache  ? true
 , sslSupport   ? true
 , saslSupport  ? true
@@ -27,11 +27,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "0k80s27sf7djb7zxj81ihksr8jkr71mfaa8976fzh41i1pn5l7g2";
+    sha256 = "165mpivdhvhavglykwlz0hss2akxd6i6l40rgxs29mjzi52irqw1";
   };
 
   patches = optional smimeSupport (fetchpatch {
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     [ ncurses which perl ]
     ++ optional headerCache  gdbm
     ++ optional sslSupport   openssl
-    ++ optional gssSupport   kerberos
+    ++ optional gssSupport   libkrb5
     ++ optional saslSupport  cyrus_sasl
     ++ optional gpgmeSupport gpgme;
 
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index c0ebb3d8078..b2187371f29 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,8 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
-, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
-, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, runtimeShell, sqlite, zlib
-, glibcLocales
-, fetchpatch
+{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
+, ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
+, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
 }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    cyrus_sasl gss gpgme kerberos libidn ncurses
+    cyrus_sasl gss gpgme libkrb5 libidn ncurses
     notmuch openssl perl lmdb
     mailcap sqlite
   ];
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index ddffe074706..6919e31342e 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -12,7 +12,7 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "0.31.3";
+  version = "0.31.4";
   pname = "notmuch";
 
   passthru = {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   src = fetchgit {
     url = "https://git.notmuchmail.org/git/notmuch";
-    sha256 = "1wm1myzacz1dcg7vdfd3akia3xan7ssfspf1fflrwm18hdalss5v";
+    sha256 = "sha256-M+LEf257OcDlHOCYYxzEVQpop+i2gzO/QJPdajz/CRM=";
     rev = version;
   };
 
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
index 5e2c74fb3f1..dda6abac8e5 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
@@ -16,7 +16,7 @@
 , glibc
 , gtk2
 , gtk3
-, kerberos
+, libkrb5
 , libX11
 , libXScrnSaver
 , libXcomposite
@@ -94,7 +94,7 @@ stdenv.mkDerivation {
       glibc
       gtk2
       gtk3
-      kerberos
+      libkrb5
       libX11
       libXScrnSaver
       libXcomposite
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index b1905359cd3..d16cbfc1bca 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -20,7 +20,7 @@
 , gpgme
 , gtk2
 , gtk3
-, kerberos
+, libkrb5
 , libcanberra
 , libGL
 , libGLU
@@ -63,12 +63,11 @@ let
   defaultSource = lib.findFirst (sourceMatches "en-US") {} sources;
 
   source = lib.findFirst (sourceMatches systemLocale) defaultSource sources;
-
-  name = "thunderbird-bin-${version}";
 in
 
 stdenv.mkDerivation {
-  inherit name;
+  pname = "thunderbird-bin";
+  inherit version;
 
   src = fetchurl {
     url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
@@ -94,7 +93,7 @@ stdenv.mkDerivation {
       glibc
       gtk2
       gtk3
-      kerberos
+      libkrb5
       libX11
       libXScrnSaver
       libXcomposite
@@ -169,7 +168,8 @@ stdenv.mkDerivation {
     '';
 
   passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
-    inherit name writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
+    inherit writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
+    name = "thunderbird-bin-${version}";
     baseName = "thunderbird";
     channel = "release";
     basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index e86e847e8f3..e7b5496e910 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.9.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.9.0/linux-x86_64/af/thunderbird-78.9.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "b9d7bacd982db97e531775ceca569e011603dbd2806a64bce43ef2ff30e6c8f4";
+      sha256 = "58bc04e46def73b3530323e56d143db324a5a80f426b37ff396e2e43cf8b0042";
     }
-    { 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.9.0/linux-x86_64/ar/thunderbird-78.9.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "144647297e15556de5273e4f41712fc348b3dd401d71356d556c1ed09221037d";
+      sha256 = "9520899691eb7e4e7dad95ce643da5cb966c1058b3cc952b55bd66d7a09473ef";
     }
-    { 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.9.0/linux-x86_64/ast/thunderbird-78.9.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "9adb0d16ab633e4ffa3628969ccb542488fc299da5250c058828144f6f773781";
+      sha256 = "769e7cd3699577a1f69e62492c8058eca635ffaf6acab6ca3a4112301aab751f";
     }
-    { 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.9.0/linux-x86_64/be/thunderbird-78.9.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "3e54fa9ca34bcc11d411a979ed6bcd0a68b67da08cdba49e1f8a59794bc2dff0";
+      sha256 = "c1b35990af2731b52da57b4b6b0e4a7733ea2e8d499e95b3b086dde3bdccb657";
     }
-    { 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.9.0/linux-x86_64/bg/thunderbird-78.9.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "d576d3193c8e263d44942043b7e13c8861b2234ebb66969ac2cd20f84d6d769f";
+      sha256 = "708709a3acb4689de7870d21c258ccbc03a1fdb92a43164841571e6643bf2988";
     }
-    { 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.9.0/linux-x86_64/br/thunderbird-78.9.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "cd85058134a3b1364049d11a32bd964f8f9488fb48ece65d32fbb9005831b1d4";
+      sha256 = "e84f1dea6f550a1827399d0e7f658f376c816d3f7abe962ec58115d36c28c1c5";
     }
-    { 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.9.0/linux-x86_64/ca/thunderbird-78.9.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "5bf9ac27b8401f7c1479cacddc48e6310e6ac52e038f824193788dd6883512a6";
+      sha256 = "8191514f74876406cf6f332a0063032206d1b6f29414941dee3082ce1bc6e711";
     }
-    { 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.9.0/linux-x86_64/cak/thunderbird-78.9.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "dfa2f97ee07f80adc5ded391bf01aea36e2aaf5a12ca9a510c5842756d9b9f8e";
+      sha256 = "9626ab3117cb4567ba65b24c5800f39fe7dc9c372c60f88ba0906eb72d63ffb0";
     }
-    { 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.9.0/linux-x86_64/cs/thunderbird-78.9.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "c76d755c9b54921a4edc9521aea2c51aa6301d954154fa6228195193000be56f";
+      sha256 = "294f60b4efa04fcc9bdea8c4107ac572613d63c742ae9492eb63f5eadcef1448";
     }
-    { 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.9.0/linux-x86_64/cy/thunderbird-78.9.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "09475639dec1e370360c1c257b88ab45fbf2251bd22d1d50e9df078b035b8560";
+      sha256 = "865d631746754969d7dd59b096306aaacdb189b967e295676a3a7253a5af8ed3";
     }
-    { 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.9.0/linux-x86_64/da/thunderbird-78.9.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "74cc98d1d99e9fd101e86051cf9aee26b40cfcb6203892adf6fd45fad5934926";
+      sha256 = "cb8b05cf1938326a4246f670bc324d83179f3ce1f3d4f3d8de57599da031ec9b";
     }
-    { 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.9.0/linux-x86_64/de/thunderbird-78.9.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "509648ba2c7d9ef4db1755ae5e017d3dc1c73c5a3a94a293bbc9a505b5349e2a";
+      sha256 = "9dfc5b4490c8ba926ce30605e3575cf3b471fae1f1808fb5054667c2751956c2";
     }
-    { 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.9.0/linux-x86_64/dsb/thunderbird-78.9.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "03dff2bbcb39d967c96934675134acd3ec74b39df3b6cc76846229ff92653483";
+      sha256 = "1752031e919fc1604c1d70ff5a9036d8752a0de78c0d0539860c45390b09e13f";
     }
-    { 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.9.0/linux-x86_64/el/thunderbird-78.9.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "d6ec9ccdd2945d6de1718f32b551e922da1808d59acec937a16addaa0004e94a";
+      sha256 = "bc2c7b093dd00c352874c7ae6e3d88e455fe9b357caa0e358d51dde120398f41";
     }
-    { 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.9.0/linux-x86_64/en-CA/thunderbird-78.9.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "bc97cadcf95bd0273708e1ea5cc8cdddd29f11b280213c1bd4f35a50d446763e";
+      sha256 = "5605286eb97815d5acfadc0a93888a1e8d08e9b8bb5e7b28328c9650f6a9d065";
     }
-    { 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.9.0/linux-x86_64/en-GB/thunderbird-78.9.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "82fd7e16cc8d5df4e775187d7f3e32b9b1dab3647cd766cec1649c39d08d5165";
+      sha256 = "bc0a4c15cb3d4f1891e91a7bc5cde53065cca95fe5c72c18bd39e0bc618b5d01";
     }
-    { 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.9.0/linux-x86_64/en-US/thunderbird-78.9.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "463c1164b80f0f8bcb72f04fb0c17e32a637df988c0ea14d90469b1d7a958f82";
+      sha256 = "65e1539602d206cfb78cb7bdf864d251670242d775f62aad25a1a52dcf1e9e55";
     }
-    { 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.9.0/linux-x86_64/es-AR/thunderbird-78.9.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "1ce69e73e8326e316d056a98efe601e7300714f1b65f69e2fcd175123fdca96b";
+      sha256 = "e246d1f0fda4091888dcac7c5e8d5367688d86e6f65237e942baee0c2c82136b";
     }
-    { 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.9.0/linux-x86_64/es-ES/thunderbird-78.9.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "a04161f56944527f8537d46e046fbed715a554e4dc581aa636f1cec3fb1e1351";
+      sha256 = "a24902cdd4eb9f70b435f52c9244769bc674fc16194a908976c28c8de3d94674";
     }
-    { 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.9.0/linux-x86_64/et/thunderbird-78.9.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "36c2e7ae029b65976b92cff62c3c3a97e8c44a73c2f5e48415260b23a23ff653";
+      sha256 = "891fb76d3f9044ea44230d72c6b8bd4db63c63c71dc83506e91b31329e1b0c11";
     }
-    { 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.9.0/linux-x86_64/eu/thunderbird-78.9.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "538a42bb6eb11360fa70bd06058dbd47f2a3eec53fbbfe0232ddfbbeb4a4187c";
+      sha256 = "cfe8c0e314dffd57e653204aa5aebe790147f3a1060cc1f95da0045d1c188cd6";
     }
-    { 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.9.0/linux-x86_64/fa/thunderbird-78.9.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "6e2b18166237fdf0d020570957ee7d0815d846a0aca8df2036cdf99e651cfce9";
+      sha256 = "66aba0dbc241d954b18da9c94c6c8d7b33dbc8721560a23def882cde249d17ef";
     }
-    { 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.9.0/linux-x86_64/fi/thunderbird-78.9.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "1769213bf789a21572014d4d97c823db14e11f7a32b91d57d98bebe39a80786d";
+      sha256 = "e05b5be90b40dd61a3686d3fb011745431f915a0d74e08a157668cfa1633d5f2";
     }
-    { 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.9.0/linux-x86_64/fr/thunderbird-78.9.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "60017c2151aed3782567d9c10817e89c738d6bce322fd33f1188bc25dc12ac3f";
+      sha256 = "f4c80650f755a65c1371aa9bc35da6e1fc54f6c44dd6e6bed1f3ce8ce883656c";
     }
-    { 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.9.0/linux-x86_64/fy-NL/thunderbird-78.9.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "3878ce39135e30a76c67182765f5fa7fc38b7019021aa86f0806028f67a7dfd5";
+      sha256 = "4ada1d224c11081bc7cf7fec51e6cbef695650cdb9b860320da9a070d01bcaed";
     }
-    { 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.9.0/linux-x86_64/ga-IE/thunderbird-78.9.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "b2e66dd3fe5a78d2eb6691bc91521b3f22fbb5be88c556e2d5158057db0d6cfd";
+      sha256 = "e2b6437b4b10a636d585dd591c933df370a5b70bc0a447564ab8dbb4df5c22b9";
     }
-    { 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.9.0/linux-x86_64/gd/thunderbird-78.9.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "c4722ceb4eca2afaa3502f2bc419b0ffc6cd2600100c5a91bf2cb7cdda60cd66";
+      sha256 = "034b5dd31ac4df1ea8f19b52739fa632a53d063a6ca07e4d36194c55452aaef5";
     }
-    { 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.9.0/linux-x86_64/gl/thunderbird-78.9.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "0f34fd28523062c90c521b40b0a67ad23e3b2ba05fe5c03cc1da29d480fde1e3";
+      sha256 = "1afb41188de30c672d3a15e7b8e8b0690ac8358069824edf7215f99f73333d32";
     }
-    { 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.9.0/linux-x86_64/he/thunderbird-78.9.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "8cf8a0b5e1bd3ed116ac1dcbcb1857db9ccff8452ff0d1f3ac2957cada5883c8";
+      sha256 = "492f33bbc7f6d6e53aaaa3587d22156afb32d0753609818eeefe7ea53bea788b";
     }
-    { 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.9.0/linux-x86_64/hr/thunderbird-78.9.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "827d0c46d404d871661af45d301645a1c888941741c1b6cad27c7c37aed52800";
+      sha256 = "a61743f3661eb8ce93cc58dc80ce5950534dd7c89e067a3460daa4502761e3b2";
     }
-    { 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.9.0/linux-x86_64/hsb/thunderbird-78.9.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "83e965004f0293c324393914cc931ccfa608360982d338859da1e7e2ae0f333f";
+      sha256 = "cb1d4f8da3071ecd4ce4f9ae43d1e4d7dcd8edbc6dbf4917bcd1730cc5a0477d";
     }
-    { 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.9.0/linux-x86_64/hu/thunderbird-78.9.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "120ca3f7b356c57d7fa2af63ebcb974ad0ba313fe9c615afa5553b2e7ab75e62";
+      sha256 = "a4ae0452d90d3c5c7778732811d97243b9b4767208239c8a24d4b4d368630d22";
     }
-    { 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.9.0/linux-x86_64/hy-AM/thunderbird-78.9.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "7d0c2c5854f0a5a2288cacb6bf0d2f8ecd838dffcc8ccd040f993af94cb92d13";
+      sha256 = "cab2129d4c4e99592ce6f22d676a03ff1cc5d5bf579a2426d0079e0f86215ade";
     }
-    { 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.9.0/linux-x86_64/id/thunderbird-78.9.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "29462ae0dd0eaa8ac9370b8fc46ad8ad679ef44996a7f80468890b8a75ce4a29";
+      sha256 = "a1df4c7e0c359cab8b10692bfee5161d3bd44696ee06774985642604304f9b93";
     }
-    { 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.9.0/linux-x86_64/is/thunderbird-78.9.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "084aee31331bb0bbdf466d3c3a6bb1834dfbdddaefe0e8c6e1d4a91eec0725ca";
+      sha256 = "bf6ec8c88f65d565f7dcecb1f3177a5a1e476da62d8aec82d3419e3ed1794798";
     }
-    { 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.9.0/linux-x86_64/it/thunderbird-78.9.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "f180ceb0cd9f2e1d3e975f30fffa968e938b18ebb3c45108b6758d36989918e6";
+      sha256 = "e028a6fa97dd9d37945137602d45230108fa30d63edea8df8531089724646e19";
     }
-    { 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.9.0/linux-x86_64/ja/thunderbird-78.9.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "662f124e3a32ab9e6b6fbefed9b58779060d927558bbc9527d83936191e3e044";
+      sha256 = "6435637e0582123c1b941b1c6209aa1bfdec471d3ce76a861c82e876b7637fee";
     }
-    { 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.9.0/linux-x86_64/ka/thunderbird-78.9.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "2faece980493b0071e5d62a579f4e1c4d792a63293949d81fa96e70468044acc";
+      sha256 = "8d00d918c42450ac7a451a0a5a7407ecb334b51bd20c3f33871a29c82f338175";
     }
-    { 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.9.0/linux-x86_64/kab/thunderbird-78.9.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "7382fc4e006bcb05c0db2dc88f8aad32a3abbce2bcb32f28d6271658caf934b8";
+      sha256 = "59af5f436ccf0d0914f800ff6cb31fb341d3d905d3d450ed43a09d8810e50bae";
     }
-    { 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.9.0/linux-x86_64/kk/thunderbird-78.9.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c8c52e06cd3ac3a02dc0081a82b25223a1da5a918335f770660122c8a6ba750c";
+      sha256 = "70588dd395158e87bdf651a9ed2b1d92cc5792ed6c85160c2b1c2109d52a3ca2";
     }
-    { 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.9.0/linux-x86_64/ko/thunderbird-78.9.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "67928b2f6861b1071ff76c457f6aef4a9eb0d80f896331bdb847543c62b0dd11";
+      sha256 = "7a3473a4bd51f6931326c30c387546d4b900fd70a837e8d45380afd4597c10e2";
     }
-    { 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.9.0/linux-x86_64/lt/thunderbird-78.9.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "aec1acfb847cea57772197d81d122e97915b03358c984293d40f6ce759b9e77a";
+      sha256 = "1e36db5d910184872af4e7623c59c79f8e522955c5dd5cba4a689a5bc2d857b0";
     }
-    { 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.9.0/linux-x86_64/ms/thunderbird-78.9.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "9a4411e932789040abc939a64b9ad979104ffe868a969dabc27022dc9ff822fd";
+      sha256 = "058f825e44c24e837081bb05241c1ff47b390132dbd3cdb5b5d4ef51056bb2ab";
     }
-    { 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.9.0/linux-x86_64/nb-NO/thunderbird-78.9.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "c7cfcd78108d931c60e9a061ed459da9df0cee27b16085fd1c6f3d71d54cd2fd";
+      sha256 = "7f6335ff85c29aa634b7909e4b7a2da007f333648a98ad9f3bd8833d00f2f0da";
     }
-    { 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.9.0/linux-x86_64/nl/thunderbird-78.9.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "44e9a143f00636a9287b2f0774720fd372de25fff9de8ceb468bc81de1d7ade3";
+      sha256 = "0056c1250401f89ab8d9423f23d3148bcf34801b34247d4bc44b89e8edd0552f";
     }
-    { 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.9.0/linux-x86_64/nn-NO/thunderbird-78.9.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "75269ac3171d14ca6145c3d00ba004489f89fc9210cf3af0d4e0248e24dac273";
+      sha256 = "f63e4305ba814a46edc4316af6ad02acd479306f2f1c02c1b04065ea20baf59f";
     }
-    { 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.9.0/linux-x86_64/pa-IN/thunderbird-78.9.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "ef98d53446ad294eaa861919cc8e9e70f4f6458d3a4210a43ec37bd919db8aa7";
+      sha256 = "654902d560df0648cd2e9b7b1271d3606071865dd1cc4490741a5777be2c72c3";
     }
-    { 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.9.0/linux-x86_64/pl/thunderbird-78.9.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "682c6b2a5e808e65e1e233fb48bbd68058a7f2745648d01d6342c90316b8135c";
+      sha256 = "62c4352b987bef61f69bb0300c9cc37b95ca5e6fde57a06646b14bef6e58dd78";
     }
-    { 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.9.0/linux-x86_64/pt-BR/thunderbird-78.9.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "761988b180f3077cd9710324fd87ec577de5f5ee11c79404b416c64ba322c65a";
+      sha256 = "139606374df552562100c01e8a330fc1f4f9e6dcbc6a39396137d2f069ad0fcd";
     }
-    { 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.9.0/linux-x86_64/pt-PT/thunderbird-78.9.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "9182a7064d0f98a49b34b9bf78ae4d63fe6b588c51ceb48ffe0974455e767867";
+      sha256 = "eb6526b6ee0f768949489ca587c321ed8aabd258296c58e596b7a5413b458ed7";
     }
-    { 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.9.0/linux-x86_64/rm/thunderbird-78.9.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "33a8bec5ee7240fb44e350139f60e1d7c92361020bba2857634af03e40ee0f87";
+      sha256 = "36a22f1c8eb1a5c7fb0e9323a3c3eb03f8a63b2b6c62430780bf4508a7236c41";
     }
-    { 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.9.0/linux-x86_64/ro/thunderbird-78.9.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "a50168d1b5e62d7bec9d75714612614b9d2342fdc6b8f89959d50d1505cbf7d0";
+      sha256 = "92ae47ebf2ab176d46e04172206241aeae8a6eebf72b5f32d021782aa1675be8";
     }
-    { 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.9.0/linux-x86_64/ru/thunderbird-78.9.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "555e630090fbc41711e88d0a8e822febf0619333c2bcace5bdfbfdfdddfbb0dd";
+      sha256 = "97680d44fae135e90368adb75ac27b4f23f1186d1435ba265a80027334f320ec";
     }
-    { 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.9.0/linux-x86_64/si/thunderbird-78.9.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "f977bd3fb4caaefb03eb8c967ae4850c0b7b2b8dfa0f7d7cedfba0847788cdb3";
+      sha256 = "6ddf49c8696deb3ab9ac55453b93116c923ad0025c9c8463b56bdc81e6d00bb9";
     }
-    { 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.9.0/linux-x86_64/sk/thunderbird-78.9.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "f1e5c9787a2ae8f8aaceef1ca2963884031a6cb8dc0ab3c3230fa0021156cfc4";
+      sha256 = "5e2be4cab9101a67c61eee16c8c84513b196dd19f6d0dfee3559796a8a031138";
     }
-    { 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.9.0/linux-x86_64/sl/thunderbird-78.9.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "59a97046285bca3e5b8ba396d3afef69fe2cb5a41347e4e0a21e9ff66c03ae12";
+      sha256 = "ab9293a2a5caf948bf2e4b4680b9cf7440e7a272f9f028568e260c40d5a031ce";
     }
-    { 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.9.0/linux-x86_64/sq/thunderbird-78.9.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "ed0cf7d341d42dedeaa224f7f1f8e005172134da591f65664a4aca717e6db44a";
+      sha256 = "113171842441b9553e6da58c7ce3e3382fb9aa780892b8ee4436ff9b2bf3dc59";
     }
-    { 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.9.0/linux-x86_64/sr/thunderbird-78.9.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "fd61b2e8e048f162e59a1a428100e6d0556d7120de1f8b46decdfe60509de0d7";
+      sha256 = "1b46f1597ab5aec2bca98adf9664cafd72ff51db23722108cbd4c0c89a1a8e70";
     }
-    { 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.9.0/linux-x86_64/sv-SE/thunderbird-78.9.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "87afa3b4b12848de156ea61d1727dea1ef5b86bc83b583df55f089bd1d1bec1e";
+      sha256 = "41284557a6ae1b267eb3c2fdcc4a547834e833f55b5c1ad9c8bd9121c9d39dc1";
     }
-    { 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.9.0/linux-x86_64/th/thunderbird-78.9.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "0e9b959424106680bced6d924c184d1306f7f1fd34fb4d3e4d8a54cb191500bd";
+      sha256 = "99a342f303c3a890ee68514841d563fe493e2459a4d6f6769c42f986e122b7ba";
     }
-    { 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.9.0/linux-x86_64/tr/thunderbird-78.9.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "f2d037cea39d2698e71a0885587302644450149434ac7c3234c7ae32c5f4d103";
+      sha256 = "f827b3d8fb60540d00d20d4ec50dbd9e28af3798863fa4ccc1a862a08ebdd18d";
     }
-    { 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.9.0/linux-x86_64/uk/thunderbird-78.9.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "663aa8509cc75c074697509981bf54ab00eeddc50c53acc0221225c3d7c63f9f";
+      sha256 = "d8e30faa9f43308c31504437ae2187d5c1ce00c16cd430f31eaacf8dbed71604";
     }
-    { 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.9.0/linux-x86_64/uz/thunderbird-78.9.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "892209fbe5d48532710feab4ad8f38f9387e10b088d91a12c9778bc465af194c";
+      sha256 = "00e3e3a43519fa8136d3cde8527f3e9c44732ef6d5aac9cc2e1f28feaf940a50";
     }
-    { 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.9.0/linux-x86_64/vi/thunderbird-78.9.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "a66d1d470f4a76cfa8b31fa3d60acb91cc7657455f9aebf930e127c2acbf4c8f";
+      sha256 = "f16b0fca32c85e648be8c8d4c9ddb6d8fde726f1386d0dd29ec050b39d827fe2";
     }
-    { 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.9.0/linux-x86_64/zh-CN/thunderbird-78.9.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "10830b4a84ca22c19ee329cb00b92816e9b74f99c99a1ba6cfc86171470d655d";
+      sha256 = "51007e8318fbf673eb63bf20be8daa35ef8e2d6fee9fd9356dbba98d843dc813";
     }
-    { 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.9.0/linux-x86_64/zh-TW/thunderbird-78.9.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "b88200643a70ba3391cfd3be6cbc7bb178c6170f26041d4153021736d03365f0";
+      sha256 = "ef7a5507b47725ba7bca853c1f5bf20eb36d31fbbc8c912596a5993f7dca57ac";
     }
-    { 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.9.0/linux-i686/af/thunderbird-78.9.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "e78e2ef7411b3e6c0f2ed5c0729dfdc144f94e8575f2f30ae1cbaeb7c73188dc";
+      sha256 = "435ba6c5a5901fe1daa1b19c36f1071086d21e2f321a52afe1db0c03a0044635";
     }
-    { 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.9.0/linux-i686/ar/thunderbird-78.9.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "42c3f3b177a50afd6640db6815e7c159048cebb6dd5613c2fdf9ef18871d40cf";
+      sha256 = "4ac307dbe93e69e6dbb629756363900256ec735c1927cad74acb0c5f8e255b92";
     }
-    { 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.9.0/linux-i686/ast/thunderbird-78.9.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "b8fb786756051169d96a4fecf05cdabf4becc8fbcabd56ba676e96286a80b9d2";
+      sha256 = "3d9a01438e82350e5a60ee7944226d9a0f46384673ddae01f8f8fe445df40312";
     }
-    { 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.9.0/linux-i686/be/thunderbird-78.9.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "4e3f8f26b1321d130fb16b5eb30c3b3c3a7863e6d43ee9604f1a6da97228c85f";
+      sha256 = "9a5b22648d8c7c05d5f0be0d1f450baadccf791353a23bc1b6889e8911d90c5a";
     }
-    { 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.9.0/linux-i686/bg/thunderbird-78.9.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "0385b615dfb21f33b3e84b6c9213d3d8980379bb4be07967f5309888078ac177";
+      sha256 = "77cf8d4912c2b5b34fa0235ddbb95cd90bcf83d1d528275b23de08dad59116c5";
     }
-    { 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.9.0/linux-i686/br/thunderbird-78.9.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "e338d6b439577af562c4dbcd2951176d2c6cf87254203e6d20602de4563484c0";
+      sha256 = "9e7bcb749e0d88efd60e6bed2fc77e39deaf8a82db56c304529d44843657842d";
     }
-    { 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.9.0/linux-i686/ca/thunderbird-78.9.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "71f1b5f1b35a9c5712ba6cedbf3de96f4a3814655c44ed1cda48d4e5a56c3e03";
+      sha256 = "0206a127cbf5f9b1c4c4711d4d05591d175c9e96c2354790c220e9587c356aba";
     }
-    { 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.9.0/linux-i686/cak/thunderbird-78.9.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "0f616eb61c0de3e38d2092ae215613ba104be279027259def8bca4082bd74cd3";
+      sha256 = "e47d892a90c3b9ec29365cc0173066234e21cd989c4b588e43fecb61b10d1f80";
     }
-    { 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.9.0/linux-i686/cs/thunderbird-78.9.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "8de26b3daa7b087fb94a349e909da703867665fb2b4add360584c8d61f0c84ee";
+      sha256 = "bdcfb9cf6e3207a41634eb54c472117c33b0df981d900c4dd0dbff0463ebe57a";
     }
-    { 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.9.0/linux-i686/cy/thunderbird-78.9.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "74e28fb04e08bcfd68215eec443fde725077850e412798c1f0870e776ecbeeb1";
+      sha256 = "5b0def675213d882ea653ffd7b5aa62f96000d4aaee8e06ad1fd5984ac99c8c7";
     }
-    { 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.9.0/linux-i686/da/thunderbird-78.9.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "d50f37a31e4e5805084fa14bf639057b543deac99738871c402ad9af9684ce20";
+      sha256 = "617579da2580a0d9a5a6e64ef7c4b028fde31f82dcf8139104c380e51ec50227";
     }
-    { 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.9.0/linux-i686/de/thunderbird-78.9.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "7aa84ada2e6cb6b467a618b234a7cd0370f5d71fd1eb0f5da1addb6478665ad3";
+      sha256 = "5cdee984aa63595fbcb00303f14fd19d124ef9b267d490d5263c7554f4ea0dc7";
     }
-    { 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.9.0/linux-i686/dsb/thunderbird-78.9.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "e273b80d5039097a34e7e2c96f65aca112e68d72a82782e783ea9412e49ab21f";
+      sha256 = "fa05969bcc025056b8ba9c056af0051fed91a967ebf9e21ccab7654aaaa6ba1f";
     }
-    { 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.9.0/linux-i686/el/thunderbird-78.9.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "f31dfc543cca8d8f3c6e1cc40f8a07ead7b231222c8e04e5e2202c315c4708d8";
+      sha256 = "03b58dbcabb41c0140c18f1ff31dd32e4d2d006c85af75d73bcd656587e787ed";
     }
-    { 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.9.0/linux-i686/en-CA/thunderbird-78.9.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "534f8008886a3028c09afb1c030923359f8ee0c85c6e961faa4c974b6c2c30da";
+      sha256 = "6cd222aacb8eba184dc3eef308fe7b564c70da2ba6c38e6e4e328e999b7229a4";
     }
-    { 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.9.0/linux-i686/en-GB/thunderbird-78.9.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "c9c138e5d92847c0c0ec82d1799fddf1267b95a5f6ef2cae7820f560aff53732";
+      sha256 = "9d3ca50977bd5c6f8a5bd998549db0dc2ccc6aa5d33c914e93d42e2ae69e8cbd";
     }
-    { 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.9.0/linux-i686/en-US/thunderbird-78.9.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "6ec06f3a432301745ed24607b0549602ae31bf6e051ca9a4079f4cd6caf2041f";
+      sha256 = "84721e190b6b95733a47a16853e1fe1e0c7b0e4693d3b7752aa59583fba92f97";
     }
-    { 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.9.0/linux-i686/es-AR/thunderbird-78.9.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "8debebc56ee0fbcbf2507f98f28f7807b55d4d768bd40c7820aa9e4f7dc9f0ad";
+      sha256 = "dcadcd68506406f718871d7576b47086d59ca159a5bc6d878d022141029df2db";
     }
-    { 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.9.0/linux-i686/es-ES/thunderbird-78.9.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "58ac431d1b48a1c8224e414577a7405f20336cd990f6e4d8399e304cc5f38a3f";
+      sha256 = "46526dd5b4bb123e774d3a3fa8fd88a8982cfb36a252b09fa98aa6cb773ff0d2";
     }
-    { 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.9.0/linux-i686/et/thunderbird-78.9.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "a80917893c189acbd745e56820b7f4fce1ebf14e99be8700db75817ffa3eccf5";
+      sha256 = "de0b695be00721244ff20b2046bb376342fba7c422980443b217f5d4cfa83d48";
     }
-    { 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.9.0/linux-i686/eu/thunderbird-78.9.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "f305db54f9cc504777ee9d329ca1da97a8642f7505903b2744cb7d86382b0ccf";
+      sha256 = "543d45e256951cbf21bc61359e99daf2c80789a88641ae2231c1eb0ade133198";
     }
-    { 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.9.0/linux-i686/fa/thunderbird-78.9.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "0a90e573bf94097f790dec0ef2771266bf115c0c4768c3952758f8c17f7cfb70";
+      sha256 = "6b95ebccf7ccca90c3310923f020ba6f05fa715d64c79acd770a491e15a9938f";
     }
-    { 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.9.0/linux-i686/fi/thunderbird-78.9.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "264104b86cd034927586520b6c4df25b1c75da4d97ea18bffd74261e553b4eb5";
+      sha256 = "145c2479a73955f9ffe6ebd2d41eced848770729f218381735aafe5c3cc0b3a6";
     }
-    { 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.9.0/linux-i686/fr/thunderbird-78.9.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "2cbca14d94252f24dd50c971fd5ad367b4b3c0d3ccfd2d9ce8b18cb1df62a82c";
+      sha256 = "9178d90f346d62b6aa0bb4b081b6bebc214d333d6a042c46ee1af7661ffc3b03";
     }
-    { 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.9.0/linux-i686/fy-NL/thunderbird-78.9.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "d60c543f59ebdb539b9d3799d77f4ad1d05738cc5d1b78d016a7d2f036d72095";
+      sha256 = "fe3574999f0d1fff276fdfd7d432859d495c2b64137d33ee418ef1e4329b1b72";
     }
-    { 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.9.0/linux-i686/ga-IE/thunderbird-78.9.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "2d0a19e3a702a72866af8c8e9aac64e9c41b3b1bc44de53ec42b56efd657cd63";
+      sha256 = "1570882cd8345f86de38179713a7f7acb94768c4874e571a20314fb01154e1bf";
     }
-    { 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.9.0/linux-i686/gd/thunderbird-78.9.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "93eaaf7d5c6cdf1947e25fbd053185f09f60329ba729a53f12d272f24dca6bf7";
+      sha256 = "9405a2a7ce52a48292bf4b6b20f3b1e96c12460a1e44a90ccdc31cdb21acda5e";
     }
-    { 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.9.0/linux-i686/gl/thunderbird-78.9.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "02d78333abaed79e7a2fccc6af3edef3077e08cadcc83fa2856779b6d24e9113";
+      sha256 = "930a9a3e06bc28ede54ec43e8bb92cc30329d7f0271629b37ac3753191f7e133";
     }
-    { 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.9.0/linux-i686/he/thunderbird-78.9.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "d4dd60245672fc23e114d2cfef40ff69faf08a2f188969deff7d084d8aebd64f";
+      sha256 = "eb08c16b7df47fd501f61049b19f3f8f827870c8681b9230564276bc0cc9ada8";
     }
-    { 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.9.0/linux-i686/hr/thunderbird-78.9.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "0aba235af4ebdd924d9d909755dd059025c1b502ab0056a24ef0eb5aea05b9ae";
+      sha256 = "c866290def37d2e16274820d5846bec52afc7c7da1f8df812df930f0c68c6b56";
     }
-    { 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.9.0/linux-i686/hsb/thunderbird-78.9.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "acc53828d809a21b3a5bc6b00cf5681b376284e4818c8db250f61a3117573f78";
+      sha256 = "0df5dc60047e68aadc7a96e194468d42e977c7a90d9faa8c4684f650763825f8";
     }
-    { 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.9.0/linux-i686/hu/thunderbird-78.9.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "39aac6a7e96fbc71c9e537f4312fa528c0f3b56a5d669638ca2a4ff2a4823cb8";
+      sha256 = "e76e78c1c77b59eb7a3ffad0da149dcc7f64d6b0305f5a5a607ad2745d224e17";
     }
-    { 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.9.0/linux-i686/hy-AM/thunderbird-78.9.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "bb1fdc6084ca5d761823b5391aa237d14d62f783007cbb2d6ccff1b69a7b3142";
+      sha256 = "0dde11bb6c6ba186925010cee97b59d3c64890b108ef478be5578218954a39cb";
     }
-    { 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.9.0/linux-i686/id/thunderbird-78.9.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "340b91be60235a91b1a130d68e9b5ddc16d63eba381cc59efd2d396764bf2327";
+      sha256 = "ceea16b87a7d8b44b187d950f4c9fc5326ed7a550c38e0f41645004a324669a0";
     }
-    { 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.9.0/linux-i686/is/thunderbird-78.9.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "4f3b255119669de976714089d11532342eb6c1ede95e98d8de09413cdaf28c4c";
+      sha256 = "a98177d8f62b1ffe056ba3c1f2ec9d7b3f47ad8d47459328692e9bee5e1d02d2";
     }
-    { 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.9.0/linux-i686/it/thunderbird-78.9.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "1fdda6110ef1eec5702490dfb786fadeb6bbb73fa849526327baebdf3aeaf348";
+      sha256 = "259b8e4e08828b544ba61541629025d4a711f44dc4c476b3e3971a633301b298";
     }
-    { 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.9.0/linux-i686/ja/thunderbird-78.9.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "fd10c2307c71e143d76dfba7d26ea15a6a211878bcf1287128d5706018fb3083";
+      sha256 = "6f2511dab5530e58664f386cb65b26d82fe581faee01b1a76cdd29e3ee3a1955";
     }
-    { 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.9.0/linux-i686/ka/thunderbird-78.9.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "b796f8b6aaa28a23726afe915b741b7c89ed73f4e731bf7fad3848aade16001c";
+      sha256 = "368a85fcb387703df7422d1ce199a499d0e4796f4fdd4775aef27c5b36272fa7";
     }
-    { 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.9.0/linux-i686/kab/thunderbird-78.9.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "35941699918a3177b092c650a73d8bc8f6d06bdf8cbc5c33e492d93f6cb0f198";
+      sha256 = "33bfd965c79bd6935516729f3eedd65be2b3f754c9225d6ffdb4af201b0d13a2";
     }
-    { 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.9.0/linux-i686/kk/thunderbird-78.9.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "3ea99defb54f2e672d48b424e842c876ad0ceacd87cd19cc643acb55586948ea";
+      sha256 = "20dfc052f78a58d4fd96a0df22b55559ca43d8792dfda372dfede1cb49c6b185";
     }
-    { 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.9.0/linux-i686/ko/thunderbird-78.9.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "4cfa908b81773b57486b8144eb61c949c70615eafc1b3d050b6ceb6292958769";
+      sha256 = "63479eb7fcaea17ea29c98b624c36ac20ff2ab9e42bae1a355c78f05d5f9e313";
     }
-    { 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.9.0/linux-i686/lt/thunderbird-78.9.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "0d668e8a27f7044c610cff1028f245d2952abf6320ce905365bd42a39df85c23";
+      sha256 = "2d50db9e0698c991e10a6ec6e627b02d0aca9e18b857aa290e4aab926e8ee88b";
     }
-    { 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.9.0/linux-i686/ms/thunderbird-78.9.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "a632e60198e189d33e87a01c084179bdfb8f8c1d1547dfa4747dec325d1c04c7";
+      sha256 = "66969627bd536d9a8e8d8717bab010ceb16350425d31ea114bc7e012ba1f0922";
     }
-    { 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.9.0/linux-i686/nb-NO/thunderbird-78.9.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "d0336060f8e8b632462df91dc0e3ba33f2a7dbf1da6084d41961c05fbbedd46b";
+      sha256 = "1db46ff207d356adaf761db2fac7961b20633dc6578ce562154a1bdb308256e3";
     }
-    { 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.9.0/linux-i686/nl/thunderbird-78.9.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "4e9c1921dac5ce0008b7380d810d5ee4530c4d336c79c6a274c657ea338a4ca1";
+      sha256 = "0259c04b35bd30b5feb44da31b639938504f1402879205263eb63f7a59153f11";
     }
-    { 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.9.0/linux-i686/nn-NO/thunderbird-78.9.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "c33045aaa5d9054022431cf66f03ba2485ea7c68553ea245b73c8cf33b4458fc";
+      sha256 = "1de52759f96302447829e0de40319394ac0b1802ec60c0c242cf85c0ca5110c6";
     }
-    { 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.9.0/linux-i686/pa-IN/thunderbird-78.9.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "8b3810587f61e029a2536cb0eceb8b0b26656adf9ce17e8a7f020ed41b6e5724";
+      sha256 = "39e0f5794e508dbf02c6aaedaead4173f5ae55d350aa3caeb7a1ad300a69e4e8";
     }
-    { 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.9.0/linux-i686/pl/thunderbird-78.9.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "01c8e6ba91037b8e5f713fd7d0dc9b6025aa3dc83fd8b13f1490dd849ec5e87f";
+      sha256 = "25bc49f2225c8aca7ea467a240234fa9ec2c7ec34f751537a199f6cbb30b390b";
     }
-    { 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.9.0/linux-i686/pt-BR/thunderbird-78.9.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "9ab3d18699c6de55a198028592da01b576d67920375cbc2154d356bdf7fd4ccc";
+      sha256 = "6091c0e84d89312db11a3714027881243db708ce3f28187e86076351786a3d70";
     }
-    { 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.9.0/linux-i686/pt-PT/thunderbird-78.9.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "3446b5b82aeb058ff880d82fa7da923231a7104bcef77bc08f640490c79b24b5";
+      sha256 = "45fae3c271d226dee2410f8f97eadb62783291c570bf12cd9f5fe5ab23acae23";
     }
-    { 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.9.0/linux-i686/rm/thunderbird-78.9.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "0e1ba7a270021b2df2f189715ddd6b0d540c35dbfb3f45d8216b24e29c6ecd25";
+      sha256 = "56387dea25d3bc4742c297e0609be55a2db938d10a5e94db192018c706e7f398";
     }
-    { 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.9.0/linux-i686/ro/thunderbird-78.9.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "9845b2e33d758474c44e46804c7c49255f3acf9f25c8afa299320828cefb3ec8";
+      sha256 = "7e84c211675cbd59e805ffa499663b3c02dbc2075f2b734eaa9f41862e59c59f";
     }
-    { 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.9.0/linux-i686/ru/thunderbird-78.9.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "60dc7072a6dfa0723972522d4a06be75c99e6e1b423e68e91af276f2a325913b";
+      sha256 = "c9374d0b813baa7aa837e2283d75c9c47d75fca7bfc640be4782d90b480fa145";
     }
-    { 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.9.0/linux-i686/si/thunderbird-78.9.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "fd08c36b8143196ca73aade09e3a8292bab0ce8b6e6d18705eed2594f342ce86";
+      sha256 = "ac8ff38bf196886f8b95c34a07ed701416c58b78758517377f6d8eefc85050ad";
     }
-    { 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.9.0/linux-i686/sk/thunderbird-78.9.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "068d927b94908224c7a789bfe33d1e884228d82d3f30e573a0006136d5841c5f";
+      sha256 = "dd44494bec41af06317266ee7d8f8f16ac6c648728636aa68c93f57ca9594231";
     }
-    { 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.9.0/linux-i686/sl/thunderbird-78.9.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "27d3a7f5549c48fa2724dc98b8df72bf2b843b0cc34d55371f050ca217cd2ed3";
+      sha256 = "2be1af23f71b22812a90ab2be33649ad53bf2d14acbbcc9540b835eade0fd9bf";
     }
-    { 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.9.0/linux-i686/sq/thunderbird-78.9.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "b8d3ca545ff88c854b13e1ee89793b33df39f3d6713aae8fb4a2fa3be2d6f73f";
+      sha256 = "5c65db4fcc190408aa8a1c5f0170ede3f86f1c9f07dacc6fd7a9aa54bff533d1";
     }
-    { 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.9.0/linux-i686/sr/thunderbird-78.9.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "10d0f70e52bbb8b0978ff6c26359120bb537cc9f15b47a93744ad8ee6dbd7b96";
+      sha256 = "7a42279c8a4352c18d583503b2324f5dd98b6c927582fa1d5e8cd72a5b1ca782";
     }
-    { 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.9.0/linux-i686/sv-SE/thunderbird-78.9.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "15fd51de4cd82eaadfb0c9a5231cd6c8f83a58eca1eb66acafa037ca8ae76767";
+      sha256 = "3f508f801f1f4afc477ee1a0bd81d49d957429360b9691b5945a88b609dc9a21";
     }
-    { 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.9.0/linux-i686/th/thunderbird-78.9.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "07a6289101aa3d105c2a358ea53d1045bfc3616cd909e57b5a577bcba38dba0f";
+      sha256 = "bd50cac75236ee9e1ad7226c605b37cc2f4aa57eafc4978af9f2563aff7dda0c";
     }
-    { 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.9.0/linux-i686/tr/thunderbird-78.9.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "6253f5e59cf07cfe8bbdd566b27ad9cd56aab29f40c42df1368d7e14d064a27a";
+      sha256 = "af134487b9c2d6f84df56e2da1fcbc7b4abd3960fa3d11a366281768812fd9e6";
     }
-    { 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.9.0/linux-i686/uk/thunderbird-78.9.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "e4e37d8194d8df48810afc47463d044e4b4b9fdd0752b0199e4c6a7aa1b46d60";
+      sha256 = "a094a6fe935b002805252ad4694a15231587a66c31cff3064c2842332f1e82ae";
     }
-    { 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.9.0/linux-i686/uz/thunderbird-78.9.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "983d9701e367017ada3b6583d9e6985a73609c642968f1c82ec9b08644fe82b5";
+      sha256 = "6b8b7622374c92036828990db1de3042e1a7cebf12974d30d73dcdd0e564d707";
     }
-    { 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.9.0/linux-i686/vi/thunderbird-78.9.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "b743d0c18257880cf0d7c463a0e39f6029fede79a534bef9dbd5ffe6ba3b10e7";
+      sha256 = "4ffcd1d5f21145f857ee525169fe59ee8a1cdef6a1c4f3cc1918be1fc7c66e6a";
     }
-    { 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.9.0/linux-i686/zh-CN/thunderbird-78.9.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "8cc5d4a05eef0498fe12476e7ee7a91dce0c69234b78278cc7985505708ff8ab";
+      sha256 = "8cd65c054b6fefcbd0ac9a057e277009c732af6baef08ccb3f57bee73b75ae20";
     }
-    { 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.9.0/linux-i686/zh-TW/thunderbird-78.9.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "5070474b2ac89d09e45bced9513b0f317d4dce76c57ce5f82c75feafb6d49ec3";
+      sha256 = "1e39b1e38bfcc1735801dcd6c073ba1eeb344b23d9e859495947a37d95a4b3b8";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/68.nix b/pkgs/applications/networking/mailreaders/thunderbird/68.nix
index f3594d97801..4433551d2e1 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/68.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/68.nix
@@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
     rustc
     which
     yasm
+    unzip
   ] ++ lib.optional gtk3Support wrapGAppsHook;
 
   buildInputs = [
@@ -125,7 +126,6 @@ stdenv.mkDerivation rec {
     pango
     perl
     sqlite
-    unzip
     xorg.libX11
     xorg.libXScrnSaver
     xorg.libXcursor
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index d91239c3a6e..447c4b3f3b5 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.9.0";
 
   src = fetchurl {
     url =
       "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
     sha512 =
-      "328p14mgcam4dxx0asbgp4v2v559bwbw7z2kxd5yfwkna040r9ccrkkirma5580z9vkwb0rcjlmai9wrbacxrg8hg65d8vylvnkampy";
+      "35n9l1kjx52davwf1k5gdx2y81hws3mfb5755464z9db48n0vfj756jlg9d8f2m2s29js27bdswl64mralw4j085dl11661g7p9ypzs";
   };
 
   nativeBuildInputs = [
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
     rustc
     which
     yasm
+    unzip
   ] ++ lib.optional gtk3Support wrapGAppsHook;
 
   buildInputs = [
@@ -126,7 +127,6 @@ stdenv.mkDerivation rec {
     pango
     perl
     sqlite
-    unzip
     xorg.libX11
     xorg.libXScrnSaver
     xorg.libXcursor
diff --git a/pkgs/applications/networking/modem-manager-gui/default.nix b/pkgs/applications/networking/modem-manager-gui/default.nix
index da36589aeec..2723f342043 100644
--- a/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -10,7 +10,6 @@
 , itstool
 , libayatana-appindicator-gtk3
 , perlPackages
-, glibcLocales
 , meson
 , ninja
 }:
diff --git a/pkgs/applications/networking/mpop/default.nix b/pkgs/applications/networking/mpop/default.nix
index 01528df856c..613226a2dc1 100644
--- a/pkgs/applications/networking/mpop/default.nix
+++ b/pkgs/applications/networking/mpop/default.nix
@@ -4,11 +4,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mpop";
-  version = "1.4.11";
+  version = "1.4.13";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "1gcxvhin5y0q47svqbf90r5aip0cgywm8sq6m84ygda7km8xylwv";
+    sha256 = "sha256-s0mEZsZbZQrdGm55IJsnuoY3VnOkXJalknvtaFoyfcE=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index 02131b41ea4..d8f53f4b256 100644
--- a/pkgs/applications/networking/msmtp/default.nix
+++ b/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "msmtp";
-  version = "1.8.14";
+  version = "1.8.15";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "1W8GXXEUhunCNGGFFaAqSKSNq0BRs08+EI++y2+3c7Q=";
+    sha256 = "sha256-ImXcY56/Lt8waf/+CjvXZ0n4tY9AAdXN6uGYc5SQmc4=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index 82140f2d77d..9267d8d231c 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -41,11 +41,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "mullvad-vpn";
-  version = "2021.1";
+  version = "2021.2";
 
   src = fetchurl {
-    url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb";
-    sha256 = "1ksa327zaiwmcmzv4n4ycfzc4sqhj2492c5ir0mqlx7x2nnhx6q7";
+    url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb";
+    sha256 = "sha256-nNZK11MckiQ+z8NDgDc7aJ6yrXWI1hPOvMZkrGwDDgU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 2eeb151bebe..088391ba48f 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, 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 which ];
 
     installPhase = ''
       # bin stuff
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 42486458b2c..67ddcf59972 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,6 +51,7 @@ mkDerivation rec {
     qtwebengine
     qtquickcontrols2
     qtgraphicaleffects
+    qtwebsockets
     sqlite
   ];
 
@@ -63,7 +67,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/p2p/deluge/default.nix b/pkgs/applications/networking/p2p/deluge/default.nix
index 4587da48a4a..2bd3cd739e6 100644
--- a/pkgs/applications/networking/p2p/deluge/default.nix
+++ b/pkgs/applications/networking/p2p/deluge/default.nix
@@ -1,5 +1,15 @@
-{ lib, fetchurl, intltool, libtorrent-rasterbar, pythonPackages
-, gtk3, glib, gobject-introspection, librsvg, wrapGAppsHook }:
+{ lib
+, fetchurl
+, fetchpatch
+, intltool
+, libtorrent-rasterbar
+, pythonPackages
+, gtk3
+, glib
+, gobject-introspection
+, librsvg
+, wrapGAppsHook
+}:
 
 pythonPackages.buildPythonPackage rec {
   pname = "deluge";
@@ -10,28 +20,60 @@ pythonPackages.buildPythonPackage rec {
     sha256 = "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/deluge-torrent/deluge/commit/d6c96d629183e8bab2167ef56457f994017e7c85.patch";
+      sha256 = "sha256-slGMt2bgp36pjDztJUXFeZNbzdJsus0s9ARRD6IpNUw=";
+      name = "fix_ngettext_warning.patch";
+    })
+
+    (fetchpatch {
+      url = "https://github.com/deluge-torrent/deluge/commit/351664ec071daa04161577c6a1c949ed0f2c3206.patch";
+      sha256 = "sha256-ry1LFgMe9lys66xAvATcPqIa3rzBPWVnsf8FL1dXkHo=";
+      name = "fix_logging_on_py38.patch";
+    })
+  ];
+
   propagatedBuildInputs = with pythonPackages; [
-    twisted Mako chardet pyxdg pyopenssl service-identity
-    libtorrent-rasterbar.dev libtorrent-rasterbar.python setuptools
-    setproctitle pillow rencode six zope_interface
-    dbus-python pygobject3 pycairo
-    gtk3 gobject-introspection librsvg
+    twisted
+    Mako
+    chardet
+    pyxdg
+    pyopenssl
+    service-identity
+    libtorrent-rasterbar.dev
+    libtorrent-rasterbar.python
+    setuptools
+    setproctitle
+    pillow
+    rencode
+    six
+    zope_interface
+    dbus-python
+    pygobject3
+    pycairo
+    gtk3
+    gobject-introspection
+    librsvg
   ];
 
   nativeBuildInputs = [ intltool wrapGAppsHook glib ];
 
   checkInputs = with pythonPackages; [
-    pytest /* pytest-twisted */ pytestcov mock
-    mccabe pylint
+    pytestCheckHook
+    pytest-twisted
+    pytest-cov
+    mock
+    mccabe
+    pylint
   ];
 
   doCheck = false; # until pytest-twisted is packaged
 
   postInstall = ''
-     mkdir -p $out/share/applications
-     cp -R deluge/ui/data/pixmaps $out/share/
-     cp -R deluge/ui/data/icons $out/share/
-     cp deluge/ui/data/share/applications/deluge.desktop $out/share/applications
+    mkdir -p $out/share
+    cp -R deluge/ui/data/{icons,pixmaps} $out/share/
+    install -Dm444 -t $out/share/applications deluge/ui/data/share/applications/deluge.desktop
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix b/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
index c7a05f37ca8..f86eefe668f 100644
--- a/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
+++ b/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
@@ -1,59 +1,48 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, qt4, boost, bzip2, libX11
-, fetchpatch, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext }:
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bzip2, libX11
+, mkDerivation, qtbase, qttools, qtmultimedia, qtscript
+, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext, perl }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "eiskaltdcpp";
-  version = "2.2.10";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "eiskaltdcpp";
     repo = "eiskaltdcpp";
     rev = "v${version}";
-    sha256 = "1mqz0g69njmlghcra3izarjxbxi1jrhiwn4ww94b8jv8xb9cv682";
+    sha256 = "sha256-JmAopXFS6MkxW0wDQ1bC/ibRmWgOpzU0971hcqAehLU=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ qt4 boost bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext ]
+  buildInputs = [ qtbase qttools qtmultimedia qtscript bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext
+    (perl.withPackages (p: with p; [
+      GetoptLong
+      TermShellUI
+    ])) ]
     ++ lib.optional stdenv.isDarwin libiconv;
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b7b56bd7060b426b1f1bfded392ae6853644e2e.patch";
-      sha256 = "1rqjdsvirn3ks9w9qn893fb73mz84xm04wl13fvsvj8p42i5cjas";
-    })
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/bb9eb364a943fe2a67b3ea52ec6a3f9e911f07dc.patch";
-      sha256 = "1hjhf9a9j4z8v24g5qh5mcg3n0540lbn85y7kvxsh3khc5v3cywx";
-    })
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/ef4426f1f9a8255e335b0862234e6cc28befef5e.patch";
-      sha256 = "13j018c499n4b5as2n39ws64yj0cf4fskxbqab309vmnjkirxv6x";
-    })
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/a9c136c8707280d0eeb66be6b289d9718287c55c.patch";
-      sha256 = "0w8v4mbrzk7pmzc475ff96mzzwlh8a0p62kk7p829m5yqdwj4sc9";
-    })
-    (fetchpatch {
-      url = "https://github.com/eiskaltdcpp/eiskaltdcpp/commit/3b9c502ff5c98856d4f8fdb7ed3c6ef34448bfb7.patch";
-      sha256 = "0fjwaq0wd9a164k5ysdjy89hx0ixnxc6q7cvyn1ba28snm0pgxb8";
-    })
-  ];
-
   cmakeFlags = [
-    "-DUSE_ASPELL=ON"
-    "-DUSE_QT_QML=ON"
+    "-DDBUS_NOTIFY=ON"
     "-DFREE_SPACE_BAR_C=ON"
+    "-DLUA_SCRIPT=ON"
+    "-DPERL_REGEX=ON"
+    "-DUSE_ASPELL=ON"
+    "-DUSE_CLI_JSONRPC=ON"
     "-DUSE_MINIUPNP=ON"
-    "-DLOCAL_MINIUPNP=ON"
-    "-DDBUS_NOTIFY=ON"
     "-DUSE_JS=ON"
-    "-DPERL_REGEX=ON"
-    "-DUSE_CLI_XMLRPC=ON"
-    "-DWITH_SOUNDS=ON"
-    "-DLUA_SCRIPT=ON"
     "-DWITH_LUASCRIPTS=ON"
+    "-DWITH_SOUNDS=ON"
   ];
 
+  postInstall = ''
+    ln -s $out/bin/$pname-qt $out/bin/$pname
+  '';
+
+  preFixup = ''
+    substituteInPlace $out/bin/eiskaltdcpp-cli-jsonrpc \
+      --replace "/usr/local" "$out"
+  '';
+
   meta = with lib; {
     description = "A cross-platform program that uses the Direct Connect and ADC protocols";
     homepage = "https://github.com/eiskaltdcpp/eiskaltdcpp";
diff --git a/pkgs/applications/networking/p2p/gnunet/gtk.nix b/pkgs/applications/networking/p2p/gnunet/gtk.nix
index 4090814b3da..2532671bc25 100644
--- a/pkgs/applications/networking/p2p/gnunet/gtk.nix
+++ b/pkgs/applications/networking/p2p/gnunet/gtk.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, gnome3
+, glade
 , gnunet
 , gnutls
 , gtk3
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gnome3.glade
+    glade
     gnunet
     gnutls
     gtk3
@@ -39,5 +39,7 @@ stdenv.mkDerivation rec {
   meta = gnunet.meta // {
     description = "GNUnet GTK User Interface";
     homepage = "https://git.gnunet.org/gnunet-gtk.git";
+    # configure: error: compiling gnunet-gtk requires GNUnet core headers
+    broken = true;
   };
 }
diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix
index 85a5217ff69..a39b4aab837 100644
--- a/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "http://retroshare.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.domenkozar ];
+    maintainers = [ ];
     broken = true; # broken by libupnp: 1.6.21 -> 1.8.3 (#41684)
   };
 }
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index 3ceeb4b002e..d80165c4405 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.74";
+  version = "2.81";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "1slsrqv97hnj1vxx3hw32dhqckbr05w622samjbrimh4dv8yrd29";
+    sha256 = "sha256-qwKxlmE59V+rXtuYWBMwD1O7OO4gb36lN8syFyQ6uLc=";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/p2p/transgui/default.nix b/pkgs/applications/networking/p2p/transgui/default.nix
index 809e4528df9..ceccf44819f 100644
--- a/pkgs/applications/networking/p2p/transgui/default.nix
+++ b/pkgs/applications/networking/p2p/transgui/default.nix
@@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
     sha256 = "1dyx778756zhvz5sxgdvy49p2c0x44w4nmcfd90wqrmgfknncnf5";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
-    unzip fpc lazarus stdenv.cc
+    fpc lazarus stdenv.cc
     libX11 glib gtk2 gdk-pixbuf pango atk cairo openssl
   ];
 
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
index 8cc674b1ea7..7e8b6b671cd 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -12,7 +12,7 @@
 , pcre
   # Build options
 , enableGTK3 ? false
-, gnome3
+, gtk3
 , xorg
 , wrapGAppsHook
 , enableQt ? false
@@ -65,7 +65,7 @@ in stdenv.mkDerivation {
     pcre
   ]
   ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ]
-  ++ lib.optionals enableGTK3 [ gnome3.gtk xorg.libpthreadstubs ]
+  ++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ]
   ++ lib.optionals enableSystemd [ systemd ]
   ++ lib.optionals stdenv.isLinux [ inotify-tools ]
   ;
diff --git a/pkgs/applications/networking/p2p/tribler/default.nix b/pkgs/applications/networking/p2p/tribler/default.nix
index 36b7451e441..3aa5b4a8da8 100644
--- a/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/pkgs/applications/networking/p2p/tribler/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgs, python3Packages, makeWrapper
-, enablePlayer ? true, libvlc ? null, qt5, lib }:
+{ stdenv, fetchurl, python3Packages, makeWrapper
+, enablePlayer ? true, libvlc, qt5, lib }:
 
 stdenv.mkDerivation rec {
   pname = "tribler";
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol";
     license = licenses.lgpl21;
     platforms = platforms.linux;
+    broken = true; # 2021-03-17 see https://github.com/NixOS/nixpkgs/issues/93053
   };
 }
diff --git a/pkgs/applications/networking/p2p/vuze/default.nix b/pkgs/applications/networking/p2p/vuze/default.nix
index 557914439a9..fe8743ee1cd 100644
--- a/pkgs/applications/networking/p2p/vuze/default.nix
+++ b/pkgs/applications/networking/p2p/vuze/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "07w6ipyiy8hi88d6yxbbf3vkv26mj7dcz9yr8141hb2ig03v0h0p";
   };
 
-  buildInputs = [ makeWrapper jdk ant ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jdk ant ];
 
   buildPhase = "ant";
 
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index 4229fef4fe6..08a8bc98e1a 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -21,7 +21,7 @@
   # Runtime dependencies;
   # A few additional ones (e.g. Node) are already shipped together with the
   # AppImage, so we don't have to duplicate them here.
-  alsaLib, dbus-glib, fuse, gnome3, libdbusmenu-gtk2, udev, nss
+  alsaLib, dbus-glib, fuse, gnome3, gtk3, libdbusmenu-gtk2, udev, nss
 }:
 
 let
@@ -56,7 +56,7 @@ in stdenv.mkDerivation {
     alsaLib
     dbus-glib
     fuse
-    gnome3.gtk
+    gtk3
     libdbusmenu-gtk2
     nss
     udev
@@ -92,7 +92,7 @@ in stdenv.mkDerivation {
 
     # This is required for the file picker dialog - otherwise pcloud just
     # crashes
-    export XDG_DATA_DIRS="${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome3.gsettings-desktop-schemas.name}:${gnome3.gtk}/share/gsettings-schemas/${gnome3.gtk.name}:$XDG_DATA_DIRS"
+    export XDG_DATA_DIRS="${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome3.gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
 
     exec "$out/app/pcloud"
     EOF
diff --git a/pkgs/applications/networking/powerdns-admin/default.nix b/pkgs/applications/networking/powerdns-admin/default.nix
new file mode 100644
index 00000000000..4ef89e26163
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/default.nix
@@ -0,0 +1,111 @@
+{ lib, stdenv, fetchFromGitHub, mkYarnPackage, writeText, python3Packages }:
+
+let
+  version = "0.2.3";
+  src = fetchFromGitHub {
+    owner = "ngoduykhanh";
+    repo = "PowerDNS-Admin";
+    rev = "v${version}";
+    sha256 = "16faz57d77mxkflkvwyi8gb9wvnq2vhw79b84v1fmqvxri1yaphw";
+  };
+
+  pythonDeps = with python3Packages; [
+    flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-sslify
+    mysqlclient sqlalchemy
+    configobj bcrypt requests ldap pyotp qrcode dnspython_1
+    gunicorn python3-saml pyopenssl pytz cssmin jsmin authlib bravado-core
+    lima pytimeparse pyyaml
+  ];
+
+  assets = mkYarnPackage {
+    inherit src version;
+    packageJSON = ./package.json;
+    yarnNix = ./yarndeps.nix;
+
+    nativeBuildInputs = pythonDeps;
+    patchPhase = ''
+      sed -i -r -e "s|'cssmin',\s?'cssrewrite'|'cssmin'|g" powerdnsadmin/assets.py
+    '';
+    buildPhase = ''
+      # The build process expects the directory to be writable
+      # with node_modules at a specific path
+      # https://github.com/ngoduykhanh/PowerDNS-Admin/blob/master/.yarnrc
+
+      approot=deps/powerdns-admin-assets
+
+      ln -s $node_modules $approot/powerdnsadmin/static/node_modules
+      FLASK_APP=$approot/powerdnsadmin/__init__.py flask assets build
+    '';
+    installPhase = ''
+      # https://github.com/ngoduykhanh/PowerDNS-Admin/blob/54b257768f600c5548a1c7e50eac49c40df49f92/docker/Dockerfile#L43
+      mkdir $out
+      cp -r $approot/powerdnsadmin/static/{generated,assets,img} $out
+      find $node_modules/icheck/skins/square -name '*.png' -exec cp {} $out/generated \;
+
+      mkdir $out/fonts
+      cp $node_modules/ionicons/dist/fonts/* $out/fonts
+      cp $node_modules/bootstrap/dist/fonts/* $out/fonts
+      cp $node_modules/font-awesome/fonts/* $out/fonts
+    '';
+    distPhase = "true";
+  };
+
+  assetsPy = writeText "assets.py" ''
+    from flask_assets import Environment
+    assets = Environment()
+    assets.register('js_login', 'generated/login.js')
+    assets.register('js_validation', 'generated/validation.js')
+    assets.register('css_login', 'generated/login.css')
+    assets.register('js_main', 'generated/main.js')
+    assets.register('css_main', 'generated/main.css')
+  '';
+in stdenv.mkDerivation rec {
+  pname = "powerdns-admin";
+
+  inherit src version;
+
+  nativeBuildInputs = [ python3Packages.wrapPython ];
+
+  pythonPath = pythonDeps;
+
+  gunicornScript = ''
+    #!/bin/sh
+    if [ ! -z $CONFIG ]; then
+      exec python -m gunicorn.app.wsgiapp "powerdnsadmin:create_app(config='$CONFIG')" "$@"
+    fi
+
+    exec python -m gunicorn.app.wsgiapp "powerdnsadmin:create_app()" "$@"
+  '';
+
+  postPatch = ''
+    rm -r powerdnsadmin/static powerdnsadmin/assets.py
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    # Nasty hack: call wrapPythonPrograms to set program_PYTHONPATH (see tribler)
+    wrapPythonPrograms
+
+    mkdir -p $out/share $out/bin
+    cp -r powerdnsadmin $out/share/powerdnsadmin
+
+    ln -s ${assets} $out/share/powerdnsadmin/static
+    ln -s ${assetsPy} $out/share/powerdnsadmin/assets.py
+
+    echo "$gunicornScript" > $out/bin/powerdns-admin
+    chmod +x $out/bin/powerdns-admin
+    wrapProgram $out/bin/powerdns-admin \
+      --set PATH ${python3Packages.python}/bin \
+      --set PYTHONPATH $out/share:$program_PYTHONPATH
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A PowerDNS web interface with advanced features";
+    homepage = "https://github.com/ngoduykhanh/PowerDNS-Admin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/pkgs/applications/networking/powerdns-admin/package.json b/pkgs/applications/networking/powerdns-admin/package.json
new file mode 100644
index 00000000000..cb21306308c
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/package.json
@@ -0,0 +1,16 @@
+{
+  "dependencies": {
+    "admin-lte": "2.4.9",
+    "bootstrap": "^3.4.1",
+    "bootstrap-validator": "^0.11.9",
+    "datatables.net-plugins": "^1.10.19",
+    "icheck": "^1.0.2",
+    "jquery-slimscroll": "^1.3.8",
+    "jquery-ui-dist": "^1.12.1",
+    "jquery.quicksearch": "^2.4.0",
+    "jtimeout": "^3.1.0",
+    "multiselect": "^0.9.12"
+  },
+  "name": "powerdns-admin-assets",
+  "version": "0.2.3"
+}
diff --git a/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh b/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh
new file mode 100755
index 00000000000..86dcb8cbf65
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../.. -i bash -p wget yarn2nix-moretea.yarn2nix jq
+
+# This script is based upon:
+# pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
+
+set -euo pipefail
+
+if [[ $# -ne 1 || $1 == -* ]]; then
+    echo "Regenerates the Yarn dependency lock files for the powerdns-admin package."
+    echo "Usage: $0 <git release version>"
+    exit 1
+fi
+
+WEB_SRC="https://raw.githubusercontent.com/ngoduykhanh/PowerDNS-Admin/v$1"
+
+wget "$WEB_SRC/package.json" -O - | jq ".name = \"powerdns-admin-assets\" | .version = \"$1\"" > package.json
+wget "$WEB_SRC/yarn.lock" -O yarn.lock
+yarn2nix --lockfile=yarn.lock > yarndeps.nix
+rm yarn.lock
diff --git a/pkgs/applications/networking/powerdns-admin/yarndeps.nix b/pkgs/applications/networking/powerdns-admin/yarndeps.nix
new file mode 100644
index 00000000000..ce65d28c008
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/yarndeps.nix
@@ -0,0 +1,1453 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "JSONStream___JSONStream_1.3.3.tgz";
+      path = fetchurl {
+        name = "JSONStream___JSONStream_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.3.tgz";
+        sha1 = "27b4b8fbbfeab4e71bcf551e7f27be8d952239bf";
+      };
+    }
+    {
+      name = "acorn_node___acorn_node_1.3.0.tgz";
+      path = fetchurl {
+        name = "acorn_node___acorn_node_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.3.0.tgz";
+        sha1 = "5f86d73346743810ef1269b901dbcbded020861b";
+      };
+    }
+    {
+      name = "acorn___acorn_4.0.13.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_4.0.13.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz";
+        sha1 = "105495ae5361d697bd195c825192e1ad7f253787";
+      };
+    }
+    {
+      name = "acorn___acorn_5.6.2.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_5.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.6.2.tgz";
+        sha1 = "b1da1d7be2ac1b4a327fb9eab851702c5045b4e7";
+      };
+    }
+    {
+      name = "admin_lte___admin_lte_2.4.9.tgz";
+      path = fetchurl {
+        name = "admin_lte___admin_lte_2.4.9.tgz";
+        url  = "https://registry.yarnpkg.com/admin-lte/-/admin-lte-2.4.9.tgz";
+        sha1 = "effc04dbb587ccb7d674d4cf663cc141f925ed73";
+      };
+    }
+    {
+      name = "almond___almond_0.3.3.tgz";
+      path = fetchurl {
+        name = "almond___almond_0.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/almond/-/almond-0.3.3.tgz";
+        sha1 = "a0e7c95ac7624d6417b4494b1e68bff693168a20";
+      };
+    }
+    {
+      name = "array_filter___array_filter_0.0.1.tgz";
+      path = fetchurl {
+        name = "array_filter___array_filter_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz";
+        sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
+      };
+    }
+    {
+      name = "array_map___array_map_0.0.0.tgz";
+      path = fetchurl {
+        name = "array_map___array_map_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz";
+        sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662";
+      };
+    }
+    {
+      name = "array_reduce___array_reduce_0.0.0.tgz";
+      path = fetchurl {
+        name = "array_reduce___array_reduce_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz";
+        sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b";
+      };
+    }
+    {
+      name = "asn1.js___asn1.js_4.10.1.tgz";
+      path = fetchurl {
+        name = "asn1.js___asn1.js_4.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
+        sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
+      };
+    }
+    {
+      name = "assert___assert_1.4.1.tgz";
+      path = fetchurl {
+        name = "assert___assert_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz";
+        sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
+      };
+    }
+    {
+      name = "astw___astw_2.2.0.tgz";
+      path = fetchurl {
+        name = "astw___astw_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz";
+        sha1 = "7bd41784d32493987aeb239b6b4e1c57a873b917";
+      };
+    }
+    {
+      name = "balanced_match___balanced_match_1.0.0.tgz";
+      path = fetchurl {
+        name = "balanced_match___balanced_match_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    }
+    {
+      name = "base64_js___base64_js_1.3.0.tgz";
+      path = fetchurl {
+        name = "base64_js___base64_js_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz";
+        sha1 = "cab1e6118f051095e58b5281aea8c1cd22bfc0e3";
+      };
+    }
+    {
+      name = "bn.js___bn.js_4.11.9.tgz";
+      path = fetchurl {
+        name = "bn.js___bn.js_4.11.9.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
+        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
+      };
+    }
+    {
+      name = "bootstrap_colorpicker___bootstrap_colorpicker_2.5.3.tgz";
+      path = fetchurl {
+        name = "bootstrap_colorpicker___bootstrap_colorpicker_2.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-2.5.3.tgz";
+        sha1 = "b50aff8590fbaa6b5aa63a5624e4213f1659a49d";
+      };
+    }
+    {
+      name = "bootstrap_datepicker___bootstrap_datepicker_1.8.0.tgz";
+      path = fetchurl {
+        name = "bootstrap_datepicker___bootstrap_datepicker_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.8.0.tgz";
+        sha1 = "c63513931e6f09f16ae9f11b62f32d950df3958e";
+      };
+    }
+    {
+      name = "bootstrap_daterangepicker___bootstrap_daterangepicker_2.1.30.tgz";
+      path = fetchurl {
+        name = "bootstrap_daterangepicker___bootstrap_daterangepicker_2.1.30.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-2.1.30.tgz";
+        sha1 = "f893dbfff5a4d7dfaab75460e8ea6969bb89689a";
+      };
+    }
+    {
+      name = "bootstrap_slider___bootstrap_slider_9.10.0.tgz";
+      path = fetchurl {
+        name = "bootstrap_slider___bootstrap_slider_9.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-9.10.0.tgz";
+        sha1 = "1103d6bc00cfbfa8cfc9a2599ab518c55643da3f";
+      };
+    }
+    {
+      name = "bootstrap_timepicker___bootstrap_timepicker_0.5.2.tgz";
+      path = fetchurl {
+        name = "bootstrap_timepicker___bootstrap_timepicker_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-timepicker/-/bootstrap-timepicker-0.5.2.tgz";
+        sha1 = "10ed9f2a2f0b8ccaefcde0fcf6a0738b919a3835";
+      };
+    }
+    {
+      name = "bootstrap_validator___bootstrap_validator_0.11.9.tgz";
+      path = fetchurl {
+        name = "bootstrap_validator___bootstrap_validator_0.11.9.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap-validator/-/bootstrap-validator-0.11.9.tgz";
+        sha1 = "fb7058eef53623e78f5aa7967026f98f875a9404";
+      };
+    }
+    {
+      name = "bootstrap___bootstrap_3.4.1.tgz";
+      path = fetchurl {
+        name = "bootstrap___bootstrap_3.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz";
+        sha1 = "c3a347d419e289ad11f4033e3c4132b87c081d72";
+      };
+    }
+    {
+      name = "brace_expansion___brace_expansion_1.1.11.tgz";
+      path = fetchurl {
+        name = "brace_expansion___brace_expansion_1.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+      };
+    }
+    {
+      name = "brorand___brorand_1.1.0.tgz";
+      path = fetchurl {
+        name = "brorand___brorand_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+      };
+    }
+    {
+      name = "browser_pack___browser_pack_6.1.0.tgz";
+      path = fetchurl {
+        name = "browser_pack___browser_pack_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz";
+        sha1 = "c34ba10d0b9ce162b5af227c7131c92c2ecd5774";
+      };
+    }
+    {
+      name = "browser_resolve___browser_resolve_1.11.2.tgz";
+      path = fetchurl {
+        name = "browser_resolve___browser_resolve_1.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz";
+        sha1 = "8ff09b0a2c421718a1051c260b32e48f442938ce";
+      };
+    }
+    {
+      name = "browserify_aes___browserify_aes_1.2.0.tgz";
+      path = fetchurl {
+        name = "browserify_aes___browserify_aes_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz";
+        sha1 = "326734642f403dabc3003209853bb70ad428ef48";
+      };
+    }
+    {
+      name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+      path = fetchurl {
+        name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
+        sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0";
+      };
+    }
+    {
+      name = "browserify_des___browserify_des_1.0.1.tgz";
+      path = fetchurl {
+        name = "browserify_des___browserify_des_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz";
+        sha1 = "3343124db6d7ad53e26a8826318712bdc8450f9c";
+      };
+    }
+    {
+      name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+      path = fetchurl {
+        name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+        sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+      };
+    }
+    {
+      name = "browserify_sign___browserify_sign_4.0.4.tgz";
+      path = fetchurl {
+        name = "browserify_sign___browserify_sign_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
+        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+      };
+    }
+    {
+      name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+      path = fetchurl {
+        name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+        sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
+      };
+    }
+    {
+      name = "browserify___browserify_16.2.2.tgz";
+      path = fetchurl {
+        name = "browserify___browserify_16.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/browserify/-/browserify-16.2.2.tgz";
+        sha1 = "4b1f66ba0e54fa39dbc5aa4be9629142143d91b0";
+      };
+    }
+    {
+      name = "buffer_from___buffer_from_1.1.0.tgz";
+      path = fetchurl {
+        name = "buffer_from___buffer_from_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz";
+        sha1 = "87fcaa3a298358e0ade6e442cfce840740d1ad04";
+      };
+    }
+    {
+      name = "buffer_xor___buffer_xor_1.0.3.tgz";
+      path = fetchurl {
+        name = "buffer_xor___buffer_xor_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
+        sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+      };
+    }
+    {
+      name = "buffer___buffer_5.1.0.tgz";
+      path = fetchurl {
+        name = "buffer___buffer_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.1.0.tgz";
+        sha1 = "c913e43678c7cb7c8bd16afbcddb6c5505e8f9fe";
+      };
+    }
+    {
+      name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+      path = fetchurl {
+        name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+        sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+      };
+    }
+    {
+      name = "cached_path_relative___cached_path_relative_1.0.2.tgz";
+      path = fetchurl {
+        name = "cached_path_relative___cached_path_relative_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz";
+        sha1 = "a13df4196d26776220cc3356eb147a52dba2c6db";
+      };
+    }
+    {
+      name = "charm___charm_0.1.2.tgz";
+      path = fetchurl {
+        name = "charm___charm_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz";
+        sha1 = "06c21eed1a1b06aeb67553cdc53e23274bac2296";
+      };
+    }
+    {
+      name = "chart.js___chart.js_1.0.2.tgz";
+      path = fetchurl {
+        name = "chart.js___chart.js_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/chart.js/-/chart.js-1.0.2.tgz";
+        sha1 = "ad57d2229cfd8ccf5955147e8121b4911e69dfe7";
+      };
+    }
+    {
+      name = "cipher_base___cipher_base_1.0.4.tgz";
+      path = fetchurl {
+        name = "cipher_base___cipher_base_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
+        sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
+      };
+    }
+    {
+      name = "ckeditor___ckeditor_4.11.3.tgz";
+      path = fetchurl {
+        name = "ckeditor___ckeditor_4.11.3.tgz";
+        url  = "https://registry.yarnpkg.com/ckeditor/-/ckeditor-4.11.3.tgz";
+        sha1 = "91f66d7ddb5bff3874514fe539779686874ed655";
+      };
+    }
+    {
+      name = "classie___classie_1.0.0.tgz";
+      path = fetchurl {
+        name = "classie___classie_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/classie/-/classie-1.0.0.tgz";
+        sha1 = "fc9b29b47e64e374a2062fb624d05a61cd703ab2";
+      };
+    }
+    {
+      name = "combine_source_map___combine_source_map_0.8.0.tgz";
+      path = fetchurl {
+        name = "combine_source_map___combine_source_map_0.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz";
+        sha1 = "a58d0df042c186fcf822a8e8015f5450d2d79a8b";
+      };
+    }
+    {
+      name = "concat_map___concat_map_0.0.1.tgz";
+      path = fetchurl {
+        name = "concat_map___concat_map_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    }
+    {
+      name = "concat_stream___concat_stream_1.6.2.tgz";
+      path = fetchurl {
+        name = "concat_stream___concat_stream_1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+      };
+    }
+    {
+      name = "console_browserify___console_browserify_1.1.0.tgz";
+      path = fetchurl {
+        name = "console_browserify___console_browserify_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz";
+        sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
+      };
+    }
+    {
+      name = "constants_browserify___constants_browserify_1.0.0.tgz";
+      path = fetchurl {
+        name = "constants_browserify___constants_browserify_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
+        sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+      };
+    }
+    {
+      name = "convert_source_map___convert_source_map_1.1.3.tgz";
+      path = fetchurl {
+        name = "convert_source_map___convert_source_map_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz";
+        sha1 = "4829c877e9fe49b3161f3bf3673888e204699860";
+      };
+    }
+    {
+      name = "core_util_is___core_util_is_1.0.2.tgz";
+      path = fetchurl {
+        name = "core_util_is___core_util_is_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    }
+    {
+      name = "create_ecdh___create_ecdh_4.0.3.tgz";
+      path = fetchurl {
+        name = "create_ecdh___create_ecdh_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz";
+        sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff";
+      };
+    }
+    {
+      name = "create_hash___create_hash_1.2.0.tgz";
+      path = fetchurl {
+        name = "create_hash___create_hash_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz";
+        sha1 = "889078af11a63756bcfb59bd221996be3a9ef196";
+      };
+    }
+    {
+      name = "create_hmac___create_hmac_1.1.7.tgz";
+      path = fetchurl {
+        name = "create_hmac___create_hmac_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz";
+        sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff";
+      };
+    }
+    {
+      name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+      path = fetchurl {
+        name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+        sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
+      };
+    }
+    {
+      name = "datatables.net_bs___datatables.net_bs_1.10.19.tgz";
+      path = fetchurl {
+        name = "datatables.net_bs___datatables.net_bs_1.10.19.tgz";
+        url  = "https://registry.yarnpkg.com/datatables.net-bs/-/datatables.net-bs-1.10.19.tgz";
+        sha1 = "08763b4e4d0cef1a427d019dc15e717c7ed67a4d";
+      };
+    }
+    {
+      name = "datatables.net_plugins___datatables.net_plugins_1.10.20.tgz";
+      path = fetchurl {
+        name = "datatables.net_plugins___datatables.net_plugins_1.10.20.tgz";
+        url  = "https://registry.yarnpkg.com/datatables.net-plugins/-/datatables.net-plugins-1.10.20.tgz";
+        sha1 = "c89f6bed3fa7e6605cbeaa35d60f223659e84c8c";
+      };
+    }
+    {
+      name = "datatables.net___datatables.net_1.10.19.tgz";
+      path = fetchurl {
+        name = "datatables.net___datatables.net_1.10.19.tgz";
+        url  = "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.19.tgz";
+        sha1 = "97a1ed41c85e62d61040603481b59790a172dd1f";
+      };
+    }
+    {
+      name = "date_now___date_now_0.1.4.tgz";
+      path = fetchurl {
+        name = "date_now___date_now_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz";
+        sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
+      };
+    }
+    {
+      name = "defined___defined_1.0.0.tgz";
+      path = fetchurl {
+        name = "defined___defined_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz";
+        sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+      };
+    }
+    {
+      name = "deps_sort___deps_sort_2.0.0.tgz";
+      path = fetchurl {
+        name = "deps_sort___deps_sort_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz";
+        sha1 = "091724902e84658260eb910748cccd1af6e21fb5";
+      };
+    }
+    {
+      name = "des.js___des.js_1.0.0.tgz";
+      path = fetchurl {
+        name = "des.js___des.js_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz";
+        sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
+      };
+    }
+    {
+      name = "detective___detective_5.1.0.tgz";
+      path = fetchurl {
+        name = "detective___detective_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/detective/-/detective-5.1.0.tgz";
+        sha1 = "7a20d89236d7b331ccea65832e7123b5551bb7cb";
+      };
+    }
+    {
+      name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+      path = fetchurl {
+        name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
+        sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875";
+      };
+    }
+    {
+      name = "domain_browser___domain_browser_1.2.0.tgz";
+      path = fetchurl {
+        name = "domain_browser___domain_browser_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz";
+        sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda";
+      };
+    }
+    {
+      name = "domhelper___domhelper_0.9.1.tgz";
+      path = fetchurl {
+        name = "domhelper___domhelper_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/domhelper/-/domhelper-0.9.1.tgz";
+        sha1 = "26554e5bac2c9e9585dca500978df5067d64bd00";
+      };
+    }
+    {
+      name = "duplexer2___duplexer2_0.1.4.tgz";
+      path = fetchurl {
+        name = "duplexer2___duplexer2_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz";
+        sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
+      };
+    }
+    {
+      name = "elliptic___elliptic_6.5.3.tgz";
+      path = fetchurl {
+        name = "elliptic___elliptic_6.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
+        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
+      };
+    }
+    {
+      name = "eve_raphael___eve_raphael_0.5.0.tgz";
+      path = fetchurl {
+        name = "eve_raphael___eve_raphael_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz";
+        sha1 = "17c754b792beef3fa6684d79cf5a47c63c4cda30";
+      };
+    }
+    {
+      name = "events___events_2.1.0.tgz";
+      path = fetchurl {
+        name = "events___events_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz";
+        sha1 = "2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5";
+      };
+    }
+    {
+      name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+      path = fetchurl {
+        name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+        sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
+      };
+    }
+    {
+      name = "fastclick___fastclick_1.0.6.tgz";
+      path = fetchurl {
+        name = "fastclick___fastclick_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/fastclick/-/fastclick-1.0.6.tgz";
+        sha1 = "161625b27b1a5806405936bda9a2c1926d06be6a";
+      };
+    }
+    {
+      name = "flot___flot_0.8.3.tgz";
+      path = fetchurl {
+        name = "flot___flot_0.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/flot/-/flot-0.8.3.tgz";
+        sha1 = "6d9b93c7aa2cfb30dfa1af9c1ec4c94070b1217f";
+      };
+    }
+    {
+      name = "font_awesome___font_awesome_4.7.0.tgz";
+      path = fetchurl {
+        name = "font_awesome___font_awesome_4.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz";
+        sha1 = "8fa8cf0411a1a31afd07b06d2902bb9fc815a133";
+      };
+    }
+    {
+      name = "fs.realpath___fs.realpath_1.0.0.tgz";
+      path = fetchurl {
+        name = "fs.realpath___fs.realpath_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    }
+    {
+      name = "fullcalendar___fullcalendar_3.10.0.tgz";
+      path = fetchurl {
+        name = "fullcalendar___fullcalendar_3.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/fullcalendar/-/fullcalendar-3.10.0.tgz";
+        sha1 = "cc5e87d518fd6550e142816a31dd191664847919";
+      };
+    }
+    {
+      name = "function_bind___function_bind_1.1.1.tgz";
+      path = fetchurl {
+        name = "function_bind___function_bind_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+      };
+    }
+    {
+      name = "glob___glob_7.1.2.tgz";
+      path = fetchurl {
+        name = "glob___glob_7.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz";
+        sha1 = "c19c9df9a028702d678612384a6552404c636d15";
+      };
+    }
+    {
+      name = "has___has_1.0.3.tgz";
+      path = fetchurl {
+        name = "has___has_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+      };
+    }
+    {
+      name = "hash_base___hash_base_3.0.4.tgz";
+      path = fetchurl {
+        name = "hash_base___hash_base_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
+        sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+      };
+    }
+    {
+      name = "hash.js___hash.js_1.1.7.tgz";
+      path = fetchurl {
+        name = "hash.js___hash.js_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
+        sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
+      };
+    }
+    {
+      name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+      path = fetchurl {
+        name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+        sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+      };
+    }
+    {
+      name = "htmlescape___htmlescape_1.1.1.tgz";
+      path = fetchurl {
+        name = "htmlescape___htmlescape_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz";
+        sha1 = "3a03edc2214bca3b66424a3e7959349509cb0351";
+      };
+    }
+    {
+      name = "https_browserify___https_browserify_1.0.0.tgz";
+      path = fetchurl {
+        name = "https_browserify___https_browserify_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
+        sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+      };
+    }
+    {
+      name = "icheck___icheck_1.0.2.tgz";
+      path = fetchurl {
+        name = "icheck___icheck_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/icheck/-/icheck-1.0.2.tgz";
+        sha1 = "06d08da3d47ae448c153b2639b86e9ad7fdf7128";
+      };
+    }
+    {
+      name = "ieee754___ieee754_1.1.12.tgz";
+      path = fetchurl {
+        name = "ieee754___ieee754_1.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz";
+        sha1 = "50bf24e5b9c8bb98af4964c941cdb0918da7b60b";
+      };
+    }
+    {
+      name = "inflight___inflight_1.0.6.tgz";
+      path = fetchurl {
+        name = "inflight___inflight_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.4.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.1.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.3.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    }
+    {
+      name = "inline_source_map___inline_source_map_0.6.2.tgz";
+      path = fetchurl {
+        name = "inline_source_map___inline_source_map_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz";
+        sha1 = "f9393471c18a79d1724f863fa38b586370ade2a5";
+      };
+    }
+    {
+      name = "inputmask___inputmask_3.3.11.tgz";
+      path = fetchurl {
+        name = "inputmask___inputmask_3.3.11.tgz";
+        url  = "https://registry.yarnpkg.com/inputmask/-/inputmask-3.3.11.tgz";
+        sha1 = "1421c94ae28c3dcd1b4d26337b508bb34998e2d8";
+      };
+    }
+    {
+      name = "insert_module_globals___insert_module_globals_7.1.0.tgz";
+      path = fetchurl {
+        name = "insert_module_globals___insert_module_globals_7.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.1.0.tgz";
+        sha1 = "dbb3cea71d3a43d5a07ef0310fe5f078aa4dbf35";
+      };
+    }
+    {
+      name = "ion_rangeslider___ion_rangeslider_2.3.0.tgz";
+      path = fetchurl {
+        name = "ion_rangeslider___ion_rangeslider_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.0.tgz";
+        sha1 = "7957ce2e78acfc956b8c43009373da91f743347e";
+      };
+    }
+    {
+      name = "ionicons___ionicons_3.0.0.tgz";
+      path = fetchurl {
+        name = "ionicons___ionicons_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ionicons/-/ionicons-3.0.0.tgz";
+        sha1 = "40b8daf4fd7a31150bd002160f66496e22a98c3c";
+      };
+    }
+    {
+      name = "is_buffer___is_buffer_1.1.6.tgz";
+      path = fetchurl {
+        name = "is_buffer___is_buffer_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+      };
+    }
+    {
+      name = "isarray___isarray_2.0.4.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz";
+        sha1 = "38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7";
+      };
+    }
+    {
+      name = "isarray___isarray_1.0.0.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    }
+    {
+      name = "jquery_knob___jquery_knob_1.2.11.tgz";
+      path = fetchurl {
+        name = "jquery_knob___jquery_knob_1.2.11.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-knob/-/jquery-knob-1.2.11.tgz";
+        sha1 = "f37c39dbc1c7a6a6c12cdb2ed4f6bffb683f10d6";
+      };
+    }
+    {
+      name = "jquery_mousewheel___jquery_mousewheel_3.1.13.tgz";
+      path = fetchurl {
+        name = "jquery_mousewheel___jquery_mousewheel_3.1.13.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz";
+        sha1 = "06f0335f16e353a695e7206bf50503cb523a6ee5";
+      };
+    }
+    {
+      name = "jquery_slimscroll___jquery_slimscroll_1.3.8.tgz";
+      path = fetchurl {
+        name = "jquery_slimscroll___jquery_slimscroll_1.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-slimscroll/-/jquery-slimscroll-1.3.8.tgz";
+        sha1 = "8481c44e7a47687653908a28f7f70aed64c84e36";
+      };
+    }
+    {
+      name = "jquery_sparkline___jquery_sparkline_2.4.0.tgz";
+      path = fetchurl {
+        name = "jquery_sparkline___jquery_sparkline_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-sparkline/-/jquery-sparkline-2.4.0.tgz";
+        sha1 = "1be8b7b704dd3857152708aefb1d4a4b3a69fb33";
+      };
+    }
+    {
+      name = "jquery_ui_dist___jquery_ui_dist_1.12.1.tgz";
+      path = fetchurl {
+        name = "jquery_ui_dist___jquery_ui_dist_1.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-ui-dist/-/jquery-ui-dist-1.12.1.tgz";
+        sha1 = "5c0815d3cc6f90ff5faaf5b268a6e23b4ca904fa";
+      };
+    }
+    {
+      name = "jquery_ui___jquery_ui_1.12.1.tgz";
+      path = fetchurl {
+        name = "jquery_ui___jquery_ui_1.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz";
+        sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
+      };
+    }
+    {
+      name = "jquery.quicksearch___jquery.quicksearch_2.4.0.tgz";
+      path = fetchurl {
+        name = "jquery.quicksearch___jquery.quicksearch_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jquery.quicksearch/-/jquery.quicksearch-2.4.0.tgz";
+        sha1 = "240c9f435e936c63bf8fbba355144ffdddf9ea26";
+      };
+    }
+    {
+      name = "jquery___jquery_3.3.1.tgz";
+      path = fetchurl {
+        name = "jquery___jquery_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz";
+        sha1 = "958ce29e81c9790f31be7792df5d4d95fc57fbca";
+      };
+    }
+    {
+      name = "json_stable_stringify___json_stable_stringify_0.0.1.tgz";
+      path = fetchurl {
+        name = "json_stable_stringify___json_stable_stringify_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz";
+        sha1 = "611c23e814db375527df851193db59dd2af27f45";
+      };
+    }
+    {
+      name = "jsonify___jsonify_0.0.0.tgz";
+      path = fetchurl {
+        name = "jsonify___jsonify_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz";
+        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+      };
+    }
+    {
+      name = "jsonparse___jsonparse_1.3.1.tgz";
+      path = fetchurl {
+        name = "jsonparse___jsonparse_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz";
+        sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+      };
+    }
+    {
+      name = "jtimeout___jtimeout_3.1.0.tgz";
+      path = fetchurl {
+        name = "jtimeout___jtimeout_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/jtimeout/-/jtimeout-3.1.0.tgz";
+        sha1 = "4cd65b28eff8b9f8c61d08889a9ac3abdf5d9893";
+      };
+    }
+    {
+      name = "jvectormap___jvectormap_1.2.2.tgz";
+      path = fetchurl {
+        name = "jvectormap___jvectormap_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/jvectormap/-/jvectormap-1.2.2.tgz";
+        sha1 = "2e4408b24a60473ff106c1e7243e375ae5ca85da";
+      };
+    }
+    {
+      name = "labeled_stream_splicer___labeled_stream_splicer_2.0.1.tgz";
+      path = fetchurl {
+        name = "labeled_stream_splicer___labeled_stream_splicer_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz";
+        sha1 = "9cffa32fd99e1612fd1d86a8db962416d5292926";
+      };
+    }
+    {
+      name = "lexical_scope___lexical_scope_1.2.0.tgz";
+      path = fetchurl {
+        name = "lexical_scope___lexical_scope_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz";
+        sha1 = "fcea5edc704a4b3a8796cdca419c3a0afaf22df4";
+      };
+    }
+    {
+      name = "lodash.memoize___lodash.memoize_3.0.4.tgz";
+      path = fetchurl {
+        name = "lodash.memoize___lodash.memoize_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz";
+        sha1 = "2dcbd2c287cbc0a55cc42328bd0c736150d53e3f";
+      };
+    }
+    {
+      name = "md5.js___md5.js_1.3.4.tgz";
+      path = fetchurl {
+        name = "md5.js___md5.js_1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz";
+        sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d";
+      };
+    }
+    {
+      name = "miller_rabin___miller_rabin_4.0.1.tgz";
+      path = fetchurl {
+        name = "miller_rabin___miller_rabin_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
+        sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
+      };
+    }
+    {
+      name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+      path = fetchurl {
+        name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
+      };
+    }
+    {
+      name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+      path = fetchurl {
+        name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+        sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+      };
+    }
+    {
+      name = "minimatch___minimatch_3.0.4.tgz";
+      path = fetchurl {
+        name = "minimatch___minimatch_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+      };
+    }
+    {
+      name = "minimist___minimist_0.0.8.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_0.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    }
+    {
+      name = "minimist___minimist_1.2.0.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_0.5.1.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    }
+    {
+      name = "module_deps___module_deps_6.1.0.tgz";
+      path = fetchurl {
+        name = "module_deps___module_deps_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/module-deps/-/module-deps-6.1.0.tgz";
+        sha1 = "d1e1efc481c6886269f7112c52c3236188e16479";
+      };
+    }
+    {
+      name = "moment___moment_2.24.0.tgz";
+      path = fetchurl {
+        name = "moment___moment_2.24.0.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz";
+        sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
+      };
+    }
+    {
+      name = "moment___moment_2.22.2.tgz";
+      path = fetchurl {
+        name = "moment___moment_2.22.2.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz";
+        sha1 = "3c257f9839fc0e93ff53149632239eb90783ff66";
+      };
+    }
+    {
+      name = "morris.js___morris.js_0.5.0.tgz";
+      path = fetchurl {
+        name = "morris.js___morris.js_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/morris.js/-/morris.js-0.5.0.tgz";
+        sha1 = "725767135cfae059aae75999bb2ce6a1c5d1b44b";
+      };
+    }
+    {
+      name = "multiselect___multiselect_0.9.12.tgz";
+      path = fetchurl {
+        name = "multiselect___multiselect_0.9.12.tgz";
+        url  = "https://registry.yarnpkg.com/multiselect/-/multiselect-0.9.12.tgz";
+        sha1 = "d15536e986dd6a0029b160d6613bcedf81e4c7ed";
+      };
+    }
+    {
+      name = "once___once_1.4.0.tgz";
+      path = fetchurl {
+        name = "once___once_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    }
+    {
+      name = "os_browserify___os_browserify_0.3.0.tgz";
+      path = fetchurl {
+        name = "os_browserify___os_browserify_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
+        sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+      };
+    }
+    {
+      name = "pace___pace_0.0.4.tgz";
+      path = fetchurl {
+        name = "pace___pace_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pace/-/pace-0.0.4.tgz";
+        sha1 = "d66405d5f5bc12d25441a6e26c878dbc69e77a77";
+      };
+    }
+    {
+      name = "pako___pako_1.0.6.tgz";
+      path = fetchurl {
+        name = "pako___pako_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz";
+        sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258";
+      };
+    }
+    {
+      name = "parents___parents_1.0.1.tgz";
+      path = fetchurl {
+        name = "parents___parents_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz";
+        sha1 = "fedd4d2bf193a77745fe71e371d73c3307d9c751";
+      };
+    }
+    {
+      name = "parse_asn1___parse_asn1_5.1.1.tgz";
+      path = fetchurl {
+        name = "parse_asn1___parse_asn1_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz";
+        sha1 = "f6bf293818332bd0dab54efb16087724745e6ca8";
+      };
+    }
+    {
+      name = "path_browserify___path_browserify_0.0.0.tgz";
+      path = fetchurl {
+        name = "path_browserify___path_browserify_0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz";
+        sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a";
+      };
+    }
+    {
+      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+      path = fetchurl {
+        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    }
+    {
+      name = "path_parse___path_parse_1.0.5.tgz";
+      path = fetchurl {
+        name = "path_parse___path_parse_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz";
+        sha1 = "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1";
+      };
+    }
+    {
+      name = "path_platform___path_platform_0.11.15.tgz";
+      path = fetchurl {
+        name = "path_platform___path_platform_0.11.15.tgz";
+        url  = "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz";
+        sha1 = "e864217f74c36850f0852b78dc7bf7d4a5721bf2";
+      };
+    }
+    {
+      name = "pbkdf2___pbkdf2_3.0.16.tgz";
+      path = fetchurl {
+        name = "pbkdf2___pbkdf2_3.0.16.tgz";
+        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz";
+        sha1 = "7404208ec6b01b62d85bf83853a8064f8d9c2a5c";
+      };
+    }
+    {
+      name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+      path = fetchurl {
+        name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
+        sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+      };
+    }
+    {
+      name = "process___process_0.11.10.tgz";
+      path = fetchurl {
+        name = "process___process_0.11.10.tgz";
+        url  = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
+        sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+      };
+    }
+    {
+      name = "public_encrypt___public_encrypt_4.0.2.tgz";
+      path = fetchurl {
+        name = "public_encrypt___public_encrypt_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz";
+        sha1 = "46eb9107206bf73489f8b85b69d91334c6610994";
+      };
+    }
+    {
+      name = "punycode___punycode_1.3.2.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
+        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+      };
+    }
+    {
+      name = "punycode___punycode_1.4.1.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    }
+    {
+      name = "querystring_es3___querystring_es3_0.2.1.tgz";
+      path = fetchurl {
+        name = "querystring_es3___querystring_es3_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
+        sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+      };
+    }
+    {
+      name = "querystring___querystring_0.2.0.tgz";
+      path = fetchurl {
+        name = "querystring___querystring_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
+        sha1 = "b209849203bb25df820da756e747005878521620";
+      };
+    }
+    {
+      name = "randombytes___randombytes_2.0.6.tgz";
+      path = fetchurl {
+        name = "randombytes___randombytes_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
+        sha1 = "d302c522948588848a8d300c932b44c24231da80";
+      };
+    }
+    {
+      name = "randomfill___randomfill_1.0.4.tgz";
+      path = fetchurl {
+        name = "randomfill___randomfill_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
+        sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
+      };
+    }
+    {
+      name = "raphael___raphael_2.2.7.tgz";
+      path = fetchurl {
+        name = "raphael___raphael_2.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/raphael/-/raphael-2.2.7.tgz";
+        sha1 = "231b19141f8d086986d8faceb66f8b562ee2c810";
+      };
+    }
+    {
+      name = "read_only_stream___read_only_stream_2.0.0.tgz";
+      path = fetchurl {
+        name = "read_only_stream___read_only_stream_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz";
+        sha1 = "2724fd6a8113d73764ac288d4386270c1dbf17f0";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_2.3.6.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+        sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+      };
+    }
+    {
+      name = "resolve___resolve_1.1.7.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
+        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+      };
+    }
+    {
+      name = "resolve___resolve_1.7.1.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz";
+        sha1 = "aadd656374fd298aee895bc026b8297418677fd3";
+      };
+    }
+    {
+      name = "ripemd160___ripemd160_2.0.2.tgz";
+      path = fetchurl {
+        name = "ripemd160___ripemd160_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz";
+        sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c";
+      };
+    }
+    {
+      name = "safe_buffer___safe_buffer_5.1.2.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+      };
+    }
+    {
+      name = "select2___select2_4.0.5.tgz";
+      path = fetchurl {
+        name = "select2___select2_4.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/select2/-/select2-4.0.5.tgz";
+        sha1 = "7aac50692561985b34d3b82ec55e226f8960d40a";
+      };
+    }
+    {
+      name = "sha.js___sha.js_2.4.11.tgz";
+      path = fetchurl {
+        name = "sha.js___sha.js_2.4.11.tgz";
+        url  = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz";
+        sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7";
+      };
+    }
+    {
+      name = "shasum___shasum_1.0.2.tgz";
+      path = fetchurl {
+        name = "shasum___shasum_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz";
+        sha1 = "e7012310d8f417f4deb5712150e5678b87ae565f";
+      };
+    }
+    {
+      name = "shell_quote___shell_quote_1.6.1.tgz";
+      path = fetchurl {
+        name = "shell_quote___shell_quote_1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz";
+        sha1 = "f4781949cce402697127430ea3b3c5476f481767";
+      };
+    }
+    {
+      name = "slimscroll___slimscroll_0.9.1.tgz";
+      path = fetchurl {
+        name = "slimscroll___slimscroll_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/slimscroll/-/slimscroll-0.9.1.tgz";
+        sha1 = "f675cdc601d80ada20f16004d227d156fd1187b2";
+      };
+    }
+    {
+      name = "source_map___source_map_0.5.7.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    }
+    {
+      name = "stream_browserify___stream_browserify_2.0.1.tgz";
+      path = fetchurl {
+        name = "stream_browserify___stream_browserify_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz";
+        sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
+      };
+    }
+    {
+      name = "stream_combiner2___stream_combiner2_1.1.1.tgz";
+      path = fetchurl {
+        name = "stream_combiner2___stream_combiner2_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz";
+        sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
+      };
+    }
+    {
+      name = "stream_http___stream_http_2.8.3.tgz";
+      path = fetchurl {
+        name = "stream_http___stream_http_2.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz";
+        sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc";
+      };
+    }
+    {
+      name = "stream_splicer___stream_splicer_2.0.0.tgz";
+      path = fetchurl {
+        name = "stream_splicer___stream_splicer_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz";
+        sha1 = "1b63be438a133e4b671cc1935197600175910d83";
+      };
+    }
+    {
+      name = "string_decoder___string_decoder_1.1.1.tgz";
+      path = fetchurl {
+        name = "string_decoder___string_decoder_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+      };
+    }
+    {
+      name = "subarg___subarg_1.0.0.tgz";
+      path = fetchurl {
+        name = "subarg___subarg_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz";
+        sha1 = "f62cf17581e996b48fc965699f54c06ae268b8d2";
+      };
+    }
+    {
+      name = "syntax_error___syntax_error_1.4.0.tgz";
+      path = fetchurl {
+        name = "syntax_error___syntax_error_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz";
+        sha1 = "2d9d4ff5c064acb711594a3e3b95054ad51d907c";
+      };
+    }
+    {
+      name = "through2___through2_2.0.3.tgz";
+      path = fetchurl {
+        name = "through2___through2_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz";
+        sha1 = "0004569b37c7c74ba39c43f3ced78d1ad94140be";
+      };
+    }
+    {
+      name = "through___through_2.3.8.tgz";
+      path = fetchurl {
+        name = "through___through_2.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    }
+    {
+      name = "timers_browserify___timers_browserify_1.4.2.tgz";
+      path = fetchurl {
+        name = "timers_browserify___timers_browserify_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz";
+        sha1 = "c9c58b575be8407375cb5e2462dacee74359f41d";
+      };
+    }
+    {
+      name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+      path = fetchurl {
+        name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+      };
+    }
+    {
+      name = "tty_browserify___tty_browserify_0.0.1.tgz";
+      path = fetchurl {
+        name = "tty_browserify___tty_browserify_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz";
+        sha1 = "3f05251ee17904dfd0677546670db9651682b811";
+      };
+    }
+    {
+      name = "typedarray___typedarray_0.0.6.tgz";
+      path = fetchurl {
+        name = "typedarray___typedarray_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    }
+    {
+      name = "umd___umd_3.0.3.tgz";
+      path = fetchurl {
+        name = "umd___umd_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz";
+        sha1 = "aa9fe653c42b9097678489c01000acb69f0b26cf";
+      };
+    }
+    {
+      name = "url___url_0.11.0.tgz";
+      path = fetchurl {
+        name = "url___url_0.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
+        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+      };
+    }
+    {
+      name = "util_deprecate___util_deprecate_1.0.2.tgz";
+      path = fetchurl {
+        name = "util_deprecate___util_deprecate_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    }
+    {
+      name = "util_extend___util_extend_1.0.3.tgz";
+      path = fetchurl {
+        name = "util_extend___util_extend_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz";
+        sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f";
+      };
+    }
+    {
+      name = "util___util_0.10.3.tgz";
+      path = fetchurl {
+        name = "util___util_0.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
+        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+      };
+    }
+    {
+      name = "util___util_0.10.4.tgz";
+      path = fetchurl {
+        name = "util___util_0.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz";
+        sha1 = "3aa0125bfe668a4672de58857d3ace27ecb76901";
+      };
+    }
+    {
+      name = "vm_browserify___vm_browserify_1.0.1.tgz";
+      path = fetchurl {
+        name = "vm_browserify___vm_browserify_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.0.1.tgz";
+        sha1 = "a15d7762c4c48fa6bf9f3309a21340f00ed23063";
+      };
+    }
+    {
+      name = "wrappy___wrappy_1.0.2.tgz";
+      path = fetchurl {
+        name = "wrappy___wrappy_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    }
+    {
+      name = "xtend___xtend_4.0.1.tgz";
+      path = fetchurl {
+        name = "xtend___xtend_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
+        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+      };
+    }
+  ];
+}
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index 9b86c0847e3..618234e6ff9 100644
--- a/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -2,34 +2,43 @@
 
 buildGoModule rec {
   pname = "protonmail-bridge";
-  version = "1.5.0";
+  version = "1.6.9";
 
   src = fetchFromGitHub {
     owner = "ProtonMail";
     repo = "proton-bridge";
     rev = "br-${version}";
-    sha256 = "lHqwKlFwz9iO7LJMGFTGCauw12z/BKnQte2sVoVkOaY=";
+    sha256 = "0p2315smxc5knxzr9413w62z65647znh9j9vyb6w5x4dqfp7vhz9";
   };
 
-  vendorSha256 = "eP+7fqBctX9XLCoHVJDI/qaa5tocgg3F5nfUM6dzNRg=";
+  vendorSha256 = "04aa7syp5hhpqxdpqlsmmbwywnbrh4ia0diym2935jbrqccnvm1k";
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ libsecret ];
 
   buildPhase = ''
-    make BUILD_TIME= build-nogui
+    runHook preBuild
+
+    patchShebangs ./utils/
+    make BUILD_TIME= -j$NIX_BUILD_CORES build-nogui
+
+    runHook postBuild
   '';
 
   installPhase = ''
-    install -Dm555 Desktop-Bridge $out/bin/protonmail-bridge
+    runHook preInstall
+
+    install -Dm555 proton-bridge $out/bin/protonmail-bridge
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     homepage = "https://github.com/ProtonMail/proton-bridge";
     changelog = "https://github.com/ProtonMail/proton-bridge/blob/master/Changelog.md";
     downloadPage = "https://github.com/ProtonMail/proton-bridge/releases";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lightdiscord ];
     description = "Use your ProtonMail account with your local e-mail client";
     longDescription = ''
diff --git a/pkgs/applications/networking/pyload/beautifulsoup.nix b/pkgs/applications/networking/pyload/beautifulsoup.nix
deleted file mode 100644
index 8eb0c2298fd..00000000000
--- a/pkgs/applications/networking/pyload/beautifulsoup.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ pythonPackages, isPy3k, pkgs }:
-
-pythonPackages.buildPythonPackage {
-  name = "beautifulsoup-3.2.1";
-  disabled = isPy3k;
-
-  src = pkgs.fetchurl {
-    url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz";
-    sha256 = "1nshbcpdn0jpcj51x0spzjp519pkmqz0n0748j7dgpz70zlqbfpm";
-  };
-
-  # error: invalid command 'test'
-  doCheck = false;
-
-  meta = {
-    homepage = "http://www.crummy.com/software/BeautifulSoup/";
-    license = "bsd";
-    description = "Undemanding HTML/XML parser";
-  };
-}
diff --git a/pkgs/applications/networking/pyload/default.nix b/pkgs/applications/networking/pyload/default.nix
deleted file mode 100644
index f70359cf7ac..00000000000
--- a/pkgs/applications/networking/pyload/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ lib, fetchFromGitHub, fetchpatch, pythonPackages, gocr, unrar, rhino, spidermonkey_38 }:
-
-let
-  beautifulsoup = pythonPackages.callPackage ./beautifulsoup.nix {
-    inherit pythonPackages;
-  };
-
-in pythonPackages.buildPythonApplication rec {
-  version = "0.4.9-next";
-  name = "pyLoad-" + version;
-
-  src = fetchFromGitHub {
-    owner = "pyload";
-    repo = "pyload";
-    rev = "721ea9f089217b9cb0f2799c051116421faac081";
-    sha256 = "1ad4r9slx1wgvd2fs4plfbpzi4i2l2bk0lybzsb2ncgh59m87h54";
-  };
-
-  patches =
-    let
-      # gets merged in next release version of pyload
-      configParserPatch = fetchpatch {
-        url = "https://patch-diff.githubusercontent.com/raw/pyload/pyload/pull/2625.diff";
-        sha256 = "1bisgx78kcr5c0x0i3h0ch5mykns5wx5wx7gvjj0pc71lfzlxzb9";
-      };
-      setupPyPatch = fetchpatch {
-        url = "https://patch-diff.githubusercontent.com/raw/pyload/pyload/pull/2638.diff";
-        sha256 = "006g4qbl582262ariflbyfrszcx8ck2ac1cpry1f82f76p4cgf6z";
-      };
-    in [ configParserPatch setupPyPatch ];
-
-  buildInputs = [
-    unrar rhino spidermonkey_38 gocr pythonPackages.paver
-  ];
-
-  propagatedBuildInputs = with pythonPackages; [
-    pycurl jinja2 beaker thrift simplejson pycrypto feedparser tkinter
-    beautifulsoup send2trash
-  ];
-
-  #remove this once the PR patches above are merged. Needed because githubs diff endpoint
-  #does not support diff -N
-  prePatch = ''
-    touch module/config/__init__.py
-  '';
-
-  preBuild = ''
-    ${pythonPackages.paver}/bin/paver generate_setup
-  '';
-
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Free and open source downloader for 1-click-hosting sites";
-    homepage = "https://github.com/pyload/pyload";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.mahe ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/networking/remote/anydesk/default.nix b/pkgs/applications/networking/remote/anydesk/default.nix
index c742d076f9d..f88a2e3d8e8 100644
--- a/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/pkgs/applications/networking/remote/anydesk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem
+{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, genericUpdater, writeShellScript
 , atk, cairo, gdk-pixbuf, glib, gnome2, gtk2, libGLU, libGL, pango, xorg
 , lsb-release, freetype, fontconfig, polkit, polkit_gnome
 , pulseaudio }:
@@ -28,6 +28,19 @@ in stdenv.mkDerivation rec {
     sha256 = "1qbq6r0yanjappsi8yglw8r54bwf32bjb2i63awmr6pk5kmhhy3r";
   };
 
+  passthru = {
+    updateScript = genericUpdater {
+      inherit pname version;
+      versionLister = writeShellScript "anydesk-versionLister" ''
+        echo "# Versions for $1:" >> "$2"
+        curl -s https://anydesk.com/en/downloads/linux \
+          | grep "https://[a-z0-9._/-]*-amd64.tar.gz" -o \
+          | uniq \
+          | sed 's,.*/anydesk-\(.*\)-amd64.tar.gz,\1,g'
+      '';
+    };
+  };
+
   buildInputs = [
     atk cairo gdk-pixbuf glib gtk2 stdenv.cc.cc pango
     gnome2.gtkglext libGLU libGL freetype fontconfig
diff --git a/pkgs/applications/networking/remote/aws-workspaces/default.nix b/pkgs/applications/networking/remote/aws-workspaces/default.nix
new file mode 100644
index 00000000000..96c66f054e2
--- /dev/null
+++ b/pkgs/applications/networking/remote/aws-workspaces/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib
+, makeWrapper, dpkg, fetchurl, autoPatchelfHook
+, curl, libkrb5, lttng-ust, libpulseaudio, gtk3, openssl_1_1, icu, webkitgtk, librsvg, gdk-pixbuf, libsoup, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+  pname = "aws-workspaces";
+  version = "3.1.3.925";
+
+  src = fetchurl {
+    # ref https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/Packages
+    urls = [
+      "https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
+      "https://web.archive.org/web/20210307233836/https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb"
+    ];
+    sha256 = "5b57edb4f6f8c950164fd8104bf62df4c452ab5b16cb65d48db3636959a0f0ad";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeWrapper
+  ];
+
+  # Crashes at startup when stripping:
+  # "Failed to create CoreCLR, HRESULT: 0x80004005"
+  dontStrip = true;
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    libkrb5
+    curl
+    lttng-ust
+    libpulseaudio
+    gtk3
+    openssl_1_1.out
+    icu
+    webkitgtk
+    librsvg
+    gdk-pixbuf
+    libsoup
+    glib-networking
+  ];
+
+  unpackPhase = ''
+    ${dpkg}/bin/dpkg -x $src $out
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv $out/opt/workspacesclient/* $out/bin
+
+    wrapProgram $out/bin/workspacesclient \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
+      --set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
+      --set GIO_EXTRA_MODULES "${glib-networking.out}/lib/gio/modules"
+  '';
+
+  meta = with lib; {
+    description = "Client for Amazon WorkSpaces, a managed, secure Desktop-as-a-Service (DaaS) solution";
+    homepage = "https://clients.amazonworkspaces.com";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ]; # TODO Mac support
+    maintainers = [ maintainers.mausch ];
+  };
+}
diff --git a/pkgs/applications/networking/remote/citrix-workspace/default.nix b/pkgs/applications/networking/remote/citrix-workspace/default.nix
index 3a6054db354..c73789ddeb7 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/default.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/default.nix
@@ -14,7 +14,7 @@ let
       Citrix Workspace at version ${x} is not supported anymore!
 
       Actively supported releases are listed here:
-      https://www.citrix.com/en-gb/support/product-lifecycle/milestones/receiver.html
+      https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
     '')) unsupportedVersions
   );
 
diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index 0437a108d89..35faeb20b75 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -202,7 +202,7 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     description = "Citrix Workspace";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ pmenke ];
     inherit homepage;
   };
 }
diff --git a/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
index 75eb4645f4f..1256f47041a 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -11,7 +11,7 @@ let
   # Attribute-set with all actively supported versions of the Citrix workspace app
   # for Linux.
   #
-  # The latest versions can be found at https://www.citrix.com/de-de/downloads/workspace-app/linux/
+  # The latest versions can be found at https://www.citrix.com/downloads/workspace-app/linux/
   supportedVersions = lib.mapAttrs mkVersionInfo {
     "20.04.0" = {
       major     = "20";
@@ -78,6 +78,17 @@ let
       x86suffix = "14";
       homepage  = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
     };
+
+    "21.03.0" = {
+      major     = "21";
+      minor     = "3";
+      patch     = "0";
+      x64hash   = "004pgvxl81l99sqvrs5xzvjivjlc21rrlm2gky9hmbsm53nsl3zc";
+      x86hash   = "11nn9734a515dm1q880z9wmhvx8ikyh3riayyn42z22q4kd852n3";
+      x64suffix = "38";
+      x86suffix = "38";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+    };
   };
 
   # Retain attribute-names for abandoned versions of Citrix workspace to
diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix
index 04f2efd5b07..8e0f4dde816 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -18,13 +18,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "freerdp";
-  version = "2.2.0";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = version;
-    sha256 = "02zlg5r704zbryx09a5rjjf7q137kj16i9qh25dw9q1y69ri619n";
+    sha256 = "sha256-qqpdMBDcVfXm/KB54zv23O8raGqBhAKqXo6Kj2VaI8w=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix
index 02f1e7ed344..3421050d1ed 100644
--- a/pkgs/applications/networking/remote/remmina/default.nix
+++ b/pkgs/applications/networking/remote/remmina/default.nix
@@ -13,13 +13,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "remmina";
-  version = "1.4.10";
+  version = "1.4.12";
 
   src = fetchFromGitLab {
     owner  = "Remmina";
     repo   = "Remmina";
     rev    = "v${version}";
-    sha256 = "sha256-n3YfLKCv6CoBeUIv+1yN6RIih63PTFj5zr+dZDJwYdw=";
+    sha256 = "sha256-CjlNEmca4Kob5rdpZa+YfvdOIDDDYfhNsGYqGDxSGKY=";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config wrapGAppsHook ];
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index 30bd5346ace..1b564e8daf4 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "teamviewer";
-  version = "15.8.3";
+  version = "15.15.5";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "1c947yxgs0mv5x6qvy40dypbbhhjbglma1pwl66z39gzg51n2dmc";
+    sha256 = "sha256-H/CSc2RcjI+Fm8awYcXm3ioAJpbSNEMwGVrTozMux3A=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index a9ddf48bae6..48ea229c244 100644
--- a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -3,6 +3,7 @@
 , at-spi2-atk
 , atk
 , buildFHSUserEnv
+, cairo
 , dbus
 , fetchurl
 , fontconfig
@@ -52,7 +53,7 @@ let
       url = "https://download3.vmware.com/software/view/viewclients/CART21FQ4/VMware-Horizon-Client-Linux-2012-8.1.0-17349998.tar.gz";
       sha256 = "0afda1f3116e75a4e7f89990d8ee60ccea5f3bb8a2360652162fa11c795724ce";
     };
-    buildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
     installPhase = ''
       mkdir ext $out
       find ${sysArch} -type f -print0 | xargs -0n1 tar -Cext --strip-components=1 -xf
@@ -67,6 +68,9 @@ let
       # This libjpeg library interferes with Chromium, so we will be using ours instead.
       rm $out/lib/vmware/libjpeg.*
 
+      # This library causes the program to core-dump occasionally. Use ours instead.
+      rm $out/lib/vmware/view/crtbora/libcairo.*
+
       # Force the default GTK theme (Adwaita) because Horizon is prone to
       # UI usability issues when using non-default themes, such as Adwaita-dark.
       makeWrapper "$out/bin/vmware-view" "$out/bin/vmware-view_wrapper" \
@@ -84,6 +88,7 @@ let
     targetPkgs = pkgs: [
       at-spi2-atk
       atk
+      cairo
       dbus
       fontconfig
       freetype
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index fcbad67038c..7be719c1803 100644
--- a/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/pkgs/applications/networking/remote/waypipe/default.nix
@@ -1,26 +1,20 @@
 { lib, stdenv, fetchFromGitLab
 , meson, ninja, pkg-config, scdoc
-, openssh
 , mesa, lz4, zstd, ffmpeg, libva
 }:
 
 stdenv.mkDerivation rec {
   pname = "waypipe-unstable";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    sha256 = "sha256-LtfrSEwZikOXp/fdyJ/+EylRx19zdsHMkrl1eEf1/aY=";
+    sha256 = "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz";
   };
 
-  postPatch = ''
-    substituteInPlace src/waypipe.c \
-      --replace "/usr/bin/ssh" "${openssh}/bin/ssh"
-  '';
-
   nativeBuildInputs = [ meson ninja pkg-config scdoc ];
 
   buildInputs = [
diff --git a/pkgs/applications/networking/remote/x2goserver/default.nix b/pkgs/applications/networking/remote/x2goserver/default.nix
index 314805a685c..0b8e858d255 100644
--- a/pkgs/applications/networking/remote/x2goserver/default.nix
+++ b/pkgs/applications/networking/remote/x2goserver/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, perlPackages, makeWrapper, perl, which, nx-libs
 , util-linux, coreutils, glibc, gawk, gnused, gnugrep, findutils, xorg
-, nettools, iproute, bc, procps, psmisc, lsof, pwgen, openssh, sshfs, bash
+, nettools, iproute2, bc, procps, psmisc, lsof, pwgen, openssh, sshfs, bash
 }:
 
 let
@@ -31,7 +31,7 @@ let
 
   binaryDeps = [
     perlEnv which nx-libs util-linux coreutils glibc.bin gawk gnused gnugrep
-    findutils nettools iproute bc procps psmisc lsof pwgen openssh sshfs
+    findutils nettools iproute2 bc procps psmisc lsof pwgen openssh sshfs
     xorg.xauth xorg.xinit xorg.xrandr xorg.xmodmap xorg.xwininfo xorg.fontutil
     xorg.xkbcomp xorg.setxkbmap
   ];
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index b4f6f96e587..51e8e553ec7 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "2.24";
+  version = "2.35";
 
   src = fetchFromGitHub {
     owner = "chrislusf";
     repo = "seaweedfs";
     rev = version;
-    sha256 = "sha256-nz45vCRhWhgVG2pMA6TZVUIS4d9qBWW7NtTHuEsn4pg=";
+    sha256 = "sha256-J0vwc/sabc6T8+eh94luQdnVltmThapYwLCdyGjCnSc=";
   };
 
-  vendorSha256 = "sha256-v0wFlwODZt3LC+yTuNS1hAAkoedVPfTeEIvs6rUGUa4=";
+  vendorSha256 = "sha256-u1Aqcm6oJ1y2dVP9BJXV7/1nhNxEOtgZQppoA+cXbD0=";
 
   subPackages = [ "weed" ];
 
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
index 7e7206883d9..fa129baabc1 100644
--- a/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -3,22 +3,24 @@
 , fetchFromGitHub
 , genericUpdater
 , common-updater-scripts
+, makeWrapper
+, openssh
 }:
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    sha256 = "1vg236vc2v4g47lb68hb1vy3phamhsyb383fdbblh3vc4vf46j8a";
+    sha256 = "0vdasz3qph73xb9y831bnr1hpcw0669n9zckqn95v1bsjc936313";
   };
 
   modRoot = "./agent";
 
-  vendorSha256 = "1l8x9cvisjb8smnsg91v04j1vvawpjzp0lcq0ahw8slz8rfdm80c";
+  vendorSha256 = "059772rd1l7zyf2vlqjm35hg8ibmjc1p6cfazqd47n8mqqlqkilw";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.AgentVersion=v${version}" ];
 
@@ -31,6 +33,12 @@ buildGoModule rec {
     };
   };
 
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/agent --prefix PATH : ${lib.makeBinPath [ openssh ]}
+  '';
+
   meta = with lib; {
     description =
       "Enables easy access any Linux device behind firewall and NAT";
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 5c5bb1ff96e..cc179dc1e1d 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
 , gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, python3, libcap, glib
-, libssh, nghttp2, zlib, cmake, fetchpatch, makeWrapper
+, libssh, nghttp2, zlib, cmake, makeWrapper
 , withQt ? true, qt5 ? null
 , ApplicationServices, SystemConfiguration, gmp
 }:
@@ -10,7 +10,7 @@ assert withQt  -> qt5  != null;
 with lib;
 
 let
-  version = "3.4.3";
+  version = "3.4.4";
   variant = if withQt then "qt" else "cli";
 
 in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "0ar6pxzrcpxdriz437d6ziwlhb8k5wlvrkalp3hgqwzwy1vwqrzl";
+    sha256 = "0aad3m8nh4i75dgjs68217135bzqmhmlgjklmpjh1ihmjwgd373j";
   };
 
   cmakeFlags = [
@@ -33,13 +33,11 @@ in stdenv.mkDerivation {
   # Avoid referencing -dev paths because of debug assertions.
   NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
 
-  nativeBuildInputs = [
-    bison cmake flex pkg-config
-  ] ++ optional withQt qt5.wrapQtAppsHook;
+  nativeBuildInputs = [ bison cmake flex makeWrapper pkg-config ] ++ optional withQt qt5.wrapQtAppsHook;
 
   buildInputs = [
     gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt
-    libgpgerror gnutls geoip c-ares python3 glib zlib makeWrapper
+    libgpgerror gnutls geoip c-ares python3 glib zlib
   ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
     ++ optionals stdenv.isLinux  [ libcap libnl ]
     ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
@@ -96,7 +94,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.wireshark.org/";
     description = "Powerful network protocol analyzer";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
 
     longDescription = ''
       Wireshark (formerly known as "Ethereal") is a powerful network
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
index ec983276de8..300214e58b7 100644
--- a/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.4.7";
+  version = "2.4.10";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12g2z6c4f65y8cc7vyhk9nlg1mpbsmlsj7ghlny452qhr13m7qpn";
+    sha256 = "sha256:0dvxjkni66g82j9wr6yy07sn7d7yr7bbc0py89pxybvsbid88l65";
   };
 
   nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ];
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index e2199cfcfb9..cde73fcc7ce 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "rclone";
-  version = "1.54.0";
+  version = "1.55.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-A0c5bHP5W/NTwAh1ifGaw4AG37qYXK9P/Fjk68gkUNk=";
+    sha256 = "01pvcns3n735s848wc11q40pkkv646gn3cxkma866k44a9c2wirl";
   };
 
-  vendorSha256 = "sha256-Cpn/dUD9E2BzUlAISC+IDCW59OkEKZTpqdlvF/clV+M=";
+  vendorSha256 = "05f9nx5sa35q2szfkmnkhvqli8jlqja8ghiwyxk7cvgjl7fgd6zk";
 
   subPackages = [ "." ];
 
@@ -41,6 +41,6 @@ buildGoModule rec {
     homepage = "https://rclone.org";
     changelog = "https://github.com/rclone/rclone/blob/v${version}/docs/content/changelog.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ danielfullmer marsam ];
+    maintainers = with maintainers; [ danielfullmer marsam SuperSandro2000 ];
   };
 }
diff --git a/pkgs/applications/networking/sync/rsync/base.nix b/pkgs/applications/networking/sync/rsync/base.nix
index 7c7d3a1f418..3479458088e 100644
--- a/pkgs/applications/networking/sync/rsync/base.nix
+++ b/pkgs/applications/networking/sync/rsync/base.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, fetchurl }:
 
 rec {
   version = "3.2.3";
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index c50ea08510a..a38352a328a 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -15,7 +15,7 @@ assert enableXXHash -> xxHash != null;
 assert enableZstd -> zstd != null;
 
 let
-  base = import ./base.nix { inherit lib stdenv fetchurl; };
+  base = import ./base.nix { inherit lib fetchurl; };
 in
 stdenv.mkDerivation rec {
   name = "rsync-${base.version}";
diff --git a/pkgs/applications/networking/sync/rsync/rrsync.nix b/pkgs/applications/networking/sync/rsync/rrsync.nix
index 5a4c2600569..83eb4658d2f 100644
--- a/pkgs/applications/networking/sync/rsync/rrsync.nix
+++ b/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, perl, rsync }:
 
 let
-  base = import ./base.nix { inherit stdenv lib fetchurl; };
+  base = import ./base.nix { inherit lib fetchurl; };
 in
 stdenv.mkDerivation {
   name = "rrsync-${base.version}";
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index 86126e86169..23bbd19b00e 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation (rec {
     sha256 = "sha256-42hmdMwOYSWGiDCmhuqtpCWtvtyD2l+kA/bhHD/Qh5Y=";
   };
 
-  buildInputs = [ ocaml makeWrapper ncurses ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ocaml ncurses ];
 
   preBuild = (if enableX11 then ''
     sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 9d9be8966ca..6d4b3fe34c4 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -3,17 +3,17 @@
 let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
-      version = "1.13.1";
+      version = "1.14.0";
       name = "${stname}-${version}";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "1jvmcpyj4k43s4hv753pr9a1qg930nac90d5c8haqv30v1rw5pws";
+        sha256 = "1nkjbikin341v74fcwdaa2v5f3zhd8xr6pjhpka1fdw6vvnn4lnd";
       };
 
-      vendorSha256 = "140b0wqp5ayyyan7ml12jqd72s00cawhmdf8g699j5sav8j6hppi";
+      vendorSha256 = "1kr6yyigi7bbi4xwpk009q801wvmf3aaw4m40ki0s6gjn0wjl4j3";
 
       doCheck = false;
 
@@ -47,7 +47,7 @@ let
         description = "Open Source Continuous File Synchronization";
         changelog = "https://github.com/syncthing/syncthing/releases/tag/v${version}";
         license = licenses.mpl20;
-        maintainers = with maintainers; [ pshendry joko peterhoeg andrew-d ];
+        maintainers = with maintainers; [ joko peterhoeg andrew-d ];
         platforms = platforms.unix;
       };
     };
diff --git a/pkgs/applications/networking/testssl/default.nix b/pkgs/applications/networking/testssl/default.nix
index 611f4cf0c1f..b4d17a1a493 100644
--- a/pkgs/applications/networking/testssl/default.nix
+++ b/pkgs/applications/networking/testssl/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "testssl.sh";
-  version = "3.0.2";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     owner = "drwetter";
     repo = pname;
     rev = version;
-    sha256 = "0vfpj3g3il3imbydx3j8gx1pgzrxi0czcl9jmi749vnkf5mkmh8w";
+    sha256 = "sha256-Rcvkzw1DfoRXrk0vlpL6CojEHYfYga3voc2hm4qxdmw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/tsung/default.nix b/pkgs/applications/networking/tsung/default.nix
index 41bc6c64da8..346fd175257 100644
--- a/pkgs/applications/networking/tsung/default.nix
+++ b/pkgs/applications/networking/tsung/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   propagatedBuildInputs = [
     erlang
     gnuplot
diff --git a/pkgs/applications/networking/umurmur/default.nix b/pkgs/applications/networking/umurmur/default.nix
index bf45db92098..d1378598876 100644
--- a/pkgs/applications/networking/umurmur/default.nix
+++ b/pkgs/applications/networking/umurmur/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "umurmur";
-  version = "0.2.19";
+  version = "0.2.20";
 
   src = fetchFromGitHub {
     owner = "umurmur";
     repo = "umurmur";
     rev = version;
-    sha256 = "sha256-86wveYlM493RIuU8aKac6XTOMPv0JxlZL4qH2N2AqRU=";
+    sha256 = "sha256-jp5+NbGmT90ksffvpLYIX2q5cPeVidDCYMPvLHCiP68=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
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/networking/wg-bond/default.nix b/pkgs/applications/networking/wg-bond/default.nix
index 32ffbde400b..bef44d42862 100644
--- a/pkgs/applications/networking/wg-bond/default.nix
+++ b/pkgs/applications/networking/wg-bond/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1v2az0v6l8mqryvq3898hm7bpvqdd2c4kpv6ck7932jfjyna512k";
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   postInstall = ''
     wrapProgram $out/bin/wg-bond --set PATH ${
       lib.makeBinPath [ wireguard-tools ]
diff --git a/pkgs/applications/networking/zerobin/default.nix b/pkgs/applications/networking/zerobin/default.nix
new file mode 100644
index 00000000000..b86fe7cc641
--- /dev/null
+++ b/pkgs/applications/networking/zerobin/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, nodePackages
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "zerobin";
+  version = "1.0.5";
+  src = fetchFromGitHub {
+    owner = "Tygs";
+    repo = "0bin";
+    rev = "v${version}";
+    sha256 = "1dfy3h823ylz4w2vv3mrmnmiyvf6rvyvsp4j3llr074w9id0zy16";
+  };
+
+  disabled = python3Packages.pythonOlder "3.7";
+
+  nativeBuildInputs = [
+    python3Packages.doit
+    python3Packages.pyscss
+    nodePackages.uglify-js
+  ];
+  propagatedBuildInputs = with python3Packages; [
+    appdirs
+    beaker
+    bleach
+    bottle
+    clize
+    lockfile
+    paste
+  ];
+  prePatch = ''
+    # replace /bin/bash in compress.sh
+    patchShebangs .
+
+    # relax version constraints of some dependencies
+    substituteInPlace setup.cfg \
+      --replace "bleach==3.1.5" "bleach>=3.1.5,<4" \
+      --replace "bottle==0.12.18" "bottle>=0.12.18,<1" \
+      --replace "Paste==3.4.3" "Paste>=3.4.3,<4"
+  '';
+  buildPhase = ''
+    runHook preBuild
+    doit build
+    runHook postBuild
+  '';
+
+  # zerobin has no check, but checking would fail with:
+  # nix_run_setup runserver: Received extra arguments: test
+  # See https://github.com/NixOS/nixpkgs/pull/98734#discussion_r495823510
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A client side encrypted pastebin";
+    homepage = "https://0bin.net/";
+    license = licenses.wtfpl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ julm ];
+  };
+}
diff --git a/pkgs/applications/networking/znc/default.nix b/pkgs/applications/networking/znc/default.nix
index 557c2865fa1..e5aec911706 100644
--- a/pkgs/applications/networking/znc/default.nix
+++ b/pkgs/applications/networking/znc/default.nix
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
   ] ++ optional (!withIPv6) [ "--disable-ipv6" ]
     ++ optional withDebug [ "--enable-debug" ];
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Advanced IRC bouncer";
     homepage = "https://wiki.znc.in/ZNC";
diff --git a/pkgs/applications/office/banking/default.nix b/pkgs/applications/office/banking/default.nix
new file mode 100644
index 00000000000..c71c1eafa66
--- /dev/null
+++ b/pkgs/applications/office/banking/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, fetchurl
+, fetchFromGitLab
+, python3
+, appstream-glib
+, desktop-file-utils
+, glib
+, gtk3
+, libxml2
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, gobject-introspection
+, libhandy
+, librsvg
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "banking";
+  version = "0.3.0";
+  format = "other";
+
+  src = fetchFromGitLab {
+    owner = "tabos";
+    repo = "banking";
+    rev = version;
+    sha256 = "1w5x9iczw5hb9bfdm1df37n8xhdrida1yfrd82k9l8hb1k4q3h9d";
+  };
+
+  postPatch = ''
+    patchShebangs meson_post_install.py
+  '';
+
+  nativeBuildInputs = [
+    appstream-glib # for appstream-util
+    desktop-file-utils # for desktop-file-validate
+    glib # for glib-compile-resources
+    gtk3 # for gtk-update-icon-cache
+    libxml2 # for xmllint
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk3
+    libhandy
+    librsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    cryptography
+    fints
+    mt-940
+    pygobject3
+  ];
+
+  meta = with lib; {
+    description = "Banking application for small screens";
+    homepage = "https://tabos.gitlab.io/project/banking/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
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/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index a8ca37df36a..e54a3cbad4c 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -1,15 +1,14 @@
-{
-  mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools, makeWrapper,
-  boost, qtwebkit, qtx11extras, shared-mime-info,
-  breeze-icons, kactivities, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets,
-  kcoreaddons, kdbusaddons, kdiagram, kguiaddons, khtml, ki18n,
-  kiconthemes, kitemviews, kjobwidgets, kcmutils, kdelibs4support, kio, kross,
-  knotifications, knotifyconfig, kparts, ktextwidgets, kwallet, kwidgetsaddons,
-  kwindowsystem, kxmlgui, sonnet, threadweaver,
-  kcontacts, akonadi, akonadi-calendar, akonadi-contacts,
-  eigen, git, gsl, ilmbase, kproperty, kreport, lcms2, marble, pcre, libgit2, libodfgen,
-  librevenge, libvisio, libwpd, libwpg, libwps, okular, openexr, openjpeg, phonon,
-  poppler, pstoedit, qca-qt5, vc
+{ mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools
+, boost, qtwebkit, qtx11extras, shared-mime-info
+, breeze-icons, kactivities, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets
+, kcoreaddons, kdbusaddons, kdiagram, kguiaddons, khtml, ki18n
+, kiconthemes, kitemviews, kjobwidgets, kcmutils, kdelibs4support, kio, kross
+, knotifications, knotifyconfig, kparts, ktextwidgets, kwallet, kwidgetsaddons
+, kwindowsystem, kxmlgui, sonnet, threadweaver
+, kcontacts, akonadi, akonadi-calendar, akonadi-contacts
+, eigen, git, gsl, ilmbase, kproperty, kreport, lcms2, marble, pcre, libgit2, libodfgen
+, librevenge, libvisio, libwpd, libwpg, libwps, okular, openexr, openjpeg, phonon
+, poppler, pstoedit, qca-qt5, vc
 # TODO: package Spnav, m2mml LibEtonyek, Libqgit2
 }:
 
diff --git a/pkgs/applications/office/cb2bib/default.nix b/pkgs/applications/office/cb2bib/default.nix
index e57d490f05c..b0a0fded80a 100644
--- a/pkgs/applications/office/cb2bib/default.nix
+++ b/pkgs/applications/office/cb2bib/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
     runHook postConfigure
   '';
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Rapidly extract unformatted, or unstandardized bibliographic references from email alerts, journal Web pages and PDF files";
     homepage = "http://www.molspaces.com/d_cb2bib-overview.php";
diff --git a/pkgs/applications/office/docear/default.nix b/pkgs/applications/office/docear/default.nix
index 683e6681573..f8cd25ad784 100644
--- a/pkgs/applications/office/docear/default.nix
+++ b/pkgs/applications/office/docear/default.nix
@@ -12,7 +12,8 @@ stdenv.mkDerivation {
     sha256 = "1g5n7r2x4gas6dl2fbyh7v9yxdcb6bzml8n3ldmpzv1rncgjcdp4";
   };
 
-  buildInputs = [ oraclejre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ oraclejre ];
 
   buildPhase = "";
   installPhase = ''
diff --git a/pkgs/applications/office/fava/default.nix b/pkgs/applications/office/fava/default.nix
index b070683e6f2..4f32486ffe1 100644
--- a/pkgs/applications/office/fava/default.nix
+++ b/pkgs/applications/office/fava/default.nix
@@ -1,40 +1,44 @@
-{ lib, python3, beancount }:
+{ lib, python3 }:
 
-let
-  inherit (python3.pkgs) buildPythonApplication fetchPypi;
-in
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "fava";
   version = "1.18";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
     sha256 = "21336b695708497e6f00cab77135b174c51feb2713b657e0e208282960885bf5";
   };
 
-  checkInputs = [ python3.pkgs.pytest ];
-  propagatedBuildInputs = with python3.pkgs;
-    [
-      Babel
-      cheroot
-      flaskbabel
-      flask
-      jinja2
-      beancount
-      click
-      markdown2
-      ply
-      simplejson
-      werkzeug
-      jaraco_functools
-    ];
-
-  # CLI test expects fava on $PATH.  Not sure why static_url fails.
-  # the entry_slices and render_entries requires other files to pass
-  checkPhase = ''
-    py.test tests -k 'not cli and not static_url and not entry_slice and not render_entries'
+  nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    Babel
+    cheroot
+    flaskbabel
+    flask
+    jinja2
+    beancount
+    click
+    markdown2
+    ply
+    simplejson
+    werkzeug
+    jaraco_functools
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$TEMPDIR
   '';
 
+  disabledTests = [
+    # runs fava in debug mode, which tries to interpret bash wrapper as Python
+    "test_cli"
+  ];
+
   meta = {
     homepage = "https://beancount.github.io/fava";
     description = "Web interface for beancount";
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index f926391ac48..263a555ab4c 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -7,11 +7,11 @@ let
   inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
-  version = "1.12.48";
+  version = "1.12.49";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p";
+    sha256 = "kcBy7JXDLgCxVv/oAVyTsyuO3zaPkEFDYZPPoy6E7Vc=";
   };
 
   configureFlags = [ "--disable-component" ];
diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
index 17c72e8a330..a586cea47ab 100644
--- a/pkgs/applications/office/homebank/default.nix
+++ b/pkgs/applications/office/homebank/default.nix
@@ -2,10 +2,10 @@
 , libsoup, gnome3 }:
 
 stdenv.mkDerivation rec {
-  name = "homebank-5.5";
+  name = "homebank-5.5.1";
   src = fetchurl {
     url = "http://homebank.free.fr/public/${name}.tar.gz";
-    sha256 = "sha256-3tqmsCxQXNAsDsLdiyuk4MydH0WgHqsNpgqxvCp+bHU=";
+    sha256 = "sha256-m7OeqtPExo0ry+IeL2xKUnTjo/OFr7Ky/3OuX9mY2gg=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/pkgs/applications/office/ib/controller/default.nix b/pkgs/applications/office/ib/controller/default.nix
index 35aebf23260..0815dfc8982 100644
--- a/pkgs/applications/office/ib/controller/default.nix
+++ b/pkgs/applications/office/ib/controller/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
 
   phases = [ "unpackPhase" "installPhase" ];
 
-  buildInputs = [ unzip jdk ib-tws ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ jdk ib-tws ];
 
   installPhase = ''
     mkdir -p $out $out/bin $out/etc/ib/controller $out/share/IBController
diff --git a/pkgs/applications/office/impressive/default.nix b/pkgs/applications/office/impressive/default.nix
index 4614a543694..f46d893d894 100644
--- a/pkgs/applications/office/impressive/default.nix
+++ b/pkgs/applications/office/impressive/default.nix
@@ -16,7 +16,8 @@ in stdenv.mkDerivation {
       sha256 = "1r7ihv41awnlnlry1kymb8fka053wdhzibfwcarn78rr3vs338vl";
     };
 
-    buildInputs = [ makeWrapper pythonEnv ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ pythonEnv ];
 
     configurePhase = ''
       # Let's fail at build time if the library we're substituting in doesn't
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/libreoffice/src-fresh/download.nix b/pkgs/applications/office/libreoffice/src-fresh/download.nix
index ea6fc1d777e..3b8bba9ac19 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -476,11 +476,11 @@
     md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
   }
   {
-    name = "language-subtag-registry-2020-09-29.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2020-09-29.tar.bz2";
-    sha256 = "cbe9fca811a37056560aab73e9fc9d3522b46b6785cb02db165f521bf42c230f";
+    name = "language-subtag-registry-2020-12-18.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2020-12-18.tar.bz2";
+    sha256 = "62ce680d5db0f28001b64bd57db47f388c13629cdefc9af8e8af0fbe93689ba1";
     md5 = "";
-    md5name = "cbe9fca811a37056560aab73e9fc9d3522b46b6785cb02db165f521bf42c230f-language-subtag-registry-2020-09-29.tar.bz2";
+    md5name = "62ce680d5db0f28001b64bd57db47f388c13629cdefc9af8e8af0fbe93689ba1-language-subtag-registry-2020-12-18.tar.bz2";
   }
   {
     name = "JLanguageTool-1.7.0.tar.bz2";
@@ -546,11 +546,11 @@
     md5name = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e-liblangtag-0.6.2.tar.bz2";
   }
   {
-    name = "libnumbertext-1.0.6.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libnumbertext-1.0.6.tar.xz";
-    sha256 = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57";
+    name = "libnumbertext-1.0.7.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libnumbertext-1.0.7.tar.xz";
+    sha256 = "17b8249cb89ae11ae15a85612d2665626c0e0e3e56b35654363ba6566d8b61fc";
     md5 = "";
-    md5name = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57-libnumbertext-1.0.6.tar.xz";
+    md5name = "17b8249cb89ae11ae15a85612d2665626c0e0e3e56b35654363ba6566d8b61fc-libnumbertext-1.0.7.tar.xz";
   }
   {
     name = "ltm-1.0.zip";
@@ -735,18 +735,18 @@
     md5name = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3-poppler-21.01.0.tar.xz";
   }
   {
-    name = "postgresql-9.2.24.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/postgresql-9.2.24.tar.bz2";
-    sha256 = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126";
+    name = "postgresql-13.1.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/postgresql-13.1.tar.bz2";
+    sha256 = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f";
     md5 = "";
-    md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2";
+    md5name = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f-postgresql-13.1.tar.bz2";
   }
   {
-    name = "Python-3.8.4.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/Python-3.8.4.tar.xz";
-    sha256 = "5f41968a95afe9bc12192d7e6861aab31e80a46c46fa59d3d837def6a4cd4d37";
+    name = "Python-3.8.8rc1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/Python-3.8.8rc1.tar.xz";
+    sha256 = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6";
     md5 = "";
-    md5name = "5f41968a95afe9bc12192d7e6861aab31e80a46c46fa59d3d837def6a4cd4d37-Python-3.8.4.tar.xz";
+    md5name = "bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6-Python-3.8.8rc1.tar.xz";
   }
   {
     name = "QR-Code-generator-1.4.0.tar.gz";
diff --git a/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index 6fbc8c5cfc6..d3fbc261c36 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -8,8 +8,8 @@ rec {
 
   major = "7";
   minor = "1";
-  patch = "0";
-  tweak = "3";
+  patch = "2";
+  tweak = "2";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "1rpk90g1g8m70nrj4lwkg50aiild73d29yjlgyrgg8wx6hzq7l4y";
+    sha256 = "1y19p9701msf6jjzp9d5ighvmyjzj68qzhm2bk3l5p16ys8qk9bb";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "0m6cxyrxig8akv9183xdn6ialmjddicn676149nm506yc5y0szmi";
+    sha256 = "1j5251lbc35d521d92w52lgps0v5pg8mhr8y3r6x2nl9p0gvw957";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "1kvsi28n8x3gxpiszxh84x05aw23i3z4id63pgw2s7mfclby52k9";
+    sha256 = "1bsrkmzhhpyrmi7akmdfvz4zb543fc093az9965k14rp8l6rhnvf";
   };
 }
diff --git a/pkgs/applications/office/onlyoffice-bin/default.nix b/pkgs/applications/office/onlyoffice-bin/default.nix
new file mode 100644
index 00000000000..bfd3c3529e7
--- /dev/null
+++ b/pkgs/applications/office/onlyoffice-bin/default.nix
@@ -0,0 +1,168 @@
+{ stdenv
+, lib
+, fetchurl
+# Alphabetic ordering below
+, alsaLib
+, at-spi2-atk
+, atk
+, autoPatchelfHook
+, cairo
+, curl
+, dbus
+, dconf
+, dpkg
+, fontconfig
+, gdk-pixbuf
+, glib
+, glibc
+, gsettings-desktop-schemas
+, gst_all_1
+, gtk2
+, gtk3
+, libpulseaudio
+, libudev0-shim
+, makeWrapper
+, nspr
+, nss
+, pulseaudio
+, qt5
+, wrapGAppsHook
+, xkeyboard_config
+, xorg
+}:
+let
+
+  # Note on fonts:
+  #
+  # OnlyOffice does not distribute unfree fonts, but makes it easy to pick up
+  # any fonts you install. See:
+  #
+  # * https://helpcenter.onlyoffice.com/en/installation/docs-community-install-fonts-linux.aspx
+  # * https://www.onlyoffice.com/blog/2020/04/how-to-add-new-fonts-to-onlyoffice-desktop-editors/
+  #
+  # As recommended there, you should download
+  #
+  #     arial.ttf, calibri.ttf, cour.ttf, symbol.ttf, times.ttf, wingding.ttf
+  #
+  # into `~/.local/share/fonts/`, otherwise the default template fonts, and
+  # things like bullet points, will not look as expected.
+
+  # TODO: Find out which of these fonts we'd be allowed to distribute along
+  #       with this package, or how to make this easier for users otherwise.
+
+  # Not using the `noto-fonts-cjk` package from nixpkgs, because it was
+  # reported that its `.ttc` file is not picked up by OnlyOffice, see:
+  # https://github.com/NixOS/nixpkgs/pull/116343#discussion_r593979816
+  noto-fonts-cjk = fetchurl {
+    url =
+      let
+        version = "v20201206-cjk";
+      in
+        "https://github.com/googlefonts/noto-cjk/raw/${version}/NotoSansCJKsc-Regular.otf";
+    sha256 = "sha256-aJXSVNJ+p6wMAislXUn4JQilLhimNSedbc9nAuPVxo4=";
+  };
+
+  runtimeLibs = lib.makeLibraryPath [
+    curl
+    glibc
+    libudev0-shim
+    pulseaudio
+  ];
+
+in stdenv.mkDerivation rec {
+  pname = "onlyoffice-desktopeditors";
+  version = "6.1.0";
+  minor = "90";
+  src = fetchurl {
+    url = "https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v${version}/onlyoffice-desktopeditors_${version}-${minor}_amd64.deb";
+    sha256 = "sha256-TUaECChM3GxtB54/zNIKjRIocnAxpBVK7XsX3z7aq8o=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    alsaLib
+    at-spi2-atk
+    atk
+    cairo
+    dbus
+    dconf
+    fontconfig
+    gdk-pixbuf
+    glib
+    gsettings-desktop-schemas
+    gst_all_1.gst-plugins-base
+    gst_all_1.gstreamer
+    gtk2
+    gtk3
+    libpulseaudio
+    nspr
+    nss
+    qt5.qtbase
+    qt5.qtdeclarative
+    qt5.qtsvg
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXScrnSaver
+    xorg.libXtst
+  ];
+
+  dontWrapQtApps = true;
+
+  unpackPhase = ''
+    dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner
+  '';
+
+  preConfigure = ''
+    cp --no-preserve=mode,ownership ${noto-fonts-cjk} opt/onlyoffice/desktopeditors/fonts/
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib,share}
+
+    mv usr/bin/* $out/bin
+    mv usr/share/* $out/share/
+    mv opt/onlyoffice/desktopeditors $out/share
+
+    substituteInPlace $out/bin/onlyoffice-desktopeditors \
+      --replace "/opt/onlyoffice/" "$out/share/"
+
+    ln -s $out/share/desktopeditors/DesktopEditors $out/bin/DesktopEditors
+
+    wrapProgram $out/bin/DesktopEditors \
+        --set QT_XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb \
+        --set QTCOMPOSE ${xorg.libX11.out}/share/X11/locale
+
+    substituteInPlace $out/share/applications/onlyoffice-desktopeditors.desktop \
+      --replace "/usr/bin/onlyoffice-desktopeditor" "$out/bin/DesktopEditor"
+
+    runHook preInstall
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" )
+  '';
+
+  meta = with lib; {
+    description = "Office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents";
+    homepage = "https://www.onlyoffice.com/";
+    platforms = [ "x86_64-linux" ];
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ nh2 gtrunsec ];
+  };
+}
diff --git a/pkgs/applications/office/paperless/default.nix b/pkgs/applications/office/paperless/default.nix
index 499078611fc..c2578696c68 100644
--- a/pkgs/applications/office/paperless/default.nix
+++ b/pkgs/applications/office/paperless/default.nix
@@ -5,7 +5,7 @@
 , callPackage
 
 , python3
-, imagemagick7
+, imagemagick
 , ghostscript
 , optipng
 , tesseract
@@ -65,7 +65,7 @@ let
 
     buildPhase = let
       # Paperless has explicit runtime checks that expect these binaries to be in PATH
-      extraBin = lib.makeBinPath [ imagemagick7 ghostscript optipng tesseract unpaper ];
+      extraBin = lib.makeBinPath [ imagemagick ghostscript optipng tesseract unpaper ];
     in ''
       ${python.interpreter} -m compileall $srcDir
 
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 23dd03a1b7a..73cd5d7cd6c 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.50.4";
+  version = "0.51.2";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "sha256-ZOw3Zyd6+fT/Z2tndRVqA8tVvgeq/TbdEdoAk9vSM0k=";
+    sha256 = "sha256-5wBzGj4DkTOqtN7X8/EBDoiBtbYB6vGJJ5IkuME7a9A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index 99b021429a6..e397743b22d 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -1,19 +1,19 @@
-{  mkDerivation, lib, fetchurl, qmake, qttools, qtbase, qtsvg, qtdeclarative, qtxmlpatterns, qtwayland, qtwebsockets, stdenv /* for isLinux */ }:
+{ mkDerivation, lib, fetchurl, qmake, qttools, qtbase, qtsvg, qtdeclarative, qtxmlpatterns, qtwayland, qtwebsockets, stdenv, qtx11extras }:
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "20.2.5";
+  version = "21.3.2";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Can grab official version like so:
-    # $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-20.2.5.tar.xz.sha256
-    sha256 = "c26d2a86a521cd243ec0a4788e7627e91cb5877dace73d93dd7d35dd02e9e4c5";
+    # $ curl https://download.tuxfamily.org/qownnotes/src/qownnotes-21.3.2.tar.xz.sha256
+    sha256 = "a8e8ab2ca1ef6684407adeb8fc63abcafff407a367471e053c583a1c4215e5ee";
   };
 
   nativeBuildInputs = [ qmake qttools ];
   buildInputs = [
-    qtbase qtsvg qtdeclarative qtxmlpatterns qtwebsockets
+    qtbase qtsvg qtdeclarative qtxmlpatterns qtwebsockets qtx11extras
   ] ++ lib.optional stdenv.isLinux qtwayland;
 
   meta = with lib; {
@@ -21,7 +21,7 @@ mkDerivation rec {
 
     homepage = "https://www.qownnotes.org/";
     platforms = platforms.all;
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ dtzWill ];
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ dtzWill totoroot ];
   };
 }
diff --git a/pkgs/applications/office/semantik/default.nix b/pkgs/applications/office/semantik/default.nix
new file mode 100644
index 00000000000..371dd52a840
--- /dev/null
+++ b/pkgs/applications/office/semantik/default.nix
@@ -0,0 +1,90 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, wafHook
+, pkg-config
+, cmake
+, qtbase
+, python3
+, qtwebengine
+, qtsvg
+, ncurses6
+, kio
+, kauth
+, kiconthemes
+, kconfigwidgets
+, kxmlgui
+, kcoreaddons
+, kconfig
+, kwidgetsaddons
+, ki18n
+, sonnet
+, kdelibs4support
+}:
+
+mkDerivation rec {
+  pname = "semantik";
+  version = "1.2.5";
+
+  src = fetchFromGitLab {
+    owner = "ita1024";
+    repo = "semantik";
+    rev = "semantik-${version}";
+    sha256 = "0dkg6mbnsbvbis17iz8v59wlhld93nc51abnkbyqvvkyyiqb006c";
+  };
+
+  patches = [ ./qt5.patch ];
+
+  postPatch = ''
+    echo "${lib.getDev qtwebengine}"
+    substituteInPlace wscript \
+      --replace @Qt5Base_dev@ "${lib.getDev qtbase}" \
+      --replace @KF5KIOCore_dev@ "${lib.getDev kio}" \
+      --replace @KF5Auth_dev@ "${lib.getDev kauth}" \
+      --replace @KF5IconThemes_dev@ "${lib.getDev kiconthemes}" \
+      --replace @KF5ConfigWidgets_dev@ "${lib.getDev kconfigwidgets}" \
+      --replace @KF5XmlGui_dev@ "${lib.getDev kxmlgui}" \
+      --replace @KF5CoreAddons_dev@ "${lib.getDev kcoreaddons}" \
+      --replace @KF5Config_dev@ "${lib.getDev kconfig}" \
+      --replace @KF5WidgetsAddons_dev@ "${lib.getDev kwidgetsaddons}" \
+      --replace @KF5I18n_dev@ "${lib.getDev ki18n}" \
+      --replace @KF5SonnetUi_dev@ "${lib.getDev sonnet}" \
+      --replace @Qt5Svg@ "${qtsvg}" \
+      --replace @Qt5Svg_dev@ "${lib.getDev qtsvg}" \
+      --replace @Qt5WebEngine@ "${qtwebengine}" \
+      --replace @Qt5WebEngine_dev@ "${lib.getDev qtwebengine}" \
+      --replace /usr/include/KF5/KDELibs4Support "${lib.getDev kdelibs4support}/include/KF5/KDELibs4Support"
+  '';
+
+  nativeBuildInputs = [ (lib.getDev qtsvg) (lib.getLib qtsvg) python3 pkg-config wafHook cmake ];
+
+  buildInputs = [
+    qtbase
+    qtwebengine
+    qtsvg
+    ncurses6
+    kio
+    kauth
+    kiconthemes
+    kconfigwidgets
+    kxmlgui
+    kcoreaddons
+    kconfig
+    kwidgetsaddons
+    ki18n
+    sonnet
+    kdelibs4support
+  ];
+
+  wafConfigureFlags = [
+    "--qtlibs=${lib.getLib qtbase}/lib"
+  ];
+
+  meta = with lib; {
+    description = "A mind-mapping application for KDE";
+    license = licenses.mit;
+    homepage = "https://waf.io/semantik.html";
+    maintainers = [ maintainers.shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/office/semantik/qt5.patch b/pkgs/applications/office/semantik/qt5.patch
new file mode 100644
index 00000000000..6d41babdff4
--- /dev/null
+++ b/pkgs/applications/office/semantik/qt5.patch
@@ -0,0 +1,78 @@
+diff --color -ur a/wscript b/wscript
+--- a/wscript	2020-08-17 19:49:43.389864343 +0200
++++ b/wscript	2020-08-18 00:22:51.172556519 +0200
+@@ -149,6 +149,26 @@
+ 	if not conf.env.QT_LRELEASE: conf.fatal('Semantik requires the program lrelease (from the Qt linguist package? - compilation only)')
+ 	conf.find_program('python3', var='PYTHON')
+ 	conf.load('python')
++	conf.env.HAVE_QT5SVG = 1
++	conf.env.DEFINES_QT5SVG = [ 'QT_SVG_LIB' ]
++	conf.env.INCLUDES_QT5SVG = [ '@Qt5Svg_dev@/include/QtSvg' ]
++	conf.env.LIBPATH_QT5SVG = '@Qt5Svg@/lib'
++	conf.env.LIB_QT5SVG = [ 'Qt5Svg', 'Qt5Core', 'Qt5Gui', 'Qt5Widgets' ]
++	conf.env.HAVE_QT5WEBENGINEWIDGETS = 1
++	conf.env.DEFINES_QT5WEBENGINEWIDGETS = [ 'QT_WEBENGINEWIDGETS_LIB' ]
++	conf.env.INCLUDES_QT5WEBENGINEWIDGETS = [ '@Qt5WebEngine_dev@/include/QtWebEngineWidgets' ]
++	conf.env.LIBPATH_QT5WEBENGINEWIDGETS = '@Qt5WebEngine@/lib'
++	conf.env.LIB_QT5WEBENGINEWIDGETS = [
++		'Qt5WebEngineWidgets',
++		'Qt5Core',
++		'Qt5Gui',
++		'Qt5WebEngineCore',
++		'Qt5Widgets',
++		'Qt5Network',
++		'Qt5Quick',
++		'Qt5PrintSupport'
++	]
++	print("conf.env.LIB_QT5SVG : ",conf.env)
+ 	if not conf.env.LIB_QT5SVG: conf.fatal('Could not find Qt5Svg - Semantik requires Qt >= 5')
+ 	if not conf.env.LIB_QT5WEBENGINEWIDGETS: conf.fatal('Could not find Qt5WebEngineWidgets - check `pkg-config --libs Qt5WebEngineWidgets`')
+ 	if not conf.env.LIB_QT5DBUS: conf.fatal('Install Qt Dbus')
+@@ -186,7 +206,11 @@
+ 		raise ValueError('Could not find QT_HOST_DATA')
+ 
+ 	specpath = conf.cmd_and_log(conf.env.QMAKE + ['-query', 'QMAKE_SPEC'], quiet=0, stdout=True)
++	path = "@Qt5Base_dev@"
++	print("\n\n[log] specpath = ",specpath,"\n")
++	print("\n\n[log] path = ",path,"\n")
+ 	specpath = os.path.join(path, 'mkspecs', specpath.strip())
++	print("\n\n[log] specpath = ",specpath,"\n")
+ 	if not os.path.exists(specpath):
+ 		raise ValueError('No spec path, cannot build')
+ 
+@@ -196,17 +220,28 @@
+ 
+ 	conf.env.append_value('INCLUDES_KDECORE', specpath)
+ 
+-	libs = ['KF5KIOCore', 'KF5Auth', 'KF5KIOWidgets',
+-		'KF5IconThemes', 'KF5ConfigWidgets', 'KF5XmlGui',
+-		'KF5CoreAddons', 'KF5ConfigGui', 'KF5ConfigCore',
+-		'KF5WidgetsAddons', 'KF5I18n', 'KF5SonnetUi']
++	libs = {
++            'KF5KIOCore': '@KF5KIOCore_dev@',
++            'KF5Auth': '@KF5Auth_dev@',
++            'KF5KIOWidgets': '@KF5KIOCore_dev@',
++            'KF5IconThemes': '@KF5IconThemes_dev@',
++            'KF5ConfigWidgets': '@KF5ConfigWidgets_dev@',
++            'KF5XmlGui': '@KF5XmlGui_dev@',
++            'KF5CoreAddons': '@KF5CoreAddons_dev@',
++            'KF5ConfigGui': '@KF5Config_dev@',
++            'KF5ConfigCore': '@KF5Config_dev@',
++            'KF5WidgetsAddons': '@KF5WidgetsAddons_dev@',
++            'KF5I18n': '@KF5I18n_dev@',
++            'KF5SonnetUi': '@KF5SonnetUi_dev@',
++        }
+ 
+-	for lib in libs:
++	for lib,mkspec_path in libs.items():
++		print("[log] mkspec : ", mkspec_path)
+ 		name = lib[3:]
+ 		if not name.startswith('K') and name != 'SonnetUi':
+ 			name = 'K' + name
+-
+-		p = '%s/qt_%s.pri' % (path, name)
++		p = '%s/qt_%s.pri' % (mkspec_path+"/mkspecs/modules", name)
++		print("[log] path :",path,", name : ",name)
+ 		for line in Utils.readf(p).splitlines():
+ 			lst = line.strip().split(' = ')
+ 			if lst[0].endswith('.name'):
diff --git a/pkgs/applications/office/skanlite/default.nix b/pkgs/applications/office/skanlite/default.nix
index 89cf2add212..6cdbea75598 100644
--- a/pkgs/applications/office/skanlite/default.nix
+++ b/pkgs/applications/office/skanlite/default.nix
@@ -3,13 +3,12 @@
   libksane
 }:
 
-let
-  minorVersion = "2.2";
-in mkDerivation rec {
-  name = "skanlite-2.2.0";
+mkDerivation rec {
+  pname   = "skanlite";
+  version = "2.2.0";
 
   src = fetchurl {
-    url    = "mirror://kde/stable/skanlite/${minorVersion}/${name}.tar.xz";
+    url    = "mirror://kde/stable/skanlite/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "VP7MOZdUe64XIVr3r0aKIl1IPds3vjBTZzOS3N3VhOQ=";
   };
 
@@ -23,9 +22,9 @@ in mkDerivation rec {
 
   meta = with lib; {
     description = "KDE simple image scanning application";
-    homepage    = "http://www.kde.org/applications/graphics/skanlite/";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ pshendry ];
+    homepage    = "https://apps.kde.org/skanlite";
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ polendri ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index 067b06747d7..8f5beee3845 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "skrooge";
-  version = "2.23.0";
+  version = "2.24.6";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
-    sha256 = "10k3j67x5xm5whsvb84k9p70bkn4jbbbvdfan7q49dh2mmpair5a";
+    sha256 = "sha256-DReIm9lcq0j761wWTpJu7HnfEWz9QsRGgUtyVaXFs6A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/softmaker/freeoffice.nix b/pkgs/applications/office/softmaker/freeoffice.nix
index bdd90fecb8e..b1b24c3e6cb 100644
--- a/pkgs/applications/office/softmaker/freeoffice.nix
+++ b/pkgs/applications/office/softmaker/freeoffice.nix
@@ -5,9 +5,9 @@
   # overridable. This is useful when the upstream archive was replaced
   # and nixpkgs is not in sync yet.
 , officeVersion ? {
-  version = "980";
+  version = "982";
   edition = "2018";
-  sha256 = "19pgil86aagiz6z4kx22gd4cxbbmrx42ix42arkfb6p6hav1plby";
+  hash = "sha256-euoZfAaDDTXzoaNLc/YdTngreTiYOBi7sGU161GP83w=";
 }
 
 , ... } @ args:
@@ -19,7 +19,7 @@ callPackage ./generic.nix (args // rec {
   suiteName = "FreeOffice";
 
   src = fetchurl {
-    inherit (officeVersion) sha256;
+    inherit (officeVersion) hash;
     url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
   };
 
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
index a80eaa459c0..56a951919e3 100644
--- a/pkgs/applications/office/softmaker/generic.nix
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoPatchelfHook, makeDesktopItem, makeWrapper, copyDesktopItems
+{ lib, stdenv, autoPatchelfHook, makeDesktopItem, makeWrapper, copyDesktopItems
 
   # Dynamic Libraries
 , curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender
diff --git a/pkgs/applications/office/softmaker/softmaker_office.nix b/pkgs/applications/office/softmaker/softmaker_office.nix
index d0eb2ffdc93..9228037e8bf 100644
--- a/pkgs/applications/office/softmaker/softmaker_office.nix
+++ b/pkgs/applications/office/softmaker/softmaker_office.nix
@@ -6,9 +6,9 @@
   # Softmaker Office or when the upstream archive was replaced and
   # nixpkgs is not in sync yet.
 , officeVersion ? {
-  version = "1020";
+  version = "1030";
   edition = "2021";
-  sha256 = "1v227pih1p33x7axsw7wz8pz5walpbqnk0iqng711ixk883nqxn5";
+  hash = "sha256-bpnyPyZnJc9RFVrFM2o3M7Gc4PSKFGpaM1Yo8ZKGHrE=";
 }
 
 , ... } @ args:
@@ -20,7 +20,7 @@ callPackage ./generic.nix (args // rec {
   suiteName = "SoftMaker Office";
 
   src = fetchurl {
-    inherit (officeVersion) sha256;
+    inherit (officeVersion) hash;
     url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
   };
 
diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix
index 6c1068d4584..5bbfca23d6d 100644
--- a/pkgs/applications/office/timeular/default.nix
+++ b/pkgs/applications/office/timeular/default.nix
@@ -1,8 +1,7 @@
-{
-  lib,
-  fetchurl,
-  appimageTools,
-  libsecret
+{ lib
+, fetchurl
+, appimageTools
+, libsecret
 }:
 
 let
@@ -37,7 +36,7 @@ in appimageTools.wrapType2 rec {
       Assign an activity to each side and flip to start tracking your time.
       The desktop app tell you where every minute of your day is spent.
     '';
-    homepage = https://timeular.com;
+    homepage = "https://timeular.com";
     license = licenses.unfree;
     maintainers = with maintainers; [ ktor ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix
index 552d28d1e95..1f084e182af 100644
--- a/pkgs/applications/office/treesheets/default.nix
+++ b/pkgs/applications/office/treesheets/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0krsj7i5yr76imf83krz2lmlmpbsvpwqg2d4r0jwxiydjfyj4qr4";
   };
 
-  buildInputs = [ wxGTK makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ wxGTK ];
 
   preConfigure = "cd src";
 
diff --git a/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
index 1a4350ca71a..21b6b1c579c 100644
--- a/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
+++ b/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
@@ -1,17 +1,8 @@
-From 5be803a1171855f976a5b607970fa3949db72181 Mon Sep 17 00:00:00 2001
-From: Christian Kampka <christian@kampka.net>
-Date: Mon, 9 Dec 2019 19:40:27 +0100
-Subject: [PATCH] Use console logger instead of rolling files
-
----
- src/services/log.js | 26 +++-----------------------
- 1 file changed, 3 insertions(+), 23 deletions(-)
-
 diff --git a/src/services/log.js b/src/services/log.js
-index 1514c209..456c3749 100644
+index b4c39e99..4c249154 100644
 --- a/src/services/log.js
 +++ b/src/services/log.js
-@@ -1,35 +1,15 @@
+@@ -1,14 +1,5 @@
  "use strict";
  
 -const fs = require('fs');
@@ -21,49 +12,50 @@ index 1514c209..456c3749 100644
 -    fs.mkdirSync(dataDir.LOG_DIR, 0o700);
 -}
 -
--const logger = require('simple-node-logger').createRollingFileLogger({
--    errorEventName: 'error',
--    logDirectory: dataDir.LOG_DIR,
--    fileNamePattern: 'trilium-<DATE>.log',
--    dateFormat:'YYYY-MM-DD'
--});
+-let logFile = null;
 -
- function info(message) {
-     // info messages are logged asynchronously
-     setTimeout(() => {
-         console.log(message);
--
--        logger.info(message);
-     }, 0);
- }
+ const SECOND = 1000;
+ const MINUTE = 60 * SECOND;
+ const HOUR = 60 * MINUTE;
+@@ -16,41 +7,7 @@ const DAY = 24 * HOUR;
  
- function error(message) {
-     message = "ERROR: " + message;
+ const NEW_LINE = process.platform === "win32" ? '\r\n' : '\n';
  
--    // we're using .info() instead of .error() because simple-node-logger emits weird error for showError()
--    // errors are logged synchronously to make sure it doesn't get lost in case of crash
--    logger.info(message);
+-let todaysMidnight = null;
 -
-     console.trace(message);
- }
- 
-@@ -45,12 +25,12 @@ function request(req) {
-     if (req.url.includes(".js.map") || req.url.includes(".css.map")) {
-         return;
-     }
+-initLogFile();
+-
+-function getTodaysMidnight() {
+-    const now = new Date();
+-
+-    return new Date(now.getFullYear(), now.getMonth(), now.getDate());
+-}
+-
+-function initLogFile() {
+-    todaysMidnight = getTodaysMidnight();
+-
+-    const path = dataDir.LOG_DIR + '/trilium-' + formatDate() + '.log';
+-
+-    if (logFile) {
+-        logFile.end();
+-    }
+-
+-    logFile = fs.createWriteStream(path, {flags: 'a'});
+-}
+-
+-function checkDate(millisSinceMidnight) {
+-    if (millisSinceMidnight >= DAY) {
+-        initLogFile();
+-    }
+-}
+-
+ function log(str) {
+-    const millisSinceMidnight = Date.now() - todaysMidnight.getTime();
+-
+-    checkDate(millisSinceMidnight);
+-
+-    logFile.write(formatTime(millisSinceMidnight) + ' ' + str + NEW_LINE);
 -
--    logger.info(req.method + " " + req.url);
-+    if(process.env.DEBUG)
-+        console.log(req.method + " " + req.url);
+     console.log(str);
  }
  
- module.exports = {
-     info,
-     error,
-     request
--};
-\ No newline at end of file
-+};
--- 
-2.23.0
-
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
index cb0781f74e1..2680a9a6a53 100644
--- a/pkgs/applications/office/trilium/default.nix
+++ b/pkgs/applications/office/trilium/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook, zlib, libxkbfile }:
+{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook }:
 
 let
   description = "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases";
@@ -14,21 +14,21 @@ let
   meta = with lib; {
     inherit description;
     homepage = "https://github.com/zadam/trilium";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ emmanuelrosa dtzWill ];
+    maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.43.4";
+  version = "0.46.6";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "0kjysam5alsmnj93fcqq1ivawnra42gn7dch99rrfmvbkxp7hhr8";
+    sha256 = "0nxlph23gkxrn10gnm0ncsy54fzcmbqcrrk492ygfgw8a8pl4ah1";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "128mvmp15mjpb5ipkmr0yn7ahby26shbix3f8q094f4zpxjp83zx";
+    sha256 = "0z9wg84sdbpk8zhljydm05z7cqqv2ly9s921cli7rs8hcpl175cz";
   };
 
 in {
@@ -58,6 +58,7 @@ in {
     buildInputs = atomEnv.packages ++ [ gtk3 ];
 
     installPhase = ''
+      runHook preInstall
       mkdir -p $out/bin
       mkdir -p $out/share/trilium
       mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
@@ -67,6 +68,7 @@ in {
 
       ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg
       cp ${desktopItem}/share/applications/* $out/share/applications
+      runHook postInstall
     '';
 
     # LD_LIBRARY_PATH "shouldn't" be needed, remove when possible :)
@@ -91,16 +93,20 @@ in {
 
     buildInputs = [
       stdenv.cc.cc.lib
-      zlib
-      libxkbfile
     ];
 
-    patches = [ ./0001-Use-console-logger-instead-of-rolling-files.patch ] ;
+    patches = [
+      # patch logger to use console instead of rolling files
+      ./0001-Use-console-logger-instead-of-rolling-files.patch
+    ];
+
     installPhase = ''
+      runHook preInstall
       mkdir -p $out/bin
       mkdir -p $out/share/trilium-server
 
       cp -r ./* $out/share/trilium-server
+      runHook postInstall
     '';
 
     postFixup = ''
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index e0f156f06c9..b18f22b6c1d 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -23,7 +23,7 @@
 , libtool
 , libuuid
 , libxml2
-, lzma
+, xz
 , nspr
 , nss
 , openssl
@@ -55,13 +55,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook wrapQtAppsHook ];
 
-  meta = {
-    description = "Office program originally named Kingsoft Office";
-    homepage = "http://wps-community.org/";
+  meta = with lib; {
+    description = "Office suite, formerly Kingsoft Office";
+    homepage = "https://www.wps.com/";
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [];
-    license = lib.licenses.unfreeRedistributable;
-    maintainers = with lib.maintainers; [ mlatus th0rgal ];
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ mlatus th0rgal ];
   };
 
   buildInputs = with xorg; [
@@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
     libuuid
     libxcb
     libxml2
-    lzma
+    xz
     nspr
     nss
     openssl
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index 739b003bbef..1584972cbeb 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.96";
 
   src = fetchurl {
     url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "18p4qnnfx9f2frk7f2nk1d7jr4cjzg9z7lfzrk7vq11qgbjdpqbl";
+    sha256 = "sha256-W8Iu8UoTqC3aK7lB4bq1L7cNmjaEvjEK+ODcZ9kk3f8=";
   };
 
   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/radio/btlejack/default.nix b/pkgs/applications/radio/btlejack/default.nix
new file mode 100644
index 00000000000..198c090b0ea
--- /dev/null
+++ b/pkgs/applications/radio/btlejack/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonApplication, fetchFromGitHub, pyserial, halo }:
+
+buildPythonApplication rec {
+  pname = "btlejack";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "virtualabs";
+    repo = "btlejack";
+    rev = "v${version}";
+    sha256 = "1r17079kx7dvsrbmw5sgvz3vj5m3pn2543gxj2xmw4s0lcihy378";
+  };
+
+  postPatch = ''
+    sed -i "s|^.*'argparse',$||" setup.py
+  '';
+
+  propagatedBuildInputs = [ pyserial halo ];
+
+  meta = with lib; {
+    homepage = "https://github.com/virtualabs/btlejack";
+    description = "Bluetooth Low Energy Swiss-army knife";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/pkgs/applications/radio/cqrlog/default.nix b/pkgs/applications/radio/cqrlog/default.nix
new file mode 100644
index 00000000000..d86a08f3a1b
--- /dev/null
+++ b/pkgs/applications/radio/cqrlog/default.nix
@@ -0,0 +1,101 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fpc
+, lazarus
+, atk
+, cairo
+, gdk-pixbuf
+, glib
+, gtk2-x11
+, libX11
+, pango
+, hamlib
+, mysql57
+, tqsl
+, xdg-utils
+, xplanet
+, autoPatchelfHook
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cqrlog";
+  version = "2.5.2";
+
+  src = fetchFromGitHub {
+    owner = "ok2cqr";
+    repo = "cqrlog";
+    rev = "v${version}";
+    sha256 = "0zzcg0bl6mq4wfifj998x9x09w8sigbh46synpqx034fpr0swyhb";
+  };
+
+  # Adds the possiblity to change the lazarus directory,
+  # otherwise, we would get error : "directory lcl not found"
+  patches = [ ./fix-makefile-lazarusdir.patch ];
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace @Lazarusdir@ "${lazarus}/share/lazarus" \
+      --replace /usr ""
+    substituteInPlace src/fTRXControl.pas \
+      --replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld"
+    substituteInPlace src/fCallAttachment.pas \
+      --replace "/usr/bin/xdg-open" "${xdg-utils}/bin/xdg-open"
+    substituteInPlace src/fRotControl.pas \
+      --replace "/usr/bin/rotctld" "${hamlib}/bin/rotctld"
+    substituteInPlace src/fPreferences.pas \
+      --replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld" \
+      --replace "/usr/bin/rotctld" "${hamlib}/bin/rotctld" \
+      --replace "/usr/bin/xplanet" "${xplanet}/bin/xplanet"
+    substituteInPlace src/fLoTWExport.pas \
+      --replace "/usr/bin/tqsl" "${tqsl}/bin/tqsl"
+    substituteInPlace src/dUtils.pas \
+      --replace "/usr/bin/xplanet" "${xplanet}/bin/xplanet" \
+      --replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld"
+    # Order is important
+    substituteInPlace src/dData.pas \
+      --replace "/usr/bin/mysqld_safe" "${mysql57}/bin/mysqld_safe" \
+      --replace "/usr/bin/mysqld" "${mysql57}/bin/mysqld"
+
+    # To be fail when I need to patch a new hardcoded binary
+    ! grep -C src -RC0 "/usr"
+  '';
+
+  nativeBuildInputs = [ lazarus fpc autoPatchelfHook wrapGAppsHook ];
+  buildInputs = [
+    atk
+    cairo
+    gdk-pixbuf
+    glib
+    gtk2-x11
+    libX11
+    pango
+  ];
+  propagatedBuildInputs = [
+    hamlib
+    mysql57
+    tqsl
+    xdg-utils
+    xplanet
+  ];
+
+  makeFlags = [
+    "FPC=fpc"
+    "PP=fpc"
+    "DESTDIR=$(out)"
+  ];
+
+  postFixup = ''
+    libmysqlclient=$(find "${mysql57}/lib" -name "libmysqlclient.so.*" | tail -n1)
+    patchelf --add-needed "$libmysqlclient" "$out/bin/.cqrlog-wrapped"
+  '';
+
+  meta = with lib; {
+    description = "Linux logging program for amateur radio operators";
+    homepage = "https://www.cqrlog.com/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/radio/cqrlog/fix-makefile-lazarusdir.patch b/pkgs/applications/radio/cqrlog/fix-makefile-lazarusdir.patch
new file mode 100644
index 00000000000..9170387966a
--- /dev/null
+++ b/pkgs/applications/radio/cqrlog/fix-makefile-lazarusdir.patch
@@ -0,0 +1,13 @@
+Seulement dans b: logs
+diff --color -ur a/Makefile b/Makefile
+--- a/Makefile	2021-02-15 17:07:14.333810200 +0100
++++ b/Makefile	2021-02-15 17:19:18.599426984 +0100
+@@ -6,7 +6,7 @@
+ tmpdir   = /tmp
+ 
+ cqrlog: src/cqrlog.lpi
+-	$(CC) --ws=gtk2 --pcp=$(tmpdir)/.lazarus src/cqrlog.lpi
++	$(CC) --ws=gtk2 --pcp=$(tmpdir)/.lazarus --lazarusdir=@Lazarusdir@ src/cqrlog.lpi
+ 	$(ST) src/cqrlog
+ 	gzip tools/cqrlog.1 -c > tools/cqrlog.1.gz
+ 
diff --git a/pkgs/applications/radio/dablin/default.nix b/pkgs/applications/radio/dablin/default.nix
index e74cc551d49..a9f5fc991ff 100644
--- a/pkgs/applications/radio/dablin/default.nix
+++ b/pkgs/applications/radio/dablin/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
-, mpg123, SDL2, gnome3, faad2, pcre
+, mpg123, SDL2, gtkmm3, faad2, pcre
 } :
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ faad2 mpg123 SDL2 gnome3.gtkmm pcre ];
+  buildInputs = [ faad2 mpg123 SDL2 gtkmm3 pcre ];
 
   meta = with lib; {
     description = "Play DAB/DAB+ from ETI-NI aligned stream";
diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix
index e7da78034cc..4f8ca550490 100644
--- a/pkgs/applications/radio/direwolf/default.nix
+++ b/pkgs/applications/radio/direwolf/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, alsaLib, espeak, glibc, gpsd
-, hamlib, perl, python, udev }:
+, hamlib, perl, python3, udev }:
 
 with lib;
 
@@ -16,8 +16,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
+  strictDeps = true;
+
   buildInputs = [
-    espeak gpsd hamlib perl python
+    espeak gpsd hamlib perl python3
   ] ++ (optionals stdenv.isLinux [alsaLib udev]);
 
   patches = [
diff --git a/pkgs/applications/radio/gnss-sdr/default.nix b/pkgs/applications/radio/gnss-sdr/default.nix
index f48a21db75e..44a8ed14c2e 100644
--- a/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/pkgs/applications/radio/gnss-sdr/default.nix
@@ -1,15 +1,16 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib
+, fetchFromGitHub
 , armadillo
-, boost
 , cmake
+, gmp
 , glog
-, gmock
+, gtest
 , openssl
 , gflags
-, gnuradio
+, gnuradio3_8
+, libpcap
 , orc
 , pkg-config
-, pythonPackages
 , uhd
 , log4cpp
 , blas, lapack
@@ -18,7 +19,7 @@
 , protobuf
 }:
 
-stdenv.mkDerivation rec {
+gnuradio3_8.pkgs.mkDerivation rec {
   pname = "gnss-sdr";
   version = "0.0.13";
 
@@ -29,27 +30,32 @@ stdenv.mkDerivation rec {
     sha256 = "0a3k47fl5dizzhbqbrbmckl636lznyjby2d2nz6fz21637hvrnby";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [
+    cmake
+    gnuradio3_8.unwrapped.python
+    gnuradio3_8.unwrapped.python.pkgs.Mako
+    gnuradio3_8.unwrapped.python.pkgs.six
+  ];
+
   buildInputs = [
+    gmp
     armadillo
-    boost.dev
+    gnuradio3_8.unwrapped.boost
     glog
-    gmock
-    openssl.dev
+    gtest
+    openssl
     gflags
-    gnuradio
     orc
-    pythonPackages.Mako
-    pythonPackages.six
-
     # UHD support is optional, but gnuradio is built with it, so there's
     # nothing to be gained by leaving it out.
-    uhd
+    gnuradio3_8.unwrapped.uhd
     log4cpp
     blas lapack
     matio
     pugixml
     protobuf
+    gnuradio3_8.pkgs.osmosdr
+    libpcap
   ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/radio/gnuradio/3.7.nix b/pkgs/applications/radio/gnuradio/3.7.nix
index a48efb9aa6d..50993dd6f8e 100644
--- a/pkgs/applications/radio/gnuradio/3.7.nix
+++ b/pkgs/applications/radio/gnuradio/3.7.nix
@@ -5,6 +5,7 @@
 # Remove gcc and python references
 , removeReferencesTo
 , pkg-config
+, volk
 , cppunit
 , swig
 , orc
@@ -43,11 +44,12 @@
   minor = "14";
   patch = "0";
 }
-, fetchSubmodules ? true
+# We use our build of volk and not the one bundled with the release
+, fetchSubmodules ? false
 }:
 
 let
-  sourceSha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc";
+  sourceSha256 = "BiUDibXV/5cEYmAAaIxT4WTxF/ni4MJumF5oJ/vuOyc=";
   featuresInfo = {
     # Needed always
     basic = {
@@ -61,6 +63,9 @@ let
     };
     volk = {
       cmakeEnableFlag = "VOLK";
+      runtime = [
+        volk
+      ];
     };
     doxygen = {
       native = [ doxygen ];
@@ -213,19 +218,29 @@ let
     qt = qt4;
     gtk = gtk2;
   });
+  inherit (shared) hasFeature; # function
+in
+
+stdenv.mkDerivation rec {
+  inherit pname;
   inherit (shared)
     version
     src
-    hasFeature # function
     nativeBuildInputs
     buildInputs
     disallowedReferences
     postInstall
-    passthru
     doCheck
     dontWrapPythonPrograms
     meta
   ;
+
+  passthru = shared.passthru // {
+    # Deps that are potentially overriden and are used inside GR plugins - the same version must
+    inherit boost volk;
+  } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+    inherit uhd;
+  };
   cmakeFlags = shared.cmakeFlags
     # From some reason, if these are not set, libcodec2 and gsm are
     # not detected properly (slightly different then what's in
@@ -236,6 +251,9 @@ let
       "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
       "-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
     ]
+    ++ lib.optionals (hasFeature "volk" features && volk != null) [
+      "-DENABLE_INTERNAL_VOLK=OFF"
+    ]
   ;
   stripDebugList = shared.stripDebugList
     # gr-fcd feature was dropped in 3.8
@@ -250,15 +268,6 @@ let
     + lib.optionalString (hasFeature "gnuradio-companion" features) ''
       sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
     ''
-    # If python-support is disabled, don't install volk's (git submodule)
-    # volk_modtool - it references python.
-    #
-    # NOTE: The same is done for 3.8, but we don't put this string in
-    # ./shared.nix since on the next release of 3.8 it won't be needed there,
-    # but it will be needed for 3.7, probably for ever.
-    + lib.optionalString (!hasFeature "python-support" features) ''
-      sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
-    ''
   ;
   patches = [
     # Don't install python referencing files if python support is disabled.
@@ -272,24 +281,4 @@ let
       sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8=";
     })
   ];
-in
-
-stdenv.mkDerivation rec {
-  inherit
-    pname
-    version
-    src
-    nativeBuildInputs
-    buildInputs
-    cmakeFlags
-    preConfigure
-    # disallowedReferences
-    stripDebugList
-    patches
-    postInstall
-    passthru
-    doCheck
-    dontWrapPythonPrograms
-    meta
-  ;
 }
diff --git a/pkgs/applications/radio/gnuradio/3.8.nix b/pkgs/applications/radio/gnuradio/3.8.nix
new file mode 100644
index 00000000000..9f90d3c0353
--- /dev/null
+++ b/pkgs/applications/radio/gnuradio/3.8.nix
@@ -0,0 +1,269 @@
+{ lib, stdenv
+, fetchFromGitHub
+, cmake
+# Remove gcc and python references
+, removeReferencesTo
+, pkg-config
+, volk
+, cppunit
+, swig
+, orc
+, boost
+, log4cpp
+, mpir
+, doxygen
+, python
+, codec2
+, gsm
+, fftwFloat
+, alsaLib
+, libjack2
+, CoreAudio
+, uhd
+, SDL
+, gsl
+, cppzmq
+, zeromq
+# Needed only if qt-gui is disabled, from some reason
+, icu
+# GUI related
+, gtk3
+, pango
+, gobject-introspection
+, cairo
+, qt5
+, libsForQt5
+# Features available to override, the list of them is in featuresInfo. They
+# are all turned on by default.
+, features ? {}
+# If one wishes to use a different src or name for a very custom build
+, overrideSrc ? {}
+, pname ? "gnuradio"
+, versionAttr ? {
+  major = "3.8";
+  minor = "3";
+  patch = "0";
+}
+# We use our build of volk and not the one bundled with the release
+, fetchSubmodules ? false
+}:
+
+let
+  sourceSha256 = "0lwbj3slhc8bjjvfw7yz45if21hajydgy2vsjvj2barzmhfb37fd";
+  featuresInfo = {
+    # Needed always
+    basic = {
+      native = [
+        cmake
+        pkg-config
+        orc
+      ];
+      runtime = [
+        boost
+        log4cpp
+        mpir
+      ]
+        # when gr-qtgui is disabled, icu needs to be included, otherwise
+        # building with boost 1.7x fails
+        ++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
+      pythonNative = with python.pkgs; [
+        Mako
+        six
+      ];
+    };
+    volk = {
+      cmakeEnableFlag = "VOLK";
+      runtime = [
+        volk
+      ];
+    };
+    doxygen = {
+      native = [ doxygen ];
+      cmakeEnableFlag = "DOXYGEN";
+    };
+    sphinx = {
+      pythonNative = with python.pkgs; [ sphinx ];
+      cmakeEnableFlag = "SPHINX";
+    };
+    python-support = {
+      pythonRuntime = [ python.pkgs.six ];
+      native = [
+        swig
+        python
+      ];
+      cmakeEnableFlag = "PYTHON";
+    };
+    testing-support = {
+      native = [ cppunit ];
+      cmakeEnableFlag = "TESTING";
+    };
+    gnuradio-runtime = {
+      cmakeEnableFlag = "GNURADIO_RUNTIME";
+    };
+    gr-ctrlport = {
+      # Thrift support is not really working well, and even the patch they
+      # recommend applying on 0.9.2 won't apply. See:
+      # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
+      cmakeEnableFlag = "GR_CTRLPORT";
+      native = [
+        swig
+      ];
+    };
+    gnuradio-companion = {
+      pythonRuntime = with python.pkgs; [
+        pyyaml
+        Mako
+        numpy
+        pygobject3
+      ];
+      runtime = [
+        gtk3
+        pango
+        gobject-introspection
+        cairo
+      ];
+      cmakeEnableFlag = "GRC";
+    };
+    gr-blocks = {
+      cmakeEnableFlag = "GR_BLOCKS";
+    };
+    gr-fec = {
+      cmakeEnableFlag = "GR_FEC";
+    };
+    gr-fft = {
+      runtime = [ fftwFloat ];
+      cmakeEnableFlag = "GR_FFT";
+    };
+    gr-filter = {
+      runtime = [ fftwFloat ];
+      cmakeEnableFlag = "GR_FILTER";
+    };
+    gr-analog = {
+      cmakeEnableFlag = "GR_ANALOG";
+    };
+    gr-digital = {
+      cmakeEnableFlag = "GR_DIGITAL";
+    };
+    gr-dtv = {
+      cmakeEnableFlag = "GR_DTV";
+    };
+    gr-audio = {
+      runtime = []
+        ++ lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
+        ++ lib.optionals stdenv.isDarwin [ CoreAudio ]
+      ;
+      cmakeEnableFlag = "GR_AUDIO";
+    };
+    gr-channels = {
+      cmakeEnableFlag = "GR_CHANNELS";
+    };
+    gr-qtgui = {
+      runtime = [ qt5.qtbase libsForQt5.qwt ];
+      pythonRuntime = [ python.pkgs.pyqt5 ];
+      cmakeEnableFlag = "GR_QTGUI";
+    };
+    gr-trellis = {
+      cmakeEnableFlag = "GR_TRELLIS";
+    };
+    gr-uhd = {
+      runtime = [ uhd ];
+      cmakeEnableFlag = "GR_UHD";
+    };
+    gr-utils = {
+      cmakeEnableFlag = "GR_UTILS";
+    };
+    gr-modtool = {
+      pythonRuntime = with python.pkgs; [
+        click
+        click-plugins
+      ];
+      cmakeEnableFlag = "GR_MODTOOL";
+    };
+    gr-video-sdl = {
+      runtime = [ SDL ];
+      cmakeEnableFlag = "GR_VIDEO_SDL";
+    };
+    gr-vocoder = {
+      runtime = [ codec2 gsm ];
+      cmakeEnableFlag = "GR_VOCODER";
+    };
+    gr-wavelet = {
+      cmakeEnableFlag = "GR_WAVELET";
+      runtime = [ gsl ];
+    };
+    gr-zeromq = {
+      runtime = [ cppzmq zeromq ];
+      cmakeEnableFlag = "GR_ZEROMQ";
+    };
+  };
+  shared = (import ./shared.nix {
+    inherit
+      stdenv
+      lib
+      python
+      removeReferencesTo
+      featuresInfo
+      features
+      versionAttr
+      sourceSha256
+      overrideSrc
+      fetchFromGitHub
+      fetchSubmodules
+    ;
+    qt = qt5;
+    gtk = gtk3;
+  });
+  inherit (shared) hasFeature; # function
+in
+
+stdenv.mkDerivation rec {
+  inherit pname;
+  inherit (shared)
+    version
+    src
+    nativeBuildInputs
+    buildInputs
+    disallowedReferences
+    stripDebugList
+    doCheck
+    dontWrapPythonPrograms
+    dontWrapQtApps
+    meta
+  ;
+  passthru = shared.passthru // {
+    # Deps that are potentially overriden and are used inside GR plugins - the same version must
+    inherit boost volk;
+  } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+    inherit uhd;
+  } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+    inherit (libsForQt5) qwt;
+  };
+  cmakeFlags = shared.cmakeFlags
+    # From some reason, if these are not set, libcodec2 and gsm are not
+    # detected properly. The issue is reported upstream:
+    # https://github.com/gnuradio/gnuradio/issues/4278
+    #
+    # NOTE: qradiolink needs libcodec2 to be detected in
+    # order to build, see https://github.com/qradiolink/qradiolink/issues/67
+    ++ lib.optionals (hasFeature "gr-vocoder" features) [
+      "-DLIBCODEC2_FOUND=TRUE"
+      "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
+      "-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
+      "-DLIBCODEC2_HAS_FREEDV_API=ON"
+      "-DLIBGSM_FOUND=TRUE"
+      "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
+      "-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
+    ]
+    ++ lib.optionals (hasFeature "volk" features && volk != null) [
+      "-DENABLE_INTERNAL_VOLK=OFF"
+    ]
+  ;
+
+  postInstall = shared.postInstall
+    # This is the only python reference worth removing, if needed (3.7 doesn't
+    # set that reference).
+    + lib.optionalString (!hasFeature "python-support" features) ''
+      ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
+    ''
+  ;
+}
diff --git a/pkgs/applications/radio/gnuradio/ais.nix b/pkgs/applications/radio/gnuradio/ais.nix
deleted file mode 100644
index 8d6e8509772..00000000000
--- a/pkgs/applications/radio/gnuradio/ais.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, pkg-config
-, boost
-, gnuradio
-, makeWrapper
-, cppunit
-, gr-osmosdr
-, log4cpp
-, pythonSupport ? true
-, python
-, swig
-, fetchpatch
-}:
-
-stdenv.mkDerivation {
-  pname = "gr-ais";
-  version = "2015-12-20";
-
-  src = fetchFromGitHub {
-    owner = "bistromath";
-    repo = "gr-ais";
-    rev = "cdc1f52745853f9c739c718251830eb69704b26e";
-    sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6";
-  };
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/bistromath/gr-ais/commit/8502d0252a2a1a9b8d1a71795eaeb5d820684054.patch";
-      sha256 = "1cwalphldvf6dbhzwz1gi53z0cb4921qsvlz4138q7m6dxccvssg";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake makeWrapper pkg-config ];
-  buildInputs = [ boost gnuradio cppunit gr-osmosdr log4cpp ]
-    ++ lib.optionals pythonSupport [ python swig ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for ais";
-    homepage = "https://github.com/bistromath/gr-ais";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ mog ];
-  };
-}
diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix
index 9223f160db3..d622fef424d 100644
--- a/pkgs/applications/radio/gnuradio/default.nix
+++ b/pkgs/applications/radio/gnuradio/default.nix
@@ -5,8 +5,8 @@
 # Remove gcc and python references
 , removeReferencesTo
 , pkg-config
+, volk
 , cppunit
-, swig
 , orc
 , boost
 , log4cpp
@@ -22,8 +22,13 @@
 , uhd
 , SDL
 , gsl
+, libsodium
+, libsndfile
+, libunwind
 , cppzmq
 , zeromq
+# Needed only if qt-gui is disabled, from some reason
+, icu
 # GUI related
 , gtk3
 , pango
@@ -38,16 +43,15 @@
 , overrideSrc ? {}
 , pname ? "gnuradio"
 , versionAttr ? {
-  major = "3.8";
-  minor = "2";
+  major = "3.9";
+  minor = "1";
   patch = "0";
 }
-# Should be false on the release after 3.8.2.0
-, fetchSubmodules ? true
+, fetchSubmodules ? false
 }:
 
 let
-  sourceSha256 =  "1mnfwdy7w3160vi6110x2qkyq8l78qi8771zwak9n72bl7lhhpnf";
+  sourceSha256 = "0zydmrr3gkaqiv4jv8f42awrfzs177bqb349q34rnr6j3d32z2vp";
   featuresInfo = {
     # Needed always
     basic = {
@@ -57,32 +61,26 @@ let
         orc
       ];
       runtime = [
+        volk
         boost
         log4cpp
         mpir
-      ];
+      ]
+        # when gr-qtgui is disabled, icu needs to be included, otherwise
+        # building with boost 1.7x fails
+        ++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
       pythonNative = with python.pkgs; [
         Mako
         six
       ];
     };
-    # NOTE: Should be removed on the release after 3.8.2.0, see:
-    # https://github.com/gnuradio/gnuradio/commit/80c04479d
-    volk = {
-      cmakeEnableFlag = "VOLK";
-    };
     doxygen = {
       native = [ doxygen ];
       cmakeEnableFlag = "DOXYGEN";
     };
-    sphinx = {
-      pythonNative = with python.pkgs; [ sphinx ];
-      cmakeEnableFlag = "SPHINX";
-    };
     python-support = {
       pythonRuntime = [ python.pkgs.six ];
       native = [
-        swig
         python
       ];
       cmakeEnableFlag = "PYTHON";
@@ -91,17 +89,23 @@ let
       native = [ cppunit ];
       cmakeEnableFlag = "TESTING";
     };
+    post-install = {
+      cmakeEnableFlag = "POSTINSTALL";
+    };
     gnuradio-runtime = {
       cmakeEnableFlag = "GNURADIO_RUNTIME";
+      pythonRuntime = [
+        python.pkgs.pybind11
+      ];
     };
     gr-ctrlport = {
       # Thrift support is not really working well, and even the patch they
       # recommend applying on 0.9.2 won't apply. See:
-      # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
-      cmakeEnableFlag = "GR_CTRLPORT";
-      native = [
-        swig
+      # https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README
+      runtime = [
+        libunwind
       ];
+      cmakeEnableFlag = "GR_CTRLPORT";
     };
     gnuradio-companion = {
       pythonRuntime = with python.pkgs; [
@@ -110,11 +114,15 @@ let
         numpy
         pygobject3
       ];
+      native = [
+        python.pkgs.pytest
+      ];
       runtime = [
         gtk3
         pango
         gobject-introspection
         cairo
+        libsndfile
       ];
       cmakeEnableFlag = "GRC";
     };
@@ -160,7 +168,9 @@ let
       cmakeEnableFlag = "GR_TRELLIS";
     };
     gr-uhd = {
-      runtime = [ uhd ];
+      runtime = [
+        uhd
+      ];
       cmakeEnableFlag = "GR_UHD";
     };
     gr-utils = {
@@ -173,6 +183,9 @@ let
       ];
       cmakeEnableFlag = "GR_MODTOOL";
     };
+    gr-blocktool = {
+      cmakeEnableFlag = "GR_BLOCKTOOL";
+    };
     gr-video-sdl = {
       runtime = [ SDL ];
       cmakeEnableFlag = "GR_VIDEO_SDL";
@@ -183,12 +196,15 @@ let
     };
     gr-wavelet = {
       cmakeEnableFlag = "GR_WAVELET";
-      runtime = [ gsl ];
+      runtime = [ gsl libsodium ];
     };
     gr-zeromq = {
       runtime = [ cppzmq zeromq ];
       cmakeEnableFlag = "GR_ZEROMQ";
     };
+    gr-network = {
+      cmakeEnableFlag = "GR_NETWORK";
+    };
   };
   shared = (import ./shared.nix {
     inherit
@@ -207,82 +223,54 @@ let
     qt = qt5;
     gtk = gtk3;
   });
+  inherit (shared) hasFeature; # function
+in
+
+stdenv.mkDerivation rec {
+  inherit pname;
   inherit (shared)
     version
     src
-    hasFeature # function
     nativeBuildInputs
     buildInputs
     disallowedReferences
     stripDebugList
-    passthru
     doCheck
     dontWrapPythonPrograms
+    dontWrapQtApps
     meta
   ;
+  passthru = shared.passthru // {
+    # Deps that are potentially overriden and are used inside GR plugins - the same version must
+    inherit boost volk;
+  } // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+    inherit uhd;
+  } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+    inherit (libsForQt5) qwt;
+  };
   cmakeFlags = shared.cmakeFlags
     # From some reason, if these are not set, libcodec2 and gsm are not
-    # detected properly. NOTE: qradiolink needs libcodec2 to be detected in
-    # order to build, see https://github.com/qradiolink/qradiolink/issues/67
+    # detected properly.
     ++ lib.optionals (hasFeature "gr-vocoder" features) [
+      "-DLIBCODEC2_FOUND=TRUE"
       "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
       "-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
       "-DLIBCODEC2_HAS_FREEDV_API=ON"
+      "-DLIBGSM_FOUND=TRUE"
       "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
       "-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
     ]
   ;
 
   postInstall = shared.postInstall
-    # This is the only python reference worth removing, if needed (3.7 doesn't
-    # set that reference).
+    # This is the only python reference worth removing, if needed.
+    # Even if python support is enabled, and we don't care about this
+    # reference, pybind's path is not properly set. See:
+    # https://github.com/gnuradio/gnuradio/issues/4380
     + lib.optionalString (!hasFeature "python-support" features) ''
       ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
+      ${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime.so)
+      ${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
     ''
   ;
-  preConfigure = ""
-    # If python-support is disabled, don't install volk's (git submodule)
-    # volk_modtool - it references python.
-    #
-    # NOTE: on the next release, volk will always be required to be installed
-    # externally (submodule removed upstream). Hence this hook will fail and
-    # we'll need to package volk while able to tell it to install or not
-    # install python referencing files. When we'll be there, this will help:
-    # https://github.com/gnuradio/volk/pull/404
-    + lib.optionalString (!hasFeature "python-support" features) ''
-      sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
-    ''
-  ;
-  patches = [
-    # Don't install python referencing files if python support is disabled.
-    # See: https://github.com/gnuradio/gnuradio/pull/3839
-    (fetchpatch {
-      url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff";
-      sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q=";
-    })
-    (fetchpatch {
-      url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff";
-      sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4=";
-    })
-  ];
-in
-
-stdenv.mkDerivation rec {
-  inherit
-    pname
-    version
-    src
-    nativeBuildInputs
-    buildInputs
-    cmakeFlags
-    preConfigure
-    # disallowedReferences
-    stripDebugList
-    patches
-    postInstall
-    passthru
-    doCheck
-    dontWrapPythonPrograms
-    meta
-  ;
 }
diff --git a/pkgs/applications/radio/gnuradio/gsm.nix b/pkgs/applications/radio/gnuradio/gsm.nix
deleted file mode 100644
index 28c5045081b..00000000000
--- a/pkgs/applications/radio/gnuradio/gsm.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp
-, makeWrapper, cppunit, libosmocore, gr-osmosdr
-, pythonSupport ? true, python, swig
-}:
-
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation {
-  pname = "gr-gsm";
-  version = "2016-08-25";
-
-  src = fetchFromGitHub {
-    owner = "ptrkrysik";
-    repo = "gr-gsm";
-    rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
-    sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    boost gnuradio makeWrapper cppunit libosmocore gr-osmosdr log4cpp
-  ] ++ lib.optionals pythonSupport [ python swig ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:${gr-osmosdr}/lib/${python.libPrefix}/site-packages:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for gsm";
-    homepage = "https://github.com/ptrkrysik/gr-gsm";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ mog ];
-  };
-}
diff --git a/pkgs/applications/radio/gnuradio/limesdr.nix b/pkgs/applications/radio/gnuradio/limesdr.nix
deleted file mode 100644
index afe3de64527..00000000000
--- a/pkgs/applications/radio/gnuradio/limesdr.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio
-, pythonSupport ? true, python, swig, limesuite, log4cpp
-} :
-
-assert pythonSupport -> python != null && swig != null;
-
-let
-  version = "2.0.0";
-
-in stdenv.mkDerivation {
-  pname = "gr-limesdr";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "myriadrf";
-    repo = "gr-limesdr";
-    rev = "v${version}";
-    sha256 = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ] ++ lib.optionals pythonSupport [ swig ];
-
-  buildInputs = [
-    boost gnuradio limesuite log4cpp
-  ] ++ lib.optionals pythonSupport [ python ];
-
-
-  meta = with lib; {
-    description = "Gnuradio source and sink blocks for LimeSDR";
-    homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.markuskowa ];
-  };
-}
diff --git a/pkgs/applications/radio/gnuradio/nacl.nix b/pkgs/applications/radio/gnuradio/nacl.nix
deleted file mode 100644
index f6c21e79454..00000000000
--- a/pkgs/applications/radio/gnuradio/nacl.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, uhd
-, makeWrapper, libsodium, cppunit, log4cpp
-, pythonSupport ? true, python, swig
-}:
-
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation {
-  pname = "gr-nacl";
-  version = "2017-04-10";
-
-  src = fetchFromGitHub {
-    owner = "stwunsch";
-    repo = "gr-nacl";
-    rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765";
-    sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    boost gnuradio uhd makeWrapper libsodium cppunit log4cpp
-  ] ++ lib.optionals pythonSupport [ python swig ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for encryption";
-    homepage = "https://github.com/stwunsch/gr-nacl";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ mog ];
-  };
-}
diff --git a/pkgs/applications/radio/gnuradio/osmosdr.nix b/pkgs/applications/radio/gnuradio/osmosdr.nix
deleted file mode 100644
index 436c4309a5b..00000000000
--- a/pkgs/applications/radio/gnuradio/osmosdr.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, stdenv, fetchgit, cmake, pkg-config, makeWrapper
-, boost
-, pythonSupport ? true, python, swig
-, airspy
-, gnuradio
-, hackrf
-, libbladeRF
-, rtl-sdr
-, soapysdr-with-plugins
-, uhd
-, log4cpp
-}:
-
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation rec {
-  pname = "gr-osmosdr";
-  version = "0.1.5";
-
-  src = fetchgit {
-    url = "git://git.osmocom.org/gr-osmosdr";
-    rev = "v${version}";
-    sha256 = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
-  };
-
-  nativeBuildInputs = [ cmake makeWrapper pkg-config ];
-  buildInputs = [
-    boost log4cpp airspy gnuradio hackrf libbladeRF rtl-sdr uhd
-  ] ++ lib.optionals stdenv.isLinux [ soapysdr-with-plugins ]
-    ++ lib.optionals pythonSupport [ python swig python.pkgs.cheetah ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for OsmoSDR and rtl-sdr";
-    homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ bjornfor ];
-  };
-}
diff --git a/pkgs/applications/radio/gnuradio/rds.nix b/pkgs/applications/radio/gnuradio/rds.nix
deleted file mode 100644
index 4f15f2a961e..00000000000
--- a/pkgs/applications/radio/gnuradio/rds.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp
-, makeWrapper, pythonSupport ? true, python, swig
-}:
-
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation rec {
-  pname = "gr-rds";
-  version = "1.1.0";
-
-  src = fetchFromGitHub {
-    owner = "bastibl";
-    repo = "gr-rds";
-    rev = "v${version}";
-    sha256 = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [
-    boost gnuradio makeWrapper log4cpp
-  ] ++ lib.optionals pythonSupport [ python swig ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-    done
-  '';
-
-  meta = with lib; {
-    description = "Gnuradio block for radio data system";
-    homepage = "https://github.com/bastibl/gr-rds";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ mog ];
-  };
-}
diff --git a/pkgs/applications/radio/gnuradio/shared.nix b/pkgs/applications/radio/gnuradio/shared.nix
index 1d5d84f4649..f8ea2f0b160 100644
--- a/pkgs/applications/radio/gnuradio/shared.nix
+++ b/pkgs/applications/radio/gnuradio/shared.nix
@@ -85,9 +85,6 @@ rec {
   ;
   postInstall = ""
     # Gcc references
-    + lib.optionalString (hasFeature "volk" features) ''
-      ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so)
-    ''
     + lib.optionalString (hasFeature "gnuradio-runtime" features) ''
       ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so)
     ''
@@ -103,12 +100,15 @@ rec {
       features
       featuresInfo
       python
-      qt
-      gtk
     ;
+  } // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+    inherit qt;
+  } // lib.optionalAttrs (hasFeature "gnuradio-companion" features) {
+    inherit gtk;
   };
   # Wrapping is done with an external wrapper
   dontWrapPythonPrograms = true;
+  dontWrapQtApps = true;
   # Tests should succeed, but it's hard to get LD_LIBRARY_PATH right in order
   # for it to happen.
   doCheck = false;
diff --git a/pkgs/applications/radio/gnuradio/wrapper.nix b/pkgs/applications/radio/gnuradio/wrapper.nix
index aaf74abc2c5..d255b199bc9 100644
--- a/pkgs/applications/radio/gnuradio/wrapper.nix
+++ b/pkgs/applications/radio/gnuradio/wrapper.nix
@@ -1,9 +1,16 @@
 { lib
 , stdenv
+# The unwrapped gnuradio derivation
 , unwrapped
+# If it's a minimal build, we don't want to wrap it with lndir and
+# wrapProgram..
+, wrap ? true
+# For the wrapper
 , makeWrapper
 # For lndir
 , xorg
+# To define a the gnuradio.pkgs scope
+, newScope
 # For Emulating wrapGAppsHook
 , gsettings-desktop-schemas
 , glib
@@ -37,12 +44,16 @@ let
           []
       )
       ) unwrapped.featuresInfo)
-    ++ lib.optionals (unwrapped.hasFeature "python-support" unwrapped.features) [
-      # Add unwrapped itself as a python module
-      (unwrapped.python.pkgs.toPythonModule unwrapped)
-    ]
+    ++ lib.optionals
+      (unwrapped.hasFeature "python-support" unwrapped.features)
+      (
+        # Add unwrapped itself as a python module
+        [ (unwrapped.python.pkgs.toPythonModule unwrapped) ]
+        # Add all extraPackages as python modules
+        ++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
+      )
   ;
-  python3Env = unwrapped.python.withPackages(ps: pythonPkgs);
+  pythonEnv = unwrapped.python.withPackages(ps: pythonPkgs);
 
   name = (lib.appendToName "wrapped" unwrapped).name;
   makeWrapperArgs = builtins.concatStringsSep " " ([
@@ -88,48 +99,84 @@ let
       (if unwrapped.versionAttr.major == "3.8" then
         [
           "--prefix" "QT_PLUGIN_PATH" ":"
-          "${lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtPluginPrefix}"
+          "${
+            lib.makeSearchPath
+            unwrapped.qt.qtbase.qtPluginPrefix
+            (builtins.map lib.getBin [
+              unwrapped.qt.qtbase
+              unwrapped.qt.qtwayland
+            ])
+          }"
           "--prefix" "QML2_IMPORT_PATH" ":"
-          "${lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtQmlPrefix}"
+          "${
+            lib.makeSearchPath
+            unwrapped.qt.qtbase.qtQmlPrefix
+            (builtins.map lib.getBin [
+              unwrapped.qt.qtbase
+              unwrapped.qt.qtwayland
+            ])
+          }"
         ]
       else
-        # TODO: Add here qt4 related environment for 3.7?
+        # Add here qt4 related environment for 3.7?
         [
 
         ]
       )
     ++ extraMakeWrapperArgs
   );
-in
-stdenv.mkDerivation {
-  inherit name;
 
-  buildInputs = [
-    makeWrapper
-    xorg.lndir
-  ];
-
-  passthru = {
-    inherit python3Env pythonPkgs unwrapped;
+  packages = import ../../../top-level/gnuradio-packages.nix {
+    inherit lib stdenv newScope;
+    gnuradio = unwrapped;
   };
-
-  buildCommand = ''
-    mkdir $out
-    cd $out
-    lndir -silent ${unwrapped}
-    for i in $out/bin/*; do
-      if [[ ! -x "$i" ]]; then
-        continue
-      fi
-      cp -L "$i" "$i".tmp
-      mv -f "$i".tmp "$i"
-      if head -1 "$i" | grep -q ${unwrapped.python}; then
-        substituteInPlace "$i" \
-          --replace ${unwrapped.python} ${python3Env}
-      fi
-      wrapProgram "$i" ${makeWrapperArgs}
-    done
-  '';
-
-  inherit (unwrapped) meta;
-}
+  passthru = unwrapped.passthru // {
+    inherit
+      pythonEnv
+      pythonPkgs
+      unwrapped
+    ;
+    pkgs = packages;
+  };
+  self = if wrap then
+    stdenv.mkDerivation {
+      inherit name passthru;
+      buildInputs = [
+        makeWrapper
+        xorg.lndir
+      ];
+      buildCommand = ''
+        mkdir $out
+        cd $out
+        lndir -silent ${unwrapped}
+        ${lib.optionalString
+          (extraPackages != [])
+          (builtins.concatStringsSep "\n"
+            (builtins.map (pkg: ''
+              if [[ -d ${lib.getBin pkg}/bin/ ]]; then
+                lndir -silent ${pkg}/bin ./bin
+              fi
+            '') extraPackages)
+          )
+        }
+        for i in $out/bin/*; do
+          if [[ ! -x "$i" ]]; then
+            continue
+          fi
+          cp -L "$i" "$i".tmp
+          mv -f "$i".tmp "$i"
+          if head -1 "$i" | grep -q ${unwrapped.python}; then
+            substituteInPlace "$i" \
+              --replace ${unwrapped.python} ${pythonEnv}
+          fi
+          wrapProgram "$i" ${makeWrapperArgs}
+        done
+      '';
+      inherit (unwrapped) meta;
+    }
+  else
+    unwrapped.overrideAttrs(_: {
+      inherit passthru;
+    })
+  ;
+in self
diff --git a/pkgs/applications/radio/gqrx/default.nix b/pkgs/applications/radio/gqrx/default.nix
index 217818f67c2..cccdff1f3cc 100644
--- a/pkgs/applications/radio/gqrx/default.nix
+++ b/pkgs/applications/radio/gqrx/default.nix
@@ -1,13 +1,23 @@
-{ lib, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gr-osmosdr
-, mkDerivation
+{ lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qt5
+, gnuradio3_8Minimal
+, log4cpp
+, mpir
+, fftwFloat
+, alsaLib
+, libjack2
 # drivers (optional):
-, rtl-sdr, hackrf
+, rtl-sdr
+, hackrf
 , pulseaudioSupport ? true, libpulseaudio
 }:
 
 assert pulseaudioSupport -> libpulseaudio != null;
 
-mkDerivation rec {
+gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "gqrx";
   version = "2.14.4";
 
@@ -18,9 +28,23 @@ mkDerivation rec {
     sha256 = "sha256-mMaxu0jq2GaNLWjLsJQXx+zCxtyiCAZQJJZ8GJtnllQ=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qt5.wrapQtAppsHook
+  ];
   buildInputs = [
-    qtbase qtsvg gnuradio boost gr-osmosdr rtl-sdr hackrf
+    log4cpp
+    mpir
+    fftwFloat
+    alsaLib
+    libjack2
+    gnuradio3_8Minimal.unwrapped.boost
+    qt5.qtbase
+    qt5.qtsvg
+    gnuradio3_8Minimal.pkgs.osmosdr
+    rtl-sdr
+    hackrf
   ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
 
   postInstall = ''
diff --git a/pkgs/applications/radio/inspectrum/default.nix b/pkgs/applications/radio/inspectrum/default.nix
index 37131a686b5..9d61ab4b601 100644
--- a/pkgs/applications/radio/inspectrum/default.nix
+++ b/pkgs/applications/radio/inspectrum/default.nix
@@ -1,17 +1,14 @@
 { lib
-, mkDerivation
+, gnuradio3_8Minimal
 , fetchFromGitHub
 , pkg-config
 , cmake
-, boost
 , fftwFloat
-, gnuradio
+, qt5
 , liquid-dsp
-, qtbase
-, wrapQtAppsHook
 }:
 
-mkDerivation rec {
+gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "inspectrum";
   version = "0.2.3";
 
@@ -22,13 +19,15 @@ mkDerivation rec {
     sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355";
   };
 
-  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
+  nativeBuildInputs = [
+    cmake
+    qt5.wrapQtAppsHook
+    pkg-config
+  ];
   buildInputs = [
     fftwFloat
-    boost
-    gnuradio
     liquid-dsp
-    qtbase
+    qt5.qtbase
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/radio/pothos/default.nix b/pkgs/applications/radio/pothos/default.nix
new file mode 100644
index 00000000000..64f5093c4b9
--- /dev/null
+++ b/pkgs/applications/radio/pothos/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, doxygen
+, wrapQtAppsHook
+, pcre
+, poco
+, qtbase
+, qtsvg
+, libsForQt5
+, nlohmann_json
+, soapysdr-with-plugins
+, portaudio
+, alsaLib
+, muparserx
+, python3
+}:
+
+mkDerivation rec {
+  pname = "pothos";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "pothosware";
+    repo = "PothosCore";
+    rev = "pothos-${version}";
+    sha256 = "038c3ipvf4sgj0zhm3vcj07ymsva4ds6v89y43f5d3p4n8zc2rsg";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # spuce's CMakeLists.txt uses QT5_USE_Modules, which does not seem to work on Nix
+    ./spuce.patch
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config doxygen wrapQtAppsHook ];
+
+  buildInputs = [
+    pcre poco qtbase qtsvg libsForQt5.qwt nlohmann_json
+    soapysdr-with-plugins portaudio alsaLib muparserx python3
+  ];
+
+  postInstall = ''
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow.desktop $out/share/applications/pothos-flow.desktop
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-16.png $out/share/icons/hicolor/16x16/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-22.png $out/share/icons/hicolor/22x22/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-32.png $out/share/icons/hicolor/32x32/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-48.png $out/share/icons/hicolor/48x48/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-64.png $out/share/icons/hicolor/64x64/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow-128.png $out/share/icons/hicolor/128x128/apps/pothos-flow.png
+    install -Dm644 $out/share/Pothos/Desktop/pothos-flow.xml $out/share/mime/application/pothos-flow.xml
+    rm -r $out/share/Pothos/Desktop
+  '';
+
+  dontWrapQtApps = true;
+  preFixup = ''
+    # PothosUtil does not need to be wrapped
+    wrapQtApp $out/bin/PothosFlow
+    wrapQtApp $out/bin/spuce_fir_plot
+    wrapQtApp $out/bin/spuce_iir_plot
+    wrapQtApp $out/bin/spuce_other_plot
+    wrapQtApp $out/bin/spuce_window_plot
+  '';
+
+  meta = with lib; {
+    description = "The Pothos data-flow framework";
+    homepage = "https://github.com/pothosware/PothosCore/wiki";
+    license = licenses.boost;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/pkgs/applications/radio/pothos/spuce.patch b/pkgs/applications/radio/pothos/spuce.patch
new file mode 100644
index 00000000000..ed0377540a8
--- /dev/null
+++ b/pkgs/applications/radio/pothos/spuce.patch
@@ -0,0 +1,101 @@
+diff --git a/spuce/qt_fir/CMakeLists.txt b/spuce/qt_fir/CMakeLists.txt
+index fa2e580..e32113c 100644
+--- a/spuce/qt_fir/CMakeLists.txt
++++ b/spuce/qt_fir/CMakeLists.txt
+@@ -6,7 +6,7 @@ Message("Project spuce fir_plot")
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_AUTOMOC ON)
+ 
+-FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets)
++FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets PrintSupport)
+ 
+ set(SOURCES
+ 	make_filter.cpp 
+@@ -27,11 +27,7 @@ set_property(TARGET spuce_fir PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ set_property(TARGET spuce_fir_plot PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ set_property(TARGET spuce_fir_plot PROPERTY CXX_STANDARD 11)
+ 
+-TARGET_LINK_LIBRARIES(spuce_fir_plot spuce_fir ${QT_LIBRARIES} spuce)
+-QT5_USE_Modules(spuce_fir_plot Gui)
+-QT5_USE_Modules(spuce_fir_plot Core)
+-QT5_USE_Modules(spuce_fir_plot Widgets)
+-QT5_USE_Modules(spuce_fir_plot PrintSupport)
++TARGET_LINK_LIBRARIES(spuce_fir_plot spuce_fir ${QT_LIBRARIES} spuce Qt::Gui Qt::Core Qt::Widgets Qt::PrintSupport)
+ 
+ INSTALL(TARGETS spuce_fir_plot DESTINATION bin)
+ 
+diff --git a/spuce/qt_iir/CMakeLists.txt b/spuce/qt_iir/CMakeLists.txt
+index 4717226..debb5f9 100644
+--- a/spuce/qt_iir/CMakeLists.txt
++++ b/spuce/qt_iir/CMakeLists.txt
+@@ -6,7 +6,7 @@ Message("Project spuce iir_plot")
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_AUTOMOC ON)
+ 
+-FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets)
++FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets PrintSupport)
+ 
+ set(SOURCES
+ 	make_filter.cpp 	
+@@ -27,10 +27,6 @@ set_property(TARGET spuce_iir PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ set_property(TARGET spuce_iir_plot PROPERTY CXX_STANDARD 11)
+ set_property(TARGET spuce_iir_plot PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ 
+-TARGET_LINK_LIBRARIES(spuce_iir_plot spuce_iir ${QT_LIBRARIES} spuce)
+-QT5_USE_Modules(spuce_iir_plot Gui)
+-QT5_USE_Modules(spuce_iir_plot Core)
+-QT5_USE_Modules(spuce_iir_plot Widgets)
+-QT5_USE_Modules(spuce_iir_plot PrintSupport)
++TARGET_LINK_LIBRARIES(spuce_iir_plot spuce_iir ${QT_LIBRARIES} spuce Qt::Gui Qt::Core Qt::Widgets Qt::PrintSupport)
+ 
+ INSTALL(TARGETS spuce_iir_plot DESTINATION bin)
+diff --git a/spuce/qt_other/CMakeLists.txt b/spuce/qt_other/CMakeLists.txt
+index 29c270d..e1ed778 100644
+--- a/spuce/qt_other/CMakeLists.txt
++++ b/spuce/qt_other/CMakeLists.txt
+@@ -6,7 +6,7 @@ Message("Project spuce window_plot")
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_AUTOMOC ON)
+ 
+-FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets)
++FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets PrintSupport)
+ 
+ set(SOURCES	make_filter.cpp)
+ ADD_LIBRARY(spuce_other STATIC ${SOURCES})
+@@ -23,10 +23,6 @@ ADD_EXECUTABLE(spuce_other_plot ${other_plot_SOURCES} ${other_plot_HEADERS_MOC})
+ set_property(TARGET spuce_other_plot PROPERTY CXX_STANDARD 11)
+ set_property(TARGET spuce_other_plot PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ 
+-TARGET_LINK_LIBRARIES(spuce_other_plot spuce_other ${QT_LIBRARIES} spuce)
+-QT5_USE_Modules(spuce_other_plot Gui)
+-QT5_USE_Modules(spuce_other_plot Core)
+-QT5_USE_Modules(spuce_other_plot Widgets)
+-QT5_USE_Modules(spuce_other_plot PrintSupport)
++TARGET_LINK_LIBRARIES(spuce_other_plot spuce_other ${QT_LIBRARIES} spuce Qt::Gui Qt::Core Qt::Widgets Qt::PrintSupport)
+ 
+ INSTALL(TARGETS spuce_other_plot DESTINATION bin)
+diff --git a/spuce/qt_window/CMakeLists.txt b/spuce/qt_window/CMakeLists.txt
+index e95c85b..4a77ab8 100644
+--- a/spuce/qt_window/CMakeLists.txt
++++ b/spuce/qt_window/CMakeLists.txt
+@@ -6,7 +6,7 @@ Message("Project spuce window_plot")
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_AUTOMOC ON)
+ 
+-FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets)
++FIND_PACKAGE(Qt5 REQUIRED Gui Core Widgets PrintSupport)
+ 
+ set(SOURCES	make_filter.cpp)
+ 
+@@ -25,10 +25,6 @@ set_property(TARGET spuce_window_plot PROPERTY CXX_STANDARD 11)
+ set_property(TARGET spuce_win PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ set_property(TARGET spuce_window_plot PROPERTY POSITION_INDEPENDENT_CODE TRUE)
+ 
+-TARGET_LINK_LIBRARIES(spuce_window_plot spuce_win ${QT_LIBRARIES} spuce)
+-QT5_USE_Modules(spuce_window_plot Gui)
+-QT5_USE_Modules(spuce_window_plot Core)
+-QT5_USE_Modules(spuce_window_plot Widgets)
+-QT5_USE_Modules(spuce_window_plot PrintSupport)
++TARGET_LINK_LIBRARIES(spuce_window_plot spuce_win ${QT_LIBRARIES} spuce Qt::Gui Qt::Core Qt::Widgets Qt::PrintSupport)
+ 
+ INSTALL(TARGETS spuce_window_plot DESTINATION bin)
diff --git a/pkgs/applications/radio/qradiolink/default.nix b/pkgs/applications/radio/qradiolink/default.nix
index 24c5f987f17..2dbd9f1aba9 100644
--- a/pkgs/applications/radio/qradiolink/default.nix
+++ b/pkgs/applications/radio/qradiolink/default.nix
@@ -1,51 +1,71 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib, boost
-, qt4, libpulseaudio, codec2, libconfig
-, gnuradio, gr-osmosdr, gsm
-, libopus, libjpeg, protobuf, qwt, speex
-} :
+{ lib
+, fetchFromGitHub
+, libpulseaudio
+, libconfig
+# Needs a gnuradio built with qt gui support
+, gnuradio3_8
+# Not gnuradioPackages'
+, codec2
+, log4cpp
+, gmp
+, gsm
+, libopus
+, libjpeg
+, libsndfile
+, libftdi
+, protobuf
+, speex
+, speexdsp
+}:
 
-let
-  version = "0.5.0";
-
-in stdenv.mkDerivation {
+gnuradio3_8.pkgs.mkDerivation rec {
   pname = "qradiolink";
-  inherit version;
+  version = "0.8.5-2";
 
   src = fetchFromGitHub {
-    owner = "kantooon";
+    owner = "qradiolink";
     repo = "qradiolink";
     rev = version;
-    sha256 = "0xhg5zhjznmls5m3rhpk1qx0dipxmca12s85w15d0i7qwva2f1gi";
+    sha256 = "MgHfKR3AJW3pIN9oCBr4BWxk1fGSCpLmMzjxvuTmuFA=";
   };
 
   preBuild = ''
-    cd ext
+    cd src/ext
     protoc --cpp_out=. Mumble.proto
     protoc --cpp_out=. QRadioLink.proto
-    cd ..
+    cd ../..
     qmake
   '';
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp qradiolink $out/bin
+    install -D qradiolink $out/bin/qradiolink
+    install -Dm644 src/res/icon.png $out/share/pixmaps/qradiolink.png
+    install -Dm644 qradiolink.desktop $out/share/applications/qradiolink.desktop
   '';
 
   buildInputs = [
-    qt4
-    alsaLib
-    boost
-    libpulseaudio
+    gnuradio3_8.unwrapped.boost
     codec2
+    log4cpp
+    gmp
+    libpulseaudio
     libconfig
     gsm
-    gnuradio
-    gr-osmosdr
+    gnuradio3_8.pkgs.osmosdr
     libopus
     libjpeg
-    protobuf
     speex
-    qwt
+    speexdsp
+    gnuradio3_8.qt.qtbase
+    gnuradio3_8.qt.qtmultimedia
+    libftdi
+    libsndfile
+    gnuradio3_8.qwt
+  ];
+  nativeBuildInputs = [
+    protobuf
+    gnuradio3_8.qt.qmake
+    gnuradio3_8.qt.wrapQtAppsHook
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/radio/svxlink/default.nix b/pkgs/applications/radio/svxlink/default.nix
index 19e635da5ac..d6a82049a23 100644
--- a/pkgs/applications/radio/svxlink/default.nix
+++ b/pkgs/applications/radio/svxlink/default.nix
@@ -14,13 +14,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "svxlink";
-  version = "19.09.1";
+  version = "19.09.2";
 
   src = fetchFromGitHub {
     owner = "sm0svx";
     repo = pname;
     rev = version;
-    sha256 = "0xmbac821w9kl7imlz0mra19mlhi0rlpbyyay26w1y7h98j4g4yp";
+    sha256 = "sha256-riyFEuEmJ7+jYT3UoTTsMUwFdO3y5mjo4z0fcC3O8gY=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/radio/ubertooth/default.nix b/pkgs/applications/radio/ubertooth/default.nix
new file mode 100644
index 00000000000..2f6eed575b4
--- /dev/null
+++ b/pkgs/applications/radio/ubertooth/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, libbtbb, libpcap , libusb1, bluez
+, udevGroup ? "ubertooth"
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ubertooth";
+  version = "2020-12-R1";
+
+  src = fetchFromGitHub {
+    owner = "greatscottgadgets";
+    repo = pname;
+    rev = version;
+    sha256 = "11r5ag2l5xn4pr7ycicm30w9c3ldn9yiqj1sqnjc79csxl2vrcfw";
+  };
+
+  sourceRoot = "source/host";
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libbtbb libpcap libusb1 bluez ];
+
+  cmakeFlags = lib.optionals stdenv.isLinux [
+    "-DINSTALL_UDEV_RULES=TRUE"
+    "-DUDEV_RULES_PATH=etc/udev/rules.d"
+    "-DUDEV_RULES_GROUP=${udevGroup}"
+  ];
+
+  meta = with lib; {
+    description = "Open source wireless development platform suitable for Bluetooth experimentation";
+    homepage = "https://github.com/greatscottgadgets/ubertooth";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ oxzi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/radio/uhd/3.5.nix b/pkgs/applications/radio/uhd/3.5.nix
new file mode 100644
index 00000000000..d913927a7b9
--- /dev/null
+++ b/pkgs/applications/radio/uhd/3.5.nix
@@ -0,0 +1,159 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchFromGitHub
+, cmake
+, pkg-config
+# See https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html for dependencies explanations
+, boost
+, enableLibuhd_C_api ? true
+# requires numpy
+, enableLibuhd_Python_api ? false
+, python3
+, enableExamples ? false
+, enableUtils ? false
+, enableLiberio ? false
+, liberio
+, libusb1
+, enableDpdk ? false
+, dpdk
+# Devices
+, enableOctoClock ? true
+, enableMpmd ? true
+, enableB100 ? true
+, enableB200 ? true
+, enableUsrp1 ? true
+, enableUsrp2 ? true
+, enableX300 ? true
+, enableN230 ? true
+, enableN300 ? true
+, enableN320 ? true
+, enableE300 ? true
+, enableE320 ? true
+}:
+
+let
+  onOffBool = b: if b then "ON" else "OFF";
+  inherit (lib) optionals;
+in
+
+stdenv.mkDerivation rec {
+  pname = "uhd";
+  # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
+  # and xxx.yyy.zzz. Hrmpf... style keeps changing
+  version = "3.15.0.0";
+
+  src = fetchFromGitHub {
+    owner = "EttusResearch";
+    repo = "uhd";
+    rev = "v${version}";
+    sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf";
+  };
+  # Firmware images are downloaded (pre-built) from the respective release on Github
+  uhdImagesSrc = fetchurl {
+    url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
+    sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp";
+  };
+
+  cmakeFlags = [
+    "-DENABLE_LIBUHD=ON"
+    "-DENABLE_USB=ON"
+    "-DENABLE_TESTS=ON" # This installs tests as well so we delete them via postPhases
+    "-DENABLE_EXAMPLES=${onOffBool enableExamples}"
+    "-DENABLE_UTILS=${onOffBool enableUtils}"
+    "-DENABLE_LIBUHD_C_API=${onOffBool enableLibuhd_C_api}"
+    "-DENABLE_LIBUHD_PYTHON_API=${onOffBool enableLibuhd_Python_api}"
+    "-DENABLE_LIBERIO=${onOffBool enableLiberio}"
+    "-DENABLE_DPDK=${onOffBool enableDpdk}"
+    # Devices
+    "-DENABLE_OCTOCLOCK=${onOffBool enableOctoClock}"
+    "-DENABLE_MPMD=${onOffBool enableMpmd}"
+    "-DENABLE_B100=${onOffBool enableB100}"
+    "-DENABLE_B200=${onOffBool enableB200}"
+    "-DENABLE_USRP1=${onOffBool enableUsrp1}"
+    "-DENABLE_USRP2=${onOffBool enableUsrp2}"
+    "-DENABLE_X300=${onOffBool enableX300}"
+    "-DENABLE_N230=${onOffBool enableN230}"
+    "-DENABLE_N300=${onOffBool enableN300}"
+    "-DENABLE_N320=${onOffBool enableN320}"
+    "-DENABLE_E300=${onOffBool enableE300}"
+    "-DENABLE_E320=${onOffBool enableE320}"
+  ]
+    # TODO: Check if this still needed
+    # ABI differences GCC 7.1
+    # /nix/store/wd6r25miqbk9ia53pp669gn4wrg9n9cj-gcc-7.3.0/include/c++/7.3.0/bits/vector.tcc:394:7: note: parameter passing for argument of type 'std::vector<uhd::range_t>::iterator {aka __gnu_cxx::__normal_iterator<uhd::range_t*, std::vector<uhd::range_t> >}' changed in GCC 7.1
+    ++ [ (lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ]
+  ;
+
+  # Python + Mako are always required for the build itself but not necessary for runtime.
+  pythonEnv = python3.withPackages (ps: with ps; [ Mako ]
+    ++ optionals (enableLibuhd_Python_api) [ numpy setuptools ]
+    ++ optionals (enableUtils) [ requests six ]
+  );
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ]
+    # If both enableLibuhd_Python_api and enableUtils are off, we don't need
+    # pythonEnv in buildInputs as it's a 'build' dependency and not a runtime
+    # dependency
+    ++ optionals (!enableLibuhd_Python_api && !enableUtils) [ pythonEnv ]
+  ;
+  buildInputs = [
+    boost
+    libusb1
+  ]
+    # However, if enableLibuhd_Python_api *or* enableUtils is on, we need
+    # pythonEnv for runtime as well. The utilities' runtime dependencies are
+    # handled at the environment
+    ++ optionals (enableLibuhd_Python_api || enableUtils) [ pythonEnv ]
+    ++ optionals (enableLiberio) [ liberio ]
+    ++ optionals (enableDpdk) [ dpdk ]
+  ;
+
+  doCheck = true;
+
+  # Build only the host software
+  preConfigure = "cd host";
+  # TODO: Check if this still needed, perhaps relevant:
+  # https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html#build_instructions_unix_arm
+  patches = if stdenv.isAarch32 then ./neon.patch else null;
+
+  postPhases = [ "installFirmware" "removeInstalledTests" ]
+    ++ optionals (enableUtils) [ "moveUdevRules" ]
+  ;
+
+  # UHD expects images in `$CMAKE_INSTALL_PREFIX/share/uhd/images`
+  installFirmware = ''
+    mkdir -p "$out/share/uhd/images"
+    tar --strip-components=1 -xvf "${uhdImagesSrc}" -C "$out/share/uhd/images"
+  '';
+
+  # -DENABLE_TESTS=ON installs the tests, we don't need them in the output
+  removeInstalledTests = ''
+    rm -r $out/lib/uhd/tests
+  '';
+
+  # Moves the udev rules to the standard location, needed only if utils are
+  # enabled
+  moveUdevRules = ''
+    mkdir -p $out/lib/udev/rules.d
+    mv $out/lib/uhd/utils/uhd-usrp.rules $out/lib/udev/rules.d/
+  '';
+
+  meta = with lib; {
+    description = "USRP Hardware Driver (for Software Defined Radio)";
+    longDescription = ''
+      The USRP Hardware Driver (UHD) software is the hardware driver for all
+      USRP (Universal Software Radio Peripheral) devices.
+
+      USRP devices are designed and sold by Ettus Research, LLC and its parent
+      company, National Instruments.
+    '';
+    homepage = "https://uhd.ettus.com/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ bjornfor fpletz tomberek ];
+  };
+}
diff --git a/pkgs/applications/radio/uhd/default.nix b/pkgs/applications/radio/uhd/default.nix
index bafb2f637df..9f2f39aab2c 100644
--- a/pkgs/applications/radio/uhd/default.nix
+++ b/pkgs/applications/radio/uhd/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , fetchFromGitHub
 , cmake
@@ -8,14 +9,14 @@
 , enableLibuhd_C_api ? true
 # requires numpy
 , enableLibuhd_Python_api ? false
-, python3 ? null
+, python3
 , enableExamples ? false
 , enableUtils ? false
 , enableLiberio ? false
-, liberio ? null
-, libusb1 ? null
+, liberio
+, libusb1
 , enableDpdk ? false
-, dpdk ? null
+, dpdk
 # Devices
 , enableOctoClock ? true
 , enableMpmd ? true
@@ -40,18 +41,18 @@ stdenv.mkDerivation rec {
   pname = "uhd";
   # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
   # and xxx.yyy.zzz. Hrmpf... style keeps changing
-  version = "3.15.0.0";
+  version = "4.0.0.0";
 
   src = fetchFromGitHub {
     owner = "EttusResearch";
     repo = "uhd";
     rev = "v${version}";
-    sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf";
+    sha256 = "NCyiI4pIPw0nBRFdUGpgZ/x2mWz+Qm78ZGACUnSbGSs=";
   };
   # Firmware images are downloaded (pre-built) from the respective release on Github
   uhdImagesSrc = fetchurl {
     url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
-    sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp";
+    sha256 = "Xfx0bsHUQ5+Dp+xk0sVWWP83oyXQcUH5AX4PNEE7fY4=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/radio/unixcw/default.nix b/pkgs/applications/radio/unixcw/default.nix
index 5e299cc5984..cdb84670c61 100644
--- a/pkgs/applications/radio/unixcw/default.nix
+++ b/pkgs/applications/radio/unixcw/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
   buildInputs = [libpulseaudio alsaLib pkg-config qt5.qtbase];
   CFLAGS   ="-lasound -lpulse-simple";
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "sound characters as Morse code on the soundcard or console speaker";
     longDescription = ''
diff --git a/pkgs/applications/radio/xlog/default.nix b/pkgs/applications/radio/xlog/default.nix
index eb57048c5c2..a013fe41d83 100644
--- a/pkgs/applications/radio/xlog/default.nix
+++ b/pkgs/applications/radio/xlog/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, glib, gtk2, pkg-config, hamlib }:
 stdenv.mkDerivation rec {
   pname = "xlog";
-  version = "2.0.19";
+  version = "2.0.20";
 
   src = fetchurl {
     url = "https://download.savannah.gnu.org/releases/xlog/${pname}-${version}.tar.gz";
-    sha256 = "0y38gkcm4mgv6wn31pjq6d5bm22m63rpwa55qjmrlywrmw76rppy";
+    sha256 = "sha256-pSGmKLHGc+Eb9OG27k1rYOMn/2BiRejrBajARjEgsUA=";
   };
 
   # glib-2.62 deprecations
diff --git a/pkgs/applications/science/astronomy/kstars/default.nix b/pkgs/applications/science/astronomy/kstars/default.nix
index 33f00979c97..cd7405ae09d 100644
--- a/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/pkgs/applications/science/astronomy/kstars/default.nix
@@ -9,16 +9,16 @@
 
   eigen, zlib,
 
-  cfitsio, indilib, xplanet, libnova, libraw, gsl, wcslib, stellarsolver
+  cfitsio, indi-full, xplanet, libnova, libraw, gsl, wcslib, stellarsolver
 }:
 
 mkDerivation rec {
   pname = "kstars";
-  version = "3.5.1";
+  version = "3.5.2";
 
   src = fetchurl {
     url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
-    sha256 = "sha256-gf+yaXiYQFuO1/nvdP6OOuD4QrRtPAQTwQZAbYNKxUU=";
+    sha256 = "sha256-iX7rMQbctdK3AeH4ZvH+T4rv1ZHwn55urJh150KoXXU=";
   };
 
   patches = [
@@ -37,11 +37,11 @@ mkDerivation rec {
 
     eigen zlib
 
-    cfitsio indilib xplanet libnova libraw gsl wcslib stellarsolver
+    cfitsio indi-full xplanet libnova libraw gsl wcslib stellarsolver
   ];
 
   cmakeFlags = [
-    "-DINDI_NIX_ROOT=${indilib}"
+    "-DINDI_NIX_ROOT=${indi-full}"
     "-DXPLANET_NIX_ROOT=${xplanet}"
   ];
 
@@ -53,7 +53,7 @@ mkDerivation rec {
       The display includes up to 100 million stars, 13.000 deep-sky objects, all 8 planets, the Sun and Moon, and thousands of comets, asteroids, supernovae, and satellites.
       For students and teachers, it supports adjustable simulation speeds in order to view phenomena that happen over long timescales, the KStars Astrocalculator to predict conjunctions, and many common astronomical calculations.
     '';
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ timput hjones2199 ];
   };
diff --git a/pkgs/applications/science/astronomy/phd2/default.nix b/pkgs/applications/science/astronomy/phd2/default.nix
index 054a73dec7a..0e0ad06bbe9 100644
--- a/pkgs/applications/science/astronomy/phd2/default.nix
+++ b/pkgs/applications/science/astronomy/phd2/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, cmake, gtk3, wxGTK30-gtk3,
-  curl, gettext, glib, indilib, libnova, wrapGAppsHook }:
+  curl, gettext, glib, indi-full, libnova, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "phd2";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
-  buildInputs = [ gtk3 wxGTK30-gtk3 curl gettext glib indilib libnova ];
+  buildInputs = [ gtk3 wxGTK30-gtk3 curl gettext glib indi-full libnova ];
 
   cmakeFlags = [
     "-DOPENSOURCE_ONLY=1"
diff --git a/pkgs/applications/science/astronomy/siril/default.nix b/pkgs/applications/science/astronomy/siril/default.nix
index cd78b644eb0..e51d181266a 100644
--- a/pkgs/applications/science/astronomy/siril/default.nix
+++ b/pkgs/applications/science/astronomy/siril/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchFromGitLab, fetchFromGitHub, pkg-config, meson, ninja,
-  git, criterion, wrapGAppsHook, gtk3, libconfig, gnuplot, opencv,
-  fftwFloat, cfitsio, gsl, exiv2, curl, librtprocess, ffmpeg,
-  libraw, libtiff, libpng, libjpeg, libheif, ffms
+{ lib, stdenv, fetchFromGitLab, pkg-config, meson, ninja, wrapGAppsHook
+, git, criterion, gtk3, libconfig, gnuplot, opencv, json-glib
+, fftwFloat, cfitsio, gsl, exiv2, librtprocess, wcslib, ffmpeg
+, libraw, libtiff, libpng, libjpeg, libheif, ffms
 }:
 
 stdenv.mkDerivation rec {
   pname = "siril";
-  version = "0.99.6";
+  version = "0.99.8.1";
 
   src = fetchFromGitLab {
     owner = "free-astro";
     repo = pname;
     rev = version;
-    sha256 = "06vh8x45gv0gwlnqjwxglf12jmpdaxkiv5sixkqh20420wabx3ha";
+    sha256 = "0h3slgpj6zdc0rwmyr9zb0vgf53283hpwb7h26skdswmggsk90i5";
   };
 
   nativeBuildInputs = [
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gtk3 cfitsio gsl exiv2 gnuplot curl opencv fftwFloat librtprocess
-    libconfig libraw libtiff libpng libjpeg libheif ffms ffmpeg
+    gtk3 cfitsio gsl exiv2 gnuplot opencv fftwFloat librtprocess wcslib
+    libconfig libraw libtiff libpng libjpeg libheif ffms ffmpeg json-glib
   ];
 
   # Necessary because project uses default build dir for flatpaks/snaps
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.siril.org/";
-    description = "Astronomical image processing tool";
-    license = licenses.gpl3;
+    description = "Astrophotographic image processing tool";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hjones2199 ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index 235d06a9cd6..7922f4d02ad 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "stellarium";
-  version = "0.20.4";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "Stellarium";
     repo = "stellarium";
     rev = "v${version}";
-    sha256 = "sha256-EhlcaMxlDyX2RneBrpbmLScc9vd77Tf7RPblbQqAqZ0=";
+    sha256 = "sha256-LOBWfKLtoFemiWBUVayIBG0DORvjI6h9kgaPH9hGmKY=";
   };
 
   nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
diff --git a/pkgs/applications/science/biology/bcftools/default.nix b/pkgs/applications/science/biology/bcftools/default.nix
index f4e2db01fbc..46d39c1a7ba 100644
--- a/pkgs/applications/science/biology/bcftools/default.nix
+++ b/pkgs/applications/science/biology/bcftools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, htslib, zlib, bzip2, lzma, curl, perl, python, bash }:
+{ lib, stdenv, fetchurl, htslib, zlib, bzip2, xz, curl, perl, python3, bash }:
 
 stdenv.mkDerivation rec {
   pname = "bcftools";
@@ -9,12 +9,19 @@ stdenv.mkDerivation rec {
     sha256 = "0r508mp15pqzf8r1269kb4v5naw9zsvbwd3cz8s1yj7carsf9viw";
   };
 
-  buildInputs = [ htslib zlib bzip2 lzma curl perl python ];
+  nativeBuildInputs = [
+    perl
+    python3
+  ];
+
+  buildInputs = [ htslib zlib bzip2 xz curl ];
+
+  strictDeps = true;
 
   makeFlags = [
     "HSTDIR=${htslib}"
     "prefix=$(out)"
-    "CC=cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
   ];
 
   preCheck = ''
diff --git a/pkgs/applications/science/biology/bedops/default.nix b/pkgs/applications/science/biology/bedops/default.nix
new file mode 100644
index 00000000000..407ed0c01f7
--- /dev/null
+++ b/pkgs/applications/science/biology/bedops/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchFromGitHub, zlib, bzip2, jansson, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "bedops";
+  version = "2.4.39";
+
+  src = fetchFromGitHub {
+    owner = "bedops";
+    repo = "bedops";
+    rev = "v${version}";
+    sha256 = "sha256-vPrut3uhZK1Eg9vPcyxVNWW4zKeypdsb28oM1xbbpJo=";
+  };
+
+  buildInputs = [ zlib bzip2 jansson ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  preConfigure = ''
+    # We use nixpkgs versions of these libraries
+    rm -r third-party
+    sed -i '/^LIBS/d' system.mk/*
+    sed -i 's|^LIBRARIES.*$|LIBRARIES = -lbz2 -lz -ljansson|' */*/*/*/Makefile
+    substituteInPlace applications/bed/starch/src/Makefile --replace '$(LIBRARIES)' ""
+
+    # Function name is different in nixpkgs provided libraries
+    for f in interfaces/src/data/starch/starchFileHelpers.c applications/bed/starch/src/starchcat.c ; do
+      substituteInPlace $f --replace deflateInit2cpp deflateInit2
+    done
+
+    # Don't force static
+    for f in */*/*/*/Makefile ; do
+      substituteInPlace $f --replace '-static' ""
+    done
+  '';
+
+  makeFlags = [ "BINDIR=$(out)/bin" ];
+
+  postFixup = ''
+    for f in $out/bin/* ; do
+      wrapProgram $f --prefix PATH : "$out/bin"
+    done
+  '';
+
+  meta = with lib; {
+    description = "Suite of tools for addressing questions arising in genomics studies";
+    homepage = "https://github.com/bedops/bedops";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/applications/science/biology/bedtools/default.nix b/pkgs/applications/science/biology/bedtools/default.nix
index d0553bb0649..aac36d2af31 100644
--- a/pkgs/applications/science/biology/bedtools/default.nix
+++ b/pkgs/applications/science/biology/bedtools/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, zlib, python, bzip2, lzma}:
+{lib, stdenv, fetchFromGitHub, zlib, python3, bzip2, xz}:
 
 stdenv.mkDerivation rec {
   pname = "bedtools";
@@ -11,7 +11,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-NqKldF7ePJn3pT+AkESIQghBKSFFOEBBsTaKEbU+oaQ=";
   };
 
-  buildInputs = [ zlib python bzip2 lzma ];
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    python3
+  ];
+
+  buildInputs = [ zlib bzip2 xz ];
+
   cxx = if stdenv.cc.isClang then "clang++" else "g++";
   cc = if stdenv.cc.isClang then "clang" else "gcc";
   buildPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} -j $NIX_BUILD_CORES";
diff --git a/pkgs/applications/science/biology/delly/default.nix b/pkgs/applications/science/biology/delly/default.nix
index efaa4403f41..fe81ff44d24 100644
--- a/pkgs/applications/science/biology/delly/default.nix
+++ b/pkgs/applications/science/biology/delly/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchpatch, fetchFromGitHub, htslib, zlib, bzip2, lzma, ncurses, boost }:
+{ lib, stdenv, fetchpatch, fetchFromGitHub, htslib, zlib, bzip2, xz, ncurses, boost }:
 
 stdenv.mkDerivation rec {
   pname = "delly";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
       sha256 = "sha256-DWwC35r8cQbePUzppkFQlev0YZdxk2+BSrNTW/DOY3M=";
   };
 
-  buildInputs = [ zlib htslib bzip2 lzma ncurses boost ];
+  buildInputs = [ zlib htslib bzip2 xz ncurses boost ];
 
   EBROOTHTSLIB = htslib;
 
diff --git a/pkgs/applications/science/biology/eggnog-mapper/default.nix b/pkgs/applications/science/biology/eggnog-mapper/default.nix
index 7eb3afd437a..b42fed8da28 100644
--- a/pkgs/applications/science/biology/eggnog-mapper/default.nix
+++ b/pkgs/applications/science/biology/eggnog-mapper/default.nix
@@ -16,7 +16,7 @@ python27Packages.buildPythonApplication rec {
     sha256 = "0abnmn0bh11jihf5d3cggiild1ykawzv5f5fhb4cyyi8fvy4hcxf";
   });
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
   propagatedBuildInputs = [ python27Packages.biopython wget diamond hmmer ];
 
   # make emapper find diamond & hmmer
diff --git a/pkgs/applications/science/biology/freebayes/default.nix b/pkgs/applications/science/biology/freebayes/default.nix
index 32ab614b968..8646b8ca54a 100644
--- a/pkgs/applications/science/biology/freebayes/default.nix
+++ b/pkgs/applications/science/biology/freebayes/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, zlib, bzip2, lzma }:
+{ lib, stdenv, fetchFromGitHub, zlib, bzip2, xz }:
 
 stdenv.mkDerivation rec {
   pname = "freebayes";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  buildInputs = [ zlib bzip2 lzma ];
+  buildInputs = [ zlib bzip2 xz ];
 
   installPhase = ''
     install -vD bin/freebayes bin/bamleftalign scripts/* -t $out/bin
diff --git a/pkgs/applications/science/biology/kent/default.nix b/pkgs/applications/science/biology/kent/default.nix
index 26c55d3dc38..12bbfa09c25 100644
--- a/pkgs/applications/science/biology/kent/default.nix
+++ b/pkgs/applications/science/biology/kent/default.nix
@@ -3,7 +3,7 @@
 , libuuid
 , zlib
 , bzip2
-, lzma
+, xz
 , openssl
 , curl
 , libmysqlclient
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     sha256 = "0l5lmqqc6sqkf4hyk3z4825ly0vdlj5xdfad6zd0708cb1v81nbx";
   };
 
-  buildInputs = [ libpng libuuid zlib bzip2 lzma openssl curl libmysqlclient ];
+  buildInputs = [ libpng libuuid zlib bzip2 xz openssl curl libmysqlclient ];
 
   patchPhase = ''
     substituteInPlace ./src/checkUmask.sh \
diff --git a/pkgs/applications/science/biology/last/default.nix b/pkgs/applications/science/biology/last/default.nix
index 3a36a2194a1..0c5b81452fd 100644
--- a/pkgs/applications/science/biology/last/default.nix
+++ b/pkgs/applications/science/biology/last/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1170";
+  version = "1179";
 
   src = fetchurl {
     url = "http://last.cbrc.jp/last-${version}.zip";
-    sha256 = "sha256-hBuG6QGXtBrvNrtaZU+i8gxu2ZQw+srFRkbuWoL5JHc=";
+    sha256 = "sha256-949oiE7ZNkCOJuOK/huPkCN0c4TlVaTskkBe0joc0HU=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/science/biology/messer-slim/default.nix b/pkgs/applications/science/biology/messer-slim/default.nix
index 687a2a985f2..9d9e46bc780 100644
--- a/pkgs/applications/science/biology/messer-slim/default.nix
+++ b/pkgs/applications/science/biology/messer-slim/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, cmake, gcc, gcc-unwrapped }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.1";
+  version = "3.6";
   pname = "messer-slim";
 
   src = fetchurl {
     url = "https://github.com/MesserLab/SLiM/archive/v${version}.tar.gz";
-    sha256 = "1j3ssjvxpsc21mmzj59kwimglz8pdazi5w6wplmx11x744k77wa1";
+    sha256 = "sha256-djWUKB+NW2a/6oaAMcH0Ul/R/XPHvGDbwlfeFmkbMOY=";
   };
 
   nativeBuildInputs = [ cmake gcc gcc-unwrapped ];
diff --git a/pkgs/applications/science/biology/octopus/default.nix b/pkgs/applications/science/biology/octopus/default.nix
index b7a4a4c1a2a..0ef48ec6413 100644
--- a/pkgs/applications/science/biology/octopus/default.nix
+++ b/pkgs/applications/science/biology/octopus/default.nix
@@ -1,18 +1,30 @@
-{lib, stdenv, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, lzma, pkg-config}:
+{lib, stdenv, fetchpatch, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, xz, pkg-config}:
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "luntergroup";
     repo = "octopus";
     rev = "v${version}";
-    sha256 = "0y3g0xc3x3adbcmds6hh60023pfv1qrz6ak7jd88fg9vxi9bdrfb";
+    sha256 = "sha256-TZ57uKTZ87FWpLNGPY8kbML1EDM8fnEFbXR+Z3dmiao=";
   };
 
+  patches = [
+    # Backport TZ patchs (https://github.com/luntergroup/octopus/issues/149)
+    (fetchpatch {
+      url = "https://github.com/luntergroup/octopus/commit/3dbd8cc33616129ad356e99a4dae82e4f6702250.patch";
+      sha256 = "sha256-UCufVU9x+L1zCEhkr/48KFYRvh8w26w8Jr+O+wULKK8=";
+    })
+    (fetchpatch {
+      url = "https://github.com/luntergroup/octopus/commit/af5a66a2792bd098fb53eb79fb4822625f09305e.patch";
+      sha256 = "sha256-r8jv6EZHfTWVLYUBau3F+ilOd9IeH8rmatorEY5LXP4=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ boost gmp htslib zlib lzma ];
+  buildInputs = [ boost gmp htslib zlib xz ];
 
   postInstall = ''
     mkdir $out/bin
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index 52a17e8d01c..ed0d043cd54 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "picard-tools";
-  version = "2.25.0";
+  version = "2.25.1";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "sha256-+vJDTahP4htRbVeBd2eSD97fwZ69wB2cro1tMxT36Jc=";
+    sha256 = "sha256-bW5iLWtGX5/HBMN7y6VbDaxa0U0HCIu9vfreXNAn7hw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/science/biology/platypus/default.nix b/pkgs/applications/science/biology/platypus/default.nix
index 30bc68fb0e8..d602395b875 100644
--- a/pkgs/applications/science/biology/platypus/default.nix
+++ b/pkgs/applications/science/biology/platypus/default.nix
@@ -13,7 +13,8 @@ in stdenv.mkDerivation {
     sha256 = "0nah6r54b8xm778gqyb8b7rsd76z8ji4g73sm6rvpw5s96iib1vw";
   };
 
-  buildInputs = [ htslib python zlib makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ htslib python zlib ];
 
   buildPhase = ''
     patchShebangs .
diff --git a/pkgs/applications/science/biology/prodigal/default.nix b/pkgs/applications/science/biology/prodigal/default.nix
index 22883cc522f..28a21522c6b 100644
--- a/pkgs/applications/science/biology/prodigal/default.nix
+++ b/pkgs/applications/science/biology/prodigal/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   makeFlags = [
-    "CC=cc"
+    "CC=${stdenv.cc.targetPrefix}cc"
     "INSTALLDIR=$(out)/bin"
   ];
 
diff --git a/pkgs/applications/science/biology/sambamba/default.nix b/pkgs/applications/science/biology/sambamba/default.nix
index 8802736efac..7b5141302f7 100644
--- a/pkgs/applications/science/biology/sambamba/default.nix
+++ b/pkgs/applications/science/biology/sambamba/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, python3, which, dmd, ldc, zlib }:
+{ lib, stdenv, fetchFromGitHub, python3, which, ldc, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "sambamba";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "biod";
     repo = "sambamba";
     rev = "v${version}";
-    sha256 = "0k5wy06zrbsc40x6answgz7rz2phadyqwlhi9nqxbfqanbg9kq20";
+    sha256 = "sha256:0kx5a0fmvv9ldz2hnh7qavgf7711kqc73zxf51k4cca4hr58zxr9";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ which python3 dmd ldc ];
+  nativeBuildInputs = [ which python3 ldc ];
   buildInputs = [ zlib ];
 
   # Upstream's install target is broken; copy manually
diff --git a/pkgs/applications/science/biology/snpeff/default.nix b/pkgs/applications/science/biology/snpeff/default.nix
index 32701af8392..4c32516b29f 100644
--- a/pkgs/applications/science/biology/snpeff/default.nix
+++ b/pkgs/applications/science/biology/snpeff/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0i12mv93bfv8xjwc3rs2x73d6hkvi7kgbbbx3ry984l3ly4p6nnm";
   };
 
-  buildInputs = [ unzip jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ jre ];
 
   sourceRoot = "snpEff";
 
diff --git a/pkgs/applications/science/biology/spades/default.nix b/pkgs/applications/science/biology/spades/default.nix
index ec381693aed..e6f33d6cde9 100644
--- a/pkgs/applications/science/biology/spades/default.nix
+++ b/pkgs/applications/science/biology/spades/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "SPAdes";
-  version = "3.14.1";
+  version = "3.15.2";
 
   src = fetchurl {
     url = "http://cab.spbu.ru/files/release${version}/${pname}-${version}.tar.gz";
-    sha256 = "1ji3afn6yvx7ysg7p9j0d1g28zrnxg1b7x90mhs2bj3lgs7vfafn";
+    sha256 = "03cxz4m1n4rc81lqb4p1pz2ammms7f31wvi4daywfkc13aal6fz9";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,9 +19,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "St. Petersburg genome assembler: assembly toolkit containing various assembly pipelines";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     homepage = "http://cab.spbu.ru/software/spades/";
-    platforms = platforms.unix;
+    platforms = with platforms; [ "x86_64-linux" "x86_64-darwin"];
     maintainers = [ maintainers.bzizou ];
   };
 }
diff --git a/pkgs/applications/science/biology/stacks/default.nix b/pkgs/applications/science/biology/stacks/default.nix
index c208d80d576..16091514f15 100644
--- a/pkgs/applications/science/biology/stacks/default.nix
+++ b/pkgs/applications/science/biology/stacks/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "stacks";
-  version = "2.53";
+  version = "2.55";
   src = fetchurl {
     url = "http://catchenlab.life.illinois.edu/stacks/source/${pname}-${version}.tar.gz";
-    sha256 = "1zchds205nwdqch1246953dr8c0019yas178qbq3jypbxvmgq7pf";
+    sha256 = "sha256-p8L0F3A+GdNsPgTQNn9Em5EjFCc9f7gUvyLIRCTd05c=";
   };
 
   buildInputs = [ zlib ];
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/biology/svaba/default.nix b/pkgs/applications/science/biology/svaba/default.nix
index 87b77f6ac04..1aed501919f 100644
--- a/pkgs/applications/science/biology/svaba/default.nix
+++ b/pkgs/applications/science/biology/svaba/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, zlib, bzip2, lzma, fetchFromGitHub } :
+{ lib, stdenv, zlib, bzip2, xz, fetchFromGitHub } :
 
 stdenv.mkDerivation rec {
   version = "1.1.0";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  buildInputs = [ zlib bzip2 lzma ];
+  buildInputs = [ zlib bzip2 xz ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/applications/science/biology/varscan/default.nix b/pkgs/applications/science/biology/varscan/default.nix
index 65a19b83a70..2a232d64693 100644
--- a/pkgs/applications/science/biology/varscan/default.nix
+++ b/pkgs/applications/science/biology/varscan/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-+yO3KrZ2+1qJvQIJHCtsmv8hC5a+4E2d7mrvTYtygU0=";
   };
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   phases = [ "installPhase" ];
 
diff --git a/pkgs/applications/science/chemistry/gwyddion/default.nix b/pkgs/applications/science/chemistry/gwyddion/default.nix
index 8d9ea7a3917..74a6b495587 100644
--- a/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -35,10 +35,10 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.56";
+   version = "2.57";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "0z83p3ifdkv5dds8s6fqqbycql1zmgppdc7ygqmm12z5zlrl9p12";
+    sha256 = "sha256-kx/WqtNDaJQyVehxZ3weddXyaM1knX+fCuv47A9GaH0=";
   };
 
   nativeBuildInputs = [ pkg-config file ];
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index aa52fee0890..bb523cddd19 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.31.18";
+  version = "14.31.35";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    sha256 = "0hkc7c08azbw3k91ygwz6r5y4yw6k8l7h4gcq5p71knd5k1fa5jd";
+    sha256 = "sha256-uB7d27eicfmE1TpjLAxUoC8LBYAOrg3B48M1/CxWZdg=";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/chemistry/marvin/default.nix b/pkgs/applications/science/chemistry/marvin/default.nix
index 23635f8e6c6..b4f0d955d6b 100644
--- a/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/pkgs/applications/science/chemistry/marvin/default.nix
@@ -4,12 +4,12 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "marvin";
-  version = "21.2.0";
+  version = "21.3.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    sha256 = "sha256-CLvMspk7HqrtNM5TD45mZIz6vsS32eUuxFDJiBDs9VY=";
+    sha256 = "sha256-PM4Exi4YD6WibxqtewLzE4dDRgSVHiTT36p68uoQP4g=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
diff --git a/pkgs/applications/science/chemistry/quantum-espresso/default.nix b/pkgs/applications/science/chemistry/quantum-espresso/default.nix
index 6d70e9f984f..a348c51c281 100644
--- a/pkgs/applications/science/chemistry/quantum-espresso/default.nix
+++ b/pkgs/applications/science/chemistry/quantum-espresso/default.nix
@@ -38,7 +38,7 @@ configureFlags = if useMpi then [ "LD=${mpi}/bin/mpif90" ] else [ "LD=${gfortran
       '';
     homepage = "https://www.quantum-espresso.org/";
     license = licenses.gpl2;
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = [ maintainers.costrouc ];
   };
 }
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/gnucap/default.nix b/pkgs/applications/science/electronics/gnucap/default.nix
new file mode 100644
index 00000000000..c51e5de93d6
--- /dev/null
+++ b/pkgs/applications/science/electronics/gnucap/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "gnucap";
+  version = "20210107";
+
+  src = fetchurl {
+    url = "https://git.savannah.gnu.org/cgit/gnucap.git/snapshot/${pname}-${version}.tar.gz";
+    sha256 = "12rlwd4mfc54qq1wrx5k8qk578xls5z4isf94ybkf2z6qxk4mhnj";
+  };
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Gnu Circuit Analysis Package";
+    longDescription = ''
+Gnucap is a modern general purpose circuit simulator with several advantages over Spice derivatives.
+It performs nonlinear dc and transient analyses, fourier analysis, and ac analysis.
+    '';
+    homepage = "http://www.gnucap.org/";
+    changelog = "https://git.savannah.gnu.org/cgit/gnucap.git/plain/NEWS?h=v${version}";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.raboof ];
+  };
+}
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index 971891a5b01..3a3994d9ad6 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gtkwave";
-  version = "3.3.107";
+  version = "3.3.108";
 
   src = fetchurl {
     url    = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
-    sha256 = "0ma30jyc94iid3v3m8aw4i2lyiqfxkpsdvdmmaibynk400cbzivl";
+    sha256 = "sha256-LtlexZKih+Si/pH3oQpWdpzfZ6j+41Otgfx7nLMfFSQ=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
index e84e9b7400e..346483b9231 100644
--- a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
+++ b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.5";
+  version = "3.2.6";
   pname = "hal-hardware-analyzer";
 
   src = fetchFromGitHub {
     owner = "emsec";
     repo = "hal";
     rev = "v${version}";
-    sha256 = "0hc10wbngh4gfiiy9ndkf1y6dclcgy38x1n9k5wpvmf13vdah3zy";
+    sha256 = "sha256-GRHRrAxZ10hmAXkGGSQEwNJTbnMbJ9jMyKnOUq+KoWo=";
   };
   # make sure bundled dependencies don't get in the way - install also otherwise
   # copies them in full to the output, bloating the package
diff --git a/pkgs/applications/science/electronics/horizon-eda/default.nix b/pkgs/applications/science/electronics/horizon-eda/default.nix
index ef68eb999fa..dee0a851bf8 100644
--- a/pkgs/applications/science/electronics/horizon-eda/default.nix
+++ b/pkgs/applications/science/electronics/horizon-eda/default.nix
@@ -6,7 +6,7 @@
 , epoxy
 , fetchFromGitHub
 , glm
-, gnome3
+, gtkmm3
 , lib
 , libgit2
 , librsvg
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     curl
     epoxy
     glm
-    gnome3.gtkmm
+    gtkmm3
     libgit2
     librsvg
     libuuid
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..b91b5ad14a9 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , fetchFromGitLab
 , gnome3
+, dconf
 , wxGTK30
 , wxGTK31
 , makeWrapper
@@ -15,19 +16,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 ? { }
@@ -190,12 +187,12 @@ stdenv.mkDerivation rec {
   makeWrapperArgs = with passthru.libraries; [
     "--prefix XDG_DATA_DIRS : ${base}/share"
     "--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share"
-    "--prefix XDG_DATA_DIRS : ${gnome3.defaultIconTheme}/share"
+    "--prefix XDG_DATA_DIRS : ${gnome3.adwaita-icon-theme}/share"
     "--prefix XDG_DATA_DIRS : ${wxGTK.gtk}/share/gsettings-schemas/${wxGTK.gtk.name}"
     "--prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
     # wrapGAppsHook did these two as well, no idea if it matters...
     "--prefix XDG_DATA_DIRS : ${cups}/share"
-    "--prefix GIO_EXTRA_MODULES : ${gnome3.dconf}/lib/gio/modules"
+    "--prefix GIO_EXTRA_MODULES : ${dconf}/lib/gio/modules"
 
     "--set-default KISYSMOD ${footprints}/share/kicad/modules"
     "--set-default KICAD_SYMBOL_DIR ${symbols}/share/kicad/library"
diff --git a/pkgs/applications/science/electronics/librepcb/default.nix b/pkgs/applications/science/electronics/librepcb/default.nix
index 394a1787615..53a67cea40b 100644
--- a/pkgs/applications/science/electronics/librepcb/default.nix
+++ b/pkgs/applications/science/electronics/librepcb/default.nix
@@ -18,30 +18,25 @@ stdenv.mkDerivation rec {
   buildInputs = [ qtbase ];
 
   qmakeFlags = ["-r"];
-  enableParallelBuilding = true;
-
-  postInstall = ''
-    mkdir -p $out/share/librepcb/fontobene
-    cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
-  '';
 
   # the build system tries to use 'git' at build time to find the HEAD hash.
   # that's a no-no, so replace it with a quick hack. NOTE: the # adds a comment
   # at the end of the line to remove the git call.
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace ./libs/librepcb/common/common.pro \
       --replace 'GIT_COMMIT_SHA' 'GIT_COMMIT_SHA="\\\"${src.rev}\\\"" # '
   '';
 
-  preFixup = ''
-    wrapQtApp $out/bin/librepcb
+  postInstall = ''
+    mkdir -p $out/share/librepcb/fontobene
+    cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
   '';
 
   meta = with lib; {
     description = "A free EDA software to develop printed circuit boards";
     homepage    = "https://librepcb.org/";
     maintainers = with maintainers; [ luz thoughtpolice ];
-    license     = licenses.gpl3;
+    license     = licenses.gpl3Plus;
     platforms   = platforms.linux;
   };
 }
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/electronics/pcb/default.nix b/pkgs/applications/science/electronics/pcb/default.nix
index 69ff7b2e69f..d28f1d18121 100644
--- a/pkgs/applications/science/electronics/pcb/default.nix
+++ b/pkgs/applications/science/electronics/pcb/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pcb";
-  version = "4.2.2";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/pcb/${pname}-${version}.tar.gz";
-    sha256 = "0pbfyfadbia1jf9ywkf02j8mfdh8c3mj390c2jdqnl70vcdszvhw";
+    sha256 = "sha256-roUvRq+Eq6f1HYE/uRb8f82+6kP3E08VBQcCThdD+14=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/electronics/tkgate/1.x.nix b/pkgs/applications/science/electronics/tkgate/1.x.nix
index 9bb04a3189e..5a46e8f6384 100644
--- a/pkgs/applications/science/electronics/tkgate/1.x.nix
+++ b/pkgs/applications/science/electronics/tkgate/1.x.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, tcl, tk, libX11, glibc, which, yacc, flex, imake, xorgproto, gccmakedep }:
+{ lib, stdenv, fetchurl, tcl, tk, libX11, glibc, which, bison, flex, imake, xorgproto, gccmakedep }:
 
 let
   libiconvInc = lib.optionalString stdenv.isLinux "${glibc.dev}/include";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1pqywkidfpdbj18i03h97f4cimld4fb3mqfy8jjsxs12kihm18fs";
   };
 
-  nativeBuildInputs = [ which yacc flex imake gccmakedep ];
+  nativeBuildInputs = [ which bison flex imake gccmakedep ];
   buildInputs = [ tcl tk libX11 xorgproto ];
   dontUseImakeConfigure = true;
 
diff --git a/pkgs/applications/science/electronics/verilator/default.nix b/pkgs/applications/science/electronics/verilator/default.nix
index fe988642c01..5871ad01d91 100644
--- a/pkgs/applications/science/electronics/verilator/default.nix
+++ b/pkgs/applications/science/electronics/verilator/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "verilator";
-  version = "4.108";
+  version = "4.110";
 
   src = fetchurl {
     url    = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
-    sha256 = "00i7am41w9v4smhl64z7s95wdb55f684y89mc0hbc07j1ggc33lf";
+    sha256 = "sha256-Rxb+AFhmGinWtZyvjnRxsu3b3tbtRO3njcHGUJTs/sw=";
   };
 
   enableParallelBuilding = true;
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/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 62600ea90c2..560e8dd733a 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -8,7 +8,7 @@
 { lib, stdenv, fetchzip, writeText, pkg-config, gnumake42
 , customOCamlPackages ? null
 , ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ncurses
-, buildIde ? !(stdenv.isDarwin && lib.versionAtLeast version "8.10")
+, buildIde ? true
 , glib, gnome3, wrapGAppsHook
 , csdp ? null
 , version, coq-version ? null,
@@ -42,6 +42,7 @@ let
    "8.12.1".sha256     = "1rkcyjjrzcqw9xk93hsq0vvji4f8r5iq0f739mghk60bghkpnb7q";
    "8.12.2".sha256     = "18gscfm039pqhq4msq01nraig5dm9ab98bjca94zldf8jvdv0x2n";
    "8.13.0".sha256     = "0sjbqmz6qcvnz0hv87xha80qbhvmmyd675wyc5z4rgr34j2l1ymd";
+   "8.13.1".sha256     = "0xx2ns84mlip9bg2mkahy3pmc5zfcgrjxsviq9yijbzy1r95wf0n";
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
@@ -126,7 +127,7 @@ self = stdenv.mkDerivation {
   buildInputs = [ ncurses ] ++ ocamlBuildInputs
     ++ optionals buildIde
       (if versionAtLeast "8.10"
-       then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ]
+       then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.adwaita-icon-theme wrapGAppsHook ]
        else [ ocamlPackages.lablgtk ]);
 
   postPatch = ''
diff --git a/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch b/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
new file mode 100644
index 00000000000..b382e6f9e75
--- /dev/null
+++ b/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
@@ -0,0 +1,40 @@
+diff --git a/src/elan-dist/src/component/package.rs b/src/elan-dist/src/component/package.rs
+index fd9fe74..0fefa39 100644
+--- a/src/elan-dist/src/component/package.rs
++++ b/src/elan-dist/src/component/package.rs
+@@ -50,11 +50,35 @@ fn unpack_without_first_dir<R: Read>(archive: &mut tar::Archive<R>, path: &Path)
+         };
+ 
+         try!(entry.unpack(&full_path).chain_err(|| ErrorKind::ExtractingPackage));
++        nix_patchelf_if_needed(&full_path);
+     }
+ 
+     Ok(())
+ }
+ 
++fn nix_patchelf_if_needed(dest_path: &Path) {
++    let (is_bin, is_lib) = if let Some(p) = dest_path.parent() {
++        (p.ends_with("bin"), p.ends_with("lib"))
++    } else {
++        (false, false)
++    };
++
++    if is_bin {
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-interpreter")
++            .arg("@dynamicLinker@")
++            .arg(dest_path)
++            .output();
++    }
++    else if is_lib {
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-rpath")
++            .arg("@libPath@")
++            .arg(dest_path)
++            .output();
++    }
++}
++
+ #[derive(Debug)]
+ pub struct ZipPackage<'a>(temp::Dir<'a>);
+ 
diff --git a/pkgs/applications/science/logic/elan/default.nix b/pkgs/applications/science/logic/elan/default.nix
index bb10998b2f4..fab930e2c7b 100644
--- a/pkgs/applications/science/logic/elan/default.nix
+++ b/pkgs/applications/science/logic/elan/default.nix
@@ -1,24 +1,46 @@
-{ lib, pkg-config, curl, openssl, zlib, fetchFromGitHub, rustPlatform }:
+{ stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl
+, openssl, gmp, zlib, fetchFromGitHub, rustPlatform }:
+
+let
+  libPath = lib.makeLibraryPath [ gmp ];
+in
 
 rustPlatform.buildRustPackage rec {
   pname = "elan";
-  version = "0.10.3";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "kha";
     repo = "elan";
     rev = "v${version}";
-    sha256 = "sha256-YkGfuqtvVfPcxJ8UqD5QidcNEy5brTWGEK4fR64Yz70=";
+    sha256 = "1sl69ygdwhf80sx6m76x5gp1kwsw0rr1lv814cgzm8hvyr6g0jqa";
   };
 
-  cargoSha256 = "sha256-2fYicpoEERwD4OjdpseKQOkDvZlb7NnOZcb6Tu+rQdA=";
+  cargoSha256 = "1f881maf8jizd5ip7pc1ncbiq7lpggp0byma13pvqk7gisnqyr4r";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
 
+  OPENSSL_NO_VENDOR = 1;
   buildInputs = [ curl zlib openssl ];
 
   cargoBuildFlags = [ "--features no-self-update" ];
 
+  patches = lib.optionals stdenv.isLinux [
+    # Run patchelf on the downloaded binaries.
+    # This necessary because Lean 4 now dynamically links to GMP.
+    (runCommand "0001-dynamically-patchelf-binaries.patch" {
+        CC = stdenv.cc;
+        patchelf = patchelf;
+        libPath = "$ORIGIN/../lib:${libPath}";
+      } ''
+     export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+     substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+       --subst-var patchelf \
+       --subst-var dynamicLinker \
+       --subst-var libPath
+    '')
+  ];
+
   postInstall = ''
     pushd $out/bin
     mv elan-init elan
@@ -27,6 +49,8 @@ rustPlatform.buildRustPackage rec {
     done
     popd
 
+    wrapProgram $out/bin/elan --prefix "LD_LIBRARY_PATH" : "${libPath}"
+
     # tries to create .elan
     export HOME=$(mktemp -d)
     mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
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/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index a0f81a543f1..600ae83ff91 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
       sha256 = "1bibabhlsvf6qsjjkgxcpq3cvl1z7r8yfcgqbhbvsiv69n3gyfk3";
     };
 
-  buildInputs = [ perl polyml z3 makeWrapper ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl polyml z3 ]
              ++ lib.optionals (!stdenv.isDarwin) [ nettools java ];
 
   sourceRoot = dirname;
diff --git a/pkgs/applications/science/logic/lean/default.nix b/pkgs/applications/science/logic/lean/default.nix
index 7749f4fd72d..b57ee0f61f1 100644
--- a/pkgs/applications/science/logic/lean/default.nix
+++ b/pkgs/applications/science/logic/lean/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lean";
-  version = "3.26.0";
+  version = "3.28.0";
 
   src = fetchFromGitHub {
     owner  = "leanprover-community";
     repo   = "lean";
     rev    = "v${version}";
-    sha256 = "sha256-xCULu6ljfyrA/Idr/BJ+3rLVmQqJZPoo+a7s++u50zU=";
+    sha256 = "sha256-IzoFE92F559WeSUCiYZ/fx2hrsyRzgOACr3/pzJ4OOY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/lean2/default.nix b/pkgs/applications/science/logic/lean2/default.nix
index b3c6a51d440..24d11c3a531 100644
--- a/pkgs/applications/science/logic/lean2/default.nix
+++ b/pkgs/applications/science/logic/lean2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, gmp, mpfr, python
+{ lib, stdenv, fetchFromGitHub, cmake, gmp, mpfr, python2
 , gperftools, ninja, makeWrapper }:
 
 stdenv.mkDerivation {
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ cmake makeWrapper ninja ];
-  buildInputs = [ gmp mpfr python gperftools ];
+  buildInputs = [ gmp mpfr python2 gperftools ];
 
   preConfigure = ''
     patchShebangs bin/leantags
diff --git a/pkgs/applications/science/logic/leo2/default.nix b/pkgs/applications/science/logic/leo2/default.nix
index 520c47d7500..fc2c1e5cba4 100644
--- a/pkgs/applications/science/logic/leo2/default.nix
+++ b/pkgs/applications/science/logic/leo2/default.nix
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1wjpmizb181iygnd18lx7p77fwaci2clgzs5ix5j51cc8f3pazmv";
   };
 
-  buildInputs = [ makeWrapper eprover ocaml perl zlib ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ eprover ocaml perl zlib ];
 
   sourceRoot = "leo2/src";
 
diff --git a/pkgs/applications/science/logic/mcrl2/default.nix b/pkgs/applications/science/logic/mcrl2/default.nix
index 56898f163b9..da9231efb81 100644
--- a/pkgs/applications/science/logic/mcrl2/default.nix
+++ b/pkgs/applications/science/logic/mcrl2/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ libGLU libGL qt5.qtbase boost ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "A toolset for model-checking concurrent systems and protocols";
     longDescription = ''
diff --git a/pkgs/applications/science/logic/poly/default.nix b/pkgs/applications/science/logic/poly/default.nix
index db124c379ca..15e89138c6b 100644
--- a/pkgs/applications/science/logic/poly/default.nix
+++ b/pkgs/applications/science/logic/poly/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchFromGitHub, gmp, cmake, python}:
+{lib, stdenv, fetchFromGitHub, gmp, cmake, python3}:
 
 stdenv.mkDerivation rec {
   pname = "libpoly";
@@ -14,7 +14,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ gmp python ];
+  buildInputs = [ gmp python3 ];
+
+  strictDeps = true;
 
   meta = with lib; {
     homepage = "https://github.com/SRI-CSL/libpoly";
diff --git a/pkgs/applications/science/logic/sad/default.nix b/pkgs/applications/science/logic/sad/default.nix
index 8e4d19973ef..fe0ca1b3017 100644
--- a/pkgs/applications/science/logic/sad/default.nix
+++ b/pkgs/applications/science/logic/sad/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, haskell, spass }:
+{ lib, stdenv, fetchurl, haskell, spass }:
 
 stdenv.mkDerivation {
   name = "system-for-automated-deduction-2.3.25";
diff --git a/pkgs/applications/science/logic/satallax/default.nix b/pkgs/applications/science/logic/satallax/default.nix
index dffb66b2fcf..8c88f47327e 100644
--- a/pkgs/applications/science/logic/satallax/default.nix
+++ b/pkgs/applications/science/logic/satallax/default.nix
@@ -3,7 +3,8 @@ stdenv.mkDerivation rec {
   pname = "satallax";
   version = "2.7";
 
-  buildInputs = [ocaml zlib which eprover makeWrapper coq];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ocaml zlib which eprover coq];
   src = fetchurl {
     url = "https://www.ps.uni-saarland.de/~cebrown/satallax/downloads/${pname}-${version}.tar.gz";
     sha256 = "1kvxn8mc35igk4vigi5cp7w3wpxk2z3bgwllfm4n3h2jfs0vkpib";
diff --git a/pkgs/applications/science/logic/tlaplus/default.nix b/pkgs/applications/science/logic/tlaplus/default.nix
index c4ba334b85f..f002b808e0a 100644
--- a/pkgs/applications/science/logic/tlaplus/default.nix
+++ b/pkgs/applications/science/logic/tlaplus/default.nix
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
     sha256 = "1mm6r9bq79zks50yk0agcpdkw9yy994m38ibmgpb3bi3wkpq9891";
   };
 
-  buildInputs = [ makeWrapper adoptopenjdk-bin ant ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ adoptopenjdk-bin ant ];
 
   buildPhase = "ant -f tlatools/org.lamport.tlatools/customBuild.xml compile dist";
   installPhase = ''
diff --git a/pkgs/applications/science/logic/tlaplus/toolbox.nix b/pkgs/applications/science/logic/tlaplus/toolbox.nix
index 1c33d923289..defe218b119 100644
--- a/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -1,11 +1,8 @@
 { lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
-, gtk, libXtst, glib, zlib
+, gtk3, libXtst, glib, zlib
 }:
 
 let
-  version = "1.7.0";
-  arch = "x86_64";
-
   desktopItem = makeDesktopItem rec {
     name = "TLA+Toolbox";
     exec = "tla-toolbox";
@@ -20,19 +17,21 @@ let
   };
 
 
-in stdenv.mkDerivation {
+in stdenv.mkDerivation rec {
   pname = "tla-toolbox";
-  inherit version;
+  version = "1.7.1";
   src = fetchzip {
-    url = "https://tla.msr-inria.inria.fr/tlatoolbox/products/TLAToolbox-${version}-linux.gtk.${arch}.zip";
-    sha256 = "0v15wscawair5bghr5ixb4i062kmh9by1m0hnz2r1sawlqyafz02";
+    url = "https://tla.msr-inria.inria.fr/tlatoolbox/products/TLAToolbox-${version}-linux.gtk.x86_64.zip";
+    sha256 = "02a2y2mkfab5cczw8g604m61h4xr0apir49zbd1aq6mmgcgngw80";
   };
 
-  buildInputs = [ makeWrapper  ];
+  nativeBuildInputs = [ makeWrapper ];
 
   phases = [ "installPhase" ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p "$out/bin"
     cp -r "$src" "$out/toolbox"
     chmod -R +w "$out/toolbox"
@@ -43,12 +42,17 @@ in stdenv.mkDerivation {
 
     patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      --set-rpath "${lib.makeLibraryPath [ zlib ]}:$(patchelf --print-rpath $(find "$out/toolbox" -name java))" \
       "$(find "$out/toolbox" -name java)"
 
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      "$(find "$out/toolbox" -name jspawnhelper)"
+
     makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
       --run "set -x; cd $out/toolbox" \
       --add-flags "-data ~/.tla-toolbox" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk libXtst glib zlib ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}"
 
     echo -e "\nCreating TLA Toolbox icons..."
     pushd "$src"
@@ -63,6 +67,8 @@ in stdenv.mkDerivation {
 
     echo -e "\nCreating TLA Toolbox desktop entry..."
     cp -r "${desktopItem}/share/applications"* "$out/share/applications"
+
+    runHook postInstall
   '';
 
   meta = {
@@ -75,7 +81,7 @@ in stdenv.mkDerivation {
     '';
     # http://lamport.azurewebsites.net/tla/license.html
     license = with lib.licenses; [ mit ];
-    platforms = lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
     maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/science/logic/why3/with-provers.nix b/pkgs/applications/science/logic/why3/with-provers.nix
index 3528dbd3a64..d4fdbfd6937 100644
--- a/pkgs/applications/science/logic/why3/with-provers.nix
+++ b/pkgs/applications/science/logic/why3/with-provers.nix
@@ -15,7 +15,8 @@ in stdenv.mkDerivation {
 
   phases = [ "buildPhase" "installPhase" ];
 
-  buildInputs = [ why3 makeWrapper ] ++ provers;
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ why3 ] ++ provers;
 
   buildPhase = ''
       mkdir -p $out/share/why3/
diff --git a/pkgs/applications/science/logic/workcraft/default.nix b/pkgs/applications/science/logic/workcraft/default.nix
index cb0d668f536..7fb73419c07 100644
--- a/pkgs/applications/science/logic/workcraft/default.nix
+++ b/pkgs/applications/science/logic/workcraft/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0v71x3fph2j3xrnysvkm7zsgnbxisfbdfgxzvzxxfdg59a6l3xid";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
 
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index cfef5960bd9..e482a071bb4 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -57,9 +57,14 @@ stdenv.mkDerivation rec {
     mkdir -p $python/lib
     mv $lib/lib/python* $python/lib/
     ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
+  '' + optionalString javaBindings ''
+    mkdir -p $java/share/java
+    mv com.microsoft.z3.jar $java/share/java
+    moveToOutput "lib/libz3java.${stdenv.hostPlatform.extensions.sharedLibrary}" "$java"
   '';
 
   outputs = [ "out" "lib" "dev" "python" ]
+    ++ optional javaBindings "java"
     ++ optional ocamlBindings "ocaml";
 
   meta = with lib; {
diff --git a/pkgs/applications/science/machine-learning/shogun/default.nix b/pkgs/applications/science/machine-learning/shogun/default.nix
index 7d052c6c5e9..47b826078f2 100644
--- a/pkgs/applications/science/machine-learning/shogun/default.nix
+++ b/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, ctags, swig
 # data, compression
-, bzip2, curl, hdf5, json_c, lzma, lzo, protobuf, snappy
+, bzip2, curl, hdf5, json_c, xz, lzo, protobuf, snappy
 # maths
 , blas, lapack, eigen, nlopt, lp_solve, colpack, glpk
 # libraries
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
   buildInputs = with lib; [
-      blas lapack bzip2 colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
+      blas lapack bzip2 colpack curl ctags eigen hdf5 json_c lp_solve xz lzo
       protobuf nlopt snappy swig (libarchive.dev) libxml2 lapack glpk
     ]
     ++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
diff --git a/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix b/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix
new file mode 100644
index 00000000000..de6f9212983
--- /dev/null
+++ b/pkgs/applications/science/machine-learning/vowpal-wabbit/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchFromGitHub, cmake, boost169, flatbuffers, fmt, rapidjson, spdlog, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "vowpal-wabbit";
+  version = "8.10.0";
+
+  src = fetchFromGitHub {
+    owner = "VowpalWabbit";
+    repo = "vowpal_wabbit";
+    rev = version;
+    sha256 = "1vxnwanflsx6zf8m9mrxms28ii7rl61xfxp3556y3iawmy11d6pl";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    boost169
+    flatbuffers
+    fmt
+    rapidjson
+    spdlog
+    zlib
+  ];
+
+  # -DBUILD_TESTS=OFF is set as both it saves time in the build and the default
+  # cmake flags appended by the builder include -DBUILD_TESTING=OFF for which
+  # this is the equivalent flag.
+  # Flatbuffers are an optional feature.
+  # BUILD_FLATBUFFERS=ON turns it on. This will still consume Flatbuffers as a
+  # system dependency
+  cmakeFlags = [
+    "-DVW_INSTALL=ON"
+    "-DBUILD_TESTS=OFF"
+    "-DBUILD_JAVA=OFF"
+    "-DBUILD_PYTHON=OFF"
+    "-DUSE_LATEST_STD=ON"
+    "-DRAPIDJSON_SYS_DEP=ON"
+    "-DFMT_SYS_DEP=ON"
+    "-DSPDLOG_SYS_DEP=ON"
+    "-DBUILD_FLATBUFFERS=ON"
+  ];
+
+  meta = with lib; {
+    description = "Machine learning system focused on online reinforcement learning";
+    homepage = "https://github.com/VowpalWabbit/vowpal_wabbit/";
+    license = licenses.bsd3;
+    longDescription = ''
+      Machine learning system which pushes the frontier of machine learning with techniques such as online,
+      hashing, allreduce, reductions, learning2search, active, and interactive and reinforcement learning
+    '';
+    maintainers = with maintainers; [ jackgerrits ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index e41dbb546ea..331faa6b147 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -12,11 +12,12 @@
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
-  name = "R-4.0.3";
+  pname = "R";
+  version = "4.0.4";
 
   src = fetchurl {
-    url = "https://cran.r-project.org/src/base/R-4/${name}.tar.gz";
-    sha256 = "03cypg2qf7v9mq9mr9alz9w5y9m5kdgwbc97bp26pyymg253m609";
+    url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
+    sha256 = "0bl098xcv8v316kqnf43v6gb4kcsv31ydqfm1f7qr824jzb2fgsj";
   };
 
   dontUseImakeConfigure = true;
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index 81b7487bd27..c5a3fd606c0 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -3,23 +3,24 @@
 
 stdenv.mkDerivation rec {
   pname = "calc";
-  version = "2.12.7.6";
+  version = "2.12.9.1";
 
   src = fetchurl {
     urls = [
       "https://github.com/lcn2/calc/releases/download/${version}/${pname}-${version}.tar.bz2"
       "http://www.isthe.com/chongo/src/calc/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "sha256-Pg8nvW+RDy1Vb+Xg+5tnDxZEVkD80VcQGyZVayq8zsk=";
+    sha256 = "sha256-B3ko+RNT+LYSJG1P5cujgRMc1OJhDPqm1ONrMh+7fI4=";
   };
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace Makefile \
       --replace '-install_name ''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' \
       --replace '-install_name ''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}'
   '';
 
-  buildInputs = [ util-linux makeWrapper ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ util-linux ]
              ++ lib.optionals enableReadline [ readline ncurses ];
 
   makeFlags = [
@@ -41,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.lgpl21;
+    # 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/cbc/default.nix b/pkgs/applications/science/math/cbc/default.nix
index b75f3d3f786..1909e4bb1d0 100644
--- a/pkgs/applications/science/math/cbc/default.nix
+++ b/pkgs/applications/science/math/cbc/default.nix
@@ -2,14 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "cbc";
-  version = "2.10.3";
+  version = "2.10.4";
+
+  # Note: Cbc 2.10.5 contains Clp 1.17.5 which hits this bug
+  # that breaks or-tools https://github.com/coin-or/Clp/issues/130
 
   src = fetchurl {
     url = "https://www.coin-or.org/download/source/Cbc/Cbc-${version}.tgz";
-    sha256 = "1zzcg40ky5v96s7br2hqlkqdspwrn43kf3757g6c35wl29bq6f5d";
+    sha256 = "0zq66j1vvpslswhzi9yfgkv6vmg7yry4pdmfgqaqw2vhyqxnsy39";
   };
 
-  configureFlags = [ "-C" ];
+  # or-tools has a hard dependency on Cbc static libraries, so we build both
+  configureFlags = [ "-C" "--enable-static" ];
 
   enableParallelBuilding = true;
 
@@ -24,7 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.epl10;
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
-    broken = stdenv.isAarch64; # Missing <immintrin.h> after 2.10.0
     description = "A mixed integer programming solver";
   };
 }
diff --git a/pkgs/applications/science/math/dap/default.nix b/pkgs/applications/science/math/dap/default.nix
new file mode 100644
index 00000000000..ed3290f6c27
--- /dev/null
+++ b/pkgs/applications/science/math/dap/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dap";
+  version = "3.10";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "Bk5sty/438jLb1PpurMQ5OqMbr6JqUuuQjcg2bejh2Y=";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  meta = with lib; {
+    homepage = "https://www.gnu.org/software/dap";
+    description = "A small statistics and graphics package based on C";
+    longDescription = ''
+      Dap is a small statistics and graphics package based on C. Version 3.0 and
+      later of Dap can read SBS programs (based on the utterly famous, industry
+      standard statistics system with similar initials - you know the one I
+      mean)! The user wishing to perform basic statistical analyses is now freed
+      from learning and using C syntax for straightforward tasks, while
+      retaining access to the C-style graphics and statistics features provided
+      by the original implementation. Dap provides core methods of data
+      management, analysis, and graphics that are commonly used in statistical
+      consulting practice (univariate statistics, correlations and regression,
+      ANOVA, categorical data analysis, logistic regression, and nonparametric
+      analyses).
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/math/gap/default.nix b/pkgs/applications/science/math/gap/default.nix
index 04a49becc97..ce93c14b334 100644
--- a/pkgs/applications/science/math/gap/default.nix
+++ b/pkgs/applications/science/math/gap/default.nix
@@ -101,6 +101,9 @@ stdenv.mkDerivation rec {
       excludes = ["tst/testinstall/stringobj.tst"];
       sha256 = "1mz5b4mbw2jdd1ypp5s0dy6pp0jsvwsxr2dm4kbkls20r1r192sc";
     })
+
+    # fixes aarch64 gc crashes: https://github.com/gap-system/gap/pull/3965
+    ./mark-genstackfuncbags-as-noinline.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch b/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch
new file mode 100644
index 00000000000..3a2f7231c09
--- /dev/null
+++ b/pkgs/applications/science/math/gap/mark-genstackfuncbags-as-noinline.patch
@@ -0,0 +1,13 @@
+diff --git a/src/gasman.c b/src/gasman.c
+index 417811401..314a74190 100644
+--- a/src/gasman.c
++++ b/src/gasman.c
+@@ -1861,7 +1861,7 @@ void SparcStackFuncBags( void )
+ #endif
+ 
+ 
+-void GenStackFuncBags ( void )
++NOINLINE void GenStackFuncBags ( void )
+ {
+     Bag *               top;            /* top of stack                    */
+     Bag *               p;              /* loop variable                   */
diff --git a/pkgs/applications/science/math/gfan/default.nix b/pkgs/applications/science/math/gfan/default.nix
index 587568f8c29..1a2835932c6 100644
--- a/pkgs/applications/science/math/gfan/default.nix
+++ b/pkgs/applications/science/math/gfan/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile --replace "-fno-guess-branch-probability" ""
   '';
 
-  buildFlags = [ "CC=cc" "CXX=c++" ];
+  buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "CXX=${stdenv.cc.targetPrefix}c++" ];
   installFlags = [ "PREFIX=$(out)" ];
   buildInputs = [ gmp mpir cddlib ];
 
diff --git a/pkgs/applications/science/math/gfm/default.nix b/pkgs/applications/science/math/gfm/default.nix
index a8031b3e8a3..1078be99c3a 100644
--- a/pkgs/applications/science/math/gfm/default.nix
+++ b/pkgs/applications/science/math/gfm/default.nix
@@ -5,6 +5,7 @@
 , pkg-config
 , autoreconfHook
 , gnome2
+, gtk2
 , glib
 , libtifiles2
 , libticables2
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gnome2.gtk
+    gtk2
     gnome2.libglade
     glib
     libtifiles2
diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix
index 8c391e25322..4700402ff21 100644
--- a/pkgs/applications/science/math/giac/default.nix
+++ b/pkgs/applications/science/math/giac/default.nix
@@ -1,34 +1,45 @@
 { stdenv, lib, fetchurl, fetchpatch, texlive, bison, flex, lapack, blas
 , gmp, mpfr, pari, ntl, gsl, mpfi, ecm, glpk, nauty
 , readline, gettext, libpng, libao, gfortran, perl
-, enableGUI ? false, libGL ? null, libGLU ? null, xorg ? null, fltk ? null
+, enableGUI ? false, libGL, libGLU, xorg, fltk
+, enableMicroPy ? false, python3
 }:
 
-assert enableGUI -> libGLU != null && libGL != null && xorg != null && fltk != null;
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "giac${lib.optionalString enableGUI "-with-xcas"}";
-  version = "1.5.0-87"; # TODO try to remove preCheck phase on upgrade
+  version = "1.6.0-47"; # TODO try to remove preCheck phase on upgrade
 
   src = fetchurl {
     url = "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac_${version}.tar.gz";
-    sha256 = "1d0h1yb7qvh9x7wwv9yrzmcp712f49w1iljkxp4y6g9pzsmg1mmv";
+    sha256 = "sha256-c5A9/I6L/o3Y3dxEPoTKpw/fJqYMr6euLldaQ1HWT5c=";
   };
 
-  patches = lib.optionals (!enableGUI) [
-    # when enableGui is false, giac is compiled without fltk. That means some
-    # outputs differ in the make check. Patch around this:
+  patches = [
     (fetchpatch {
-      url    = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/nofltk-check.patch?id=7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26";
+      name = "pari_2_11.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/pari_2_11.patch?id=21ba7540d385a9864b44850d6987893dfa16bfc0";
+      sha256 = "sha256-vEo/5MNzMdYRPWgLFPsDcMT1W80Qzj4EPBjx/B8j68k=";
+    })
+  ] ++ lib.optionals (!enableGUI) [
+    # when enableGui is false, giac is compiled without fltk. That
+    # means some outputs differ in the make check. Patch around this:
+    (fetchpatch {
+      name = "nofltk-check.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/giac/patches/nofltk-check.patch?id=7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26";
       sha256 = "0xkmfc028vg5w6va04gp2x2iv31n8v4shd6vbyvk4blzgfmpj2cw";
     })
   ];
 
   postPatch = ''
-    for i in doc/*/Makefile*; do
+    for i in doc/*/Makefile* micropython*/xcas/Makefile*; do
       substituteInPlace "$i" --replace "/bin/cp" "cp";
     done;
+  '' +
+  # workaround for 1.6.0-47, should not be necessary in future versions
+  lib.optionalString (!enableMicroPy) ''
+    sed -i -e 's/micropython-[0-9.]* //' Makefile*
   '';
 
   nativeBuildInputs = [
@@ -45,7 +56,7 @@ stdenv.mkDerivation rec {
     lapack blas
   ] ++ lib.optionals enableGUI [
     libGL libGLU fltk xorg.libX11
-  ];
+  ] ++ lib.optional enableMicroPy python3;
 
   /* fixes:
   configure:16211: checking for main in -lntl
@@ -59,13 +70,12 @@ stdenv.mkDerivation rec {
   outputs = [ "out" ] ++ lib.optional (!enableGUI) "doc";
 
   doCheck = true;
-  preCheck = ''
-    # One test in this file fails. That test just tests a part of the pari
-    # interface that isn't actually used in giac. Of course it would be better
-    # to only remove that one test, but that would require a patch.
-    # Removing the whole test set should be good enough for now.
-    # Upstream report: https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?f=4&t=2102#p10326
-    echo > check/chk_fhan11
+  preCheck = lib.optionalString (!enableGUI) ''
+    # even with the nofltk patch, some changes in src/misc.cc (grep
+    # for HAVE_LIBFLTK) made it so that giac behaves differently
+    # when fltk is disabled. disable these tests for now.
+    echo > check/chk_fhan2
+    echo > check/chk_fhan9
   '';
 
   enableParallelBuilding = true;
@@ -76,7 +86,7 @@ stdenv.mkDerivation rec {
     "--enable-ao" "--enable-ecm" "--enable-glpk"
   ] ++ lib.optionals enableGUI [
     "--enable-gui" "--with-x"
-  ];
+  ] ++ lib.optional (!enableMicroPy) "--disable-micropy";
 
   postInstall = ''
     # example Makefiles contain the full path to some commands
diff --git a/pkgs/applications/science/math/ginac/default.nix b/pkgs/applications/science/math/ginac/default.nix
index 6a38670adcc..901b9a340fe 100644
--- a/pkgs/applications/science/math/ginac/default.nix
+++ b/pkgs/applications/science/math/ginac/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cln, pkg-config, readline, gmp, python }:
+{ lib, stdenv, fetchurl, cln, pkg-config, readline, gmp, python3 }:
 
 stdenv.mkDerivation rec {
   name = "ginac-1.8.0";
@@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline ] ++ lib.optional stdenv.isDarwin gmp;
 
-  nativeBuildInputs = [ pkg-config python ];
+  nativeBuildInputs = [ pkg-config python3 ];
+
+  strictDeps = true;
 
   preConfigure = "patchShebangs ginsh";
 
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 4ed9c963ba3..fabb3b08c4d 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -5,11 +5,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.7.1";
+  version = "4.8.0";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "0shwi41van3k0z6rnpl3sz5nh46xbyyljwfpcp8pwxbc26aw5169";
+    sha256 = "sha256-JYd4PEsClj+divtxfJlUyu+kY+ouChLhZZMH5qDX6ms=";
   };
 
   buildInputs = [ blas lapack gmm fltk libjpeg zlib libGLU libGL
diff --git a/pkgs/applications/science/math/gurobi/default.nix b/pkgs/applications/science/math/gurobi/default.nix
index 6066d0325f5..2bfeaa00568 100644
--- a/pkgs/applications/science/math/gurobi/default.nix
+++ b/pkgs/applications/science/math/gurobi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, autoPatchelfHook, python }:
+{ stdenv, lib, fetchurl, autoPatchelfHook, python2 }:
 
 let
   majorVersion = "8.1";
@@ -14,7 +14,9 @@ in stdenv.mkDerivation rec {
   sourceRoot = "gurobi${builtins.replaceStrings ["."] [""] version}/linux64";
 
   nativeBuildInputs = [ autoPatchelfHook ];
-  buildInputs = [ (python.withPackages (ps: [ ps.gurobipy ])) ];
+  buildInputs = [ (python2.withPackages (ps: [ ps.gurobipy ])) ];
+
+  strictDeps = true;
 
   buildPhase = ''
     cd src/build
diff --git a/pkgs/applications/science/math/msieve/default.nix b/pkgs/applications/science/math/msieve/default.nix
index 679b29cb062..588df51554a 100644
--- a/pkgs/applications/science/math/msieve/default.nix
+++ b/pkgs/applications/science/math/msieve/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   ECM = if ecm == null then "0" else "1";
 
   # Doesn't hurt Linux but lets clang-based platforms like Darwin work fine too
-  makeFlags = [ "CC=cc" "all" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "all" ];
 
   installPhase = ''
     mkdir -p $out/bin/
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/science/math/palp/default.nix b/pkgs/applications/science/math/palp/default.nix
index 97b5f88e55b..ffe17bc3dec 100644
--- a/pkgs/applications/science/math/palp/default.nix
+++ b/pkgs/applications/science/math/palp/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , dimensions ? 6 # works for <= dimensions dimensions, but is only optimized for that exact value
 , doSymlink ? true # symlink the executables to the default location (without dimension postfix)
@@ -9,11 +10,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "palp";
-  version = "2.11";
+  version = "2.20";
 
   src = fetchurl {
-    url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-${version}.tar.gz";
-    sha256 = "00jpm73fw9jjq58z6rysr1mwv489j6rpfqqlhm9ab0dln4kyhh05";
+    url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/${pname}-${version}.tar.gz";
+    sha256 = "1q1cl3vpdir16szy0jcadysydcrjp48hqxyx42kr8g9digkqjgkj";
   };
 
   hardeningDisable = [
@@ -25,8 +26,8 @@ stdenv.mkDerivation rec {
   '';
 
   preBuild = ''
-      echo Building PALP optimized for ${dim} dimensions
-      sed -i "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax ${dim}/" Global.h
+    echo Building PALP optimized for ${dim} dimensions
+    sed -i "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax ${dim}/" Global.h
   '';
 
   # palp has no tests of its own. This test is an adapted sage test that failed
@@ -42,14 +43,14 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    mkdir -p "$out/bin"
+    mkdir -p $out/bin
     for file in poly class cws nef mori; do
-        cp -p $file.x "$out/bin/$file-${dim}d.x"
+      cp -p $file.x "$out/bin/$file-${dim}d.x"
     done
   '' + lib.optionalString doSymlink ''
-    cd "$out/bin"
+    cd $out/bin
     for file in poly class cws nef mori; do
-        ln -sf $file-6d.x $file.x
+      ln -sf $file-6d.x $file.x
     done
   '';
 
diff --git a/pkgs/applications/science/math/perseus/default.nix b/pkgs/applications/science/math/perseus/default.nix
index 242f2e2cea5..d53236d8070 100644
--- a/pkgs/applications/science/math/perseus/default.nix
+++ b/pkgs/applications/science/math/perseus/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "perseus-4-beta";
   version = "4-beta";
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   hardeningDisable = [ "stackprotector" ];
 
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index 3d80d8c039e..7ee86793089 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "3.16.0";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "1vqzrh5zxwfvih6c3lak0wkkw6bajl88xzl1zk84gxsk9wdymrk4";
+    sha256 = "sha256-Nxe1DZL8mh9aBWXQdlp5wC1l5b9mchlrRyE+LKC+yLI=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/math/ratpoints/default.nix b/pkgs/applications/science/math/ratpoints/default.nix
index eed1c8e3fd4..14330b0f19b 100644
--- a/pkgs/applications/science/math/ratpoints/default.nix
+++ b/pkgs/applications/science/math/ratpoints/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gmp ];
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
   buildFlags = lib.optional stdenv.isDarwin ["CCFLAGS2=-lgmp -lc -lm" "CCFLAGS=-UUSE_SSE"];
   installFlags = [ "INSTALL_DIR=$(out)" ];
 
diff --git a/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch b/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch
new file mode 100644
index 00000000000..88cb66506b1
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch
@@ -0,0 +1,16 @@
+diff --git a/src/sage/repl/rich_output/display_manager.py b/src/sage/repl/rich_output/display_manager.py
+index fb21f7a9c9..f39470777d 100644
+--- a/src/sage/repl/rich_output/display_manager.py
++++ b/src/sage/repl/rich_output/display_manager.py
+@@ -749,9 +749,9 @@ class DisplayManager(SageObject):
+             import sage.env
+             import re
+             import os
+-            with open(os.path.join(sage.env.THREEJS_DIR, 'build', 'three.min.js')) as f:
++            with open(os.path.join(sage.env.THREEJS_DIR, 'build', 'three.js')) as f:
+                 text = f.read().replace('\n','')
+-            version = re.search(r'REVISION="(\d+)"', text).group(1)
++            version = re.search(r"REVISION = '(\d+)'", text).group(1)
+             return """
+ <script src="https://cdn.jsdelivr.net/gh/mrdoob/three.js@r{0}/build/three.min.js"></script>
+ <script src="https://cdn.jsdelivr.net/gh/mrdoob/three.js@r{0}/examples/js/controls/OrbitControls.js"></script>
diff --git a/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch b/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch
new file mode 100644
index 00000000000..3fdb8f768e9
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch
@@ -0,0 +1,131 @@
+diff --git a/src/sage/libs/eclib/interface.py b/src/sage/libs/eclib/interface.py
+index e898456720..6b98c12328 100644
+--- a/src/sage/libs/eclib/interface.py
++++ b/src/sage/libs/eclib/interface.py
+@@ -758,78 +758,78 @@ class mwrank_MordellWeil(SageObject):
+ 
+         sage: EQ = mwrank_MordellWeil(E, verbose=True)
+         sage: EQ.search(1)
+-        P1 = [0:1:0]     is torsion point, order 1
+-        P1 = [-3:0:1]     is generator number 1
+-        saturating up to 20...Checking 2-saturation
++        P1 = [0:1:0]         is torsion point, order 1
++        P1 = [-3:0:1]         is generator number 1
++        saturating up to 20...Checking 2-saturation...
+         Points have successfully been 2-saturated (max q used = 7)
+-        Checking 3-saturation
++        Checking 3-saturation...
+         Points have successfully been 3-saturated (max q used = 7)
+-        Checking 5-saturation
++        Checking 5-saturation...
+         Points have successfully been 5-saturated (max q used = 23)
+-        Checking 7-saturation
++        Checking 7-saturation...
+         Points have successfully been 7-saturated (max q used = 41)
+-        Checking 11-saturation
++        Checking 11-saturation...
+         Points have successfully been 11-saturated (max q used = 17)
+-        Checking 13-saturation
++        Checking 13-saturation...
+         Points have successfully been 13-saturated (max q used = 43)
+-        Checking 17-saturation
++        Checking 17-saturation...
+         Points have successfully been 17-saturated (max q used = 31)
+-        Checking 19-saturation
++        Checking 19-saturation...
+         Points have successfully been 19-saturated (max q used = 37)
+         done
+-        P2 = [-2:3:1]     is generator number 2
+-        saturating up to 20...Checking 2-saturation
++        P2 = [-2:3:1]         is generator number 2
++        saturating up to 20...Checking 2-saturation...
+         possible kernel vector = [1,1]
+         This point may be in 2E(Q): [14:-52:1]
+         ...and it is!
+         Replacing old generator #1 with new generator [1:-1:1]
+         Points have successfully been 2-saturated (max q used = 7)
+         Index gain = 2^1
+-        Checking 3-saturation
++        Checking 3-saturation...
+         Points have successfully been 3-saturated (max q used = 13)
+-        Checking 5-saturation
++        Checking 5-saturation...
+         Points have successfully been 5-saturated (max q used = 67)
+-        Checking 7-saturation
++        Checking 7-saturation...
+         Points have successfully been 7-saturated (max q used = 53)
+-        Checking 11-saturation
++        Checking 11-saturation...
+         Points have successfully been 11-saturated (max q used = 73)
+-        Checking 13-saturation
++        Checking 13-saturation...
+         Points have successfully been 13-saturated (max q used = 103)
+-        Checking 17-saturation
++        Checking 17-saturation...
+         Points have successfully been 17-saturated (max q used = 113)
+-        Checking 19-saturation
++        Checking 19-saturation...
+         Points have successfully been 19-saturated (max q used = 47)
+         done (index = 2).
+         Gained index 2, new generators = [ [1:-1:1] [-2:3:1] ]
+-        P3 = [-14:25:8]   is generator number 3
+-        saturating up to 20...Checking 2-saturation
++        P3 = [-14:25:8]       is generator number 3
++        saturating up to 20...Checking 2-saturation...
+         Points have successfully been 2-saturated (max q used = 11)
+-        Checking 3-saturation
++        Checking 3-saturation...
+         Points have successfully been 3-saturated (max q used = 13)
+-        Checking 5-saturation
++        Checking 5-saturation...
+         Points have successfully been 5-saturated (max q used = 71)
+-        Checking 7-saturation
++        Checking 7-saturation...
+         Points have successfully been 7-saturated (max q used = 101)
+-        Checking 11-saturation
++        Checking 11-saturation...
+         Points have successfully been 11-saturated (max q used = 127)
+-        Checking 13-saturation
++        Checking 13-saturation...
+         Points have successfully been 13-saturated (max q used = 151)
+-        Checking 17-saturation
++        Checking 17-saturation...
+         Points have successfully been 17-saturated (max q used = 139)
+-        Checking 19-saturation
++        Checking 19-saturation...
+         Points have successfully been 19-saturated (max q used = 179)
+         done (index = 1).
+-        P4 = [-1:3:1]    = -1*P1 + -1*P2 + -1*P3 (mod torsion)
+-        P4 = [0:2:1]     = 2*P1 + 0*P2 + 1*P3 (mod torsion)
+-        P4 = [2:13:8]    = -3*P1 + 1*P2 + -1*P3 (mod torsion)
+-        P4 = [1:0:1]     = -1*P1 + 0*P2 + 0*P3 (mod torsion)
+-        P4 = [2:0:1]     = -1*P1 + 1*P2 + 0*P3 (mod torsion)
+-        P4 = [18:7:8]    = -2*P1 + -1*P2 + -1*P3 (mod torsion)
+-        P4 = [3:3:1]     = 1*P1 + 0*P2 + 1*P3 (mod torsion)
+-        P4 = [4:6:1]     = 0*P1 + -1*P2 + -1*P3 (mod torsion)
+-        P4 = [36:69:64]  = 1*P1 + -2*P2 + 0*P3 (mod torsion)
+-        P4 = [68:-25:64]         = -2*P1 + -1*P2 + -2*P3 (mod torsion)
+-        P4 = [12:35:27]  = 1*P1 + -1*P2 + -1*P3 (mod torsion)
++        P4 = [-1:3:1]        = -1*P1 + -1*P2 + -1*P3 (mod torsion)
++        P4 = [0:2:1]         = 2*P1 + 0*P2 + 1*P3 (mod torsion)
++        P4 = [2:13:8]        = -3*P1 + 1*P2 + -1*P3 (mod torsion)
++        P4 = [1:0:1]         = -1*P1 + 0*P2 + 0*P3 (mod torsion)
++        P4 = [2:0:1]         = -1*P1 + 1*P2 + 0*P3 (mod torsion)
++        P4 = [18:7:8]        = -2*P1 + -1*P2 + -1*P3 (mod torsion)
++        P4 = [3:3:1]         = 1*P1 + 0*P2 + 1*P3 (mod torsion)
++        P4 = [4:6:1]         = 0*P1 + -1*P2 + -1*P3 (mod torsion)
++        P4 = [36:69:64]      = 1*P1 + -2*P2 + 0*P3 (mod torsion)
++        P4 = [68:-25:64]     = -2*P1 + -1*P2 + -2*P3 (mod torsion)
++        P4 = [12:35:27]      = 1*P1 + -1*P2 + -1*P3 (mod torsion)
+         sage: EQ
+         Subgroup of Mordell-Weil group: [[1:-1:1], [-2:3:1], [-14:25:8]]
+ 
+@@ -1076,7 +1076,7 @@ class mwrank_MordellWeil(SageObject):
+             sage: EQ.search(1)
+             P1 = [0:1:0]         is torsion point, order 1
+             P1 = [-3:0:1]         is generator number 1
+-            saturating up to 20...Checking 2-saturation
++            saturating up to 20...Checking 2-saturation...
+             ...
+             P4 = [12:35:27]      = 1*P1 + -1*P2 + -1*P3 (mod torsion)
+             sage: EQ
diff --git a/pkgs/applications/science/math/sage/patches/pillow-update.patch b/pkgs/applications/science/math/sage/patches/pillow-update.patch
deleted file mode 100644
index 19d61552262..00000000000
--- a/pkgs/applications/science/math/sage/patches/pillow-update.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/src/sage/repl/image.py b/src/sage/repl/image.py
-index d7d00b0..cd1607a 100644
---- a/src/sage/repl/image.py
-+++ b/src/sage/repl/image.py
-@@ -77,7 +77,7 @@ class Image(SageObject):
- 
-         - ``size`` -- 2-tuple, containing (width, height) in pixels.
- 
--        - ``color`` -- string or tuple of numeric. What colour to use
-+        - ``color`` -- string, numeric or tuple of numeric. What colour to use
-           for the image. Default is black.  If given, this should be a
-           a tuple with one value per band. When creating RGB images,
-           you can also use colour strings as supported by the
-@@ -91,9 +91,15 @@ class Image(SageObject):
-         EXAMPLES::
- 
-             sage: from sage.repl.image import Image
--            sage: Image('P', (16, 16), (13,))
-+            sage: Image('P', (16, 16), 13)
-             16x16px 8-bit Color image
-         """
-+        # pillow does not support Sage integers as color
-+        from sage.rings.integer import Integer
-+        if isinstance(color, Integer):
-+            color = int(color)
-+        elif isinstance(color, tuple):
-+            color = tuple(int(i) if isinstance(i, Integer) else i for i in color)
-         self._pil = PIL.Image.new(mode, size, color)
- 
-     @property
-@@ -233,7 +239,7 @@ class Image(SageObject):
-         EXAMPLES::
- 
-             sage: from sage.repl.image import Image
--            sage: img = Image('P', (12, 34), (13,))
-+            sage: img = Image('P', (12, 34), 13)
-             sage: filename = tmp_filename(ext='.png')
-             sage: img.save(filename)
-             sage: with open(filename, 'rb') as f:
diff --git a/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch b/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch
deleted file mode 100644
index 83bd83a6d33..00000000000
--- a/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py
-index cb3667659e..867f547d71 100644
---- a/src/sage/doctest/forker.py
-+++ b/src/sage/doctest/forker.py
-@@ -200,6 +200,15 @@ def init_sage(controller=None):
-     from sage.cpython._py2_random import Random
-     sage.misc.randstate.DEFAULT_PYTHON_RANDOM = Random
- 
-+    # IPython's pretty printer sorts the repr of dicts by their keys by default
-+    # (or their keys' str() if they are not otherwise orderable).  However, it
-+    # disables this for CPython 3.6+ opting to instead display dicts' "natural"
-+    # insertion order, which is preserved in those versions).
-+    # However, this order is random in some instances.
-+    # Also modifications of code may affect the order.
-+    # So here we fore sorted dict printing.
-+    IPython.lib.pretty.for_type(dict, _sorted_dict_pprinter_factory('{', '}'))
-+
-     if controller is None:
-         import sage.repl.ipython_kernel.all_jupyter
-     else:
-@@ -222,15 +231,6 @@ def init_sage(controller=None):
-     from sage.repl.rich_output.backend_doctest import BackendDoctest
-     dm.switch_backend(BackendDoctest())
- 
--    # IPython's pretty printer sorts the repr of dicts by their keys by default
--    # (or their keys' str() if they are not otherwise orderable).  However, it
--    # disables this for CPython 3.6+ opting to instead display dicts' "natural"
--    # insertion order, which is preserved in those versions).
--    # However, this order is random in some instances.
--    # Also modifications of code may affect the order.
--    # So here we fore sorted dict printing.
--    IPython.lib.pretty.for_type(dict, _sorted_dict_pprinter_factory('{', '}'))
--
-     # Switch on extra debugging
-     from sage.structure.debug_options import debug
-     debug.refine_category_hash_check = True
diff --git a/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch b/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch
deleted file mode 100644
index 2ee5db3e29c..00000000000
--- a/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/sage/interfaces/sagespawn.pyx b/src/sage/interfaces/sagespawn.pyx
-index 9041238f1d..469befbc66 100644
---- a/src/sage/interfaces/sagespawn.pyx
-+++ b/src/sage/interfaces/sagespawn.pyx
-@@ -228,7 +228,7 @@ class SagePtyProcess(PtyProcess):
-         Check that the process eventually dies after calling
-         ``terminate_async``::
- 
--            sage: s.ptyproc.terminate_async(interval=0.2)
-+            sage: s.ptyproc.terminate_async(interval=float(0.2))
-             sage: while True:
-             ....:     try:
-             ....:         os.kill(s.pid, 0)
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index b8fb4159660..1fb605b3599 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -9,6 +9,20 @@
 # This is done because multiple derivations rely on these sources and they should
 # all get the same sources with the same patches applied.
 
+let
+  # Fetch a diff between `base` and `rev` on sage's git server.
+  # Used to fetch trac tickets by setting the `base` to the last release and the
+  # `rev` to the last commit of the ticket.
+  fetchSageDiff = { base, name, rev, sha256, ...}@args: (
+    fetchpatch ({
+      inherit name sha256;
+      url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}";
+      # We don't care about sage's own build system (which builds all its dependencies).
+      # Exclude build system changes to avoid conflicts.
+      excludes = [ "build/*" ];
+    } // builtins.removeAttrs args [ "rev" "base" "sha256" ])
+  );
+in
 stdenv.mkDerivation rec {
   version = "9.2";
   pname = "sage-src";
@@ -40,17 +54,13 @@ stdenv.mkDerivation rec {
     # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
     ./patches/sphinx-docbuild-subprocesses.patch
 
-    # Sage's workaround to pretty print dicts (in
-    # src/sage/doctest/forker.py:init_sage) runs too late (after
-    # controller.load_environment(), which imports sage.all.*) to to
-    # affect sage.sandpiles.Sandpile{Config,Divisor}'s pretty printer.
-    # Due to the sandpiles module being lazily loaded, this only
-    # affects the first run (subsequent runs read from an import cache
-    # at ~/.sage/cache and are not affected), which is probably why
-    # other distributions don't hit this bug. This breaks two sandpile
-    # tests, so do the workaround a little bit earlier.
-    # https://trac.sagemath.org/ticket/31053
-    ./patches/register-pretty-printer-earlier.patch
+    # Register sorted dict pprinter earlier (https://trac.sagemath.org/ticket/31053)
+    (fetchSageDiff {
+      base = "9.3.beta4";
+      name = "register-pretty-printer-earlier.patch";
+      rev = "d658230ce06ca19f4a3b3a4576297ee82f2d2151";
+      sha256 = "sha256-9mPUV7K5PoLDH2vVaYaOfvDLDpmxU0Aj7m/eaXYotDs=";
+    })
   ];
 
   # Since sage unfortunately does not release bugfix releases, packagers must
@@ -63,14 +73,28 @@ stdenv.mkDerivation rec {
 
     # fix intermittent errors in Sage 9.2's psage.py (this patch is
     # already included in Sage 9.3): https://trac.sagemath.org/ticket/30730
-    (fetchpatch {
+    (fetchSageDiff {
+      base = "9.2.rc2";
       name = "fix-psage-is-locked.patch";
-      url = "https://git.sagemath.org/sage.git/patch/?id=75df605f216ddc7b6ca719be942d666b241520e9";
+      rev = "75df605f216ddc7b6ca719be942d666b241520e9";
       sha256 = "0g9pl1wbb3sgs26d3bvv70cpa77sfskylv4kd255y1794f1fgk4q";
     })
 
     # fix intermittent errors in sagespawn.pyx: https://trac.sagemath.org/ticket/31052
-    ./patches/sagespawn-implicit-casting.patch
+    (fetchSageDiff {
+      base = "9.2";
+      name = "sagespawn-implicit-casting.patch";
+      rev = "2959ac792ebd6107fe87c9af1541083de5ba02d6";
+      sha256 = "sha256-bWIpEGir9Kawak5CJegBMNcHm/CqhWmdru+emeSsvO0=";
+    })
+
+    # fix intermittent errors in doctest/test.py: https://trac.sagemath.org/ticket/26912
+    (fetchSageDiff {
+      base = "9.3.beta8";
+      name = "set-cysignals-crash-ndebug.patch";
+      rev = "ca5257a5d0f32efc9f8f07e126020856270b1a18";
+      sha256 = "sha256-KViw63xE3O0eUiOYzoxNrr4NL+csql9GPJLDJCf/EZs=";
+    })
   ];
 
   # Patches needed because of package updates. We could just pin the versions of
@@ -79,20 +103,7 @@ stdenv.mkDerivation rec {
   # compatible with never dependency versions when possible. All these changes
   # should come from or be proposed to upstream. This list will probably never
   # be empty since dependencies update all the time.
-  packageUpgradePatches = let
-    # Fetch a diff between `base` and `rev` on sage's git server.
-    # Used to fetch trac tickets by setting the `base` to the last release and the
-    # `rev` to the last commit of the ticket.
-    fetchSageDiff = { base, rev, name ? "sage-diff-${base}-${rev}.patch", ...}@args: (
-      fetchpatch ({
-        inherit name;
-        url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}";
-        # We don't care about sage's own build system (which builds all its dependencies).
-        # Exclude build system changes to avoid conflicts.
-        excludes = [ "build/*" ];
-      } // builtins.removeAttrs args [ "rev" "base" ])
-    );
-  in [
+  packageUpgradePatches = [
     # After updating smypow to (https://trac.sagemath.org/ticket/3360) we can
     # now set the cache dir to be withing the .sage directory. This is not
     # strictly necessary, but keeps us from littering in the user's HOME.
@@ -102,10 +113,62 @@ stdenv.mkDerivation rec {
     ./patches/ignore-cmp-deprecation.patch
 
     # adapt sage's Image class to pillow 8.0.1 (https://trac.sagemath.org/ticket/30971)
-    ./patches/pillow-update.patch
+    (fetchSageDiff {
+      base = "9.3.beta2";
+      name = "pillow-8.0.1-update.patch";
+      rev = "f05f2d0aac9c4b5abe68105cee2cc7f2c8461847";
+      sha256 = "sha256-uY2UlgSd5hhOUUukB4Xc3Gjy0/e7p/qyq9jdvz10IOs=";
+    })
+
+    # don't use deprecated numpy type aliases (https://trac.sagemath.org/ticket/31364)
+    (fetchSageDiff {
+      base = "9.3.beta7";
+      name = "dont-use-deprecated-numpy-type-aliases.patch";
+      rev = "dfdef60515d4a4269e82d91280f76a7fdf10bf97";
+      sha256 = "sha256-77/3LkT5J7DQN8IPlGJKB6ZcJPaF7xwje06JNns+0AE=";
+    })
 
     # fix test output with sympy 1.7 (https://trac.sagemath.org/ticket/30985)
     ./patches/sympy-1.7-update.patch
+
+    # workaround until we use sage's fork of threejs, which contains a "version" file
+    ./patches/dont-grep-threejs-version-from-minified-js.patch
+
+    # updated eclib output has punctuation changes and tidier whitespace
+    ./patches/eclib-20210223-test-formatting.patch
+
+    # upgrade arb to 2.18.1 (https://trac.sagemath.org/ticket/28623)
+    (fetchSageDiff {
+      base = "9.3.beta3";
+      name = "arb-2.18.1-update.patch";
+      rev = "0c9c4ed35c2eaf34ae0d19387c07b7f460e4abce";
+      sha256 = "sha256-CjOJIsyyVCziAfvE6pWSihPO35IZMcY2/taXAsqhPLY=";
+    })
+
+    # giac 1.6.0-47 update (https://trac.sagemath.org/ticket/30537)
+    (fetchSageDiff {
+      base = "9.3.beta7";
+      name = "giac-1.6.0-47-update.patch";
+      rev = "f05720bf63dfaf33a4e3b6d3ed2c2c0ec46b5d31";
+      sha256 = "sha256-gDUq+84eXd5GxLBWUSI61GMJpBF2KX4LBVOt3mS1NF8=";
+    })
+
+    # Make gcd/lcm interact better with pari and gmpy2 (https://trac.sagemath.org/ticket/30849)
+    # needed for pari 2.13.1 update, which we will do in the future
+    (fetchSageDiff {
+      base = "9.3.beta0";
+      name = "make-gcd-lcm-interact-better-with-pari-and-gmpy2.patch";
+      rev = "75c1516f0abb9e6f8c335e38e4031f6ef674ed30";
+      sha256 = "sha256-RukkieIZcXNrju904H2oyGKdtpdE+9vNzvyjN2IBNg0=";
+    })
+
+    # cypari 2.1.2 update (https://trac.sagemath.org/ticket/31029)
+    (fetchSageDiff {
+      base = "9.3.beta3";
+      name = "cypari-2.1.2-update.patch";
+      rev = "b9aadfd08e81d74ca7c229bb80eb853b592887d0";
+      sha256 = "sha256-eKaMy7kpu+YKdL8bPStgocxBCTfc2Z/10RrGy2LENFw=";
+    })
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 1c2235bf71b..245ddcedeee 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -32,7 +32,7 @@
 , ntl
 , numpy
 , pari
-, pkgconfig
+, pkgconfig # the python module, not the pkg-config alias
 , pkg-config
 , planarity
 , ppl
diff --git a/pkgs/applications/science/math/tilp2/default.nix b/pkgs/applications/science/math/tilp2/default.nix
index 1b46f982b41..ebcca69f094 100644
--- a/pkgs/applications/science/math/tilp2/default.nix
+++ b/pkgs/applications/science/math/tilp2/default.nix
@@ -7,6 +7,7 @@
 , intltool
 , glib
 , gnome2
+, gtk2
 , gfm
 , libticables2
 , libticalcs2
@@ -36,7 +37,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    gnome2.gtk
+    gtk2
     gnome2.libglade
     gfm
     libticables2
diff --git a/pkgs/applications/science/math/weka/default.nix b/pkgs/applications/science/math/weka/default.nix
index 179801da379..9d18763aa32 100644
--- a/pkgs/applications/science/math/weka/default.nix
+++ b/pkgs/applications/science/math/weka/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0zwmhspmqb0a7cm6k6i0s6q3w19ws1g9dx3cp2v3g3vsif6cdh31";
   };
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   # The -Xmx1000M comes suggested from their download page:
   # http://www.cs.waikato.ac.nz/ml/weka/downloading.html
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 89bdc415548..25215d7abb5 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "20.06.6";
+  version = "21.02.0";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "054f7n5kx75ng5j20rd5q27n9xxk03mrd7sbxyym1lsswzimqh4w";
+    sha256 = "sha256-5nvaaKsvSEs7QxOszjDK1Xkana2er1BCMZ83b1JZSqc=";
   };
 
   buildInputs = [ wxGTK maxima gnome3.adwaita-icon-theme ];
diff --git a/pkgs/applications/science/medicine/aliza/default.nix b/pkgs/applications/science/medicine/aliza/default.nix
index c6bfd6361f2..0eb89b63e47 100644
--- a/pkgs/applications/science/medicine/aliza/default.nix
+++ b/pkgs/applications/science/medicine/aliza/default.nix
@@ -3,23 +3,28 @@
 with lib;
 stdenv.mkDerivation {
   pname = "aliza";
-  version = "1.98.32";
+  version = "1.98.57";
   src = fetchurl {
     # See https://www.aliza-dicom-viewer.com/download
-    url = "https://drive.google.com/uc?export=download&id=1nggavPhY_633T-AW9PdkcAgbWtzv3QKG";
-    sha256 = "00vbgv8ca9ckgkicyyngrb01yhhcqc8hygg2bls7b44c47hcc8zz";
+    urls = [
+      "https://drive.google.com/uc?export=download&id=1-AXa3tjy_onecW2k7ftjAQl0KGTb0B1Y"
+      "https://web.archive.org/web/20210327224315/https://doc-0s-0s-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/1lgjid9ti29rdf5ebmd7o58iqhs3gfpo/1616884950000/16072287944266838401/*/1-AXa3tjy_onecW2k7ftjAQl0KGTb0B1Y?e=download"
+    ];
+    sha256 = "01qk2gadmc24pmfdnmpiz7vgfiqkvhznyq9rsr153frscg76gc9b";
     name = "aliza.rpm";
   };
 
-  buildInputs = [ rpmextract makeWrapper ];
+  nativeBuildInputs = [ makeWrapper rpmextract ];
 
   unpackCmd = "rpmextract $curSrc";
 
-  patchPhase = ''
+  postPatch = ''
     sed -i 's/^Exec.*$/Exec=aliza %F/' share/applications/aliza.desktop
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out
     cp -r bin share $out
 
diff --git a/pkgs/applications/science/medicine/xmedcon/default.nix b/pkgs/applications/science/medicine/xmedcon/default.nix
new file mode 100644
index 00000000000..e4a5f22891e
--- /dev/null
+++ b/pkgs/applications/science/medicine/xmedcon/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, lib
+, fetchurl
+, gtk3
+, glib
+, pkg-config
+, libpng
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xmedcon";
+  version = "0.21.0";
+
+  src = fetchurl {
+    url = "https://prdownloads.sourceforge.net/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "0yfnbrcil5i76z1wbg308pb1mnjbcxy6nih46qpqs038v1lhh4q8";
+  };
+
+  buildInputs = [
+    gtk3
+    glib
+    libpng
+    zlib
+  ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  meta = with lib; {
+    description = "An open source toolkit for medical image conversion ";
+    homepage = "https://xmedcon.sourceforge.io/Main/HomePage";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ arianvp flokli ];
+    platforms = with platforms; [ darwin linux ];
+  };
+}
diff --git a/pkgs/applications/science/misc/cytoscape/default.nix b/pkgs/applications/science/misc/cytoscape/default.nix
index db98e0db348..3ab7d57f95a 100644
--- a/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/pkgs/applications/science/misc/cytoscape/default.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [jre makeWrapper];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   installPhase = ''
     mkdir -pv $out/{share,bin}
diff --git a/pkgs/applications/science/misc/root/5.nix b/pkgs/applications/science/misc/root/5.nix
index 144827413b5..75607fdda34 100644
--- a/pkgs/applications/science/misc/root/5.nix
+++ b/pkgs/applications/science/misc/root/5.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, fetchpatch, cmake, pcre, pkg-config, python2
-, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, lzma, gsl_1, xxHash
+, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, xz, gsl_1, xxHash
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ pcre python2 zlib libxml2 lz4 lzma gsl_1 xxHash ]
+  buildInputs = [ pcre python2 zlib libxml2 lz4 xz gsl_1 xxHash ]
     ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
     ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index 2f3d57c31e7..9df3b0020a0 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, makeWrapper, cmake, ftgl, gl2ps, glew, gsl, llvm_5
-, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, lzma, pcre
+, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, xz, pcre
 , pkg-config, python, xxHash, zlib, zstd
 , libAfterImage, giflib, libjpeg, libtiff, libpng
 , Cocoa, OpenGL, noSplash ? false }:
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkg-config ];
-  buildInputs = [ ftgl gl2ps glew pcre zlib zstd llvm_5 libxml2 lz4 lzma gsl xxHash libAfterImage giflib libjpeg libtiff libpng python.pkgs.numpy ]
+  buildInputs = [ ftgl gl2ps glew pcre zlib zstd llvm_5 libxml2 lz4 xz gsl xxHash libAfterImage giflib libjpeg libtiff libpng python.pkgs.numpy ]
     ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
     ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
diff --git a/pkgs/applications/science/misc/simgrid/default.nix b/pkgs/applications/science/misc/simgrid/default.nix
index 771e79311c9..76937d19651 100644
--- a/pkgs/applications/science/misc/simgrid/default.nix
+++ b/pkgs/applications/science/misc/simgrid/default.nix
@@ -18,14 +18,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "simgrid";
-  version = "3.26";
+  version = "3.27";
 
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0kwiggdjqjhjvmwb1m7hb9clvm3xz948fy5ia67dif2pakwad754";
+    sha256 = "13nwsyk030fhl3srhpc28j5s6594z0m38606f4ygc4qhv9wxw011";
   };
 
   nativeBuildInputs = [ cmake perl python3 boost valgrind ]
@@ -105,6 +105,6 @@ stdenv.mkDerivation rec {
     homepage = "https://simgrid.org/";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ mickours mpoquet ];
-    platforms = ["x86_64-linux"];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index edf26f7ec23..b2afc4701a5 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -2,13 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "snakemake";
-  version = "5.28.0";
+  version = "6.0.5";
 
   propagatedBuildInputs = with python3Packages; [
     appdirs
     ConfigArgParse
     datrie
     docutils
+    filelock
     GitPython
     jsonschema
     nbformat
@@ -17,19 +18,20 @@ python3Packages.buildPythonApplication rec {
     pyyaml
     ratelimiter
     requests
+    smart_open
     toposort
     wrapt
   ];
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "2367ce91baf7f8fa7738d33aff9670ffdf5410bbac49aeb209f73b45a3425046";
+    sha256 = "9441169034cce46086a8b45486d75175db645b932e766d28fed312ec837792d3";
   };
 
   doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
 
   meta = with lib; {
-    homepage = "https://snakemake.readthedocs.io";
+    homepage = "https://snakemake.github.io";
     license = licenses.mit;
     description = "Python-based execution environment for make-like workflows";
     longDescription = ''
diff --git a/pkgs/applications/science/networking/sumo/default.nix b/pkgs/applications/science/networking/sumo/default.nix
new file mode 100644
index 00000000000..af252da04f8
--- /dev/null
+++ b/pkgs/applications/science/networking/sumo/default.nix
@@ -0,0 +1,68 @@
+{ lib, bzip2, cmake, eigen, fetchFromGitHub, ffmpeg, fox_1_6, gdal,
+  git, gl2ps, gpp , gtest, jdk, libGL, libGLU, libX11, libjpeg,
+  libpng, libtiff, openscenegraph , proj, python3, python37Packages,
+  stdenv, swig, xercesc, xorg, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "sumo";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "eclipse";
+    repo = "sumo";
+    rev = "v${lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "1w9im1zz8xnkdwmv4v11kn1xcqm889268g1fw4y2s9f6shi41mxx";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    git
+    swig
+  ];
+
+  buildInputs = [
+    bzip2
+    eigen
+    ffmpeg
+    fox_1_6
+    gdal
+    gl2ps
+    gpp
+    gtest
+    jdk
+    libGL
+    libGLU
+    libX11
+    libjpeg
+    libpng
+    libtiff
+    openscenegraph
+    proj
+    python37Packages.setuptools
+    xercesc
+    zlib
+    python3
+  ] ++ (with xorg; [
+    libXcursor
+    libXext
+    libXfixes
+    libXft
+    libXrandr
+    libXrender
+  ]);
+
+  meta = with lib; {
+    description = "The SUMO traffic simulator";
+    longDescription = ''
+      Eclipse SUMO is an open source, highly
+      portable, microscopic and continuous traffic simulation package
+      designed to handle large networks. It allows for intermodal
+      simulation including pedestrians and comes with a large set of
+      tools for scenario creation.
+    '';
+    homepage = "https://github.com/eclipse/sumo";
+    license = licenses.epl20;
+    maintainers = with maintainers; [ mtreca ];
+  };
+}
diff --git a/pkgs/applications/science/physics/professor/default.nix b/pkgs/applications/science/physics/professor/default.nix
new file mode 100644
index 00000000000..6d52951ee9c
--- /dev/null
+++ b/pkgs/applications/science/physics/professor/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl, eigen, makeWrapper, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "professor";
+  version = "2.3.3";
+
+  src = fetchurl {
+    name = "Professor-${version}.tar.gz";
+    url = "https://professor.hepforge.org/downloads/?f=Professor-${version}.tar.gz";
+    sha256 = "17q026r2fpfxzf74d1013ksy3a9m57rcr2q164n9x02ci40bmib0";
+  };
+
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile \
+      --replace '-shared -o' '-shared -install_name "$(out)/$@" -o'
+  '';
+
+  nativeBuildInputs = [ python3.pkgs.cython makeWrapper ];
+  buildInputs = [ python3 eigen ];
+  propagatedBuildInputs = with python3.pkgs; [ iminuit numpy matplotlib yoda ];
+
+  CPPFLAGS = [ "-I${eigen}/include/eigen3" ];
+  PREFIX = placeholder "out";
+
+  postInstall = ''
+    for prog in "$out"/bin/*; do
+      wrapProgram "$prog" --set PYTHONPATH "$PYTHONPATH:$(toPythonPath "$out")"
+    done
+  '';
+
+  doInstallCheck = true;
+  installCheckTarget = "check";
+
+  meta = with lib; {
+    description = "A tuning tool for Monte Carlo event generators";
+    homepage = "https://professor.hepforge.org/";
+    license = licenses.unfree; # no license specified
+    maintainers = [ maintainers.veprbl ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/physics/sherpa/default.nix b/pkgs/applications/science/physics/sherpa/default.nix
index 9a3af78240e..858064a8d22 100644
--- a/pkgs/applications/science/physics/sherpa/default.nix
+++ b/pkgs/applications/science/physics/sherpa/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1iwa17s8ipj6a2b8zss5csb1k5y9s5js38syvq932rxcinbyjsl4";
   };
 
-  postPatch = ''
+  postPatch = lib.optional (stdenv.hostPlatform.libc == "glibc") ''
     sed -ie '/sys\/sysctl.h/d' ATOOLS/Org/Run_Parameter.C
   '';
 
diff --git a/pkgs/applications/science/programming/plm/default.nix b/pkgs/applications/science/programming/plm/default.nix
index dd61c3668cc..e56282b6863 100644
--- a/pkgs/applications/science/programming/plm/default.nix
+++ b/pkgs/applications/science/programming/plm/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     name = "${pname}-${version}.jar";
   };
 
-  buildInputs = [ makeWrapper jre gcc valgrind ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre gcc valgrind ];
 
   phases = [ "installPhase" ];
 
diff --git a/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 9a304272fe9..2fafa2ebf87 100644
--- a/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -19,9 +19,9 @@ stdenv.mkDerivation rec {
     sha256 = "07r60n9422g5sm7x5b62p044cp961l51vx0s8ig2hy24s74hkam1";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook ];
+  nativeBuildInputs = [ wrapGAppsHook unzip ];
 
-  buildInputs = [ unzip gsettings-desktop-schemas gtk3 ];
+  buildInputs = [ gsettings-desktop-schemas gtk3 ];
 
   installPhase = ''
     mkdir -p $out/bin \
diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix
index 703048118f6..51389d20b7d 100644
--- a/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonApplication rec {
   pname = "MAVProxy";
-  version = "1.8.32";
+  version = "1.8.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f89ba880fe7351a13c68ba3f4c56acd6e246790b103f3ec79d9a527b5767b8f0";
+    sha256 = "b922c9b6cf4719667e195a02d8364ccebbe7966a9c18666f8ac22eae9d9e7a2c";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/search/doodle/default.nix b/pkgs/applications/search/doodle/default.nix
index 83dbb651144..c4f6362465f 100644
--- a/pkgs/applications/search/doodle/default.nix
+++ b/pkgs/applications/search/doodle/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, libextractor, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "doodle-0.7.1";
+  name = "doodle-0.7.2";
 
   buildInputs = [ libextractor gettext ];
 
   src = fetchurl {
     url = "https://grothoff.org/christian/doodle/download/${name}.tar.gz";
-    sha256 = "086va4q8swiablv5x72yikrdh5swhy7kzmg5wlszi5a7vjya29xw";
+    sha256 = "sha256-dtRPfUjhBNgN+5zHMYmszISmBv1+K6yjKsbQBiAXWRA=";
   };
 
   meta = {
diff --git a/pkgs/applications/search/recoll/default.nix b/pkgs/applications/search/recoll/default.nix
index 99e323d16da..48671582fba 100644
--- a/pkgs/applications/search/recoll/default.nix
+++ b/pkgs/applications/search/recoll/default.nix
@@ -33,15 +33,13 @@
 , withGui ? true
 }:
 
-assert stdenv.hostPlatform.system != "powerpc-linux";
-
 mkDerivation rec {
   pname = "recoll";
-  version = "1.27.12";
+  version = "1.28.6";
 
   src = fetchurl {
     url = "https://www.lesbonscomptes.com/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0bgadm8p319fws66ca4rpv9fx2bllbphgn892rh78db81lz20i5v";
+    sha256 = "sha256-fSblLddWTJKRzw4VAQp+p3xPe5grB2xITgN6vKr0xLc=";
   };
 
   configureFlags = [ "--enable-recollq" "--disable-webkit" ]
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/terminal-emulators/alacritty/default.nix b/pkgs/applications/terminal-emulators/alacritty/default.nix
index 71986e6ec6f..20d24a904e7 100644
--- a/pkgs/applications/terminal-emulators/alacritty/default.nix
+++ b/pkgs/applications/terminal-emulators/alacritty/default.nix
@@ -52,16 +52,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "alacritty";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "alacritty";
     repo = pname;
     rev = "v${version}";
-    sha256 = "8alCFtr+3aJsqQ2Ra8u5/SRHfDvMq2kRvRCKo/zwMK0=";
+    sha256 = "sha256-VXV6w4OnhJBmvMKl7CynbhI9LclTKaSr+5DhHXMwSsc=";
   };
 
-  cargoSha256 = "kqRlxieChnhWtYYf67gi+2bncIzO56xpnv2uLjcINVM=";
+  cargoSha256 = "sha256-PWnNTMNZKxsfS1OAXe4G3zjfg5gK1SMTc0JJrW90iSM=";
 
   nativeBuildInputs = [
     cmake
@@ -90,12 +90,7 @@ rustPlatform.buildRustPackage rec {
       --replace xdg-open ${xdg-utils}/bin/xdg-open
   '';
 
-  installPhase = ''
-    runHook preInstall
-
-    install -D $releaseDir/alacritty $out/bin/alacritty
-
-  '' + (
+  postInstall = (
     if stdenv.isDarwin then ''
       mkdir $out/Applications
       cp -r extra/osx/Alacritty.app $out/Applications
@@ -126,8 +121,6 @@ rustPlatform.buildRustPackage rec {
     tic -xe alacritty,alacritty-direct -o "$terminfo/share/terminfo" extra/alacritty.info
     mkdir -p $out/nix-support
     echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
-
-    runHook postInstall
   '';
 
   dontPatchELF = true;
@@ -138,5 +131,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ Br1ght0ne mic92 cole-h ma27 ];
     platforms = platforms.unix;
+    changelog = "https://github.com/alacritty/alacritty/blob/v${version}/CHANGELOG.md";
   };
 }
diff --git a/pkgs/applications/terminal-emulators/evilvte/default.nix b/pkgs/applications/terminal-emulators/evilvte/default.nix
index 06dafe09168..5d5ce5d772e 100644
--- a/pkgs/applications/terminal-emulators/evilvte/default.nix
+++ b/pkgs/applications/terminal-emulators/evilvte/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, makeWrapper, pkg-config,
-  gnome2, glib, pango, cairo, gdk-pixbuf, atk, freetype, xorg,
+  gnome2, gtk2, glib, pango, cairo, gdk-pixbuf, atk, freetype, xorg,
   configH ? ""
 }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [
-    gnome2.vte glib pango gnome2.gtk cairo gdk-pixbuf atk freetype xorg.libX11
+    gnome2.vte glib pango gtk2 cairo gdk-pixbuf atk freetype xorg.libX11
     xorg.xorgproto xorg.libXext makeWrapper pkg-config
   ];
 
diff --git a/pkgs/applications/terminal-emulators/foot/default.nix b/pkgs/applications/terminal-emulators/foot/default.nix
index 63642af708f..08ef2f13734 100644
--- a/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/pkgs/applications/terminal-emulators/foot/default.nix
@@ -18,22 +18,28 @@
 , pkg-config
 , allowPgo ? true
 , python3  # for PGO
+# for clang stdenv check
+, foot
+, llvmPackages
+, llvmPackages_latest
 }:
 
 let
-  version = "1.6.4";
+  version = "1.7.1";
 
   # build stimuli file for PGO build and the script to generate it
   # independently of the foot's build, so we can cache the result
   # and avoid unnecessary rebuilds as it can take relatively long
   # to generate
+  #
+  # For every bump, make sure that the hash is still accurate.
   stimulusGenerator = stdenv.mkDerivation {
     pname = "foot-generate-alt-random-writes";
     inherit version;
 
     src = fetchurl {
       url = "https://codeberg.org/dnkl/foot/raw/tag/${version}/scripts/generate-alt-random-writes.py";
-      sha256 = "0pnc5nvqrbgx5618ylrkrs9fyxjh4jcsbryfk6vlnk8x4wyyaibz";
+      sha256 = "019bdiqfi3wx2lwrv3nhq83knc1r3lmqd5zgisa33wwshm2kyv7p";
     };
 
     dontUnpack = true;
@@ -65,8 +71,8 @@ let
 
   # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#performance-optimized-pgo
   pgoCflags = {
-    "clang" = "-O3 -Wno-ignored-optimization-argument -Wno-profile-instr-out-of-date -Wno-profile-instr-unprofiled";
-    "gcc" = "-O3 -Wno-missing-profile";
+    "clang" = "-O3 -Wno-ignored-optimization-argument";
+    "gcc" = "-O3";
   }."${compilerName}";
 
   # ar with lto support
@@ -87,7 +93,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://codeberg.org/dnkl/${pname}/archive/${version}.tar.gz";
-    sha256 = "0awv53l3039s1rnkhdkzc0gwawlnd1m8cl4qhaijhxzzq68w0dfb";
+    sha256 = "1x6nyhlp0zynnbdjx87c4ybfx6fyr0r53vypkfima56dwbfh98ka";
   };
 
   nativeBuildInputs = [
@@ -128,12 +134,26 @@ stdenv.mkDerivation rec {
   preBuild = lib.optionalString doPgo ''
     meson configure -Db_pgo=generate
     ninja
+    # make sure there is _some_ profiling data on all binaries
+    ./footclient --version
+    ./foot --version
+    # generate pgo data of wayland independent code
     ./pgo ${stimuliFile} ${stimuliFile} ${stimuliFile}
     meson configure -Db_pgo=use
-  '' + lib.optionalString (doPgo && stdenv.cc.cc.pname == "clang") ''
+  '' + lib.optionalString (doPgo && compilerName == "clang") ''
     llvm-profdata merge default_*profraw --output=default.profdata
   '';
 
+  passthru.tests = {
+    clang-default-compilation = foot.override {
+      inherit (llvmPackages) stdenv;
+    };
+
+    clang-latest-compilation = foot.override {
+      inherit (llvmPackages_latest) stdenv;
+    };
+  };
+
   meta = with lib; {
     homepage = "https://codeberg.org/dnkl/foot/";
     changelog = "https://codeberg.org/dnkl/foot/releases/tag/${version}";
diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix
index 092d4a0e09e..7dd495f977a 100644
--- a/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, lib, fetchurl, dpkg, atk, glib, pango, gdk-pixbuf, gnome2, gtk2, cairo
+{ stdenv, lib, fetchurl, dpkg, atk, glib, pango, gdk-pixbuf, gnome2, gtk3, cairo
 , freetype, fontconfig, dbus, libXi, libXcursor, libXdamage, libXrandr
 , libXcomposite, libXext, libXfixes, libXrender, libX11, libXtst, libXScrnSaver
-, libxcb, nss, nspr, alsaLib, cups, expat, udev, libpulseaudio }:
+, libxcb, nss, nspr, alsaLib, cups, expat, udev, libpulseaudio, at-spi2-atk }:
 
 let
   libPath = lib.makeLibraryPath [
-    stdenv.cc.cc gtk2 gnome2.GConf atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
+    stdenv.cc.cc gtk3 gnome2.GConf atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
     libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes libxcb
     libXrender libX11 libXtst libXScrnSaver nss nspr alsaLib cups expat udev libpulseaudio
+    at-spi2-atk
   ];
 in
 stdenv.mkDerivation rec {
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
     mkdir -p "$out/bin"
     mv opt "$out/"
     ln -s "$out/opt/Hyper/hyper" "$out/bin/hyper"
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}:\$ORIGIN" "$out/opt/Hyper/hyper"
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}:$out/opt/Hyper:\$ORIGIN" "$out/opt/Hyper/hyper"
     mv usr/* "$out/"
   '';
   dontPatchELF = true;
diff --git a/pkgs/applications/terminal-emulators/kgx/default.nix b/pkgs/applications/terminal-emulators/kgx/default.nix
new file mode 100644
index 00000000000..4e8cf06c1fd
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/kgx/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, genericBranding ? false
+, fetchFromGitLab
+, gettext
+, gnome3
+, libgtop
+, gtk3
+, libhandy
+, pcre2
+, vte
+, appstream-glib
+, desktop-file-utils
+, git
+, meson
+, ninja
+, pkg-config
+, python3
+, sassc
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation {
+  pname = "kgx";
+  version = "unstable-2021-03-13";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "ZanderBrown";
+    repo = "kgx";
+    rev = "105adb6a8d09418a3ce622442aef6ae623dee787";
+    sha256 = "0m34y0nbcfkyicb40iv0iqaq6f9r3f66w43lr803j3351nxqvcz2";
+  };
+
+  buildInputs = [
+    gettext
+    libgtop
+    gnome3.nautilus
+    gtk3
+    libhandy
+    pcre2
+    vte
+  ];
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    git
+    meson
+    ninja
+    pkg-config
+    python3
+    sassc
+    wrapGAppsHook
+  ];
+
+  mesonFlags = lib.optional genericBranding "-Dgeneric=true";
+
+  postPatch = ''
+    chmod +x build-aux/meson/postinstall.py
+    patchShebangs build-aux/meson/postinstall.py
+  '';
+
+  preFixup = ''
+    substituteInPlace $out/share/applications/org.gnome.zbrown.KingsCross.desktop \
+      --replace "Exec=kgx" "Exec=$out/bin/kgx"
+  '';
+
+  meta = with lib; {
+    description = "Simple user-friendly terminal emulator for the GNOME desktop";
+    homepage = "https://gitlab.gnome.org/ZanderBrown/kgx";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ zhaofengli ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix b/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix
index b03acb99530..5255d40b9ce 100644
--- a/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix
+++ b/pkgs/applications/terminal-emulators/rxvt-unicode/wrapper.nix
@@ -40,7 +40,7 @@ let
 
         paths = [ rxvt-unicode-unwrapped ] ++ plugins ++ extraDeps;
 
-        buildInputs = [ makeWrapper ];
+        nativeBuildInputs = [ makeWrapper ];
 
         postBuild = ''
           wrapProgram $out/bin/urxvt \
diff --git a/pkgs/applications/terminal-emulators/terminus/default.nix b/pkgs/applications/terminal-emulators/terminus/default.nix
index 67c660275f5..87394241ef7 100644
--- a/pkgs/applications/terminal-emulators/terminus/default.nix
+++ b/pkgs/applications/terminal-emulators/terminus/default.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
     url = "https://github.com/Eugeny/terminus/releases/download/v${version}/terminus_${version}_amd64.deb";
     sha256 = "1r5n75n71zwahg4rxlnf9qzrb0651gxv0987m6bykqmfpnw91nmb";
   };
-  buildInputs = [ dpkg makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ dpkg ];
   unpackPhase = ''
     mkdir pkg
     dpkg-deb -x $src pkg
diff --git a/pkgs/applications/terminal-emulators/tilix/default.nix b/pkgs/applications/terminal-emulators/tilix/default.nix
index 80956a51244..c0f4ea32576 100644
--- a/pkgs/applications/terminal-emulators/tilix/default.nix
+++ b/pkgs/applications/terminal-emulators/tilix/default.nix
@@ -5,7 +5,7 @@
 , ninja
 , python3
 , pkg-config
-, dmd
+, ldc
 , dconf
 , dbus
 , gsettings-desktop-schemas
@@ -16,17 +16,18 @@
 , glib
 , wrapGAppsHook
 , libunwind
+, appstream
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "tilix";
-  version = "unstable-2019-10-02";
+  version = "1.9.4";
 
   src = fetchFromGitHub {
     owner = "gnunn1";
     repo = "tilix";
-    rev = "ffcd31e3c0e1a560ce89468152d8726065e8fb1f";
-    sha256 = "1bzv7xiqhyblz1rw8ln4zpspmml49vnshn1zsv9di5q7kfgpqrgq";
+    rev = "${version}";
+    sha256 = "sha256:020gr4q7kmqq8vnsh8rw97gf1p2n1yq4d7ncyjjh9l13zkaxqqv9";
   };
 
   # Default upstream else LDC fails to link
@@ -36,12 +37,13 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [
     desktop-file-utils
-    dmd
+    ldc
     meson
     ninja
     pkg-config
     python3
     wrapGAppsHook
+    appstream
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/terminal-emulators/xterm/default.nix b/pkgs/applications/terminal-emulators/xterm/default.nix
index 8983b3d9904..a5db5065707 100644
--- a/pkgs/applications/terminal-emulators/xterm/default.nix
+++ b/pkgs/applications/terminal-emulators/xterm/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "xterm";
-  version = "366";
+  version = "367";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
       "https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
     ];
-    sha256 = "0vmzffy3hzgcgwx305h07ars5sxsq6nnl1ir4xqpxs9zjs2ji2w5";
+    sha256 = "07y51l06n344pjyxdddq6sdvxw25nl10irl4avynkqjnqyqsiw97";
   };
 
   buildInputs = [
@@ -115,5 +115,6 @@ stdenv.mkDerivation rec {
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ nequissimus vrthra ];
     platforms = with lib.platforms; linux ++ darwin;
+    changelog = "https://invisible-island.net/xterm/xterm.log.html";
   };
 }
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index 61ea5a9ddd4..d90de1a526f 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   dontBuild = true;
   dontConfigure = true;
+  dontWrapQtApps = true;
 
   meta = with lib; {
     description = "GUI application that allows to quickly and easily compare files and folders";
diff --git a/pkgs/applications/version-management/bumpver/default.nix b/pkgs/applications/version-management/bumpver/default.nix
index ded8f7ba699..756a031ae1e 100644
--- a/pkgs/applications/version-management/bumpver/default.nix
+++ b/pkgs/applications/version-management/bumpver/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "bumpver";
-  version = "2020.1108";
+  version = "2021.1110";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1bhbrq8fk8rsr78vq9xjz8v9lgv571va0nmg86dwmv6qnj6dymzm";
+    sha256 = "b6a0ddb78db7e00ae7ffe895bf8ef97f91e6310dfc1c4721896bdfd044b1cb03";
   };
 
   prePatch = ''
diff --git a/pkgs/applications/version-management/cvs2svn/default.nix b/pkgs/applications/version-management/cvs2svn/default.nix
index ae1929565b6..af2b5cdc9a3 100644
--- a/pkgs/applications/version-management/cvs2svn/default.nix
+++ b/pkgs/applications/version-management/cvs2svn/default.nix
@@ -12,7 +12,7 @@ python2Packages.buildPythonApplication  rec {
     sha256 = "1ska0z15sjhyfi860rjazz9ya1gxbf5c0h8dfqwz88h7fccd22b4";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   checkInputs = [ subversion git breezy ];
 
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index 2c5ddca5090..d23f2847049 100644
--- a/pkgs/applications/version-management/gerrit/default.nix
+++ b/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gerrit";
-  version = "3.3.1";
+  version = "3.3.2";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    sha256 = "0swj3lmxwh4a0gnkirqrh7znzizsizy3cnlinhhsi319qns2szb1";
+    sha256 = "sha256-tqlJANxJl2r0ZxPb7d8KU9cRMQUFPUIm/zMp4zREGL0=";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix b/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
index 1ffc0653675..036eef1c9c3 100644
--- a/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
@@ -15,7 +15,8 @@ in
       sha256 = "1kn84rsvms1v5l1j2xgrk7dc7mnsmxkc6sqd94mnim22vnwvl8mz";
     };
 
-    buildInputs = [ jre makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ jre ];
 
     phases = "installPhase";
 
diff --git a/pkgs/applications/version-management/git-and-tools/bit/default.nix b/pkgs/applications/version-management/git-and-tools/bit/default.nix
new file mode 100644
index 00000000000..1c88edfd901
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/bit/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, git
+}:
+
+buildGoModule rec {
+  pname = "bit";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "chriswalz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-juQAFVqs0d4EtoX24EyrlKd2qRRseP+jKfM0ymkD39E=";
+  };
+
+  vendorSha256 = "sha256-3Y/B14xX5jaoL44rq9+Nn4niGViLPPXBa8WcJgTvYTA=";
+
+  propagatedBuildInputs = [ git ];
+
+  # Tests require a repository
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Command-line tool for git";
+    homepage = "https://github.com/chriswalz/bit";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/delta/default.nix b/pkgs/applications/version-management/git-and-tools/delta/default.nix
index 4b778537469..20c7f41bc54 100644
--- a/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "sha256-cEVYU7vMgVxVIKztL6LHcvQjrNRRMrB5XMP/7gPCr5A=";
+    sha256 = "02gm3fxqq91gn1hffy9kc6dkc0y7p09sl6f8njfpsaficij4bs7a";
   };
 
-  cargoSha256 = "sha256-iD3Cr1vo0FNyWvAN5m6ND+8sGyekgbkYmIxGTJkPEYE=";
+  cargoSha256 = "1crz7410xfixx2vb1c060fnygwkkp2k2lgh7y1mjjxjzhpybniw5";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
index 5aea15769c0..565fe180ba1 100644
--- a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0hzyh66rlawxip4n2pvz7pbs0cq82clqv1d6c7hf60v1drjxw287";
   };
 
-  buildInputs = [mercurial.python mercurial makeWrapper];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [mercurial.python mercurial];
 
   installPhase = ''
     binPath=$out/bin
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 38413f990a0..6b79d152380 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "1.5.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "1f23b8bn867b4zihz8m91xmkclcw1jnqkwi06klhm5576akahigq";
+    sha256 = "1q0vc9wr4n813mxkf7jjj3prw1n7xv4l985qd57pg4a2js1dqa1y";
   };
 
-  vendorSha256 = "00adc0xjrkjrjh0gxk55vhpgxb5x0j5ialzrdvhlrvhpnb44qrcq";
+  vendorSha256 = "1wv30z0jg195nkpz3rwvhixyw81lg2wzwwajq9g6s3rfjj8gs9v2";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
index 4bfe06fee74..74e2a34aec1 100644
--- a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ghorg";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "gabrie30";
     repo = "ghorg";
     rev = version;
-    sha256 = "sha256-OoNHKDxYKTmfm1rrQxG7PnH7DINa2M/NKc/5iKaUybg=";
+    sha256 = "sha256-HkOMG7VG8jyvr1W1T/62murtNYE8wyT/p3lDtuxfm5M=";
   };
 
   doCheck = false;
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..defad82d5a1 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.7";
 
   src = fetchFromGitHub {
     owner = "x-motemen";
     repo = "ghq";
     rev = "v${version}";
-    sha256 = "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq";
+    sha256 = "sha256-kEs844gj1/PW7Kkpn1tvxfruznRIh2pjHCoSWGF1upQ=";
   };
 
-  vendorSha256 = "0gll132g111vn1hdmdjpkha9rbyppz0qj1ld89gwlk2mqd57jxkd";
+  vendorSha256 = "sha256-5Eth9v98z1gxf1Fz5Lbn2roX7dSBmA7GRzg8uvT0hTI=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-annex-remote-googledrive/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex-remote-googledrive/default.nix
new file mode 100644
index 00000000000..89b2a5f23b0
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-annex-remote-googledrive/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, annexremote
+, drivelib
+, GitPython
+, tenacity
+, humanfriendly
+}:
+
+buildPythonApplication rec {
+  pname = "git-annex-remote-googledrive";
+  version = "1.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "118w0fyy6pck8hyj925ym6ak0xxqhkaq2vharnpl9b97nab4mqg8";
+  };
+
+  propagatedBuildInputs = [ annexremote drivelib GitPython tenacity humanfriendly ];
+
+  # while git-annex does come with a testremote command that *could* be used,
+  # testing this special remote obviously depends on authenticating with google
+  doCheck = false;
+
+  pythonImportsCheck = [ "git_annex_remote_googledrive" ];
+
+  meta = with lib; {
+    description = "A git-annex special remote for Google Drive";
+    homepage = "https://pypi.org/project/git-annex-remote-googledrive/";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ gravndal ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-bug/default.nix b/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
index 7a24fe8e035..a90390ddd3b 100644
--- a/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "git-bug";
-  version = "0.7.1"; # the `rev` below pins the version of the source to get
-  rev = "2d64b85db71a17ff3277bbbf7ac9d8e81f8e416c";
+  version = "0.7.2"; # the `rev` below pins the version of the source to get
+  rev = "cc4a93c8ce931b1390c61035b888ad17110b7bd6";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "MichaelMure";
     repo = "git-bug";
-    sha256 = "01ab3mlwh5g1vr3x85fppflg18gb8ip9mjfsp2b5rfigd9lxyyns";
+    sha256 = "0r6wh0y1fj3d3fbbrzq5n9k6z94xvwqww3xfbslkgyrin5bmziiq";
   };
 
-  vendorSha256 = "0c8b47lj4wl3s21lm0vx4z7hznylm8c4fb8b8gxm278kn3zys607";
+  vendorSha256 = "15hhsrwwjc4krfc2d0r15lys3vr9rb9xk62pan4jr9ycbv0dny90";
 
   doCheck = false;
 
@@ -32,7 +32,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Distributed bug tracker embedded in Git";
     homepage = "https://github.com/MichaelMure/git-bug";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ royneary ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-bz/default.nix b/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
index 20e6a993cab..eec9b7ea124 100644
--- a/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchgit
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxslt, makeWrapper, xmlto
-, pythonPackages }:
+, python2Packages }:
 
 stdenv.mkDerivation {
   pname = "git-bz";
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     asciidoc docbook_xml_dtd_45 docbook_xsl libxslt makeWrapper xmlto
   ];
   buildInputs = []
-    ++ (with pythonPackages; [ python pysqlite ]);
+    ++ (with python2Packages; [ python pysqlite ]);
 
   postPatch = ''
     patchShebangs configure
@@ -27,8 +27,8 @@ stdenv.mkDerivation {
 
   postInstall = ''
     wrapProgram $out/bin/git-bz \
-      --prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pycrypto}")" \
-      --prefix PYTHONPATH : "$(toPythonPath "${pythonPackages.pysqlite}")"
+      --prefix PYTHONPATH : "$(toPythonPath "${python2Packages.pycrypto}")" \
+      --prefix PYTHONPATH : "$(toPythonPath "${python2Packages.pysqlite}")"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
index 5e105ad9dd3..37c10bf2f98 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -5,13 +5,13 @@ let
 
 in buildPythonApplication rec {
   pname = "git-cola";
-  version = "3.8";
+  version = "3.9";
 
   src = fetchFromGitHub {
     owner = "git-cola";
     repo = "git-cola";
     rev = "v${version}";
-    sha256 = "1qxv2k8lxcxpqx46ka7f042xk90xns5w9lc4009cxmsqvcdba03a";
+    sha256 = "11186pdgaw5p4iv10dqcnynf5pws2v9nhqqqca7z5b7m20fpfjl7";
   };
 
   buildInputs = [ git gettext ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix b/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
index 08875dabd0f..f0184c66377 100644
--- a/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
@@ -13,9 +13,9 @@ stdenv.mkDerivation rec {
     sha256 = "13m9y0m6gc3mlw3pqv9x4i0him2ycbysizigdvdanhh514kga602";
   };
 
-  nativeBuildInputs = [ libxslt ];
+  nativeBuildInputs = [ libxslt makeWrapper ];
 
-  buildInputs = [ openssl makeWrapper ];
+  buildInputs = [ openssl ];
 
   patchPhase = ''
     substituteInPlace commands.cpp \
diff --git a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
index f2291882b2b..387a1cb59c5 100644
--- a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-extras";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "tj";
     repo = "git-extras";
     rev = version;
-    sha256 = "12ff9rhgqd71xm72r385hx0h8g75hz0ag0adzqcwfa54k0lhrrrz";
+    sha256 = "sha256-ACuTb1DGft2/32Ezg23jhpl9yua5kUTZ2kKL8KHU+BU=";
   };
 
   nativeBuildInputs = [ unixtools.column which ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index 7f2163e67d6..99772f60bc5 100644
--- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "2.16.1";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00xh3q3gmi88qcl0a61pw532iyw4xcls5h336cjzld70ps2r89g4";
+    sha256 = "0bb6ap8sdp4ad0xkh3y8vj46a363g5gdw0dzf9ycw0z9ah8ispfx";
   };
 
   nativeBuildInputs = [ installShellFiles pbr ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix b/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
index 942a12e239b..7b8b5fed90f 100644
--- a/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "prefix=$(out)" ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   # perl provides shasum
   postInstall = ''
diff --git a/pkgs/applications/version-management/git-and-tools/git-open/default.nix b/pkgs/applications/version-management/git-and-tools/git-open/default.nix
index 5e5bba3df72..c67a575172c 100644
--- a/pkgs/applications/version-management/git-and-tools/git-open/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-open/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildPhase = null;
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-recent/default.nix b/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
index 2ecc5d872b8..1a1811b2f43 100644
--- a/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "1g8i6vpjnnfh7vc1269c91bap267w4bxdqqwnzb8x18vqgn2fx8i";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   buildPhase = null;
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix b/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
index 037de14658d..ec1c44b9613 100644
--- a/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0v0yxydpw6r4awy0hb7sbnh520zsk86ibzh1xjf3983yhsvkfk5v";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
index eea7bed011b..3143d7ef9c3 100644
--- a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
@@ -14,7 +14,7 @@ in stdenv.mkDerivation {
     sha256 = "0hc7yavcp8jmn6b7wngjqhy8kl7f4191sfpik8ycvqghkvvimxj4";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     install -D git-secret $out/bin/git-secret
diff --git a/pkgs/applications/version-management/git-and-tools/git-sync/default.nix b/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
index 87cb7452c75..add7bfc5526 100644
--- a/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "01if8y93wa0mwbkzkzx2v1vqh47zlz4k1dysl6yh5rmppd1psknz";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
 
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 90f6ba5ac5a..1f7fd36e1d3 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -1,5 +1,4 @@
 { fetchurl, lib, stdenv, buildPackages
-, fetchpatch
 , curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio
 , gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
 , openssh, pcre2
@@ -8,6 +7,7 @@
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
 , perlSupport ? true
 , nlsSupport ? true
+, osxkeychainSupport ? stdenv.isDarwin
 , guiSupport
 , withManual ? true
 , pythonSupport ? true
@@ -19,11 +19,12 @@
 , gzip # needed at runtime by gitweb.cgi
 }:
 
+assert osxkeychainSupport -> stdenv.isDarwin;
 assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.30.0";
+  version = "2.31.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
 
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -35,7 +36,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "06ad6dylgla34k9am7d5z8y3rryc8ln3ibq5z0d74rcm20hm0wsm";
+    sha256 = "0h4sg3xqa9pd2agrd7m18sqg319ls978d39qswyf30rjvg5n5wg8";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -65,10 +66,10 @@ stdenv.mkDerivation {
         --subst-var-by gettext ${gettext}
   '';
 
-  nativeBuildInputs = [ gettext perlPackages.perl ]
+  nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
     ++ lib.optionals withManual [ asciidoctor texinfo xmlto docbook2x
          docbook_xsl docbook_xsl_ns docbook_xml_dtd_45 libxslt ];
-  buildInputs = [curl openssl zlib expat cpio makeWrapper libiconv]
+  buildInputs = [curl openssl zlib expat cpio libiconv]
     ++ lib.optionals perlSupport [ perlPackages.perl ]
     ++ lib.optionals guiSupport [tcl tk]
     ++ lib.optionals withpcre2 [ pcre2 ]
@@ -115,7 +116,7 @@ stdenv.mkDerivation {
     make -C contrib/subtree
   '' + (lib.optionalString perlSupport ''
     make -C contrib/diff-highlight
-  '') + (lib.optionalString stdenv.isDarwin ''
+  '') + (lib.optionalString osxkeychainSupport ''
     make -C contrib/credential/osxkeychain
   '') + (lib.optionalString withLibsecret ''
     make -C contrib/credential/libsecret
@@ -129,7 +130,7 @@ stdenv.mkDerivation {
 
   installFlags = [ "NO_INSTALL_HARDLINKS=1" ];
 
-  preInstall = (lib.optionalString stdenv.isDarwin ''
+  preInstall = (lib.optionalString osxkeychainSupport ''
     mkdir -p $out/bin
     ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/
     rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o
@@ -248,8 +249,8 @@ stdenv.mkDerivation {
          notSupported "$out/$prog"
        done
      '')
-   + lib.optionalString stdenv.isDarwin ''
-    # enable git-credential-osxkeychain by default if darwin
+   + lib.optionalString osxkeychainSupport ''
+    # enable git-credential-osxkeychain on darwin if desired (default)
     mkdir -p $out/etc
     cat > $out/etc/gitconfig << EOF
     [credential]
@@ -310,6 +311,9 @@ stdenv.mkDerivation {
     # Tested to fail: 2.18.0
     disable_test t9902-completion "sourcing the completion script clears cached --options"
 
+    # Flaky tests:
+    disable_test t5319-multi-pack-index
+
     ${lib.optionalString (!perlSupport) ''
       # request-pull is a Bash script that invokes Perl, so it is not available
       # when NO_PERL=1, and the test should be skipped, but the test suite does
@@ -335,7 +339,7 @@ stdenv.mkDerivation {
     homepage = "https://git-scm.com/";
     description = "Distributed version control system";
     license = lib.licenses.gpl2;
-    changelog = "https://raw.githubusercontent.com/git/git/${version}/Documentation/RelNotes/${version}.txt";
+    changelog = "https://github.com/git/git/blob/v${version}/Documentation/RelNotes/${version}.txt";
 
     longDescription = ''
       Git, a popular distributed version control system designed to
diff --git a/pkgs/applications/version-management/git-and-tools/gitflow/default.nix b/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
index 08bf5eb6ba0..6572b9b7fc8 100644
--- a/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-kHirHG/bfsU6tKyQ0khNSTyChhzHfzib+HyA3LOtBI8=";
   };
 
-  buildInputs = [ pkgs.makeWrapper ];
+  nativeBuildInputs = [ pkgs.makeWrapper ];
 
   preBuild = ''
     makeFlagsArray+=(prefix="$out")
diff --git a/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index 81b2984087b..caf179f645b 100644
--- a/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip }:
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.11.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0yq98jslbac87zdzlwqc2kcd6hqy2wnza3l8n3asss1iaqcb0ilh";
+    sha256 = "0fc8vxpy1zarxd5lqgwdj2jzv35qsxaydczg0qkws1f88m43n33x";
   };
 
-  cargoSha256 = "16riggrhk1f6lg8y46wn89ab5b1iz6lw00ngid20x4z32d2ww70f";
+  cargoSha256 = "1j5cf5z8ksf5kvi6zfrabv1c127yb6s0dpkl9p8vqdgdc6mzghvd";
 
   nativeBuildInputs = [ python3 perl ];
   buildInputs = [ openssl ]
diff --git a/pkgs/applications/version-management/git-and-tools/glab/default.nix b/pkgs/applications/version-management/git-and-tools/glab/default.nix
index 7a23ec678a6..8e7e739e610 100644
--- a/pkgs/applications/version-management/git-and-tools/glab/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/glab/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "glab";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "profclems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wOeWqgN0VYmTXPTU3z5Utau8diW18QKV7w/2y86R8U0=";
+    sha256 = "sha256-KkkP/qkIrwJUxmZTY8zxJKMbOiaGl8XqJhHAU7oejGs=";
   };
 
-  vendorSha256 = "sha256-Ge3nwI0cY2JxRTn3EZtlal5c6A6TIKfH/CkJnQ1C6PY=";
+  vendorSha256 = "sha256-DO8eH0DAitxX0NOYQBs4/ME9TFQYfXedwbld1DnBWXk=";
   runVend = true;
 
   # Tests are trying to access /homeless-shelter
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..856ee616efb 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.21.0";
 
   src = fetchFromGitHub {
     owner = "zaquestion";
     repo = "lab";
     rev = "v${version}";
-    sha256 = "1l6xsikd1113qd4y0mvjsl64gbi4327m9v4d593f27fxink39j8s";
+    sha256 = "sha256-mkhJmrKpIISd0m0m8fQ9vKuEr6h23BBxK6yo5fB+xcA=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "07zl5xhzgrgr5skba6cds5nal58pllf10gak0ap62j1k9gk2ych2";
+  vendorSha256 = "sha256-cf+DVnGjSNV2eZ8S/Vk+VPlykoSjngrQuPeA9IshBUg=";
 
   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/git-and-tools/radicle-upstream/default.nix b/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
index 26f46066531..766cb417b74 100644
--- a/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "radicle-upstream";
-  version = "0.1.6";
+  version = "0.1.11";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://releases.radicle.xyz/radicle-upstream-${version}.AppImage";
-    sha256 =  "1s299rxala6gqj69j5q4d4n5wfdk2zsb4r9qrhml0m79b4f79yar";
+    sha256 =  "1j0xc9ns3andycbrrzkn6ql6739b1dimzlxq17wwpmqhni9nh673";
   };
 
   contents = appimageTools.extractType2 { inherit name src; };
diff --git a/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
index 2f275827a2e..8f06050d090 100644
--- a/pkgs/applications/version-management/git-and-tools/subgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, unzip, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  name = "subgit-3.3.10";
+  name = "subgit-3.3.11";
 
   meta = {
     description = "A tool for a smooth, stress-free SVN to Git migration";
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://subgit.com/download/${name}.zip";
-    sha256 = "1z7cmaghfy5yjs50b3y6av9h2d6xmpamyxql7vvr3dy6kflvv8fk";
+    sha256 = "sha256-ltTpmXPCIGTmVDxKc6oelMEzQWXRbIf0NESzRugaXo0=";
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
index 8c73c00f00c..a40e959a50a 100644
--- a/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation {
 
   NIX_LDFLAGS = "-lsvn_fs-1";
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     homepage = "https://github.com/svn-all-fast-export/svn2git";
     description = "A fast-import based converter for an svn repo to git repos";
diff --git a/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
index 69742b6d760..74f10a14288 100644
--- a/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     sha256 = "0ly2vrv6q31n0xhciwb7a1ilr5c6ndyi3bg81yfp4axiypps7l41";
   };
 
-  buildInputs = [ ruby makeWrapper ];
+  nativeBuildInputs = [ ruby makeWrapper ];
 
   dontBuild = true;
 
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index 1f2a77d2019..753a3443c31 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tig";
-  version = "2.5.2";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "jonas";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-kkH4px34VpnO/S1VjgQGU9Mm4/VpmiOtvlz2ubtStAk=";
+    sha256 = "sha256-BXs7aKUYiU5L2OjhhmJ+dkHvNcrnw5qREwOTB6npLnw=";
   };
 
   nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];
diff --git a/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix b/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
index aebd488fe30..3225744abc5 100644
--- a/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "1dkr69plk16wllk5bzlkchrzw63pk239dgbjhrb3mb61i065jdam";
   };
 
-  buildInputs = [ makeWrapper git openssl coreutils util-linux gnugrep gnused gawk ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ git openssl coreutils util-linux gnugrep gnused gawk ];
 
   patches = [ ./helper-scripts_depspathprefix.patch ];
 
diff --git a/pkgs/applications/version-management/git-crecord/default.nix b/pkgs/applications/version-management/git-crecord/default.nix
index 5dc75ce4d70..006809db622 100644
--- a/pkgs/applications/version-management/git-crecord/default.nix
+++ b/pkgs/applications/version-management/git-crecord/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib, fetchFromGitHub, python2Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python2Packages.buildPythonApplication rec {
   pname = "git-crecord";
   version = "20161216.0";
 
@@ -11,7 +11,7 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "0v3y90zi43myyi4k7q3892dcrbyi9dn2q6xgk12nw9db9zil269i";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ docutils ];
+  propagatedBuildInputs = with python2Packages; [ docutils ];
 
   meta = {
     homepage = "https://github.com/andrewshadura/git-crecord";
diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix
index c73a9277138..5976f1de6a7 100644
--- a/pkgs/applications/version-management/git-lfs/default.nix
+++ b/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "git-lfs";
-  version = "2.13.2";
+  version = "2.13.3";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "git-lfs";
     repo = "git-lfs";
-    sha256 = "0gfpzdya48phwln61746ii78sq55mhzj938lz8x062xkkcsdvbf4";
+    sha256 = "sha256-T4s/xnu5nL6dkEIo7xGywaE+EPH2OnzsaCF9OCGu7WQ=";
   };
 
   goPackagePath = "github.com/git-lfs/git-lfs";
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index f6250563fc9..72f6d67c2f1 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.12.2";
+  version = "2.13.1";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "sha256-E0HGianaTNRVJsFh8tb1wdxEARRXzkFG2OHU6op5oQ4=";
+    sha256 = "sha256-D6gh14XOZ6Fjypfhg9l5ozPhyf6u6M0Wc8HdagdPM/Q=";
   };
 
   patches = [ ./import-ssl-module.patch ];
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://android.googlesource.com/tools/repo";
     license = licenses.asl20;
-    maintainers = [ maintainers.primeos ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 566459afa18..64c98768fdd 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildGoPackage, fetchurl, makeWrapper
-, git, bash, gzip, openssh, pam
+{ lib
+, buildGoPackage
+, fetchurl
+, makeWrapper
+, git
+, bash
+, gzip
+, openssh
+, pam
 , sqliteSupport ? true
 , pamSupport ? true
 , nixosTests
@@ -9,11 +16,12 @@ with lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.13.2";
+  version = "1.13.6";
 
+  # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "sha256-uezg8GdNqgKVHgJj9rTqHFLWuLdyDp63fzr7DMslOII=";
+    sha256 = "1f0fsqcmmqygv0r796ddr2fjhh333i9nr0cqk9x2b2kbs1z264vf";
   };
 
   unpackPhase = ''
@@ -36,16 +44,18 @@ buildGoPackage rec {
 
   buildInputs = optional pamSupport pam;
 
-  preBuild = let
-    tags = optional pamSupport "pam"
+  preBuild =
+    let
+      tags = optional pamSupport "pam"
         ++ optional sqliteSupport "sqlite sqlite_unlock_notify";
-    tagsString = concatStringsSep " " tags;
-  in ''
-    export buildFlagsArray=(
-      -tags="${tagsString}"
-      -ldflags='-X "main.Version=${version}" -X "main.Tags=${tagsString}"'
-    )
-  '';
+      tagsString = concatStringsSep " " tags;
+    in
+    ''
+      export buildFlagsArray=(
+        -tags="${tagsString}"
+        -ldflags='-X "main.Version=${version}" -X "main.Tags=${tagsString}"'
+      )
+    '';
 
   outputs = [ "out" "data" ];
 
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 7dd8ff43974..4199cf0910f 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gitkraken";
-  version = "7.5.0";
+  version = "7.5.3";
 
   src = fetchzip {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "1v89aza7iwph7k5phyld5m5856c5wbh8ncgg6lh7558v4xna0x57";
+    sha256 = "0vxvfq0dh6l1plqbq67gfydr8bh5w3q6d5y3bn3rdia10wa1dac6";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index 9ea6d241060..df9f2255368 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "13.7.4",
-  "repo_hash": "1ggx76k6941rhccsd585p4h5k4zb87yvg0pmpzhwhh2q4ma2sywm",
+  "version": "13.9.4",
+  "repo_hash": "0gwxjmph3ac5v0h5zz8664412yq09cka5p4amdbxk7hna24igksz",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.7.4-ee",
+  "rev": "v13.9.4-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.7.4",
-    "GITLAB_PAGES_VERSION": "1.34.0",
-    "GITLAB_SHELL_VERSION": "13.14.0",
-    "GITLAB_WORKHORSE_VERSION": "8.58.2"
+    "GITALY_SERVER_VERSION": "13.9.4",
+    "GITLAB_PAGES_VERSION": "1.35.0",
+    "GITLAB_SHELL_VERSION": "13.17.0",
+    "GITLAB_WORKHORSE_VERSION": "8.63.2"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index ee6c8201fa3..b9c352a4eac 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -137,6 +137,7 @@ stdenv.mkDerivation {
     sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake
     sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb
 
+    mv config/puma.rb.example config/puma.rb
     # Always require lib-files and application.rb through their store
     # path, not their relative state directory path. This gets rid of
     # warnings and means we don't have to link back to lib from the
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 0a7fcd7c260..d2b3d2ea0e1 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -1,23 +1,23 @@
 source 'https://rubygems.org'
 
-gem 'rugged', '~> 0.28'
+gem 'rugged', '~> 1.0.1'
 gem 'github-linguist', '~> 7.12', require: 'linguist'
 gem 'gitlab-markup', '~> 1.7.1'
-gem 'activesupport', '~> 6.0.3.3'
+gem 'activesupport', '~> 6.0.3.4'
 gem 'rdoc', '~> 6.0'
-gem 'gitlab-gollum-lib', '~> 4.2.7.9', require: false
-gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false
+gem 'gitlab-gollum-lib', '~> 4.2.7.10.gitlab.1', require: false
+gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.3.gitlab.1', require: false
 gem 'grpc', '~> 1.30.2'
 gem 'sentry-raven', '~> 3.0', require: false
 gem 'faraday', '~> 1.0'
 gem 'rbtrace', require: false
 
 # Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.13.2'
+gem 'gitlab-labkit', '~> 0.15.0'
 
 # Detects the open source license the repository includes
 # This version needs to be in sync with GitLab CE/EE
-gem 'licensee', '~> 8.9.0'
+gem 'licensee', '~> 9.14.1'
 
 gem 'google-protobuf', '~> 3.12'
 
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index eb5c86946d7..83c5f20f73d 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -2,20 +2,20 @@ GEM
   remote: https://rubygems.org/
   specs:
     abstract_type (0.0.7)
-    actionpack (6.0.3.3)
-      actionview (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionpack (6.0.3.4)
+      actionview (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionview (6.0.3.4)
+      activesupport (= 6.0.3.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activesupport (6.0.3.3)
+    activesupport (6.0.3.4)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -24,6 +24,8 @@ GEM
     adamantium (0.2.0)
       ice_nine (~> 0.11.0)
       memoizable (~> 0.4.0)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
     ast (2.4.1)
     binding_ninja (0.2.3)
     builder (3.2.4)
@@ -35,8 +37,9 @@ GEM
     concurrent-ruby (1.1.7)
     crass (1.0.6)
     diff-lcs (1.3)
+    dotenv (2.7.6)
     equalizer (0.0.11)
-    erubi (1.9.0)
+    erubi (1.10.0)
     escape_utils (1.2.1)
     factory_bot (5.0.2)
       activesupport (>= 4.2.0)
@@ -51,23 +54,24 @@ GEM
       mini_mime (~> 1.0)
       rugged (>= 0.25.1)
     github-markup (1.7.0)
-    gitlab-gollum-lib (4.2.7.9)
+    gitlab-gollum-lib (4.2.7.10.gitlab.1)
       gemojione (~> 3.2)
       github-markup (~> 1.6)
-      gitlab-gollum-rugged_adapter (~> 0.4.4.2)
+      gitlab-gollum-rugged_adapter (~> 0.4.4.3.gitlab.1)
       nokogiri (>= 1.6.1, < 2.0)
       rouge (~> 3.1)
       sanitize (~> 4.6.4)
       stringex (~> 2.6)
-    gitlab-gollum-rugged_adapter (0.4.4.2)
+    gitlab-gollum-rugged_adapter (0.4.4.3.gitlab.1)
       mime-types (>= 1.15)
-      rugged (~> 0.25)
-    gitlab-labkit (0.13.2)
-      actionpack (>= 5.0.0, < 6.1.0)
-      activesupport (>= 5.0.0, < 6.1.0)
+      rugged (~> 1.0)
+    gitlab-labkit (0.15.0)
+      actionpack (>= 5.0.0, < 7.0.0)
+      activesupport (>= 5.0.0, < 7.0.0)
       grpc (~> 1.19)
       jaeger-client (~> 1.1)
       opentracing (~> 0.4)
+      pg_query (~> 1.3)
       redis (> 3.0.0, < 5.0.0)
     gitlab-markup (1.7.1)
     google-protobuf (3.12.4)
@@ -83,10 +87,14 @@ GEM
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
-    json (2.3.1)
-    licensee (8.9.2)
-      rugged (~> 0.24)
-    loofah (2.7.0)
+    json (2.5.1)
+    licensee (9.14.1)
+      dotenv (~> 2.0)
+      octokit (~> 4.17)
+      reverse_markdown (~> 1.0)
+      rugged (>= 0.24, < 2.0)
+      thor (>= 0.19, < 2.0)
+    loofah (2.9.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     memoizable (0.4.2)
@@ -94,21 +102,26 @@ GEM
     method_source (0.9.2)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.0512)
+    mime-types-data (3.2020.1104)
     mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
+    mini_portile2 (2.5.0)
     minitest (5.14.2)
     msgpack (1.3.3)
     multipart-post (2.1.1)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     nokogumbo (1.5.0)
       nokogiri
+    octokit (4.20.0)
+      faraday (>= 0.9)
+      sawyer (~> 0.8.0, >= 0.5.3)
     opentracing (0.5.0)
     optimist (3.0.1)
     parallel (1.19.2)
     parser (2.7.2.0)
       ast (~> 2.4.1)
+    pg_query (1.3.0)
     proc_to_ast (0.1.0)
       coderay
       parser
@@ -117,6 +130,8 @@ GEM
     pry (0.12.2)
       coderay (~> 1.1.0)
       method_source (~> 0.9.0)
+    public_suffix (4.0.6)
+    racc (1.5.2)
     rack (2.2.3)
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
@@ -131,8 +146,10 @@ GEM
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rdoc (6.2.0)
-    redis (4.1.3)
+    redis (4.2.5)
     regexp_parser (1.8.1)
+    reverse_markdown (1.4.0)
+      nokogiri
     rexml (3.2.4)
     rouge (3.26.0)
     rspec (3.8.0)
@@ -166,18 +183,22 @@ GEM
     rubocop-ast (0.2.0)
       parser (>= 2.7.0.1)
     ruby-progressbar (1.10.1)
-    rugged (0.28.4.1)
+    rugged (1.0.1)
     sanitize (4.6.6)
       crass (~> 1.0.2)
       nokogiri (>= 1.4.4)
       nokogumbo (~> 1.4)
+    sawyer (0.8.2)
+      addressable (>= 2.3.5)
+      faraday (> 0.8, < 2.0)
     sentry-raven (3.0.4)
       faraday (>= 1.0)
     stringex (2.8.5)
+    thor (1.1.0)
     thread_safe (0.3.6)
-    thrift (0.11.0.0)
+    thrift (0.13.0)
     timecop (0.9.1)
-    tzinfo (1.2.7)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     unicode-display_width (1.7.0)
     unparser (0.4.7)
@@ -188,31 +209,31 @@ GEM
       equalizer (~> 0.0.9)
       parser (>= 2.6.5)
       procto (~> 0.0.2)
-    zeitwerk (2.4.0)
+    zeitwerk (2.4.2)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  activesupport (~> 6.0.3.3)
+  activesupport (~> 6.0.3.4)
   factory_bot
   faraday (~> 1.0)
   github-linguist (~> 7.12)
-  gitlab-gollum-lib (~> 4.2.7.9)
-  gitlab-gollum-rugged_adapter (~> 0.4.4.2)
-  gitlab-labkit (~> 0.13.2)
+  gitlab-gollum-lib (~> 4.2.7.10.gitlab.1)
+  gitlab-gollum-rugged_adapter (~> 0.4.4.3.gitlab.1)
+  gitlab-labkit (~> 0.15.0)
   gitlab-markup (~> 1.7.1)
   google-protobuf (~> 3.12)
   grpc (~> 1.30.2)
   grpc-tools (= 1.30.2)
-  licensee (~> 8.9.0)
+  licensee (~> 9.14.1)
   pry (~> 0.12.2)
   rbtrace
   rdoc (~> 6.0)
   rspec
   rspec-parameterized
   rubocop (~> 0.69)
-  rugged (~> 0.28)
+  rugged (~> 1.0.1)
   sentry-raven (~> 3.0)
   timecop
 
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 1b96307457c..37e97522fad 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -33,17 +33,17 @@ let
       };
   };
 in buildGoModule rec {
-  version = "13.7.4";
+  version = "13.9.4";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "1inb7xlv8admzy9q1bgxccbrhks0mmc8lng356h39crj5sgaqkmg";
+    sha256 = "sha256-6ocP4SMafvLI2jfvcB8jk1AemAI/TiBQ1iaVxK7I54A=";
   };
 
-  vendorSha256 = "15i1ajvrff1bfpv3kmb1wm1mmriswwfw2v4cml0nv0zp6a5n5187";
+  vendorSha256 = "10ssx0dvbzg70vr2sgnhzijnjxfw6533wdjxwakj62rpfayklp51";
 
   passthru = {
     inherit rubyEnv;
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index b4a6b0e78eb..7b4928918f6 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -13,10 +13,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+      sha256 = "0fbjpnh5hrihc9l35q9why6ip0hcdj42axzbp6b4j1xcy1v1bicj";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -24,10 +24,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+      sha256 = "0gdz31cq08nrqq6bxqim2qcbzv0fr34z6ycl73dmawpafj33wdkj";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -35,10 +35,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+      sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   adamantium = {
     dependencies = ["ice_nine" "memoizable"];
@@ -49,6 +49,17 @@
     };
     version = "0.2.0";
   };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
   ast = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -134,6 +145,16 @@
     };
     version = "1.3";
   };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
+      type = "gem";
+    };
+    version = "2.7.6";
+  };
   equalizer = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -147,10 +168,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   escape_utils = {
     source = {
@@ -226,10 +247,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y21k8bix3h2qdys2kz2z831cclmx3zc15x67cp8s945dkmh39sj";
+      sha256 = "0r6smbqnh0m84fxwb2g11qjfbcsljfin4vhnf43nmmbql2l1i3ah";
       type = "gem";
     };
-    version = "4.2.7.9";
+    version = "4.2.7.10.gitlab.1";
   };
   gitlab-gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -237,21 +258,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d32d3yfadzwrarv0biwbfbkz2bqcc0dc3q0imnk962jaay19gc4";
+      sha256 = "0rqi9h6k32azljmx2q0zibvs1m59wgh879h04jflxkcqyzj6wyyj";
       type = "gem";
     };
-    version = "0.4.4.2";
+    version = "0.4.4.3.gitlab.1";
   };
   gitlab-labkit = {
-    dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
+    dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vgd61xdclihifcdivddfs1gipxy1ql0kf9q47k9h0xisscyjhd2";
+      sha256 = "1l9bsjszp5zyzbdsr9ls09d4yr2sb0xjc40x4rv7fbzk19n9xs71";
       type = "gem";
     };
-    version = "0.13.2";
+    version = "0.15.0";
   };
   gitlab-markup = {
     groups = ["default"];
@@ -336,23 +357,25 @@
     version = "1.1.0";
   };
   json = {
-    groups = ["default" "development" "test"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   licensee = {
-    dependencies = ["rugged"];
+    dependencies = ["dotenv" "octokit" "reverse_markdown" "rugged" "thor"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      sha256 = "0c551j4qy773d79hgypjaz43h5wjn08mnxnxy9s2vdjc40qm95k5";
       type = "gem";
     };
-    version = "8.9.2";
+    version = "9.14.1";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -360,10 +383,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1alz1x6rkhbw10qpszr384299rf52rcyasn0619a9p50vzs8vczq";
+      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.9.0";
   };
   memoizable = {
     dependencies = ["thread_safe"];
@@ -398,10 +421,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
+      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
       type = "gem";
     };
-    version = "3.2020.0512";
+    version = "3.2020.1104";
   };
   mini_mime = {
     groups = ["default"];
@@ -414,12 +437,14 @@
     version = "1.0.2";
   };
   mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["default" "development" "test"];
@@ -452,15 +477,15 @@
     version = "2.1.1";
   };
   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"];
@@ -471,6 +496,17 @@
     };
     version = "1.5.0";
   };
+  octokit = {
+    dependencies = ["faraday" "sawyer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
+      type = "gem";
+    };
+    version = "4.20.0";
+  };
   opentracing = {
     groups = ["default"];
     platforms = [];
@@ -512,6 +548,16 @@
     };
     version = "2.7.2.0";
   };
+  pg_query = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i9l3y502ddm2lq3ajhxhqq17vs9hgxkxm443yw221ccibcfh6qf";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
   proc_to_ast = {
     dependencies = ["coderay" "parser" "unparser"];
     source = {
@@ -538,6 +584,26 @@
     };
     version = "0.12.2";
   };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rack = {
     groups = ["default"];
     platforms = [];
@@ -615,10 +681,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08v2y91q1pmv12g9zsvwj66w3s8j9d82yrmxgyv4y4gz380j3wyh";
+      sha256 = "15x2sr6h094rjbvg8pkq6m3lcd5abpyx93aifvfdz3wv6x55xa48";
       type = "gem";
     };
-    version = "4.1.3";
+    version = "4.2.5";
   };
   regexp_parser = {
     groups = ["default" "development" "test"];
@@ -630,6 +696,17 @@
     };
     version = "1.8.1";
   };
+  reverse_markdown = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
   rexml = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -752,10 +829,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rdidxgpk1b6y1jq9v77lcx5khq0s9q0s253lr8x57d3hk43iskx";
+      sha256 = "056bwiwxvnbkbgsr2wqcsknnc73nqasqdnjcpgj2r61wkm8mzmbn";
       type = "gem";
     };
-    version = "0.28.4.1";
+    version = "1.0.1";
   };
   sanitize = {
     dependencies = ["crass" "nokogiri" "nokogumbo"];
@@ -766,6 +843,17 @@
     };
     version = "4.6.6";
   };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
+      type = "gem";
+    };
+    version = "0.8.2";
+  };
   sentry-raven = {
     dependencies = ["faraday"];
     groups = ["default"];
@@ -787,6 +875,16 @@
     };
     version = "2.8.5";
   };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
   thread_safe = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -800,10 +898,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02p107kwx7jnkh6fpdgvaji0xdg6xkaarngkqjml6s4zny4m8slv";
+      sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
       type = "gem";
     };
-    version = "0.11.0.0";
+    version = "0.13.0";
   };
   timecop = {
     source = {
@@ -819,10 +917,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.2.9";
   };
   unicode-display_width = {
     groups = ["default" "development" "test"];
@@ -850,9 +948,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.2";
   };
-}
+}
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index a1a9df57f04..c86c63a5656 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,12 +2,12 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "13.14.0";
+  version = "13.17.0";
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "171c4rfffb73198fhlwk8rq7xy4b4zrnssi8c1wd0x82kqv6csb0";
+    sha256 = "sha256-wDZLcCBbWjG6wIcEj02eqwWVfAYy1TuAo/xvJB8tt+0=";
   };
 
   buildInputs = [ ruby ];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 3e292632d4c..64e1668ba06 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -3,16 +3,16 @@
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "8.58.2";
+  version = "8.63.2";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-workhorse";
     rev = "v${version}";
-    sha256 = "1ks8rla6hm618dxhr41x1ckzk3jxv0f7vl2547f7f1fl3zqna1zp";
+    sha256 = "1vjk7r7228p2gblx9nmqiz70ckbllg1p3bwkyfd4m49jhp13hryi";
   };
 
-  vendorSha256 = "0vkw12w7vr0g4hf4f0im79y7l36d3ah01n1vl7siy94si47g8ir5";
+  vendorSha256 = "0hc02nxw5jp1mhpjcx1f2a2dfaq7ji4qkf5g7lbpd1rzhqwp6zsz";
   buildInputs = [ git ];
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
   doCheck = false;
diff --git a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
index fcb954e3884..83e3d7fe141 100644
--- a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
+++ b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
@@ -1,8 +1,8 @@
 diff --git a/config/environments/production.rb b/config/environments/production.rb
-index c5cbfcf64c..4d01f6fab8 100644
+index d9b3ee354b0..1eb0507488b 100644
 --- a/config/environments/production.rb
 +++ b/config/environments/production.rb
-@@ -70,10 +70,10 @@ Rails.application.configure do
+@@ -69,10 +69,10 @@
  
    config.action_mailer.delivery_method = :sendmail
    # Defaults to:
@@ -11,17 +11,17 @@ index c5cbfcf64c..4d01f6fab8 100644
 -  # #   arguments: '-i -t'
 -  # # }
 +  config.action_mailer.sendmail_settings = {
-+    location: '/usr/sbin/sendmail',
++    location: '/run/wrappers/bin/sendmail',
 +    arguments: '-i -t'
 +  }
    config.action_mailer.perform_deliveries = true
    config.action_mailer.raise_delivery_errors = true
  
 diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
-index bd696a7f2c..44e3863736 100644
+index 92e7501d49d..4ee5a1127df 100644
 --- a/config/gitlab.yml.example
 +++ b/config/gitlab.yml.example
-@@ -590,7 +590,7 @@ production: &base
+@@ -1168,7 +1168,7 @@ production: &base
    # CAUTION!
    # Use the default values unless you really know what you are doing
    git:
@@ -31,10 +31,10 @@ index bd696a7f2c..44e3863736 100644
    ## Webpack settings
    # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
 diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
-index 0bea8a4f4b..290248547b 100644
+index bbed08f5044..2906e5c44af 100644
 --- a/config/initializers/1_settings.rb
 +++ b/config/initializers/1_settings.rb
-@@ -177,7 +177,7 @@ Settings.gitlab['ssh_user'] ||= Settings.gitlab['user']
+@@ -183,7 +183,7 @@
  Settings.gitlab['user_home'] ||= begin
    Etc.getpwnam(Settings.gitlab['user']).dir
                                   rescue ArgumentError # no user configured
@@ -43,7 +43,7 @@ index 0bea8a4f4b..290248547b 100644
  end
  Settings.gitlab['time_zone'] ||= nil
  Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
-@@ -507,7 +507,7 @@ Settings.backup['upload']['storage_class'] ||= nil
+@@ -751,7 +751,7 @@
  # Git
  #
  Settings['git'] ||= Settingslogic.new({})
@@ -52,37 +52,94 @@ index 0bea8a4f4b..290248547b 100644
  
  # Important: keep the satellites.path setting until GitLab 9.0 at
  # least. This setting is fed to 'rm -rf' in
+diff --git a/config/puma.rb.example b/config/puma.rb.example
+index 9fc354a8fe8..2352ca9b58c 100644
+--- a/config/puma.rb.example
++++ b/config/puma.rb.example
+@@ -5,12 +5,8 @@
+ # The default is "config.ru".
+ #
+ rackup 'config.ru'
+-pidfile '/home/git/gitlab/tmp/pids/puma.pid'
+-state_path '/home/git/gitlab/tmp/pids/puma.state'
+-
+-stdout_redirect '/home/git/gitlab/log/puma.stdout.log',
+-  '/home/git/gitlab/log/puma.stderr.log',
+-  true
++pidfile ENV['PUMA_PATH'] + '/tmp/pids/puma.pid'
++state_path ENV['PUMA_PATH'] + '/tmp/pids/puma.state'
+ 
+ # Configure "min" to be the minimum number of threads to use to answer
+ # requests and "max" the maximum.
+@@ -31,12 +27,12 @@ queue_requests false
+ 
+ # Bind the server to "url". "tcp://", "unix://" and "ssl://" are the only
+ # accepted protocols.
+-bind 'unix:///home/git/gitlab/tmp/sockets/gitlab.socket'
++bind "unix://#{ENV['PUMA_PATH']}/tmp/sockets/gitlab.socket"
+ 
+ workers 3
+ 
+-require_relative "/home/git/gitlab/lib/gitlab/cluster/lifecycle_events"
+-require_relative "/home/git/gitlab/lib/gitlab/cluster/puma_worker_killer_initializer"
++require_relative ENV['GITLAB_PATH'] + "lib/gitlab/cluster/lifecycle_events"
++require_relative ENV['GITLAB_PATH'] + "lib/gitlab/cluster/puma_worker_killer_initializer"
+ 
+ on_restart do
+   # Signal application hooks that we're about to restart
+@@ -80,7 +76,7 @@ if defined?(nakayoshi_fork)
+ end
+ 
+ # Use json formatter
+-require_relative "/home/git/gitlab/lib/gitlab/puma_logging/json_formatter"
++require_relative ENV['GITLAB_PATH'] + "lib/gitlab/puma_logging/json_formatter"
+ 
+ json_formatter = Gitlab::PumaLogging::JSONFormatter.new
+ log_formatter do |str|
 diff --git a/lib/api/api.rb b/lib/api/api.rb
-index e953f3d2ec..3a8d9f076b 100644
+index ada0da28749..8a3f5824008 100644
 --- a/lib/api/api.rb
 +++ b/lib/api/api.rb
-@@ -2,7 +2,7 @@ module API
-   class API < Grape::API
+@@ -4,7 +4,7 @@ module API
+   class API < ::API::Base
      include APIGuard
  
 -    LOG_FILENAME = Rails.root.join("log", "api_json.log")
 +    LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log")
  
-     NO_SLASH_URL_PART_REGEX = %r{[^/]+}
-     PROJECT_ENDPOINT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze
+     NO_SLASH_URL_PART_REGEX = %r{[^/]+}.freeze
+     NAMESPACE_OR_PROJECT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze
+diff --git a/lib/gitlab/authorized_keys.rb b/lib/gitlab/authorized_keys.rb
+index 50cd15b7a10..3ac89e5b8e9 100644
+--- a/lib/gitlab/authorized_keys.rb
++++ b/lib/gitlab/authorized_keys.rb
+@@ -157,7 +157,7 @@ def command(id)
+         raise KeyError, "Invalid ID: #{id.inspect}"
+       end
+ 
+-      "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}"
++      "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}"
+     end
+ 
+     def strip(key)
 diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb
-index a42e312b5d..ccaab9229e 100644
+index 89a4e36a232..ae379ffb27a 100644
 --- a/lib/gitlab/logger.rb
 +++ b/lib/gitlab/logger.rb
-@@ -26,7 +26,7 @@ module Gitlab
+@@ -37,7 +37,7 @@ def self.build
      end
  
      def self.full_log_path
 -      Rails.root.join("log", file_name)
-+        File.join(ENV["GITLAB_LOG_PATH"], file_name)
++      File.join(ENV["GITLAB_LOG_PATH"], file_name)
      end
  
      def self.cache_key
 diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb
-index 7d7400bdab..cb25211d44 100644
+index e0e7084e27e..19fab855b90 100644
 --- a/lib/gitlab/uploads_transfer.rb
 +++ b/lib/gitlab/uploads_transfer.rb
-@@ -1,7 +1,7 @@
+@@ -3,7 +3,7 @@
  module Gitlab
    class UploadsTransfer < ProjectTransfer
      def root_dir
@@ -92,10 +149,10 @@ index 7d7400bdab..cb25211d44 100644
    end
  end
 diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb
-index 3e0c436d6e..28cefc5514 100644
+index 2c108f0c18d..3a16ff52d01 100644
 --- a/lib/system_check/app/log_writable_check.rb
 +++ b/lib/system_check/app/log_writable_check.rb
-@@ -21,7 +21,7 @@ module SystemCheck
+@@ -23,7 +23,7 @@ def show_error
        private
  
        def log_path
@@ -105,10 +162,10 @@ index 3e0c436d6e..28cefc5514 100644
      end
    end
 diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb
-index 7026d0ba07..c56e1f7ed9 100644
+index 54dff63ab61..882da702f29 100644
 --- a/lib/system_check/app/uploads_directory_exists_check.rb
 +++ b/lib/system_check/app/uploads_directory_exists_check.rb
-@@ -4,12 +4,13 @@ module SystemCheck
+@@ -6,12 +6,13 @@ class UploadsDirectoryExistsCheck < SystemCheck::BaseCheck
        set_name 'Uploads directory exists?'
  
        def check?
@@ -120,15 +177,15 @@ index 7026d0ba07..c56e1f7ed9 100644
 +        uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')
          try_fixing_it(
 -          "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads"
-+            "sudo -u #{gitlab_user} mkdir #{uploads_dir}"
++          "sudo -u #{gitlab_user} mkdir #{uploads_dir}"
          )
          for_more_information(
-           see_installation_guide_section 'GitLab'
+           see_installation_guide_section('GitLab')
 diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb
-index 7df6c06025..bb447c16b2 100644
+index 2e1cc687c43..ca69d63bcf6 100644
 --- a/lib/system_check/app/uploads_path_permission_check.rb
 +++ b/lib/system_check/app/uploads_path_permission_check.rb
-@@ -25,7 +25,7 @@ module SystemCheck
+@@ -27,7 +27,7 @@ def show_error
        private
  
        def rails_uploads_path
@@ -138,10 +195,10 @@ index 7df6c06025..bb447c16b2 100644
  
        def uploads_fullpath
 diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb
-index b276a81eac..070e3ebd81 100644
+index 567c7540777..29906b1c132 100644
 --- a/lib/system_check/app/uploads_path_tmp_permission_check.rb
 +++ b/lib/system_check/app/uploads_path_tmp_permission_check.rb
-@@ -33,7 +33,7 @@ module SystemCheck
+@@ -35,7 +35,7 @@ def upload_path_tmp
        end
  
        def uploads_fullpath
@@ -150,14 +207,3 @@ index b276a81eac..070e3ebd81 100644
        end
      end
    end
---- a/lib/gitlab/authorized_keys.rb
-+++ b/lib/gitlab/authorized_keys.rb
-@@ -157,7 +157,7 @@
-         raise KeyError, "Invalid ID: #{id.inspect}"
-       end
- 
--      "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}"
-+      "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}"
-     end
- 
-     def strip(key)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 49d0841be3c..ec253c37b3a 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -1,35 +1,34 @@
+# frozen_string_literal: true
+
 source 'https://rubygems.org'
 
 gem 'rails', '~> 6.0.3.1'
 
 gem 'bootsnap', '~> 1.4.6'
 
-# Improves copy-on-write performance for MRI
-gem 'nakayoshi_fork', '~> 0.0.4'
-
 # Responders respond_to and respond_with
 gem 'responders', '~> 3.0'
 
 gem 'sprockets', '~> 3.7.0'
 
 # Default values for AR models
-gem 'default_value_for', '~> 3.3.0'
+gem 'default_value_for', '~> 3.4.0'
 
 # Supported DBs
 gem 'pg', '~> 1.1'
 
-gem 'rugged', '~> 0.28'
-gem 'grape-path-helpers', '~> 1.5'
+gem 'rugged', '~> 1.0.1'
+gem 'grape-path-helpers', '~> 1.6.1'
 
 gem 'faraday', '~> 1.0'
-gem 'marginalia', '~> 1.9.0'
+gem 'marginalia', '~> 1.10.0'
 
 # Authentication libraries
 gem 'devise', '~> 4.7.2'
 # TODO: verify ARM compile issue on 3.1.13+ version (see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18828)
 gem 'bcrypt', '3.1.12'
-gem 'doorkeeper', '~> 5.3.0'
-gem 'doorkeeper-openid_connect', '~> 1.7.4'
+gem 'doorkeeper', '~> 5.5.0.rc2'
+gem 'doorkeeper-openid_connect', '~> 1.7.5'
 gem 'omniauth', '~> 1.8'
 gem 'omniauth-auth0', '~> 2.0.0'
 gem 'omniauth-azure-oauth2', '~> 0.0.9'
@@ -57,7 +56,7 @@ gem 'gssapi', group: :kerberos
 # Spam and anti-bot protection
 gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails'
 gem 'akismet', '~> 3.0'
-gem 'invisible_captcha', '~> 0.12.1'
+gem 'invisible_captcha', '~> 1.1.0'
 
 # Two-factor authentication
 gem 'devise-two-factor', '~> 3.1.0'
@@ -81,12 +80,10 @@ gem 'gpgme', '~> 2.0.19'
 # GitLab fork with several improvements to original library. For full list of changes
 # see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
 gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap'
-gem 'net-ldap'
+gem 'net-ldap', '~> 0.16.3'
 
 # API
-# Locked at Grape v1.4.0 until https://github.com/ruby-grape/grape/pull/2088 is merged
-# Remove config/initializers/grape_patch.rb
-gem 'grape', '= 1.4.0'
+gem 'grape', '~> 1.5.2'
 gem 'grape-entity', '~> 0.7.1'
 gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
 
@@ -108,14 +105,14 @@ gem 'hashie-forbidden_attributes'
 gem 'kaminari', '~> 1.0'
 
 # HAML
-gem 'hamlit', '~> 2.11.0'
+gem 'hamlit', '~> 2.14.4'
 
 # Files attachments
 gem 'carrierwave', '~> 1.3'
 gem 'mini_magick', '~> 4.10.1'
 
 # for backups
-gem 'fog-aws', '~> 3.7'
+gem 'fog-aws', '~> 3.8'
 # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
 # Also see config/initializers/fog_core_patch.rb.
 gem 'fog-core', '= 2.1.0'
@@ -145,7 +142,7 @@ gem 'aws-sdk-s3', '~> 1'
 gem 'faraday_middleware-aws-sigv4', '~>0.3.0'
 
 # Markdown and HTML processing
-gem 'html-pipeline', '~> 2.12'
+gem 'html-pipeline', '~> 2.13.2'
 gem 'deckar01-task_list', '2.3.1'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'github-markup', '~> 1.7.0', require: 'github/markup'
@@ -159,11 +156,11 @@ gem 'wikicloth', '0.8.1'
 gem 'asciidoctor', '~> 2.0.10'
 gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
 gem 'asciidoctor-plantuml', '~> 0.0.12'
-gem 'asciidoctor-kroki', '~> 0.2.2', require: false
+gem 'asciidoctor-kroki', '~> 0.4.0', require: false
 gem 'rouge', '~> 3.26.0'
 gem 'truncato', '~> 0.7.11'
 gem 'bootstrap_form', '~> 4.2.0'
-gem 'nokogiri', '~> 1.10.9'
+gem 'nokogiri', '~> 1.11.1'
 gem 'escape_utils', '~> 1.1'
 
 # Calendar rendering
@@ -184,15 +181,15 @@ group :unicorn do
 end
 
 group :puma do
-  gem 'gitlab-puma', '~> 4.3.3.gitlab.2', require: false
-  gem 'gitlab-puma_worker_killer', '~> 0.1.1.gitlab.1', require: false
+  gem 'puma', '~> 5.1.1', require: false
+  gem 'puma_worker_killer', '~> 0.3.1', require: false
 end
 
 # State machine
-gem 'state_machines-activerecord', '~> 0.6.0'
+gem 'state_machines-activerecord', '~> 0.8.0'
 
 # Issue tags
-gem 'acts-as-taggable-on', '~> 6.0'
+gem 'acts-as-taggable-on', '~> 7.0'
 
 # Background jobs
 gem 'sidekiq', '~> 5.2.7'
@@ -242,7 +239,7 @@ gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
 gem 'hipchat', '~> 1.5.0'
 
 # Jira integration
-gem 'jira-ruby', '~> 2.0.0'
+gem 'jira-ruby', '~> 2.1.4'
 gem 'atlassian-jwt', '~> 0.2.0'
 
 # Flowdock integration
@@ -255,7 +252,7 @@ gem 'slack-messenger', '~> 2.3.4'
 gem 'hangouts-chat', '~> 0.0.5'
 
 # Asana integration
-gem 'asana', '0.10.2'
+gem 'asana', '~> 0.10.3'
 
 # FogBugz integration
 gem 'ruby-fogbugz', '~> 0.2.1'
@@ -271,7 +268,7 @@ gem 'babosa', '~> 1.0.2'
 gem 'loofah', '~> 2.2'
 
 # Working with license
-gem 'licensee', '~> 8.9'
+gem 'licensee', '~> 9.14.1'
 
 # Detect and convert string character encoding
 gem 'charlock_holmes', '~> 0.7.7'
@@ -289,6 +286,7 @@ gem 'gitlab_chronic_duration', '~> 0.10.6.2'
 gem 'rack-proxy', '~> 0.6.0'
 
 gem 'sassc-rails', '~> 2.1.0'
+gem 'autoprefixer-rails', '10.2.0.0'
 gem 'terser', '1.0.2'
 
 gem 'addressable', '~> 2.7'
@@ -297,7 +295,7 @@ gem 'gon', '~> 6.2'
 gem 'request_store', '~> 1.5'
 gem 'base32', '~> 0.3.0'
 
-gem "gitlab-license", "~> 1.0"
+gem "gitlab-license", "~> 1.3"
 
 # Protect against bruteforcing
 gem 'rack-attack', '~> 6.3.0'
@@ -306,12 +304,15 @@ gem 'rack-attack', '~> 6.3.0'
 gem 'sentry-raven', '~> 3.0'
 
 # PostgreSQL query parsing
-gem 'gitlab-pg_query', '~> 1.3', require: 'pg_query'
+gem 'pg_query', '~> 1.3.0'
 
 gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '0.13.3'
+gem 'gitlab-labkit', '0.14.0'
+# Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0
+# because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900
+gem 'thrift', '>= 0.14.0'
 
 # I18n
 gem 'ruby_parser', '~> 3.15', require: false
@@ -331,6 +332,7 @@ gem 'snowplow-tracker', '~> 0.6.1'
 # Metrics
 group :metrics do
   gem 'method_source', '~> 1.0', require: false
+  gem 'webrick', '~> 1.6.1', require: false
 
   # Prometheus
   gem 'prometheus-client-mmap', '~> 0.12.0'
@@ -340,6 +342,7 @@ end
 group :development do
   gem 'brakeman', '~> 4.2', require: false
   gem 'danger', '~> 8.0.6', require: false
+  gem 'lefthook', '~> 0.7', require: false
 
   gem 'letter_opener_web', '~> 1.3.4'
 
@@ -347,20 +350,21 @@ group :development do
   gem 'better_errors', '~> 2.7.1'
 
   # thin instead webrick
-  gem 'thin', '~> 1.7.0'
+  gem 'thin', '~> 1.8.0'
 end
 
 group :development, :test do
   gem 'deprecation_toolkit', '~> 1.5.1', require: false
-  gem 'bullet', '~> 6.1.0'
-  gem 'pry-byebug', '~> 3.9.0', platform: :mri
+  gem 'bullet', '~> 6.1.3'
+  gem 'gitlab-pry-byebug', platform: :mri, require: ['pry-byebug', 'pry-byebug/pry_remote_ext']
   gem 'pry-rails', '~> 0.3.9'
+  gem 'pry-remote'
 
   gem 'awesome_print', require: false
 
   gem 'database_cleaner', '~> 1.7.0'
-  gem 'factory_bot_rails', '~> 5.1.0'
-  gem 'rspec-rails', '~> 4.0.0'
+  gem 'factory_bot_rails', '~> 6.1.0'
+  gem 'rspec-rails', '~> 4.0.2'
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
   gem 'minitest', '~> 5.11.0'
@@ -371,11 +375,11 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 5.3.0', require: false
+  gem 'gitlab-styles', '~> 6.0.0', require: false
 
   gem 'scss_lint', '~> 0.59.0', require: false
   gem 'haml_lint', '~> 0.36.0', require: false
-  gem 'bundler-audit', '~> 0.6.1', require: false
+  gem 'bundler-audit', '~> 0.7.0.1', require: false
 
   gem 'benchmark-ips', '~> 2.3.0', require: false
 
@@ -409,7 +413,7 @@ group :test do
   gem 'rspec_profiling', '~> 0.0.6'
   gem 'rspec-parameterized', require: false
 
-  gem 'capybara', '~> 3.33.0'
+  gem 'capybara', '~> 3.34.0'
   gem 'capybara-screenshot', '~> 1.0.22'
   gem 'selenium-webdriver', '~> 3.142'
 
@@ -465,7 +469,7 @@ group :ed25519 do
 end
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 13.7.0.pre.rc1'
+gem 'gitaly', '~> 13.9.0.pre.rc1'
 
 gem 'grpc', '~> 1.30.2'
 
@@ -478,7 +482,7 @@ gem 'flipper', '~> 0.17.1'
 gem 'flipper-active_record', '~> 0.17.1'
 gem 'flipper-active_support_cache_store', '~> 0.17.1'
 gem 'unleash', '~> 0.1.5'
-gem 'gitlab-experiment', '~> 0.4.4'
+gem 'gitlab-experiment', '~> 0.4.9'
 
 # Structured logging
 gem 'lograge', '~> 0.5'
@@ -520,3 +524,5 @@ gem 'webauthn', '~> 2.3'
 
 # IPAddress utilities
 gem 'ipaddress', '~> 0.8.3'
+
+gem 'parslet', '~> 1.8'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 1cd90080fd8..1b6701e8e3d 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -5,66 +5,66 @@ GEM
     abstract_type (0.0.7)
     acme-client (2.0.6)
       faraday (>= 0.17, < 2.0.0)
-    actioncable (6.0.3.3)
-      actionpack (= 6.0.3.3)
+    actioncable (6.0.3.4)
+      actionpack (= 6.0.3.4)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activejob (= 6.0.3.3)
-      activerecord (= 6.0.3.3)
-      activestorage (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionmailbox (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      activejob (= 6.0.3.4)
+      activerecord (= 6.0.3.4)
+      activestorage (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       mail (>= 2.7.1)
-    actionmailer (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      actionview (= 6.0.3.3)
-      activejob (= 6.0.3.3)
+    actionmailer (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      actionview (= 6.0.3.4)
+      activejob (= 6.0.3.4)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.0.3.3)
-      actionview (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionpack (6.0.3.4)
+      actionview (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activerecord (= 6.0.3.3)
-      activestorage (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actiontext (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      activerecord (= 6.0.3.4)
+      activestorage (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       nokogiri (>= 1.8.5)
-    actionview (6.0.3.3)
-      activesupport (= 6.0.3.3)
+    actionview (6.0.3.4)
+      activesupport (= 6.0.3.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activejob (6.0.3.3)
-      activesupport (= 6.0.3.3)
+    activejob (6.0.3.4)
+      activesupport (= 6.0.3.4)
       globalid (>= 0.3.6)
-    activemodel (6.0.3.3)
-      activesupport (= 6.0.3.3)
-    activerecord (6.0.3.3)
-      activemodel (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    activemodel (6.0.3.4)
+      activesupport (= 6.0.3.4)
+    activerecord (6.0.3.4)
+      activemodel (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
     activerecord-explain-analyze (0.1.0)
       activerecord (>= 4)
       pg
-    activestorage (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activejob (= 6.0.3.3)
-      activerecord (= 6.0.3.3)
+    activestorage (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      activejob (= 6.0.3.4)
+      activerecord (= 6.0.3.4)
       marcel (~> 0.3.1)
-    activesupport (6.0.3.3)
+    activesupport (6.0.3.4)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
       tzinfo (~> 1.1)
       zeitwerk (~> 2.2, >= 2.2.2)
-    acts-as-taggable-on (6.5.0)
-      activerecord (>= 5.0, < 6.1)
+    acts-as-taggable-on (7.0.0)
+      activerecord (>= 5.0, < 6.2)
     adamantium (0.2.0)
       ice_nine (~> 0.11.0)
       memoizable (~> 0.4.0)
@@ -76,15 +76,15 @@ GEM
     apollo_upload_server (2.0.2)
       graphql (>= 1.8)
       rails (>= 4.2)
-    asana (0.10.2)
+    asana (0.10.3)
       faraday (~> 1.0)
       faraday_middleware (~> 1.0)
       faraday_middleware-multi_json (~> 0.0)
       oauth2 (~> 1.4)
-    asciidoctor (2.0.10)
+    asciidoctor (2.0.12)
     asciidoctor-include-ext (0.3.1)
       asciidoctor (>= 1.5.6, < 3.0.0)
-    asciidoctor-kroki (0.2.2)
+    asciidoctor-kroki (0.4.0)
       asciidoctor (~> 2.0)
     asciidoctor-plantuml (0.0.12)
       asciidoctor (>= 1.5.6, < 3.0.0)
@@ -94,6 +94,8 @@ GEM
     attr_encrypted (3.1.0)
       encryptor (~> 3.0.0)
     attr_required (1.0.1)
+    autoprefixer-rails (10.2.0.0)
+      execjs
     awesome_print (1.8.0)
     awrence (1.1.1)
     aws-eventstream (1.1.0)
@@ -115,13 +117,14 @@ GEM
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.2.1)
       aws-eventstream (~> 1, >= 1.0.2)
-    azure-storage-blob (2.0.0)
+    azure-storage-blob (2.0.1)
       azure-storage-common (~> 2.0)
-      nokogiri (~> 1.10.4)
-    azure-storage-common (2.0.1)
+      nokogiri (~> 1.11.0.rc2)
+    azure-storage-common (2.0.2)
       faraday (~> 1.0)
       faraday_middleware (~> 1.0.0.rc1)
-      nokogiri (~> 1.10.4)
+      net-http-persistent (~> 4.0)
+      nokogiri (~> 1.11.0.rc2)
     babosa (1.0.2)
     base32 (0.3.2)
     batch-loader (1.4.0)
@@ -144,14 +147,14 @@ GEM
     brakeman (4.2.1)
     browser (4.2.0)
     builder (3.2.4)
-    bullet (6.1.0)
+    bullet (6.1.3)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
-    bundler-audit (0.6.1)
+    bundler-audit (0.7.0.1)
       bundler (>= 1.2.0, < 3)
-      thor (~> 0.18)
+      thor (>= 0.18, < 2)
     byebug (11.1.3)
-    capybara (3.33.0)
+    capybara (3.34.0)
       addressable
       mini_mime (>= 0.1.3)
       nokogiri (~> 1.8)
@@ -204,7 +207,7 @@ GEM
       git
     css_parser (1.7.0)
       addressable
-    daemons (1.2.6)
+    daemons (1.3.1)
     danger (8.0.6)
       claide (~> 1.0)
       claide-plugins (>= 0.9.2)
@@ -224,21 +227,20 @@ GEM
       html-pipeline
     declarative (0.0.20)
     declarative-option (0.1.0)
-    default_value_for (3.3.0)
-      activerecord (>= 3.2.0, < 6.1)
+    default_value_for (3.4.0)
+      activerecord (>= 3.2.0, < 7.0)
     deprecation_toolkit (1.5.1)
       activesupport (>= 4.2)
-    derailed_benchmarks (1.7.0)
+    derailed_benchmarks (1.8.1)
       benchmark-ips (~> 2)
       get_process_mem (~> 0)
       heapy (~> 0)
       memory_profiler (~> 0)
-      mini_histogram (~> 0)
+      mini_histogram (>= 0.2.1)
       rack (>= 1)
       rake (> 10, < 14)
       ruby-statistics (>= 2.1)
       thor (>= 0.19, < 2)
-      unicode_plot (>= 0.0.4, < 1.0.0)
     device_detector (1.0.0)
     devise (4.7.3)
       bcrypt (~> 3.0)
@@ -252,7 +254,7 @@ GEM
       devise (~> 4.0)
       railties (< 6.1)
       rotp (~> 2.0)
-    diff-lcs (1.3)
+    diff-lcs (1.4.4)
     diff_match_patch (0.1.0)
     diffy (3.3.0)
     discordrb-webhooks-blackst0ne (3.3.0)
@@ -260,26 +262,25 @@ GEM
     docile (1.3.2)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
-    doorkeeper (5.3.3)
+    doorkeeper (5.5.0.rc2)
       railties (>= 5)
-    doorkeeper-openid_connect (1.7.4)
+    doorkeeper-openid_connect (1.7.5)
       doorkeeper (>= 5.2, < 5.5)
       json-jwt (>= 1.11.0)
-    dry-configurable (0.11.5)
+    dotenv (2.7.6)
+    dry-configurable (0.12.0)
       concurrent-ruby (~> 1.0)
-      dry-core (~> 0.4, >= 0.4.7)
-      dry-equalizer (~> 0.2)
+      dry-core (~> 0.5, >= 0.5.0)
     dry-container (0.7.2)
       concurrent-ruby (~> 1.0)
       dry-configurable (~> 0.1, >= 0.1.3)
-    dry-core (0.4.9)
+    dry-core (0.5.0)
       concurrent-ruby (~> 1.0)
     dry-equalizer (0.3.0)
     dry-inflector (0.2.0)
-    dry-logic (1.0.6)
+    dry-logic (1.1.0)
       concurrent-ruby (~> 1.0)
-      dry-core (~> 0.2)
-      dry-equalizer (~> 0.2)
+      dry-core (~> 0.5, >= 0.5)
     dry-types (1.4.0)
       concurrent-ruby (~> 1.0)
       dry-container (~> 0.3)
@@ -309,7 +310,6 @@ GEM
       launchy (~> 2.1)
       mail (~> 2.7)
     encryptor (3.0.0)
-    enumerable-statistics (2.0.1)
     equalizer (0.0.11)
     erubi (1.9.0)
     escape_utils (1.2.1)
@@ -321,11 +321,11 @@ GEM
     expression_parser (0.9.0)
     extended-markdown-filter (0.6.0)
       html-pipeline (~> 2.0)
-    factory_bot (5.1.0)
-      activesupport (>= 4.2.0)
-    factory_bot_rails (5.1.0)
-      factory_bot (~> 5.1.0)
-      railties (>= 4.2.0)
+    factory_bot (6.1.0)
+      activesupport (>= 5.0.0)
+    factory_bot_rails (6.1.0)
+      factory_bot (~> 6.1.0)
+      railties (>= 5.0.0)
     faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
     faraday-cookie_jar (0.0.7)
@@ -363,7 +363,7 @@ GEM
       fog-json
       ipaddress (~> 0.8)
       xml-simple (~> 1.1)
-    fog-aws (3.7.0)
+    fog-aws (3.8.0)
       fog-core (~> 2.1)
       fog-json (~> 1.1)
       fog-xml (~> 0.1)
@@ -420,12 +420,12 @@ GEM
       rails (>= 3.2.0)
     git (1.7.0)
       rchardet (~> 1.8)
-    gitaly (13.7.0.pre.rc1)
+    gitaly (13.9.0.pre.rc1)
       grpc (~> 1.0)
     github-markup (1.7.0)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-experiment (0.4.4)
+    gitlab-experiment (0.4.9)
       activesupport (>= 3.0)
       scientist (~> 1.5, >= 1.5.0)
     gitlab-fog-azure-rm (1.0.0)
@@ -435,31 +435,29 @@ GEM
       fog-json (~> 1.2.0)
       mime-types
       ms_rest_azure (~> 0.12.0)
-    gitlab-labkit (0.13.3)
-      actionpack (>= 5.0.0, < 6.1.0)
-      activesupport (>= 5.0.0, < 6.1.0)
+    gitlab-labkit (0.14.0)
+      actionpack (>= 5.0.0, < 7.0.0)
+      activesupport (>= 5.0.0, < 7.0.0)
       gitlab-pg_query (~> 1.3)
       grpc (~> 1.19)
       jaeger-client (~> 1.1)
       opentracing (~> 0.4)
       redis (> 3.0.0, < 5.0.0)
-    gitlab-license (1.0.0)
+    gitlab-license (1.3.0)
     gitlab-mail_room (0.0.8)
     gitlab-markup (1.7.1)
     gitlab-net-dns (0.9.1)
-    gitlab-pg_query (1.3.0)
-    gitlab-puma (4.3.5.gitlab.3)
-      nio4r (~> 2.0)
-    gitlab-puma_worker_killer (0.1.1.gitlab.1)
-      get_process_mem (~> 0.2)
-      gitlab-puma (>= 2.7, < 5)
+    gitlab-pg_query (1.3.1)
+    gitlab-pry-byebug (3.9.0)
+      byebug (~> 11.0)
+      pry (~> 0.13.0)
     gitlab-sidekiq-fetcher (0.5.2)
       sidekiq (~> 5)
-    gitlab-styles (5.3.0)
-      rubocop (~> 0.89.1)
-      rubocop-gitlab-security (~> 0.1.0)
-      rubocop-performance (~> 1.8.1)
-      rubocop-rails (~> 2.8)
+    gitlab-styles (6.0.0)
+      rubocop (~> 0.91.1)
+      rubocop-gitlab-security (~> 0.1.1)
+      rubocop-performance (~> 1.9.2)
+      rubocop-rails (~> 2.9)
       rubocop-rspec (~> 1.44)
     gitlab_chronic_duration (0.10.6.2)
       numerizer (~> 0.2)
@@ -497,7 +495,7 @@ GEM
       signet (~> 0.14)
     gpgme (2.0.20)
       mini_portile2 (~> 2.3)
-    grape (1.4.0)
+    grape (1.5.2)
       activesupport
       builder
       dry-types (>= 1.1)
@@ -507,10 +505,11 @@ GEM
     grape-entity (0.7.1)
       activesupport (>= 4.0)
       multi_json (>= 1.3.2)
-    grape-path-helpers (1.5.0)
+    grape-path-helpers (1.6.1)
       activesupport
       grape (~> 1.3)
       rake (> 12)
+      ruby2_keywords (~> 0.0.2)
     grape_logging (1.8.3)
       grape
       rack
@@ -561,7 +560,7 @@ GEM
       rainbow
       rubocop (>= 0.50.0)
       sysexits (~> 1.1)
-    hamlit (2.11.0)
+    hamlit (2.14.4)
       temple (>= 0.8.2)
       thor
       tilt
@@ -573,11 +572,12 @@ GEM
       hashie (>= 3.0)
     health_check (3.0.0)
       railties (>= 5.0)
-    heapy (0.1.4)
+    heapy (0.2.0)
+      thor
     hipchat (1.5.2)
       httparty
       mimemagic
-    html-pipeline (2.12.2)
+    html-pipeline (2.13.2)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     html2text (0.2.0)
@@ -598,18 +598,18 @@ GEM
       mime-types (~> 3.0)
       multi_xml (>= 0.5.2)
     httpclient (2.8.3)
-    i18n (1.8.5)
+    i18n (1.8.7)
       concurrent-ruby (~> 1.0)
     i18n_data (0.8.0)
     icalendar (2.4.1)
     ice_nine (0.11.2)
-    invisible_captcha (0.12.1)
-      rails (>= 3.2.0)
+    invisible_captcha (1.1.0)
+      rails (>= 4.2)
     ipaddress (0.8.3)
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
-    jira-ruby (2.0.0)
+    jira-ruby (2.1.4)
       activesupport
       atlassian-jwt
       multipart-post
@@ -661,6 +661,7 @@ GEM
       rest-client (~> 2.0)
     launchy (2.4.3)
       addressable (~> 2.3)
+    lefthook (0.7.2)
     letter_opener (1.7.0)
       launchy (~> 2.2)
     letter_opener_web (1.3.4)
@@ -674,8 +675,12 @@ GEM
       toml (= 0.2.0)
       with_env (= 1.1.0)
       xml-simple
-    licensee (8.9.2)
-      rugged (~> 0.24)
+    licensee (9.14.1)
+      dotenv (~> 2.0)
+      octokit (~> 4.17)
+      reverse_markdown (~> 1.0)
+      rugged (>= 0.24, < 2.0)
+      thor (>= 0.19, < 2.0)
     listen (3.2.1)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
@@ -686,7 +691,7 @@ GEM
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.7.0)
+    loofah (2.8.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
@@ -695,7 +700,7 @@ GEM
       mini_mime (>= 0.1.1)
     marcel (0.3.3)
       mimemagic (~> 0.3.2)
-    marginalia (1.9.0)
+    marginalia (1.10.0)
       actionpack (>= 2.3)
       activerecord (>= 2.3)
     memoist (0.16.2)
@@ -707,10 +712,10 @@ GEM
       mime-types-data (~> 3.2015)
     mime-types-data (3.2020.0512)
     mimemagic (0.3.5)
-    mini_histogram (0.1.3)
+    mini_histogram (0.3.1)
     mini_magick (4.10.1)
     mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
+    mini_portile2 (2.5.0)
     minitest (5.11.3)
     ms_rest (0.7.6)
       concurrent-ruby (~> 1.0)
@@ -730,17 +735,19 @@ GEM
       ruby2_keywords (~> 0.0.1)
     mustermann-grape (1.0.1)
       mustermann (>= 1.0.0)
-    nakayoshi_fork (0.0.4)
     nap (1.1.0)
     nenv (0.3.0)
-    net-ldap (0.16.2)
+    net-http-persistent (4.0.0)
+      connection_pool (~> 2.2)
+    net-ldap (0.16.3)
     net-ntp (2.1.3)
     net-ssh (6.0.0)
     netrc (0.11.0)
     nio4r (2.5.4)
     no_proxy_fix (0.1.2)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     nokogumbo (2.0.2)
       nokogiri (~> 1.8, >= 1.8.4)
     notiffany (0.1.3)
@@ -754,7 +761,7 @@ GEM
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 3)
-    octokit (4.15.0)
+    octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
     oj (3.10.6)
@@ -840,13 +847,14 @@ GEM
       rubypants (~> 0.2)
     orm_adapter (0.5.0)
     os (1.1.1)
-    parallel (1.19.2)
-    parser (2.7.2.0)
+    parallel (1.20.1)
+    parser (3.0.0.0)
       ast (~> 2.4.1)
     parslet (1.8.2)
     peek (1.1.0)
       railties (>= 4.0.0)
     pg (1.2.3)
+    pg_query (1.3.0)
     png_quantizator (0.2.1)
     po_to_json (1.0.1)
       json (>= 1.6.0)
@@ -866,14 +874,20 @@ GEM
     pry (0.13.1)
       coderay (~> 1.1)
       method_source (~> 1.0)
-    pry-byebug (3.9.0)
-      byebug (~> 11.0)
-      pry (~> 0.13.0)
     pry-rails (0.3.9)
       pry (>= 0.10.4)
+    pry-remote (0.1.8)
+      pry (~> 0.9)
+      slop (~> 3.0)
     public_suffix (4.0.6)
+    puma (5.1.1)
+      nio4r (~> 2.0)
+    puma_worker_killer (0.3.1)
+      get_process_mem (~> 0.2)
+      puma (>= 2.7)
     pyu-ruby-sasl (0.0.3.3)
     raabro (1.1.6)
+    racc (1.5.2)
     rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
@@ -894,20 +908,20 @@ GEM
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
     rack-timeout (0.5.2)
-    rails (6.0.3.3)
-      actioncable (= 6.0.3.3)
-      actionmailbox (= 6.0.3.3)
-      actionmailer (= 6.0.3.3)
-      actionpack (= 6.0.3.3)
-      actiontext (= 6.0.3.3)
-      actionview (= 6.0.3.3)
-      activejob (= 6.0.3.3)
-      activemodel (= 6.0.3.3)
-      activerecord (= 6.0.3.3)
-      activestorage (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    rails (6.0.3.4)
+      actioncable (= 6.0.3.4)
+      actionmailbox (= 6.0.3.4)
+      actionmailer (= 6.0.3.4)
+      actionpack (= 6.0.3.4)
+      actiontext (= 6.0.3.4)
+      actionview (= 6.0.3.4)
+      activejob (= 6.0.3.4)
+      activemodel (= 6.0.3.4)
+      activerecord (= 6.0.3.4)
+      activestorage (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       bundler (>= 1.3.0)
-      railties (= 6.0.3.3)
+      railties (= 6.0.3.4)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
@@ -921,15 +935,15 @@ GEM
     rails-i18n (6.0.0)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 7)
-    railties (6.0.3.3)
-      actionpack (= 6.0.3.3)
-      activesupport (= 6.0.3.3)
+    railties (6.0.3.4)
+      actionpack (= 6.0.3.4)
+      activesupport (= 6.0.3.4)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.20.3, < 2.0)
     rainbow (3.0.0)
     raindrops (0.19.1)
-    rake (13.0.1)
+    rake (13.0.3)
     rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
@@ -981,6 +995,8 @@ GEM
       mime-types (>= 1.16, < 4.0)
       netrc (~> 0.8)
     retriable (3.1.2)
+    reverse_markdown (1.4.0)
+      nokogiri
     rexml (3.2.4)
     rinku (2.0.0)
     rotp (2.1.2)
@@ -989,35 +1005,35 @@ GEM
       chunky_png
     rqrcode-rails3 (0.1.7)
       rqrcode (>= 0.4.2)
-    rspec (3.9.0)
-      rspec-core (~> 3.9.0)
-      rspec-expectations (~> 3.9.0)
-      rspec-mocks (~> 3.9.0)
-    rspec-core (3.9.1)
-      rspec-support (~> 3.9.1)
-    rspec-expectations (3.9.1)
+    rspec (3.10.0)
+      rspec-core (~> 3.10.0)
+      rspec-expectations (~> 3.10.0)
+      rspec-mocks (~> 3.10.0)
+    rspec-core (3.10.1)
+      rspec-support (~> 3.10.0)
+    rspec-expectations (3.10.1)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
-    rspec-mocks (3.9.1)
+      rspec-support (~> 3.10.0)
+    rspec-mocks (3.10.2)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.9.0)
+      rspec-support (~> 3.10.0)
     rspec-parameterized (0.4.2)
       binding_ninja (>= 0.2.3)
       parser
       proc_to_ast
       rspec (>= 2.13, < 4)
       unparser
-    rspec-rails (4.0.0)
+    rspec-rails (4.0.2)
       actionpack (>= 4.2)
       activesupport (>= 4.2)
       railties (>= 4.2)
-      rspec-core (~> 3.9)
-      rspec-expectations (~> 3.9)
-      rspec-mocks (~> 3.9)
-      rspec-support (~> 3.9)
+      rspec-core (~> 3.10)
+      rspec-expectations (~> 3.10)
+      rspec-mocks (~> 3.10)
+      rspec-support (~> 3.10)
     rspec-retry (0.6.1)
       rspec-core (> 3.3)
-    rspec-support (3.9.2)
+    rspec-support (3.10.2)
     rspec_junit_formatter (0.4.1)
       rspec-core (>= 2, < 4, != 2.12.0)
     rspec_profiling (0.0.6)
@@ -1025,26 +1041,26 @@ GEM
       pg
       rails
       sqlite3
-    rubocop (0.89.1)
+    rubocop (0.91.1)
       parallel (~> 1.10)
       parser (>= 2.7.1.1)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.7)
       rexml
-      rubocop-ast (>= 0.3.0, < 1.0)
+      rubocop-ast (>= 0.4.0, < 1.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 2.0)
     rubocop-ast (0.8.0)
       parser (>= 2.7.1.5)
     rubocop-gitlab-security (0.1.1)
       rubocop (>= 0.51)
-    rubocop-performance (1.8.1)
-      rubocop (>= 0.87.0)
+    rubocop-performance (1.9.2)
+      rubocop (>= 0.90.0, < 2.0)
       rubocop-ast (>= 0.4.0)
-    rubocop-rails (2.8.1)
+    rubocop-rails (2.9.1)
       activesupport (>= 4.2.0)
       rack (>= 1.1)
-      rubocop (>= 0.87.0)
+      rubocop (>= 0.90.0, < 2.0)
     rubocop-rspec (1.44.1)
       rubocop (~> 0.87)
       rubocop-ast (>= 0.7.1)
@@ -1053,7 +1069,7 @@ GEM
     ruby-fogbugz (0.2.1)
       crack (~> 0.4)
     ruby-prof (1.3.1)
-    ruby-progressbar (1.10.1)
+    ruby-progressbar (1.11.0)
     ruby-saml (1.7.2)
       nokogiri (>= 1.5.10)
     ruby-statistics (2.1.2)
@@ -1063,7 +1079,7 @@ GEM
     rubyntlm (0.6.2)
     rubypants (0.2.0)
     rubyzip (2.0.0)
-    rugged (0.28.4.1)
+    rugged (1.0.1)
     safe_yaml (1.0.4)
     safety_net_attestation (0.4.0)
       jwt (~> 2.0)
@@ -1127,6 +1143,7 @@ GEM
     simplecov-html (0.12.2)
     sixarm_ruby_unaccent (1.2.0)
     slack-messenger (2.3.4)
+    slop (3.6.0)
     snowplow-tracker (0.6.1)
       contracts (~> 0.7, <= 0.11)
     spring (2.1.1)
@@ -1143,12 +1160,12 @@ GEM
     sshkey (2.0.0)
     stackprof (0.2.15)
     state_machines (0.5.0)
-    state_machines-activemodel (0.7.1)
-      activemodel (>= 4.1)
+    state_machines-activemodel (0.8.0)
+      activemodel (>= 5.1)
       state_machines (>= 0.5.0)
-    state_machines-activerecord (0.6.0)
-      activerecord (>= 4.1)
-      state_machines-activemodel (>= 0.5.0)
+    state_machines-activerecord (0.8.0)
+      activerecord (>= 5.1)
+      state_machines-activemodel (>= 0.8.0)
     swd (1.1.2)
       activesupport (>= 3)
       attr_required (>= 0.0.5)
@@ -1163,13 +1180,13 @@ GEM
       execjs (>= 0.3.0, < 3)
     test-prof (0.12.0)
     text (1.3.1)
-    thin (1.7.2)
+    thin (1.8.0)
       daemons (~> 1.0, >= 1.0.9)
       eventmachine (~> 1.0, >= 1.0.4)
       rack (>= 1, < 3)
-    thor (0.20.3)
+    thor (1.1.0)
     thread_safe (0.3.6)
-    thrift (0.13.0)
+    thrift (0.14.0)
     tilt (2.0.10)
     timecop (0.9.1)
     timeliness (0.3.10)
@@ -1185,7 +1202,7 @@ GEM
     truncato (0.7.11)
       htmlentities (~> 4.3.1)
       nokogiri (>= 1.7.0, <= 2.0)
-    tzinfo (1.2.8)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     u2f (0.2.1)
     uber (0.1.0)
@@ -1193,8 +1210,6 @@ GEM
       unf_ext
     unf_ext (0.0.7.7)
     unicode-display_width (1.7.0)
-    unicode_plot (0.0.4)
-      enumerable-statistics (>= 2.0.1)
     unicode_utils (1.4.0)
     unicorn (5.5.5)
       kgio (~> 2.6)
@@ -1247,6 +1262,7 @@ GEM
       addressable (>= 2.3.6)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
+    webrick (1.6.1)
     websocket-driver (0.7.3)
       websocket-extensions (>= 0.1.0)
     websocket-extensions (0.1.5)
@@ -1259,7 +1275,7 @@ GEM
     xpath (3.2.0)
       nokogiri (~> 1.8)
     yajl-ruby (1.4.1)
-    zeitwerk (2.4.1)
+    zeitwerk (2.4.2)
 
 PLATFORMS
   ruby
@@ -1268,17 +1284,18 @@ DEPENDENCIES
   RedCloth (~> 4.3.2)
   acme-client (~> 2.0, >= 2.0.6)
   activerecord-explain-analyze (~> 0.1)
-  acts-as-taggable-on (~> 6.0)
+  acts-as-taggable-on (~> 7.0)
   addressable (~> 2.7)
   akismet (~> 3.0)
   apollo_upload_server (~> 2.0.2)
-  asana (= 0.10.2)
+  asana (~> 0.10.3)
   asciidoctor (~> 2.0.10)
   asciidoctor-include-ext (~> 0.3.1)
-  asciidoctor-kroki (~> 0.2.2)
+  asciidoctor-kroki (~> 0.4.0)
   asciidoctor-plantuml (~> 0.0.12)
   atlassian-jwt (~> 0.2.0)
   attr_encrypted (~> 3.1.0)
+  autoprefixer-rails (= 10.2.0.0)
   awesome_print
   aws-sdk-cloudformation (~> 1)
   aws-sdk-core (~> 3)
@@ -1295,9 +1312,9 @@ DEPENDENCIES
   bootstrap_form (~> 4.2.0)
   brakeman (~> 4.2)
   browser (~> 4.2)
-  bullet (~> 6.1.0)
-  bundler-audit (~> 0.6.1)
-  capybara (~> 3.33.0)
+  bullet (~> 6.1.3)
+  bundler-audit (~> 0.7.0.1)
+  capybara (~> 3.34.0)
   capybara-screenshot (~> 1.0.22)
   carrierwave (~> 1.3)
   charlock_holmes (~> 0.7.7)
@@ -1310,7 +1327,7 @@ DEPENDENCIES
   danger (~> 8.0.6)
   database_cleaner (~> 1.7.0)
   deckar01-task_list (= 2.3.1)
-  default_value_for (~> 3.3.0)
+  default_value_for (~> 3.4.0)
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
   device_detector
@@ -1319,8 +1336,8 @@ DEPENDENCIES
   diff_match_patch (~> 0.1.0)
   diffy (~> 3.3)
   discordrb-webhooks-blackst0ne (~> 3.3)
-  doorkeeper (~> 5.3.0)
-  doorkeeper-openid_connect (~> 1.7.4)
+  doorkeeper (~> 5.5.0.rc2)
+  doorkeeper-openid_connect (~> 1.7.5)
   ed25519 (~> 1.2)
   elasticsearch-api (~> 6.8.2)
   elasticsearch-model (~> 6.1)
@@ -1329,7 +1346,7 @@ DEPENDENCIES
   email_spec (~> 2.2.0)
   erubi (~> 1.9.0)
   escape_utils (~> 1.1)
-  factory_bot_rails (~> 5.1.0)
+  factory_bot_rails (~> 6.1.0)
   faraday (~> 1.0)
   faraday_middleware-aws-sigv4 (~> 0.3.0)
   fast_blank
@@ -1339,7 +1356,7 @@ DEPENDENCIES
   flipper-active_support_cache_store (~> 0.17.1)
   flowdock (~> 0.7)
   fog-aliyun (~> 0.3)
-  fog-aws (~> 3.7)
+  fog-aws (~> 3.8)
   fog-core (= 2.1.0)
   fog-google (~> 1.12)
   fog-local (~> 0.6)
@@ -1351,30 +1368,28 @@ DEPENDENCIES
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 13.7.0.pre.rc1)
+  gitaly (~> 13.9.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-experiment (~> 0.4.4)
+  gitlab-experiment (~> 0.4.9)
   gitlab-fog-azure-rm (~> 1.0)
-  gitlab-labkit (= 0.13.3)
-  gitlab-license (~> 1.0)
+  gitlab-labkit (= 0.14.0)
+  gitlab-license (~> 1.3)
   gitlab-mail_room (~> 0.0.8)
   gitlab-markup (~> 1.7.1)
   gitlab-net-dns (~> 0.9.1)
-  gitlab-pg_query (~> 1.3)
-  gitlab-puma (~> 4.3.3.gitlab.2)
-  gitlab-puma_worker_killer (~> 0.1.1.gitlab.1)
+  gitlab-pry-byebug
   gitlab-sidekiq-fetcher (= 0.5.2)
-  gitlab-styles (~> 5.3.0)
+  gitlab-styles (~> 6.0.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
   gon (~> 6.2)
   google-api-client (~> 0.33)
   google-protobuf (~> 3.12)
   gpgme (~> 2.0.19)
-  grape (= 1.4.0)
+  grape (~> 1.5.2)
   grape-entity (~> 0.7.1)
-  grape-path-helpers (~> 1.5)
+  grape-path-helpers (~> 1.6.1)
   grape_logging (~> 1.7)
   graphiql-rails (~> 1.4.10)
   graphlient (~> 0.4.0)
@@ -1384,19 +1399,19 @@ DEPENDENCIES
   gssapi
   guard-rspec
   haml_lint (~> 0.36.0)
-  hamlit (~> 2.11.0)
+  hamlit (~> 2.14.4)
   hangouts-chat (~> 0.0.5)
   hashie
   hashie-forbidden_attributes
   health_check (~> 3.0)
   hipchat (~> 1.5.0)
-  html-pipeline (~> 2.12)
+  html-pipeline (~> 2.13.2)
   html2text
   httparty (~> 0.16.4)
   icalendar
-  invisible_captcha (~> 0.12.1)
+  invisible_captcha (~> 1.1.0)
   ipaddress (~> 0.8.3)
-  jira-ruby (~> 2.0.0)
+  jira-ruby (~> 2.1.4)
   js_regex (~> 3.4)
   json (~> 2.3.0)
   json-schema (~> 2.8.0)
@@ -1406,26 +1421,26 @@ DEPENDENCIES
   knapsack (~> 1.17)
   kramdown (~> 2.3.0)
   kubeclient (~> 4.9.1)
+  lefthook (~> 0.7)
   letter_opener_web (~> 1.3.4)
   license_finder (~> 6.0)
-  licensee (~> 8.9)
+  licensee (~> 9.14.1)
   lockbox (~> 0.3.3)
   lograge (~> 0.5)
   loofah (~> 2.2)
   lru_redux
   mail (= 2.7.1)
-  marginalia (~> 1.9.0)
+  marginalia (~> 1.10.0)
   memory_profiler (~> 0.9)
   method_source (~> 1.0)
   mimemagic (~> 0.3.2)
   mini_magick (~> 4.10.1)
   minitest (~> 5.11.0)
   multi_json (~> 1.14.1)
-  nakayoshi_fork (~> 0.0.4)
-  net-ldap
+  net-ldap (~> 0.16.3)
   net-ntp
   net-ssh (~> 6.0)
-  nokogiri (~> 1.10.9)
+  nokogiri (~> 1.11.1)
   oauth2 (~> 1.4)
   octokit (~> 4.15)
   oj (~> 3.10.6)
@@ -1449,13 +1464,17 @@ DEPENDENCIES
   omniauth_openid_connect (~> 0.3.5)
   org-ruby (~> 0.9.12)
   parallel (~> 1.19)
+  parslet (~> 1.8)
   peek (~> 1.1)
   pg (~> 1.1)
+  pg_query (~> 1.3.0)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
   prometheus-client-mmap (~> 0.12.0)
-  pry-byebug (~> 3.9.0)
   pry-rails (~> 0.3.9)
+  pry-remote
+  puma (~> 5.1.1)
+  puma_worker_killer (~> 0.3.1)
   rack (~> 2.2.3)
   rack-attack (~> 6.3.0)
   rack-cors (~> 1.0.6)
@@ -1481,7 +1500,7 @@ DEPENDENCIES
   rouge (~> 3.26.0)
   rqrcode-rails3 (~> 0.1.7)
   rspec-parameterized
-  rspec-rails (~> 4.0.0)
+  rspec-rails (~> 4.0.2)
   rspec-retry (~> 0.6.1)
   rspec_junit_formatter
   rspec_profiling (~> 0.0.6)
@@ -1490,7 +1509,7 @@ DEPENDENCIES
   ruby-progressbar (~> 1.10)
   ruby_parser (~> 3.15)
   rubyzip (~> 2.0.0)
-  rugged (~> 0.28)
+  rugged (~> 1.0.1)
   sanitize (~> 5.2.1)
   sassc-rails (~> 2.1.0)
   scss_lint (~> 0.59.0)
@@ -1511,11 +1530,12 @@ DEPENDENCIES
   sprockets (~> 3.7.0)
   sshkey (~> 2.0)
   stackprof (~> 0.2.15)
-  state_machines-activerecord (~> 0.6.0)
+  state_machines-activerecord (~> 0.8.0)
   sys-filesystem (~> 1.1.6)
   terser (= 1.0.2)
   test-prof (~> 0.12.0)
-  thin (~> 1.7.0)
+  thin (~> 1.8.0)
+  thrift (>= 0.14.0)
   timecop (~> 0.9.1)
   toml-rb (~> 1.0.0)
   truncato (~> 0.7.11)
@@ -1530,6 +1550,7 @@ DEPENDENCIES
   vmstat (~> 2.3.0)
   webauthn (~> 2.3)
   webmock (~> 3.9.1)
+  webrick (~> 1.6.1)
   wikicloth (= 0.8.1)
   yajl-ruby (~> 1.4.1)
 
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index a4758f7418e..64d38a9a274 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wpmxbprsqclna9xpa6b7sspjb89p6jqfxalasa9f984hx77dx27";
+      sha256 = "0y3aa0965cdsqamxk8ac6brcvijl1zv4pvqils6xy3pbcrv0ljid";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
@@ -37,10 +37,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0smcxpn3glnmid3v2pk04sb3bdifbw7ad1c7fq6wfijkrpih8jiw";
+      sha256 = "10vb9s4frq22h5j6gyw2598k1jc29lg2czm95hf284l3mi4qly6a";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -48,10 +48,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1spq0dbfn0qkqg9sq0rsjn360b4j36zly8hawaivkrwr3rsvyz75";
+      sha256 = "1ykn5qkwdlcv5aa1gjhhmrxpjccwa7df6n4amvkmvxv5lggyma52";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -59,10 +59,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+      sha256 = "0fbjpnh5hrihc9l35q9why6ip0hcdj42axzbp6b4j1xcy1v1bicj";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
@@ -70,10 +70,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05ysfz9dwnncdx0g452by7jdr35yryz6lmcrbb4r5wgjm57b4n25";
+      sha256 = "0r0j0m76ynjspmvj5qbzl06kl9i920v269iz62y62009xydv6rqz";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -81,10 +81,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+      sha256 = "0gdz31cq08nrqq6bxqim2qcbzv0fr34z6ycl73dmawpafj33wdkj";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -92,10 +92,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w54ckvc229iaax879hkhyc93j7z8p0v7acp6mk3h8xjfvmwy5jp";
+      sha256 = "0d0p8gjplrgym38dmchyzhv7lrrxngz0yrxl6xyvwxfxm1hgdk2k";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -103,10 +103,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "166jlx6kbby01vr37srh081a9fykgsz873yg5i9gl2ar3vw9gs56";
+      sha256 = "00jj8namy5niq7grl5lrsr4y351rxpj1b69k1i9gvb1hnpghl099";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -114,10 +114,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y2a4ss6ld6yrhpcbcb3kjn5gj6zk9qklp2aq5rl1awl8vbdbdb7";
+      sha256 = "06qvvp73z8kq9sd2mhw6p9124q5pfkswjga2fidz4c73zbr79r3g";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activerecord-explain-analyze = {
     dependencies = ["activerecord" "pg"];
@@ -136,10 +136,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nvfjkq979m1h4mk1ys7m4irwpswn4l9arb9yi06ffqpi1lpfl31";
+      sha256 = "0q734331wb7cfsh4jahj3lphpxvglzb17yvibwss1ml4g01xxm52";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -147,10 +147,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+      sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   acts-as-taggable-on = {
     dependencies = ["activerecord"];
@@ -158,10 +158,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nvhd986xa6llyjnhikq4h1nrcf5b9r9s11if25qsj8358inrpga";
+      sha256 = "09m7lvm6id8mm8y9qycjr54l9gyqfb43x6yjz23cggisjg0px1fv";
       type = "gem";
     };
-    version = "6.5.0";
+    version = "7.0.0";
   };
   adamantium = {
     dependencies = ["ice_nine" "memoizable"];
@@ -232,20 +232,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c8n8i3jb2q09l6rgcw0lb4sq85jzz6vywqlrd0ivq989zh3sq2l";
+      sha256 = "14cs2k802hlvlmn0nwnx4k3g44944x0a8dsj3k14mjnbvcw1fkxh";
       type = "gem";
     };
-    version = "0.10.2";
+    version = "0.10.3";
   };
   asciidoctor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b2ajs3sabl0s27r7lhwkacw0yn0zfk4jpmidg9l8lzp2qlgjgbz";
+      sha256 = "1gjk9v83vw0pz4x0xqqnw231z9sgscm6vnacjw7hy5njkw8fskj9";
       type = "gem";
     };
-    version = "2.0.10";
+    version = "2.0.12";
   };
   asciidoctor-include-ext = {
     dependencies = ["asciidoctor"];
@@ -264,10 +264,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10yc07x2z9f122wnncf34s91vlfcd4wy8y9wshxc7j2m4a2jlzm5";
+      sha256 = "13gx22xld4rbxxirnsxyrsajy9v666r8a4ngms71611af5afgk6w";
       type = "gem";
     };
-    version = "0.2.2";
+    version = "0.4.0";
   };
   asciidoctor-plantuml = {
     dependencies = ["asciidoctor"];
@@ -322,6 +322,17 @@
     };
     version = "1.0.1";
   };
+  autoprefixer-rails = {
+    dependencies = ["execjs"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p9j0sxw0nm27x7wj0n8a9zikwb0v8b6varr601rcgymsjj2v7wy";
+      type = "gem";
+    };
+    version = "10.2.0.0";
+  };
   awesome_print = {
     groups = ["development" "test"];
     platforms = [];
@@ -423,21 +434,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qpvjyaq8478hw4cxcf8lr303wn8g9mhrfmvihyzn3zn9hll4zvd";
+      sha256 = "01psx005lkrfk3zm816z76fa2pv4hd8jk7hxrjyy4hbvgcqi6rfy";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.0.1";
   };
   azure-storage-common = {
-    dependencies = ["faraday" "faraday_middleware" "nokogiri"];
+    dependencies = ["faraday" "faraday_middleware" "net-http-persistent" "nokogiri"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nhjw77r65xrkdn2h6cd76mglgx676hyr58igyfb9f7zbgvjp69s";
+      sha256 = "0h5bwswc5768hblcxsschjz3y0lf9kvz3k7qqwypdhy8sr1lfxg8";
       type = "gem";
     };
-    version = "2.0.1";
+    version = "2.0.2";
   };
   babosa = {
     groups = ["default"];
@@ -599,10 +610,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18ifwnvn13755qkfigapyj5bflpby3phxzbb7x5336d0kzv5k7d9";
+      sha256 = "04wm807czdixpgnqp446vj8vc7dj96k26p90rmwll9ahlib37mmm";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3";
   };
   bundler-audit = {
     dependencies = ["thor"];
@@ -610,10 +621,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pm22xpn3xyymsainixnrk8v3l3xi9bzwkjkspx00cfzp84xvxbq";
+      sha256 = "04l9rs56rlvihbr2ybkrigjajgd3swa98lxvmdl8iylj1g5m7n0j";
       type = "gem";
     };
-    version = "0.6.1";
+    version = "0.7.0.1";
   };
   byebug = {
     groups = ["default" "development" "test"];
@@ -635,10 +646,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ji9kyb01dpnjbvpyb0c481cpnisd6wx6div6rywi9fihk66627w";
+      sha256 = "1i1bm7r8n67cafd9p3ck7vdmng921b41n9znvlfaz7cy8a3gsrgm";
       type = "gem";
     };
-    version = "3.33.0";
+    version = "3.34.0";
   };
   capybara-screenshot = {
     dependencies = ["capybara" "launchy"];
@@ -910,10 +921,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
+      sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.3.1";
   };
   danger = {
     dependencies = ["claide" "claide-plugins" "colored2" "cork" "faraday" "faraday-http-cache" "git" "kramdown" "kramdown-parser-gfm" "no_proxy_fix" "octokit" "terminal-table"];
@@ -987,10 +998,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08hwnnqm3bxd4n627isliq79zysdlmfkf813403v0b4mkhika5my";
+      sha256 = "03zln3mp8wa734jl7abd6gby08xq8j6n4y2phzxfsssscx8xrlim";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.0";
   };
   deprecation_toolkit = {
     dependencies = ["activesupport"];
@@ -1004,15 +1015,15 @@
     version = "1.5.1";
   };
   derailed_benchmarks = {
-    dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "mini_histogram" "rack" "rake" "ruby-statistics" "thor" "unicode_plot"];
-    groups = ["default"];
+    dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "mini_histogram" "rack" "rake" "ruby-statistics" "thor"];
+    groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03lrvzvdjy6wyrnb3nw7nqn9jbhn6lncach58pj6m4l76b2n6jpr";
+      sha256 = "05nryqr18w61dyk9amajh7chn07zxardxnywayyis72kmd8f9q29";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.8.1";
   };
   device_detector = {
     groups = ["default"];
@@ -1051,10 +1062,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
       type = "gem";
     };
-    version = "1.3";
+    version = "1.4.4";
   };
   diff_match_patch = {
     groups = ["default"];
@@ -1114,10 +1125,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01scvhvrw44ksv1aaywpp9kfm4c8qs4gwnnha40r5mq0vpc0qrny";
+      sha256 = "1mdjnw5n2r3hclg4gmzx19w750sdcxw9y6dhcawbzb9wrbzj58wk";
       type = "gem";
     };
-    version = "5.3.3";
+    version = "5.5.0.rc2";
   };
   doorkeeper-openid_connect = {
     dependencies = ["doorkeeper" "json-jwt"];
@@ -1125,21 +1136,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yylcg4j7msxma0s8rx8990bfgr0c414a7vafs3gpgmbwy47wq45";
+      sha256 = "1cj7b45lxiifi6pw8gnylfzlhji572v0pj896rbyqjwyzlgj1sid";
+      type = "gem";
+    };
+    version = "1.7.5";
+  };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
       type = "gem";
     };
-    version = "1.7.4";
+    version = "2.7.6";
   };
   dry-configurable = {
-    dependencies = ["concurrent-ruby" "dry-core" "dry-equalizer"];
+    dependencies = ["concurrent-ruby" "dry-core"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "033x4gvynfm33pchmpd5iw9n4c9q46j8vbwbcdmvb8b2r0gpzfdn";
+      sha256 = "0rvwvxrvcygvgfc3xjrihvdvnr0dh2144s8x80zfgfnz0jd5gac7";
       type = "gem";
     };
-    version = "0.11.5";
+    version = "0.12.0";
   };
   dry-container = {
     dependencies = ["concurrent-ruby" "dry-configurable"];
@@ -1158,10 +1179,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9ff2sr4ymiwzg4mchzv66mn6rdsgjlinm6s4x5x91yhd0h4vpk";
+      sha256 = "14s45hxcqpp2mbvwlwzn018i8qhcjzgkirigdrv31jd741rpgy9s";
       type = "gem";
     };
-    version = "0.4.9";
+    version = "0.5.0";
   };
   dry-equalizer = {
     groups = ["default"];
@@ -1184,15 +1205,15 @@
     version = "0.2.0";
   };
   dry-logic = {
-    dependencies = ["concurrent-ruby" "dry-core" "dry-equalizer"];
+    dependencies = ["concurrent-ruby" "dry-core"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cqvylwv71sm9zrb0lpxmghn20zxnjswxwyhaj8y2wfniffyjgkc";
+      sha256 = "17dnc3g9y2nj42rdx2bdvsvvms10vgw4qzjb2iw2gln9hj8b797c";
       type = "gem";
     };
-    version = "1.0.6";
+    version = "1.1.0";
   };
   dry-types = {
     dependencies = ["concurrent-ruby" "dry-container" "dry-core" "dry-equalizer" "dry-inflector" "dry-logic"];
@@ -1311,16 +1332,6 @@
     };
     version = "3.0.0";
   };
-  enumerable-statistics = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0ac2f5g4m58l6bmap1ak6vgqykz2hy9n3c8r6dmlr2xjybdryc1f";
-      type = "gem";
-    };
-    version = "2.0.1";
-  };
   equalizer = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -1419,10 +1430,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04mvwcdh1056r79vq969vlncrcy53fkhw0iixpqvp8gnx5ajbsv6";
+      sha256 = "11ij9s4hasy963qjqbrrf0m8lm9m9pxkh2vf4wrnafa6gw6r9qk8";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "6.1.0";
   };
   factory_bot_rails = {
     dependencies = ["factory_bot" "railties"];
@@ -1430,10 +1441,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02q7lwfdilwahza2jz0p0kc2rragv617q9r2yy72syv6lfy923sx";
+      sha256 = "0hfxkq6rarg0b8xfzqg200xyj176sn1xplqqqcrz5drhkqp30m14";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "6.1.0";
   };
   faraday = {
     dependencies = ["multipart-post"];
@@ -1612,10 +1623,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1764kvyzigaxwmxgfggpqq15qpplm77j2nmvhf8f0gybsm3vbrbn";
+      sha256 = "1q7n8r03akjbdz3r2bgsl6wcjvdlf0k508z8bsd9zgs43qg14vc9";
       type = "gem";
     };
-    version = "3.7.0";
+    version = "3.8.0";
   };
   fog-core = {
     dependencies = ["builder" "excon" "formatador" "mime-types"];
@@ -1808,10 +1819,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1al29diaj9zrkj1rxwrqd644f2winv81dmnjycvm0gsim0vvw2hq";
+      sha256 = "137gr4nbxhcyh4s60r2z0js8q2bfnmxiggwnf122wp9csywlnyg2";
       type = "gem";
     };
-    version = "13.7.0.pre.rc1";
+    version = "13.9.0.pre.rc1";
   };
   github-markup = {
     groups = ["default"];
@@ -1840,10 +1851,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12ng0q49vl4k80m3hyx6bz915x1gmfmxjvgzdp3w0q77j4qv6nwi";
+      sha256 = "0skqg90i6qdpm7dhy8bv99gk8siwgm6mpr675790ngri1ns4f5xk";
       type = "gem";
     };
-    version = "0.4.4";
+    version = "0.4.9";
   };
   gitlab-fog-azure-rm = {
     dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types" "ms_rest_azure"];
@@ -1862,20 +1873,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x4d5dl60cfvvqj89b8blpsxa7lbbblqwdqy8kc1z51gira7i803";
+      sha256 = "0l4sbvlk6qc0x8372rp1gc2ihmx3vp0afrm5cy55xhflq16y7sl1";
       type = "gem";
     };
-    version = "0.13.3";
+    version = "0.14.0";
   };
   gitlab-license = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q26cgp3ln3b36n3sc69r6hxafkxjwdr3m0d7jlch5j7vyib9bih";
+      sha256 = "04846kr8pw0fkw4mavakai978raq5d2kjna4rawxpc3dqlr897g4";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.3.0";
   };
   gitlab-mail_room = {
     groups = ["default"];
@@ -1912,32 +1923,25 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xvzs8gy6vbddzf9kin92lqb99vzwljikfgqvxbxqm7hzl16dilq";
+      sha256 = "1rybirjyclavp641qdx27483xx0zpmc577wdzfgdnjd7753bya7g";
       type = "gem";
     };
-    version = "1.3.0";
-  };
-  gitlab-puma = {
-    dependencies = ["nio4r"];
-    groups = ["puma"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05hazn3cq079zynj0viagly6bgh4x7pb2vqki9rgf2k39ljwrmld";
-      type = "gem";
-    };
-    version = "4.3.5.gitlab.3";
+    version = "1.3.1";
   };
-  gitlab-puma_worker_killer = {
-    dependencies = ["get_process_mem" "gitlab-puma"];
-    groups = ["puma"];
-    platforms = [];
+  gitlab-pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    groups = ["development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iagbqh4djbxfd18srvfg9qcxn845ibs3kf0q1sd57k27lxj0har";
+      sha256 = "0sp33vzzw8b7q9d8kb4pw8cl5fzlbffdpwz125x1g3kdiwz8xp3j";
       type = "gem";
     };
-    version = "0.1.1.gitlab.1";
+    version = "3.9.0";
   };
   gitlab-sidekiq-fetcher = {
     dependencies = ["sidekiq"];
@@ -1956,10 +1960,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14zg4mxj780ssk6lg8mvy4br3327cdlq17k5sds8zk2glng9vmsh";
+      sha256 = "17d238cy031gnjmrk6wl3qyk5kqhqjxrb68813n4y9ia817xmwyp";
       type = "gem";
     };
-    version = "5.3.0";
+    version = "6.0.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -2076,10 +2080,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03ylzpn9mng9kwk472xbsfnqcbnm0qcjjlscp17hijvpvafd8a09";
+      sha256 = "0adf01kihxbmh8q84r6zyfgdmpbyb0lwcar3fi8j6bl6qcsbgwqx";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.5.2";
   };
   grape-entity = {
     dependencies = ["activesupport" "multi_json"];
@@ -2093,15 +2097,15 @@
     version = "0.7.1";
   };
   grape-path-helpers = {
-    dependencies = ["activesupport" "grape" "rake"];
+    dependencies = ["activesupport" "grape" "rake" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "131s6a0xa0fj7w5d6xb2p2z3404w6rxbc33v7fcg50jrjgqphrjz";
+      sha256 = "1xdp7b5fnvm89szy8ghpl6wm125iq7f0qnhibj5bxqrvg3xyhc2m";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.6.1";
   };
   grape_logging = {
     dependencies = ["grape" "rack"];
@@ -2250,10 +2254,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13wkrvyldk21xlc9illam495fpgf7w7bksaj8y6n00y036wmbg60";
+      sha256 = "1gjbdni9jdpsdahrx2q7cvrc6jkrzpf9rdi0rli8mdvwi9xjafz5";
       type = "gem";
     };
-    version = "2.11.0";
+    version = "2.14.4";
   };
   hana = {
     groups = ["default"];
@@ -2318,14 +2322,15 @@
     version = "3.0.0";
   };
   heapy = {
-    groups = ["default"];
+    dependencies = ["thor"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r9f38fpgjgaxskkwvsliijj6vfmgsff9pnranvvvzkdl67hk1hw";
+      sha256 = "1sl56ma851i82g3ax08igbn48igriiy152xzx30wgzv1bn21w53l";
       type = "gem";
     };
-    version = "0.1.4";
+    version = "0.2.0";
   };
   hipchat = {
     dependencies = ["httparty" "mimemagic"];
@@ -2344,10 +2349,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19hc7njr029pzqljpfhzhdi0p2rgn8ihn3bdnai2apy6nj1g1sg2";
+      sha256 = "00xqmlny1b4ixff8sk0rkl4wcgwqc6v93qv8l3rn8d1dppvq7pm1";
       type = "gem";
     };
-    version = "2.12.2";
+    version = "2.13.2";
   };
   html2text = {
     dependencies = ["nokogiri"];
@@ -2450,10 +2455,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "1kr0bx9323fv5ys6nlhsy05kmwcbs94h6ac7ka9qqywy0vbdvrrv";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.7";
   };
   i18n_data = {
     groups = ["default"];
@@ -2491,10 +2496,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15510dh1vh7l2xs2a4956nhxpnf10168r62i497nmcbyqpp1df88";
+      sha256 = "1lmlx3g4z894vwsgbpxhpmkn63n74mynklbwy07l7ccak552jw1n";
       type = "gem";
     };
-    version = "0.12.1";
+    version = "1.1.0";
   };
   ipaddress = {
     groups = ["default"];
@@ -2523,10 +2528,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bfqb5qkgbcjrspspa2lha2is0anjnby20x9gp7bfjr5j5j9my32";
+      sha256 = "17nv98nz3jp7q5hbnniscavqh4xv53mnda1vxyg3ncn8raaw0rs2";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.1.4";
   };
   jmespath = {
     groups = ["default"];
@@ -2721,6 +2726,16 @@
     };
     version = "2.4.3";
   };
+  lefthook = {
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17bv6zfdzwbbh8n0iw8zgjngsvyp2imrrfshj62yrlxpka9ka0z3";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
   letter_opener = {
     dependencies = ["launchy"];
     groups = ["default" "development"];
@@ -2755,15 +2770,15 @@
     version = "6.0.0";
   };
   licensee = {
-    dependencies = ["rugged"];
+    dependencies = ["dotenv" "octokit" "reverse_markdown" "rugged" "thor"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      sha256 = "0c551j4qy773d79hgypjaz43h5wjn08mnxnxy9s2vdjc40qm95k5";
       type = "gem";
     };
-    version = "8.9.2";
+    version = "9.14.1";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -2813,10 +2828,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1alz1x6rkhbw10qpszr384299rf52rcyasn0619a9p50vzs8vczq";
+      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -2866,10 +2881,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n870r50z859dkcjz6dqvbvm895rpzw047basvbbfv9gi22rlxlv";
+      sha256 = "1003hf828anbd3pxwzs9ir9sclh64mgj971n4a7ilgj9xs8r0a38";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   memoist = {
     groups = ["default"];
@@ -2948,14 +2963,14 @@
     version = "0.3.5";
   };
   mini_histogram = {
-    groups = ["default"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "127vmd85kwi85qjbb1431bi4j5gdy0pp6wrq1f88ja1pf3mlb50y";
+      sha256 = "156xs8k7fqqcbk1fbf0ndz6gfw380fb2jrycfvhb06269r84n4ba";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.3.1";
   };
   mini_magick = {
     groups = ["default"];
@@ -2982,10 +2997,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["development" "test"];
@@ -3091,16 +3106,6 @@
     };
     version = "1.0.1";
   };
-  nakayoshi_fork = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1mj5czi7rxxmfq4v9qjz74lcqypvnjxhxqfs71zhb2rsfa97a6jg";
-      type = "gem";
-    };
-    version = "0.0.4";
-  };
   nap = {
     groups = ["default" "development"];
     platforms = [];
@@ -3121,15 +3126,26 @@
     };
     version = "0.3.0";
   };
+  net-http-persistent = {
+    dependencies = ["connection_pool"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sbdvkn7mzl883iykz74hgp14qj041gldf2vdk9g3gyqc843l2vr";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
   net-ldap = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg";
+      sha256 = "13lh6qizxi8fza8py73b2dvjp9p010dvbaq7diagir9nh8plsinv";
       type = "gem";
     };
-    version = "0.16.2";
+    version = "0.16.3";
   };
   net-ntp = {
     groups = ["default"];
@@ -3182,15 +3198,15 @@
     version = "0.1.2";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.1";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -3251,10 +3267,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yg6dhd028j74sm8hpw9w7bwfwlkml9wiis7nq20ivfsbcz4g8ac";
+      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
       type = "gem";
     };
-    version = "4.15.0";
+    version = "4.20.0";
   };
   oj = {
     groups = ["default"];
@@ -3594,10 +3610,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17b127xxmm2yqdz146qwbs57046kn0js1h8synv01dwqz2z1kp2l";
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
       type = "gem";
     };
-    version = "1.19.2";
+    version = "1.20.1";
   };
   parser = {
     dependencies = ["ast"];
@@ -3605,10 +3621,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
       type = "gem";
     };
-    version = "2.7.2.0";
+    version = "3.0.0.0";
   };
   parslet = {
     groups = ["default" "development" "test"];
@@ -3641,6 +3657,16 @@
     };
     version = "1.2.3";
   };
+  pg_query = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i9l3y502ddm2lq3ajhxhqq17vs9hgxkxm443yw221ccibcfh6qf";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
   png_quantizator = {
     groups = ["development" "test"];
     platforms = [];
@@ -3730,31 +3756,27 @@
     };
     version = "0.13.1";
   };
-  pry-byebug = {
-    dependencies = ["byebug" "pry"];
+  pry-rails = {
+    dependencies = ["pry"];
     groups = ["development" "test"];
-    platforms = [{
-      engine = "maglev";
-    } {
-      engine = "ruby";
-    }];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
+      sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "0.3.9";
   };
-  pry-rails = {
-    dependencies = ["pry"];
+  pry-remote = {
+    dependencies = ["pry" "slop"];
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6";
+      sha256 = "10g1wrkcy5v5qyg9fpw1cag6g5rlcl1i66kn00r7kwqkzrdhd7nm";
       type = "gem";
     };
-    version = "0.3.9";
+    version = "0.1.8";
   };
   public_suffix = {
     groups = ["default" "development" "test"];
@@ -3766,6 +3788,28 @@
     };
     version = "4.0.6";
   };
+  puma = {
+    dependencies = ["nio4r"];
+    groups = ["puma"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13640p5fk19705ygp8j6p07lccag3d80bx8bmjgpd5zsxxsdc50b";
+      type = "gem";
+    };
+    version = "5.1.1";
+  };
+  puma_worker_killer = {
+    dependencies = ["get_process_mem" "puma"];
+    groups = ["puma"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jk1bhmx5px8y1ip4ky80cq5cwdaybdg4y55shd2vsdmjv938mcw";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
   pyu-ruby-sasl = {
     groups = ["default"];
     platforms = [];
@@ -3786,6 +3830,16 @@
     };
     version = "1.1.6";
   };
+  racc = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rack = {
     groups = ["default" "development" "kerberos" "test"];
     platforms = [];
@@ -3889,10 +3943,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qqsiwsb13sxkvxj54aybjhbxqi45fyiykaz5isc1y9frm2yyw64";
+      sha256 = "0vs4kfgp5pr5032nnhdapq60ga6karann06ilq1yjx8qck87cfxg";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   rails-controller-testing = {
     dependencies = ["actionpack" "actionview" "activesupport"];
@@ -3944,10 +3998,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05b79r0ms8jrs91zml1190qfxmnmks90g0sd820ks9msyr8xdp7j";
+      sha256 = "0x28620cvfja8r06lk6f90pw5lvijz9qi4bjsa4z1d1rkr3v4r3w";
       type = "gem";
     };
-    version = "6.0.3.3";
+    version = "6.0.3.4";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -3974,10 +4028,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
   rb-fsevent = {
     groups = ["default" "development" "test"];
@@ -4237,6 +4291,17 @@
     };
     version = "3.1.2";
   };
+  reverse_markdown = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
   rexml = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -4305,10 +4370,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+      sha256 = "1dwai7jnwmdmd7ajbi2q0k0lx1dh88knv5wl7c34wjmf94yv8w5q";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "3.10.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -4316,10 +4381,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzc1wdjb1qnbimjl8i1q1r1z5hdv2lmcw7ysz7jawj4d1cvpqvd";
+      sha256 = "0wwnfhxxvrlxlk1a3yxlb82k2f9lm0yn0598x7lk8fksaz4vv6mc";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.1";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -4327,10 +4392,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fjbwvq7qaz6h3sh1bs9q2qiy4zwcrc8f7xwv82dx2bc09dmqzhd";
+      sha256 = "1sz9bj4ri28adsklnh257pnbq4r5ayziw02qf67wry0kvzazbb17";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.1";
   };
   rspec-mocks = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -4338,10 +4403,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.10.2";
   };
   rspec-parameterized = {
     dependencies = ["binding_ninja" "parser" "proc_to_ast" "rspec" "unparser"];
@@ -4360,10 +4425,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01cyd449g4lsgrlck7nn3ynn8c8vwfhjb913y05wil56y77wsfkl";
+      sha256 = "0aw5knjij21kzwis3vkcmqc16p55lbig1wq0i37093qga7zfsdg1";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.0.2";
   };
   rspec-retry = {
     dependencies = ["rspec-core"];
@@ -4381,10 +4446,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zwpyq1na23pvgacpxs2v9nwfbjbw6x3arca5j3l1xagigqmzhc3";
+      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
       type = "gem";
     };
-    version = "3.9.2";
+    version = "3.10.2";
   };
   rspec_junit_formatter = {
     dependencies = ["rspec-core"];
@@ -4414,10 +4479,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yh71v5d7aw6jz7505d2sv0n0ldf3wh0ly3lphdanjl0n8b42y9h";
+      sha256 = "19nmdwz6mc5ah0xqlj1j58ylcp9zsckb1xm7p1z51abnqhcq5c06";
       type = "gem";
     };
-    version = "0.89.1";
+    version = "0.91.1";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -4447,10 +4512,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13v66wi5l56bvp97nlmyxscq8ipkzfha1g7nlhcrbikvmrm3h5kf";
+      sha256 = "01aahh54r9mwhdj7v2s6kmkdm1k1n1z27dlknlbgm281ny1aswrk";
       type = "gem";
     };
-    version = "1.8.1";
+    version = "1.9.2";
   };
   rubocop-rails = {
     dependencies = ["activesupport" "rack" "rubocop"];
@@ -4458,10 +4523,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14g703lv0cbqw504cdjsv0yydrsnm61rwg0n0mql4zl5hw1n7lfh";
+      sha256 = "0h656la1g644g54g3gidz45p6v8i1156nw6bi66cfx7078y1339d";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.1";
   };
   rubocop-rspec = {
     dependencies = ["rubocop" "rubocop-ast"];
@@ -4511,10 +4576,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.11.0";
   };
   ruby-saml = {
     dependencies = ["nokogiri"];
@@ -4593,10 +4658,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rdidxgpk1b6y1jq9v77lcx5khq0s9q0s253lr8x57d3hk43iskx";
+      sha256 = "056bwiwxvnbkbgsr2wqcsknnc73nqasqdnjcpgj2r61wkm8mzmbn";
       type = "gem";
     };
-    version = "0.28.4.1";
+    version = "1.0.1";
   };
   safe_yaml = {
     groups = ["default" "test"];
@@ -4885,6 +4950,16 @@
     };
     version = "2.3.4";
   };
+  slop = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
   snowplow-tracker = {
     dependencies = ["contracts"];
     groups = ["default"];
@@ -4985,10 +5060,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05c2dw3115zj3pmyyqh2iypc7afj8ibhrghisg0d61z7gzmir1rd";
+      sha256 = "0b4dffzlj38adin6gm0ky72r5c507qdb1jprnm7h9gnlj2qxlcp9";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.8.0";
   };
   state_machines-activerecord = {
     dependencies = ["activerecord" "state_machines-activemodel"];
@@ -4996,10 +5071,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12g7yqy11fpfiprzc86pwa9jjky1h3haxj37kg47467fgg43p511";
+      sha256 = "1dmaf4f4cg3gamzgga3gamp0kv9lvianqzr9103dw0xbp00vfbq7";
       type = "gem";
     };
-    version = "0.6.0";
+    version = "0.8.0";
   };
   swd = {
     dependencies = ["activesupport" "attr_required" "httpclient"];
@@ -5091,20 +5166,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
+      sha256 = "0g5p3r47qxxfmfagdf8wb68pd24938cgzdfn6pmpysrn296pg5m5";
       type = "gem";
     };
-    version = "1.7.2";
+    version = "1.8.0";
   };
   thor = {
     groups = ["default" "development" "omnibus" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "0.20.3";
+    version = "1.1.0";
   };
   thread_safe = {
     groups = ["default" "development" "test"];
@@ -5121,10 +5196,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
+      sha256 = "1v4q8wlc4kr952r24q9x60cvimn27g34h0j23imwqkrjcbngsj5n";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.0";
   };
   tilt = {
     groups = ["default" "development" "test"];
@@ -5226,10 +5301,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0skr6ih9cr3pwp8l84f0z7fy3q9kiq8hw0sg3zqw0hpbbyj05743";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.8";
+    version = "1.2.9";
   };
   u2f = {
     groups = ["default"];
@@ -5282,17 +5357,6 @@
     };
     version = "1.7.0";
   };
-  unicode_plot = {
-    dependencies = ["enumerable-statistics"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "09cv90pi414ns1knbi0zjbn59071qjgym974jpsgj7yjh70dpj0g";
-      type = "gem";
-    };
-    version = "0.0.4";
-  };
   unicode_utils = {
     groups = ["default"];
     platforms = [];
@@ -5475,6 +5539,16 @@
     };
     version = "3.9.1";
   };
+  webrick = {
+    groups = ["metrics"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z6nv626lzfl7wx407l5x5688layh9qd82k97hrm6pwgj6miwk8b";
+      type = "gem";
+    };
+    version = "1.6.1";
+  };
   websocket-driver = {
     dependencies = ["websocket-extensions"];
     groups = ["default" "test"];
@@ -5553,9 +5627,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12n0hiawqayzchi0yga5n19hi63b2snd49fv3n23n2i4pp05jzrp";
+      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
-}
+}
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index ba24888d952..916f5f60279 100644
--- a/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -770,27 +770,43 @@
       };
     }
     {
-      name = "_gitlab_at.js___at.js_1.5.5.tgz";
+      name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
       path = fetchurl {
-        name = "_gitlab_at.js___at.js_1.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/at.js/-/at.js-1.5.5.tgz";
-        sha1 = "5f6bfe6baaef360daa9b038fa78798d7a6a916b4";
+        name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
+        sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
       };
     }
     {
-      name = "_gitlab_eslint_plugin___eslint_plugin_5.0.0.tgz";
+      name = "_gitlab_at.js___at.js_1.5.7.tgz";
       path = fetchurl {
-        name = "_gitlab_eslint_plugin___eslint_plugin_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-5.0.0.tgz";
-        sha1 = "502eb2bccb55d65d6310ce9ef2da76035b6fc319";
+        name = "_gitlab_at.js___at.js_1.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/at.js/-/at.js-1.5.7.tgz";
+        sha1 = "1ee6f838cc4410a1d797770934df91d90df8179e";
       };
     }
     {
-      name = "_gitlab_svgs___svgs_1.177.0.tgz";
+      name = "_gitlab_eslint_plugin___eslint_plugin_8.0.0.tgz";
       path = fetchurl {
-        name = "_gitlab_svgs___svgs_1.177.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.177.0.tgz";
-        sha1 = "e481ed327a11d3834c8b1668d7485b9eefef97f5";
+        name = "_gitlab_eslint_plugin___eslint_plugin_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-8.0.0.tgz";
+        sha1 = "e8d30fd98e2102f417617d0c60ef1810520a8ac6";
+      };
+    }
+    {
+      name = "_gitlab_favicon_overlay___favicon_overlay_2.0.0.tgz";
+      path = fetchurl {
+        name = "_gitlab_favicon_overlay___favicon_overlay_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/favicon-overlay/-/favicon-overlay-2.0.0.tgz";
+        sha1 = "2f32d0b6a4d5b8ac44e2927083d9ab478a78c984";
+      };
+    }
+    {
+      name = "_gitlab_svgs___svgs_1.182.0.tgz";
+      path = fetchurl {
+        name = "_gitlab_svgs___svgs_1.182.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.182.0.tgz";
+        sha1 = "600cb577c598ff63325c3f6f049e3254abdbb580";
       };
     }
     {
@@ -802,11 +818,11 @@
       };
     }
     {
-      name = "_gitlab_ui___ui_24.8.1.tgz";
+      name = "_gitlab_ui___ui_27.4.6.tgz";
       path = fetchurl {
-        name = "_gitlab_ui___ui_24.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-24.8.1.tgz";
-        sha1 = "eb674d19aedf9c91b9a14aa7a66397d54b199fb7";
+        name = "_gitlab_ui___ui_27.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-27.4.6.tgz";
+        sha1 = "2364c2ba981024cdce32b4657c5f0eb2ae781a4d";
       };
     }
     {
@@ -962,6 +978,14 @@
       };
     }
     {
+      name = "_npmcli_move_file___move_file_1.0.1.tgz";
+      path = fetchurl {
+        name = "_npmcli_move_file___move_file_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz";
+        sha1 = "de103070dac0f48ce49cf6693c23af59c0f70464";
+      };
+    }
+    {
       name = "_nuxt_opencollective___opencollective_0.3.0.tgz";
       path = fetchurl {
         name = "_nuxt_opencollective___opencollective_0.3.0.tgz";
@@ -970,19 +994,19 @@
       };
     }
     {
-      name = "_rails_actioncable___actioncable_6.0.3_3.tgz";
+      name = "_rails_actioncable___actioncable_6.1.0.tgz";
       path = fetchurl {
-        name = "_rails_actioncable___actioncable_6.0.3_3.tgz";
-        url  = "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.0.3-3.tgz";
-        sha1 = "fb1a46d3d353512764d5fa3cea2f492391601b7a";
+        name = "_rails_actioncable___actioncable_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.0.tgz";
+        sha1 = "f336f25450b1bc43b99bc60557a70b6e6bb1d3d2";
       };
     }
     {
-      name = "_rails_ujs___ujs_6.0.3_2.tgz";
+      name = "_rails_ujs___ujs_6.1.0.tgz";
       path = fetchurl {
-        name = "_rails_ujs___ujs_6.0.3_2.tgz";
-        url  = "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.3-2.tgz";
-        sha1 = "e14c1f29086858215ce7ccd9ad6d8888c458b4a3";
+        name = "_rails_ujs___ujs_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.0.tgz";
+        sha1 = "9a48df6511cb2b472c9f596c1f37dc0af022e751";
       };
     }
     {
@@ -1178,11 +1202,19 @@
       };
     }
     {
-      name = "_types_json_schema___json_schema_7.0.4.tgz";
+      name = "_types_json_schema___json_schema_7.0.7.tgz";
+      path = fetchurl {
+        name = "_types_json_schema___json_schema_7.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz";
+        sha1 = "98a993516c859eb0d5c4c8f098317a9ea68db9ad";
+      };
+    }
+    {
+      name = "_types_json5___json5_0.0.29.tgz";
       path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz";
-        sha1 = "38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339";
+        name = "_types_json5___json5_0.0.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
       };
     }
     {
@@ -1314,155 +1346,155 @@
       };
     }
     {
-      name = "_vue_test_utils___test_utils_1.0.0_beta.30.tgz";
+      name = "_vue_test_utils___test_utils_1.1.2.tgz";
       path = fetchurl {
-        name = "_vue_test_utils___test_utils_1.0.0_beta.30.tgz";
-        url  = "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.30.tgz";
-        sha1 = "d5f26d1e2411fdb7fa7fdedb61b4b4ea4194c49d";
+        name = "_vue_test_utils___test_utils_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.1.2.tgz";
+        sha1 = "fdb487448dceefeaf3d01d465f7c836a3d666dbc";
       };
     }
     {
-      name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+      name = "_webassemblyjs_ast___ast_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_ast___ast_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz";
-        sha1 = "51b1c5fe6576a34953bf4b253df9f0d490d9e359";
+        name = "_webassemblyjs_ast___ast_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz";
+        sha1 = "bd850604b4042459a5a41cd7d338cbed695ed964";
       };
     }
     {
-      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
-        sha1 = "1ba926a2923613edce496fd5b02e8ce8a5f49721";
+        name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz";
+        sha1 = "3c3d3b271bddfc84deb00f71344438311d52ffb4";
       };
     }
     {
-      name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+      name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
-        sha1 = "c49dad22f645227c5edb610bdb9697f1aab721f7";
+        name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz";
+        sha1 = "203f676e333b96c9da2eeab3ccef33c45928b6a2";
       };
     }
     {
-      name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+      name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
-        sha1 = "fea93e429863dd5e4338555f42292385a653f204";
+        name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz";
+        sha1 = "a1442d269c5feb23fcbc9ef759dac3547f29de00";
       };
     }
     {
-      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
-        sha1 = "9a740ff48e3faa3022b1dff54423df9aa293c25e";
+        name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz";
+        sha1 = "647f8892cd2043a82ac0c8c5e75c36f1d9159f27";
       };
     }
     {
-      name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+      name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
-        sha1 = "ba0b7d3b3f7e4733da6059c9332275d860702452";
+        name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz";
+        sha1 = "c05256b71244214671f4b08ec108ad63b70eddb8";
       };
     }
     {
-      name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+      name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
-        sha1 = "def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245";
+        name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz";
+        sha1 = "25d8884b76839871a08a6c6f806c3979ef712f07";
       };
     }
     {
-      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
-        sha1 = "537a750eddf5c1e932f3744206551c91c1b93e61";
+        name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz";
+        sha1 = "4fed8beac9b8c14f8c58b70d124d549dd1fe5790";
       };
     }
     {
-      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
-        sha1 = "74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf";
+        name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz";
+        sha1 = "5a4138d5a6292ba18b04c5ae49717e4167965346";
       };
     }
     {
-      name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+      name = "_webassemblyjs_ieee754___ieee754_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
-        sha1 = "712329dbef240f36bf57bd2f7b8fb9bf4154421e";
+        name = "_webassemblyjs_ieee754___ieee754_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz";
+        sha1 = "15c7a0fbaae83fb26143bbacf6d6df1702ad39e4";
       };
     }
     {
-      name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+      name = "_webassemblyjs_leb128___leb128_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
-        sha1 = "044edeb34ea679f3e04cd4fd9824d5e35767ae10";
+        name = "_webassemblyjs_leb128___leb128_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz";
+        sha1 = "f19ca0b76a6dc55623a09cffa769e838fa1e1c95";
       };
     }
     {
-      name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+      name = "_webassemblyjs_utf8___utf8_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
-        sha1 = "a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc";
+        name = "_webassemblyjs_utf8___utf8_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz";
+        sha1 = "04d33b636f78e6a6813227e82402f7637b6229ab";
       };
     }
     {
-      name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
-        sha1 = "962da12aa5acc1c131c81c4232991c82ce56e01a";
+        name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz";
+        sha1 = "3fe6d79d3f0f922183aa86002c42dd256cfee9cf";
       };
     }
     {
-      name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
-        sha1 = "54840766c2c1002eb64ed1abe720aded714f98bc";
+        name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz";
+        sha1 = "50bc70ec68ded8e2763b01a1418bf43491a7a49c";
       };
     }
     {
-      name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
-        sha1 = "b24d9f6ba50394af1349f510afa8ffcb8a63d264";
+        name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz";
+        sha1 = "2211181e5b31326443cc8112eb9f0b9028721a61";
       };
     }
     {
-      name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
-        sha1 = "21576f0ec88b91427357b8536383668ef7c66b8d";
+        name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz";
+        sha1 = "9d48e44826df4a6598294aa6c87469d642fff65e";
       };
     }
     {
-      name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+      name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
-        sha1 = "e10eecd542d0e7bd394f6827c49f3df6d4eefb8c";
+        name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz";
+        sha1 = "3031115d79ac5bd261556cecc3fa90a3ef451914";
       };
     }
     {
-      name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+      name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz";
       path = fetchurl {
-        name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
-        sha1 = "114bbc481fd10ca0e23b3560fa812748b0bae5bc";
+        name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz";
+        sha1 = "4935d54c85fef637b00ce9f52377451d00d47899";
       };
     }
     {
@@ -1538,19 +1570,11 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
       path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz";
-        sha1 = "294adb71b57398b0680015f0a38c563ee1db5384";
-      };
-    }
-    {
-      name = "acorn_walk___acorn_walk_6.2.0.tgz";
-      path = fetchurl {
-        name = "acorn_walk___acorn_walk_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz";
-        sha1 = "123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c";
+        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
       };
     }
     {
@@ -1562,11 +1586,11 @@
       };
     }
     {
-      name = "acorn___acorn_6.3.0.tgz";
+      name = "acorn___acorn_6.4.2.tgz";
       path = fetchurl {
-        name = "acorn___acorn_6.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz";
-        sha1 = "0087509119ffa4fc0a0041d1e93a417e68cb856e";
+        name = "acorn___acorn_6.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz";
+        sha1 = "35866fd710528e92de10cf06016498e47e39e1e6";
       };
     }
     {
@@ -1610,19 +1634,27 @@
       };
     }
     {
-      name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+      name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+      path = fetchurl {
+        name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d";
+      };
+    }
+    {
+      name = "ajv___ajv_6.12.6.tgz";
       path = fetchurl {
-        name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
+        name = "ajv___ajv_6.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
+        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
       };
     }
     {
-      name = "ajv___ajv_6.12.5.tgz";
+      name = "ajv___ajv_7.0.4.tgz";
       path = fetchurl {
-        name = "ajv___ajv_6.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz";
-        sha1 = "19b0e8bae8f476e5ba666300387775fb1a00a4da";
+        name = "ajv___ajv_7.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-7.0.4.tgz";
+        sha1 = "827e5f5ae32f5e5c1637db61f253a112229b5e2f";
       };
     }
     {
@@ -1650,6 +1682,14 @@
       };
     }
     {
+      name = "ansi_colors___ansi_colors_4.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_colors___ansi_colors_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+      };
+    }
+    {
       name = "ansi_escapes___ansi_escapes_4.3.0.tgz";
       path = fetchurl {
         name = "ansi_escapes___ansi_escapes_4.3.0.tgz";
@@ -1906,11 +1946,11 @@
       };
     }
     {
-      name = "array_includes___array_includes_3.0.3.tgz";
+      name = "array_includes___array_includes_3.1.2.tgz";
       path = fetchurl {
-        name = "array_includes___array_includes_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz";
-        sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d";
+        name = "array_includes___array_includes_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz";
+        sha1 = "a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8";
       };
     }
     {
@@ -1938,11 +1978,11 @@
       };
     }
     {
-      name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+      name = "array.prototype.flat___array.prototype.flat_1.2.4.tgz";
       path = fetchurl {
-        name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz";
-        sha1 = "0de82b426b0318dbfdb940089e38b043d37f6c7b";
+        name = "array.prototype.flat___array.prototype.flat_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz";
+        sha1 = "6ef638b43312bd401b4c6199fdec7e2dc9e9a123";
       };
     }
     {
@@ -2010,6 +2050,14 @@
       };
     }
     {
+      name = "astral_regex___astral_regex_2.0.0.tgz";
+      path = fetchurl {
+        name = "astral_regex___astral_regex_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
+        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
+      };
+    }
+    {
       name = "async_foreach___async_foreach_0.1.3.tgz";
       path = fetchurl {
         name = "async_foreach___async_foreach_0.1.3.tgz";
@@ -2122,11 +2170,11 @@
       };
     }
     {
-      name = "babel_loader___babel_loader_8.0.6.tgz";
+      name = "babel_loader___babel_loader_8.2.2.tgz";
       path = fetchurl {
-        name = "babel_loader___babel_loader_8.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz";
-        sha1 = "e33bdb6f362b03f4bb141a0c21ab87c501b70dfb";
+        name = "babel_loader___babel_loader_8.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz";
+        sha1 = "9363ce84c10c9a40e6c753748e1441b60c8a0b81";
       };
     }
     {
@@ -2322,11 +2370,11 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.8.tgz";
+      name = "bn.js___bn.js_4.11.9.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.8.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
-        sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+        name = "bn.js___bn.js_4.11.9.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
+        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
       };
     }
     {
@@ -2458,11 +2506,11 @@
       };
     }
     {
-      name = "browserslist___browserslist_4.12.0.tgz";
+      name = "browserslist___browserslist_4.16.1.tgz";
       path = fetchurl {
-        name = "browserslist___browserslist_4.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz";
-        sha1 = "06c6d5715a1ede6c51fc39ff67fd647f740b656d";
+        name = "browserslist___browserslist_4.16.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz";
+        sha1 = "bf757a2da376b3447b800a16f0f1c96358138766";
       };
     }
     {
@@ -2554,11 +2602,11 @@
       };
     }
     {
-      name = "cacache___cacache_13.0.1.tgz";
+      name = "cacache___cacache_15.0.5.tgz";
       path = fetchurl {
-        name = "cacache___cacache_13.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz";
-        sha1 = "a8000c21697089082f85287a1aec6e382024a71c";
+        name = "cacache___cacache_15.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz";
+        sha1 = "69162833da29170d6732334643c60e005f5f17d0";
       };
     }
     {
@@ -2586,6 +2634,14 @@
       };
     }
     {
+      name = "call_bind___call_bind_1.0.2.tgz";
+      path = fetchurl {
+        name = "call_bind___call_bind_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz";
+        sha1 = "b1d4e89e688119c3c9a903ad30abb2f6a919be3c";
+      };
+    }
+    {
       name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
       path = fetchurl {
         name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
@@ -2690,11 +2746,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001081.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001178.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001081.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz";
-        sha1 = "40615a3c416a047c5a4d45673e5257bf128eb3b5";
+        name = "caniuse_lite___caniuse_lite_1.0.30001178.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001178.tgz";
+        sha1 = "3ad813b2b2c7d585b0be0a2440e1e233c6eabdbc";
       };
     }
     {
@@ -2730,14 +2786,6 @@
       };
     }
     {
-      name = "chalk___chalk_2.4.2.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_2.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
-        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
-      };
-    }
-    {
       name = "chalk___chalk_1.1.3.tgz";
       path = fetchurl {
         name = "chalk___chalk_1.1.3.tgz";
@@ -2746,6 +2794,14 @@
       };
     }
     {
+      name = "chalk___chalk_2.4.2.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+      };
+    }
+    {
       name = "chalk___chalk_3.0.0.tgz";
       path = fetchurl {
         name = "chalk___chalk_3.0.0.tgz";
@@ -2802,14 +2858,6 @@
       };
     }
     {
-      name = "chardet___chardet_0.7.0.tgz";
-      path = fetchurl {
-        name = "chardet___chardet_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
-        sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
-      };
-    }
-    {
       name = "charenc___charenc_0.0.2.tgz";
       path = fetchurl {
         name = "charenc___charenc_0.0.2.tgz";
@@ -2842,6 +2890,14 @@
       };
     }
     {
+      name = "chownr___chownr_2.0.0.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz";
+        sha1 = "15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece";
+      };
+    }
+    {
       name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
       path = fetchurl {
         name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
@@ -2898,22 +2954,6 @@
       };
     }
     {
-      name = "cli_cursor___cli_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
-        sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
-      };
-    }
-    {
-      name = "cli_width___cli_width_2.2.0.tgz";
-      path = fetchurl {
-        name = "cli_width___cli_width_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
-        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
-      };
-    }
-    {
       name = "clipboard___clipboard_1.7.1.tgz";
       path = fetchurl {
         name = "clipboard___clipboard_1.7.1.tgz";
@@ -2930,14 +2970,6 @@
       };
     }
     {
-      name = "cliui___cliui_4.1.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
-        sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
-      };
-    }
-    {
       name = "cliui___cliui_5.0.0.tgz";
       path = fetchurl {
         name = "cliui___cliui_5.0.0.tgz";
@@ -3090,6 +3122,14 @@
       };
     }
     {
+      name = "colorette___colorette_1.2.1.tgz";
+      path = fetchurl {
+        name = "colorette___colorette_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz";
+        sha1 = "4d0b921325c14faf92633086a536db6e89564b1b";
+      };
+    }
+    {
       name = "colors___colors_1.3.3.tgz";
       path = fetchurl {
         name = "colors___colors_1.3.3.tgz";
@@ -3170,11 +3210,11 @@
       };
     }
     {
-      name = "compression_webpack_plugin___compression_webpack_plugin_3.0.1.tgz";
+      name = "compression_webpack_plugin___compression_webpack_plugin_5.0.2.tgz";
       path = fetchurl {
-        name = "compression_webpack_plugin___compression_webpack_plugin_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.1.tgz";
-        sha1 = "be7a343e6dfbccbd64a77c5fbe29627d140fc321";
+        name = "compression_webpack_plugin___compression_webpack_plugin_5.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-5.0.2.tgz";
+        sha1 = "df84e682cfa1fb2a230e71cf83d50c323d5369c2";
       };
     }
     {
@@ -3226,11 +3266,11 @@
       };
     }
     {
-      name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
+      name = "confusing_browser_globals___confusing_browser_globals_1.0.10.tgz";
       path = fetchurl {
-        name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz";
-        sha1 = "72bc13b483c0276801681871d4898516f8f54fdd";
+        name = "confusing_browser_globals___confusing_browser_globals_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz";
+        sha1 = "30d1e7f3d1b882b25ec4933d1d1adac353d20a59";
       };
     }
     {
@@ -3370,11 +3410,11 @@
       };
     }
     {
-      name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz";
+      name = "copy_webpack_plugin___copy_webpack_plugin_5.1.2.tgz";
       path = fetchurl {
-        name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz";
-        sha1 = "5481a03dea1123d88a988c6ff8b78247214f0b88";
+        name = "copy_webpack_plugin___copy_webpack_plugin_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz";
+        sha1 = "8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2";
       };
     }
     {
@@ -3394,11 +3434,11 @@
       };
     }
     {
-      name = "core_js___core_js_3.6.4.tgz";
+      name = "core_js___core_js_3.8.3.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz";
-        sha1 = "440a83536b458114b9cb2ac1580ba377dc470647";
+        name = "core_js___core_js_3.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz";
+        sha1 = "c21906e1f14f3689f93abcc6e26883550dd92dd0";
       };
     }
     {
@@ -3466,14 +3506,6 @@
       };
     }
     {
-      name = "cross_spawn___cross_spawn_6.0.5.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_6.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
-      };
-    }
-    {
       name = "cross_spawn___cross_spawn_3.0.1.tgz";
       path = fetchurl {
         name = "cross_spawn___cross_spawn_3.0.1.tgz";
@@ -3482,6 +3514,14 @@
       };
     }
     {
+      name = "cross_spawn___cross_spawn_6.0.5.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+      };
+    }
+    {
       name = "cross_spawn___cross_spawn_7.0.3.tgz";
       path = fetchurl {
         name = "cross_spawn___cross_spawn_7.0.3.tgz";
@@ -3514,14 +3554,6 @@
       };
     }
     {
-      name = "crypto_random_string___crypto_random_string_3.0.1.tgz";
-      path = fetchurl {
-        name = "crypto_random_string___crypto_random_string_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-3.0.1.tgz";
-        sha1 = "29d7dc759d577a768afb3b7b2765dd9bd7ffe36a";
-      };
-    }
-    {
       name = "css_b64_images___css_b64_images_0.2.5.tgz";
       path = fetchurl {
         name = "css_b64_images___css_b64_images_0.2.5.tgz";
@@ -4402,11 +4434,11 @@
       };
     }
     {
-      name = "dompurify___dompurify_2.2.4.tgz";
+      name = "dompurify___dompurify_2.2.6.tgz";
       path = fetchurl {
-        name = "dompurify___dompurify_2.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.4.tgz";
-        sha1 = "a98cd182b729bdd8715c3eb7a8bf8eafb2ff7410";
+        name = "dompurify___dompurify_2.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.6.tgz";
+        sha1 = "54945dc5c0b45ce5ae228705777e8e59d7b2edc4";
       };
     }
     {
@@ -4418,11 +4450,11 @@
       };
     }
     {
-      name = "dot_prop___dot_prop_4.2.0.tgz";
+      name = "dot_prop___dot_prop_4.2.1.tgz";
       path = fetchurl {
-        name = "dot_prop___dot_prop_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
-        sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+        name = "dot_prop___dot_prop_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz";
+        sha1 = "45884194a71fc2cda71cbb4bceb3a4dd2f433ba4";
       };
     }
     {
@@ -4474,11 +4506,11 @@
       };
     }
     {
-      name = "echarts___echarts_4.6.0.tgz";
+      name = "echarts___echarts_4.9.0.tgz";
       path = fetchurl {
-        name = "echarts___echarts_4.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/echarts/-/echarts-4.6.0.tgz";
-        sha1 = "b5a47a1046cec93ceeef954f9ee54751340558ec";
+        name = "echarts___echarts_4.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/echarts/-/echarts-4.9.0.tgz";
+        sha1 = "a9b9baa03f03a2a731e6340c55befb57a9e1347d";
       };
     }
     {
@@ -4514,19 +4546,19 @@
       };
     }
     {
-      name = "electron_to_chromium___electron_to_chromium_1.3.466.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.642.tgz";
       path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.466.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.466.tgz";
-        sha1 = "89f716db3afc4bb482ea2aaaa16c4808f89f762a";
+        name = "electron_to_chromium___electron_to_chromium_1.3.642.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz";
+        sha1 = "8b884f50296c2ae2a9997f024d0e3e57facc2b94";
       };
     }
     {
-      name = "elliptic___elliptic_6.4.0.tgz";
+      name = "elliptic___elliptic_6.5.4.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz";
-        sha1 = "cac9af8762c85836187003c8dfe193e5e2eae5df";
+        name = "elliptic___elliptic_6.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
+        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
       };
     }
     {
@@ -4562,14 +4594,6 @@
       };
     }
     {
-      name = "emojis_list___emojis_list_2.1.0.tgz";
-      path = fetchurl {
-        name = "emojis_list___emojis_list_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz";
-        sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
-      };
-    }
-    {
       name = "emojis_list___emojis_list_3.0.0.tgz";
       path = fetchurl {
         name = "emojis_list___emojis_list_3.0.0.tgz";
@@ -4618,14 +4642,6 @@
       };
     }
     {
-      name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
-      path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
-        sha1 = "41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f";
-      };
-    }
-    {
       name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
       path = fetchurl {
         name = "enhanced_resolve___enhanced_resolve_0.9.1.tgz";
@@ -4634,6 +4650,22 @@
       };
     }
     {
+      name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
+      path = fetchurl {
+        name = "enhanced_resolve___enhanced_resolve_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz";
+        sha1 = "2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec";
+      };
+    }
+    {
+      name = "enquirer___enquirer_2.3.6.tgz";
+      path = fetchurl {
+        name = "enquirer___enquirer_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
+        sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+      };
+    }
+    {
       name = "ent___ent_2.2.0.tgz";
       path = fetchurl {
         name = "ent___ent_2.2.0.tgz";
@@ -4682,11 +4714,11 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.17.4.tgz";
+      name = "es_abstract___es_abstract_1.18.0_next.2.tgz";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.4.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz";
-        sha1 = "e3aedf19706b20e7c2594c35fc0d57605a79e184";
+        name = "es_abstract___es_abstract_1.18.0_next.2.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz";
+        sha1 = "088101a55f0541f595e7e057199e27ddc8f3a5c2";
       };
     }
     {
@@ -4722,6 +4754,14 @@
       };
     }
     {
+      name = "escalade___escalade_3.1.1.tgz";
+      path = fetchurl {
+        name = "escalade___escalade_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
+        sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
+      };
+    }
+    {
       name = "escape_goat___escape_goat_2.1.1.tgz";
       path = fetchurl {
         name = "escape_goat___escape_goat_2.1.1.tgz";
@@ -4754,14 +4794,6 @@
       };
     }
     {
-      name = "escaper___escaper_2.5.3.tgz";
-      path = fetchurl {
-        name = "escaper___escaper_2.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz";
-        sha1 = "8b8fe90ba364054151ab7eff18b4ce43b1e13ab5";
-      };
-    }
-    {
       name = "escodegen___escodegen_1.14.3.tgz";
       path = fetchurl {
         name = "escodegen___escodegen_1.14.3.tgz";
@@ -4770,11 +4802,11 @@
       };
     }
     {
-      name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.0.0.tgz";
+      name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.2.1.tgz";
       path = fetchurl {
-        name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz";
-        sha1 = "8a7bcb9643d13c55df4dd7444f138bf4efa61e17";
+        name = "eslint_config_airbnb_base___eslint_config_airbnb_base_14.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz";
+        sha1 = "8a2eb38455dc5a312550193b319cdaeef042cd1e";
       };
     }
     {
@@ -4786,35 +4818,35 @@
       };
     }
     {
-      name = "eslint_import_resolver_jest___eslint_import_resolver_jest_2.1.2.tgz";
+      name = "eslint_import_resolver_jest___eslint_import_resolver_jest_3.0.0.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_jest___eslint_import_resolver_jest_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-jest/-/eslint-import-resolver-jest-2.1.2.tgz";
-        sha1 = "8720fbe8b8498e95cb2bc6ef52b46b713aedaa59";
+        name = "eslint_import_resolver_jest___eslint_import_resolver_jest_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-jest/-/eslint-import-resolver-jest-3.0.0.tgz";
+        sha1 = "fd61da30fe58f4c1074af1f069b4267c70a91fd6";
       };
     }
     {
-      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz";
-        sha1 = "58f15fb839b8d0576ca980413476aab2472db66a";
+        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
+        sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
       };
     }
     {
-      name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.12.1.tgz";
+      name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.0.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.12.1.tgz";
-        sha1 = "771ae561e887ca4e53ee87605fbb36c5e290b0f5";
+        name = "eslint_import_resolver_webpack___eslint_import_resolver_webpack_0.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.0.tgz";
+        sha1 = "5cb19cf4b6996c8a2514aeb10f909e2c70488dc3";
       };
     }
     {
-      name = "eslint_module_utils___eslint_module_utils_2.5.2.tgz";
+      name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
       path = fetchurl {
-        name = "eslint_module_utils___eslint_module_utils_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz";
-        sha1 = "7878f7504824e1b857dd2505b59a8e5eda26a708";
+        name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
+        sha1 = "579ebd094f56af7797d19c9866c9c9486629bfa6";
       };
     }
     {
@@ -4834,19 +4866,19 @@
       };
     }
     {
-      name = "eslint_plugin_import___eslint_plugin_import_2.20.1.tgz";
+      name = "eslint_plugin_import___eslint_plugin_import_2.22.1.tgz";
       path = fetchurl {
-        name = "eslint_plugin_import___eslint_plugin_import_2.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz";
-        sha1 = "802423196dcb11d9ce8435a5fc02a6d3b46939b3";
+        name = "eslint_plugin_import___eslint_plugin_import_2.22.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz";
+        sha1 = "0896c7e6a0cf44109a2d97b95903c2bb689d7702";
       };
     }
     {
-      name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.0.tgz";
+      name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.2.tgz";
       path = fetchurl {
-        name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.0.tgz";
-        sha1 = "4f6d41b1a8622348c97559cbcd29badffa74dbfa";
+        name = "eslint_plugin_jasmine___eslint_plugin_jasmine_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.2.tgz";
+        sha1 = "50cc20d603b02b37727f8d174d4b83b9b8ef25a5";
       };
     }
     {
@@ -4858,11 +4890,11 @@
       };
     }
     {
-      name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.3.1.tgz";
+      name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.5.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.3.1.tgz";
-        sha1 = "1c364cb863a38cc1570c8020155b6004cca62178";
+        name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.5.0.tgz";
+        sha1 = "6c12e3aae172bfd3363b7ac8c3f3e944704867f4";
       };
     }
     {
@@ -4874,11 +4906,11 @@
       };
     }
     {
-      name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz";
+      name = "eslint_plugin_vue___eslint_plugin_vue_7.5.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_vue___eslint_plugin_vue_6.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz";
-        sha1 = "27fecd9a3a24789b0f111ecdd540a9e56198e0fe";
+        name = "eslint_plugin_vue___eslint_plugin_vue_7.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.5.0.tgz";
+        sha1 = "cc6d983eb22781fa2440a7573cf39af439bb5725";
       };
     }
     {
@@ -4898,51 +4930,59 @@
       };
     }
     {
-      name = "eslint_scope___eslint_scope_5.0.0.tgz";
+      name = "eslint_scope___eslint_scope_5.1.1.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
+      };
+    }
+    {
+      name = "eslint_utils___eslint_utils_2.1.0.tgz";
       path = fetchurl {
-        name = "eslint_scope___eslint_scope_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz";
-        sha1 = "e87c8887c73e8d1ec84f1ca591645c358bfc8fb9";
+        name = "eslint_utils___eslint_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
       };
     }
     {
-      name = "eslint_utils___eslint_utils_1.4.3.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
       path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
-        sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
+        name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
       };
     }
     {
-      name = "eslint_utils___eslint_utils_2.0.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
       path = fetchurl {
-        name = "eslint_utils___eslint_utils_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz";
-        sha1 = "7be1cc70f27a72a76cd14aa698bcabed6890e1cd";
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
+        sha1 = "21fdc8fbcd9c795cc0321f0563702095751511a8";
       };
     }
     {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+      name = "eslint___eslint_7.19.0.tgz";
       path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
-        sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2";
+        name = "eslint___eslint_7.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.19.0.tgz";
+        sha1 = "6719621b196b5fad72e43387981314e5d0dc3f41";
       };
     }
     {
-      name = "eslint___eslint_6.8.0.tgz";
+      name = "espree___espree_6.2.1.tgz";
       path = fetchurl {
-        name = "eslint___eslint_6.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
-        sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
+        name = "espree___espree_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
+        sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
       };
     }
     {
-      name = "espree___espree_6.1.2.tgz";
+      name = "espree___espree_7.3.1.tgz";
       path = fetchurl {
-        name = "espree___espree_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz";
-        sha1 = "6c272650932b4f91c3714e5e7b5f5e2ecf47262d";
+        name = "espree___espree_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
+        sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
       };
     }
     {
@@ -4954,19 +4994,19 @@
       };
     }
     {
-      name = "esquery___esquery_1.0.1.tgz";
+      name = "esquery___esquery_1.3.1.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
-        sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
+        name = "esquery___esquery_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
+        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
       };
     }
     {
-      name = "esrecurse___esrecurse_4.2.1.tgz";
+      name = "esrecurse___esrecurse_4.3.0.tgz";
       path = fetchurl {
-        name = "esrecurse___esrecurse_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+        name = "esrecurse___esrecurse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
       };
     }
     {
@@ -4978,6 +5018,14 @@
       };
     }
     {
+      name = "estraverse___estraverse_5.2.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
+        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
+      };
+    }
+    {
       name = "esutils___esutils_2.0.3.tgz";
       path = fetchurl {
         name = "esutils___esutils_2.0.3.tgz";
@@ -5146,14 +5194,6 @@
       };
     }
     {
-      name = "external_editor___external_editor_3.1.0.tgz";
-      path = fetchurl {
-        name = "external_editor___external_editor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
-        sha1 = "cb03f740befae03ea4d283caed2741a83f335495";
-      };
-    }
-    {
       name = "extglob___extglob_2.0.4.tgz";
       path = fetchurl {
         name = "extglob___extglob_2.0.4.tgz";
@@ -5226,27 +5266,27 @@
       };
     }
     {
-      name = "fault___fault_1.0.2.tgz";
+      name = "fast_mersenne_twister___fast_mersenne_twister_1.0.2.tgz";
       path = fetchurl {
-        name = "fault___fault_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz";
-        sha1 = "c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa";
+        name = "fast_mersenne_twister___fast_mersenne_twister_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/fast-mersenne-twister/-/fast-mersenne-twister-1.0.2.tgz";
+        sha1 = "5ead7caf3ace592a5789d11767732bd81cbaaa56";
       };
     }
     {
-      name = "faye_websocket___faye_websocket_0.10.0.tgz";
+      name = "fault___fault_1.0.2.tgz";
       path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
-        sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
+        name = "fault___fault_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz";
+        sha1 = "c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa";
       };
     }
     {
-      name = "faye_websocket___faye_websocket_0.11.1.tgz";
+      name = "faye_websocket___faye_websocket_0.11.3.tgz";
       path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz";
-        sha1 = "f0efe18c4f56e4f40afc7e06c719fd5ee6188f38";
+        name = "faye_websocket___faye_websocket_0.11.3.tgz";
+        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz";
+        sha1 = "5c0e9a8968e8912c286639fde977a8b209f2508e";
       };
     }
     {
@@ -5266,14 +5306,6 @@
       };
     }
     {
-      name = "figures___figures_3.2.0.tgz";
-      path = fetchurl {
-        name = "figures___figures_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
-        sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
-      };
-    }
-    {
       name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
       path = fetchurl {
         name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
@@ -5282,6 +5314,14 @@
       };
     }
     {
+      name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz";
+        sha1 = "7921a89c391c6d93efec2169ac6bf300c527ea0a";
+      };
+    }
+    {
       name = "file_loader___file_loader_5.1.0.tgz";
       path = fetchurl {
         name = "file_loader___file_loader_5.1.0.tgz";
@@ -5346,11 +5386,11 @@
       };
     }
     {
-      name = "find_cache_dir___find_cache_dir_3.0.0.tgz";
+      name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
       path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz";
-        sha1 = "cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc";
+        name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+        sha1 = "89b33fad4a4670daa94f855f7fbe31d6d84fe880";
       };
     }
     {
@@ -5410,6 +5450,14 @@
       };
     }
     {
+      name = "flat_cache___flat_cache_3.0.4.tgz";
+      path = fetchurl {
+        name = "flat_cache___flat_cache_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
+      };
+    }
+    {
       name = "flatted___flatted_2.0.0.tgz";
       path = fetchurl {
         name = "flatted___flatted_2.0.0.tgz";
@@ -5418,6 +5466,14 @@
       };
     }
     {
+      name = "flatted___flatted_3.1.1.tgz";
+      path = fetchurl {
+        name = "flatted___flatted_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
+        sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
+      };
+    }
+    {
       name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
       path = fetchurl {
         name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
@@ -5434,14 +5490,6 @@
       };
     }
     {
-      name = "font_awesome___font_awesome_4.7.0.tgz";
-      path = fetchurl {
-        name = "font_awesome___font_awesome_4.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz";
-        sha1 = "8fa8cf0411a1a31afd07b06d2902bb9fc815a133";
-      };
-    }
-    {
       name = "for_in___for_in_1.0.2.tgz";
       path = fetchurl {
         name = "for_in___for_in_1.0.2.tgz";
@@ -5602,14 +5650,6 @@
       };
     }
     {
-      name = "get_caller_file___get_caller_file_1.0.3.tgz";
-      path = fetchurl {
-        name = "get_caller_file___get_caller_file_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
-        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
-      };
-    }
-    {
       name = "get_caller_file___get_caller_file_2.0.5.tgz";
       path = fetchurl {
         name = "get_caller_file___get_caller_file_2.0.5.tgz";
@@ -5618,6 +5658,14 @@
       };
     }
     {
+      name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+      path = fetchurl {
+        name = "get_intrinsic___get_intrinsic_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha1 = "15f59f376f855c446963948f0d24cd3637b4abc6";
+      };
+    }
+    {
       name = "get_package_type___get_package_type_0.1.0.tgz";
       path = fetchurl {
         name = "get_package_type___get_package_type_0.1.0.tgz";
@@ -5690,19 +5738,19 @@
       };
     }
     {
-      name = "gettext_extractor_vue___gettext_extractor_vue_4.0.2.tgz";
+      name = "gettext_extractor_vue___gettext_extractor_vue_5.0.0.tgz";
       path = fetchurl {
-        name = "gettext_extractor_vue___gettext_extractor_vue_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/gettext-extractor-vue/-/gettext-extractor-vue-4.0.2.tgz";
-        sha1 = "16e1cdbdaf37e5bdf3cb0aff63685bdc5e74e906";
+        name = "gettext_extractor_vue___gettext_extractor_vue_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/gettext-extractor-vue/-/gettext-extractor-vue-5.0.0.tgz";
+        sha1 = "dc463868d49e14097c4545c8ed4851d8d3edd6dd";
       };
     }
     {
-      name = "gettext_extractor___gettext_extractor_3.4.3.tgz";
+      name = "gettext_extractor___gettext_extractor_3.5.3.tgz";
       path = fetchurl {
-        name = "gettext_extractor___gettext_extractor_3.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/gettext-extractor/-/gettext-extractor-3.4.3.tgz";
-        sha1 = "882679cefc71888eb6e69297e6b2dc14c0384fef";
+        name = "gettext_extractor___gettext_extractor_3.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/gettext-extractor/-/gettext-extractor-3.5.3.tgz";
+        sha1 = "6ed46931c154a7485a80fa8b91b835ff7b8d0411";
       };
     }
     {
@@ -5754,14 +5802,6 @@
       };
     }
     {
-      name = "global_modules___global_modules_2.0.0.tgz";
-      path = fetchurl {
-        name = "global_modules___global_modules_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
-        sha1 = "997605ad2345f27f51539bea26574421215c7780";
-      };
-    }
-    {
       name = "global_modules___global_modules_1.0.0.tgz";
       path = fetchurl {
         name = "global_modules___global_modules_1.0.0.tgz";
@@ -5770,6 +5810,14 @@
       };
     }
     {
+      name = "global_modules___global_modules_2.0.0.tgz";
+      path = fetchurl {
+        name = "global_modules___global_modules_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
+        sha1 = "997605ad2345f27f51539bea26574421215c7780";
+      };
+    }
+    {
       name = "global_prefix___global_prefix_1.0.2.tgz";
       path = fetchurl {
         name = "global_prefix___global_prefix_1.0.2.tgz";
@@ -6162,11 +6210,11 @@
       };
     }
     {
-      name = "html_entities___html_entities_1.2.1.tgz";
+      name = "html_entities___html_entities_1.4.0.tgz";
       path = fetchurl {
-        name = "html_entities___html_entities_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz";
-        sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+        name = "html_entities___html_entities_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz";
+        sha1 = "cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc";
       };
     }
     {
@@ -6234,6 +6282,14 @@
       };
     }
     {
+      name = "http_parser_js___http_parser_js_0.5.3.tgz";
+      path = fetchurl {
+        name = "http_parser_js___http_parser_js_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz";
+        sha1 = "01d2709c79d41698bb01d4decc5e9da4e4a033d9";
+      };
+    }
+    {
       name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
       path = fetchurl {
         name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
@@ -6250,11 +6306,11 @@
       };
     }
     {
-      name = "http_proxy___http_proxy_1.18.0.tgz";
+      name = "http_proxy___http_proxy_1.18.1.tgz";
       path = fetchurl {
-        name = "http_proxy___http_proxy_1.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha1 = "dbe55f63e75a347db7f3d99974f2692a314a6a3a";
+        name = "http_proxy___http_proxy_1.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz";
+        sha1 = "401541f0534884bbf95260334e72f88ee3976549";
       };
     }
     {
@@ -6386,11 +6442,11 @@
       };
     }
     {
-      name = "import_fresh___import_fresh_3.2.1.tgz";
+      name = "import_fresh___import_fresh_3.3.0.tgz";
       path = fetchurl {
-        name = "import_fresh___import_fresh_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
-        sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+        name = "import_fresh___import_fresh_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
       };
     }
     {
@@ -6426,14 +6482,6 @@
       };
     }
     {
-      name = "imports_loader___imports_loader_0.8.0.tgz";
-      path = fetchurl {
-        name = "imports_loader___imports_loader_0.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz";
-        sha1 = "030ea51b8ca05977c40a3abfd9b4088fe0be9a69";
-      };
-    }
-    {
       name = "imurmurhash___imurmurhash_0.1.4.tgz";
       path = fetchurl {
         name = "imurmurhash___imurmurhash_0.1.4.tgz";
@@ -6514,11 +6562,11 @@
       };
     }
     {
-      name = "inherits___inherits_2.0.3.tgz";
+      name = "inherits___inherits_2.0.4.tgz";
       path = fetchurl {
-        name = "inherits___inherits_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+        name = "inherits___inherits_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
+        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
       };
     }
     {
@@ -6530,19 +6578,19 @@
       };
     }
     {
-      name = "ini___ini_1.3.5.tgz";
+      name = "inherits___inherits_2.0.3.tgz";
       path = fetchurl {
-        name = "ini___ini_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
-        sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+        name = "inherits___inherits_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
       };
     }
     {
-      name = "inquirer___inquirer_7.0.4.tgz";
+      name = "ini___ini_1.3.8.tgz";
       path = fetchurl {
-        name = "inquirer___inquirer_7.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz";
-        sha1 = "99af5bde47153abca23f5c7fc30db247f39da703";
+        name = "ini___ini_1.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz";
+        sha1 = "a29da425b48806f34767a4efce397269af28432c";
       };
     }
     {
@@ -6554,11 +6602,11 @@
       };
     }
     {
-      name = "interpret___interpret_1.2.0.tgz";
+      name = "interpret___interpret_1.4.0.tgz";
       path = fetchurl {
-        name = "interpret___interpret_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz";
-        sha1 = "d5061a6224be58e8083985f5014d844359576296";
+        name = "interpret___interpret_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz";
+        sha1 = "665ab8bc4da27a774a40584e812e3e0fa45b1a1e";
       };
     }
     {
@@ -6570,14 +6618,6 @@
       };
     }
     {
-      name = "invert_kv___invert_kv_2.0.0.tgz";
-      path = fetchurl {
-        name = "invert_kv___invert_kv_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
-      };
-    }
-    {
       name = "ip_regex___ip_regex_2.1.0.tgz";
       path = fetchurl {
         name = "ip_regex___ip_regex_2.1.0.tgz";
@@ -6690,11 +6730,11 @@
       };
     }
     {
-      name = "is_callable___is_callable_1.1.5.tgz";
+      name = "is_callable___is_callable_1.2.3.tgz";
       path = fetchurl {
-        name = "is_callable___is_callable_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz";
-        sha1 = "f7e46b596890456db74e7f6e976cb3273d06faab";
+        name = "is_callable___is_callable_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz";
+        sha1 = "8b1e0500b73a1d76c70487636f368e519de8db8e";
       };
     }
     {
@@ -6866,6 +6906,14 @@
       };
     }
     {
+      name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
+      path = fetchurl {
+        name = "is_negative_zero___is_negative_zero_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
+        sha1 = "3de746c18dda2319241a53675908d8f766f11c24";
+      };
+    }
+    {
       name = "is_npm___is_npm_4.0.0.tgz";
       path = fetchurl {
         name = "is_npm___is_npm_4.0.0.tgz";
@@ -6962,27 +7010,11 @@
       };
     }
     {
-      name = "is_promise___is_promise_2.1.0.tgz";
+      name = "is_regex___is_regex_1.1.2.tgz";
       path = fetchurl {
-        name = "is_promise___is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
-      };
-    }
-    {
-      name = "is_regex___is_regex_1.0.5.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz";
-        sha1 = "39d589a358bf18967f726967120b8fc1aed74eae";
-      };
-    }
-    {
-      name = "is_regexp___is_regexp_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_regexp___is_regexp_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz";
-        sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+        name = "is_regex___is_regex_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz";
+        sha1 = "81c8ebde4db142f2cf1c53fc86d6a45788266251";
       };
     }
     {
@@ -7010,6 +7042,14 @@
       };
     }
     {
+      name = "is_string___is_string_1.0.5.tgz";
+      path = fetchurl {
+        name = "is_string___is_string_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
+        sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
+      };
+    }
+    {
       name = "is_symbol___is_symbol_1.0.2.tgz";
       path = fetchurl {
         name = "is_symbol___is_symbol_1.0.2.tgz";
@@ -7714,6 +7754,14 @@
       };
     }
     {
+      name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+      };
+    }
+    {
       name = "json_schema___json_schema_0.2.3.tgz";
       path = fetchurl {
         name = "json_schema___json_schema_0.2.3.tgz";
@@ -7738,11 +7786,11 @@
       };
     }
     {
-      name = "json3___json3_3.3.2.tgz";
+      name = "json3___json3_3.3.3.tgz";
       path = fetchurl {
-        name = "json3___json3_3.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
-        sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+        name = "json3___json3_3.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz";
+        sha1 = "7fc10e375fc5ae42c4705a5cc0aa6f62be305b81";
       };
     }
     {
@@ -7874,11 +7922,11 @@
       };
     }
     {
-      name = "katex___katex_0.10.0.tgz";
+      name = "katex___katex_0.10.2.tgz";
       path = fetchurl {
-        name = "katex___katex_0.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/katex/-/katex-0.10.0.tgz";
-        sha1 = "da562e5d0d5cc3aa602e27af8a9b8710bfbce765";
+        name = "katex___katex_0.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/katex/-/katex-0.10.2.tgz";
+        sha1 = "39973edbb65eda5b6f9e7f41648781e557dd4932";
       };
     }
     {
@@ -7890,6 +7938,14 @@
       };
     }
     {
+      name = "khroma___khroma_1.2.0.tgz";
+      path = fetchurl {
+        name = "khroma___khroma_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/khroma/-/khroma-1.2.0.tgz";
+        sha1 = "46dcc9d7533923c228b51724db108f11fec108d8";
+      };
+    }
+    {
       name = "killable___killable_1.0.1.tgz";
       path = fetchurl {
         name = "killable___killable_1.0.1.tgz";
@@ -7922,11 +7978,11 @@
       };
     }
     {
-      name = "kind_of___kind_of_6.0.2.tgz";
+      name = "kind_of___kind_of_6.0.3.tgz";
       path = fetchurl {
-        name = "kind_of___kind_of_6.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
-        sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+        name = "kind_of___kind_of_6.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
+        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
       };
     }
     {
@@ -7962,14 +8018,6 @@
       };
     }
     {
-      name = "lcid___lcid_2.0.0.tgz";
-      path = fetchurl {
-        name = "lcid___lcid_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
-        sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
-      };
-    }
-    {
       name = "leven___leven_3.1.0.tgz";
       path = fetchurl {
         name = "leven___leven_3.1.0.tgz";
@@ -7986,6 +8034,14 @@
       };
     }
     {
+      name = "levn___levn_0.4.1.tgz";
+      path = fetchurl {
+        name = "levn___levn_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+        sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
+      };
+    }
+    {
       name = "levn___levn_0.3.0.tgz";
       path = fetchurl {
         name = "levn___levn_0.3.0.tgz";
@@ -8066,14 +8122,6 @@
       };
     }
     {
-      name = "loader_utils___loader_utils_1.2.3.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz";
-        sha1 = "1ff5dc6911c9f0a062531a4c04b609406108c2c7";
-      };
-    }
-    {
       name = "loader_utils___loader_utils_1.4.0.tgz";
       path = fetchurl {
         name = "loader_utils___loader_utils_1.4.0.tgz";
@@ -8082,6 +8130,14 @@
       };
     }
     {
+      name = "loader_utils___loader_utils_2.0.0.tgz";
+      path = fetchurl {
+        name = "loader_utils___loader_utils_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz";
+        sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0";
+      };
+    }
+    {
       name = "locate_path___locate_path_2.0.0.tgz";
       path = fetchurl {
         name = "locate_path___locate_path_2.0.0.tgz";
@@ -8362,11 +8418,11 @@
       };
     }
     {
-      name = "loglevel___loglevel_1.6.7.tgz";
+      name = "loglevel___loglevel_1.7.1.tgz";
       path = fetchurl {
-        name = "loglevel___loglevel_1.6.7.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz";
-        sha1 = "b3e034233188c68b889f5b862415306f565e2c56";
+        name = "loglevel___loglevel_1.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz";
+        sha1 = "005fde2f5e6e47068f935ff28573e125ef72f197";
       };
     }
     {
@@ -8442,6 +8498,14 @@
       };
     }
     {
+      name = "lru_cache___lru_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
+      };
+    }
+    {
       name = "lz_string___lz_string_1.4.4.tgz";
       path = fetchurl {
         name = "lz_string___lz_string_1.4.4.tgz";
@@ -8458,11 +8522,11 @@
       };
     }
     {
-      name = "make_dir___make_dir_3.0.0.tgz";
+      name = "make_dir___make_dir_3.1.0.tgz";
       path = fetchurl {
-        name = "make_dir___make_dir_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz";
-        sha1 = "1b5f39f6b9270ed33f9f054c5c0f84304989f801";
+        name = "make_dir___make_dir_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz";
+        sha1 = "415e967046b3a7f1d185277d84aa58203726a13f";
       };
     }
     {
@@ -8482,22 +8546,6 @@
       };
     }
     {
-      name = "mamacro___mamacro_0.0.3.tgz";
-      path = fetchurl {
-        name = "mamacro___mamacro_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz";
-        sha1 = "ad2c9576197c9f1abf308d0787865bd975a3f3e4";
-      };
-    }
-    {
-      name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-      path = fetchurl {
-        name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
-      };
-    }
-    {
       name = "map_cache___map_cache_0.2.2.tgz";
       path = fetchurl {
         name = "map_cache___map_cache_0.2.2.tgz";
@@ -8594,6 +8642,14 @@
       };
     }
     {
+      name = "mathjax___mathjax_3.1.2.tgz";
+      path = fetchurl {
+        name = "mathjax___mathjax_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/mathjax/-/mathjax-3.1.2.tgz";
+        sha1 = "95c0d45ce2330ef7b6a815cebe7d61ecc26bbabd";
+      };
+    }
+    {
       name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
       path = fetchurl {
         name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
@@ -8642,14 +8698,6 @@
       };
     }
     {
-      name = "mem___mem_4.3.0.tgz";
-      path = fetchurl {
-        name = "mem___mem_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
-        sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
-      };
-    }
-    {
       name = "memory_fs___memory_fs_0.2.0.tgz";
       path = fetchurl {
         name = "memory_fs___memory_fs_0.2.0.tgz";
@@ -8666,6 +8714,14 @@
       };
     }
     {
+      name = "memory_fs___memory_fs_0.5.0.tgz";
+      path = fetchurl {
+        name = "memory_fs___memory_fs_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz";
+        sha1 = "324c01288b88652966d161db77838720845a8e3c";
+      };
+    }
+    {
       name = "meow___meow_3.7.0.tgz";
       path = fetchurl {
         name = "meow___meow_3.7.0.tgz";
@@ -8714,19 +8770,11 @@
       };
     }
     {
-      name = "mermaid___mermaid_8.5.2.tgz";
+      name = "mermaid___mermaid_8.9.0.tgz";
       path = fetchurl {
-        name = "mermaid___mermaid_8.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.5.2.tgz";
-        sha1 = "0f1914cda53d4ea5377380e5ce07a38bef2ea7e8";
-      };
-    }
-    {
-      name = "mersenne_twister___mersenne_twister_1.1.0.tgz";
-      path = fetchurl {
-        name = "mersenne_twister___mersenne_twister_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz";
-        sha1 = "f916618ee43d7179efcf641bec4531eb9670978a";
+        name = "mermaid___mermaid_8.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.9.0.tgz";
+        sha1 = "e569517863ab903aa5389cd746b68ca958a8ca7c";
       };
     }
     {
@@ -8826,11 +8874,11 @@
       };
     }
     {
-      name = "minimalistic_assert___minimalistic_assert_1.0.0.tgz";
+      name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
       path = fetchurl {
-        name = "minimalistic_assert___minimalistic_assert_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz";
-        sha1 = "702be2dda6b37f4836bcb3f5db56641b64a1d3d3";
+        name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
       };
     }
     {
@@ -8858,14 +8906,6 @@
       };
     }
     {
-      name = "minimist___minimist_0.0.8.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    }
-    {
       name = "minimist___minimist_1.1.3.tgz";
       path = fetchurl {
         name = "minimist___minimist_1.1.3.tgz";
@@ -8882,6 +8922,14 @@
       };
     }
     {
+      name = "minimist___minimist_0.0.8.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_0.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    }
+    {
       name = "minipass_collect___minipass_collect_1.0.2.tgz";
       path = fetchurl {
         name = "minipass_collect___minipass_collect_1.0.2.tgz";
@@ -8914,6 +8962,14 @@
       };
     }
     {
+      name = "minizlib___minizlib_2.1.2.tgz";
+      path = fetchurl {
+        name = "minizlib___minizlib_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz";
+        sha1 = "e90d3466ba209b932451508a11ce3d3632145931";
+      };
+    }
+    {
       name = "miragejs___miragejs_0.1.40.tgz";
       path = fetchurl {
         name = "miragejs___miragejs_0.1.40.tgz";
@@ -8946,11 +9002,11 @@
       };
     }
     {
-      name = "https___registry.npmjs.org_mkdirp___mkdirp_0.5.1.tgz";
+      name = "mkdirp___mkdirp_0.5.5.tgz";
       path = fetchurl {
-        name = "https___registry.npmjs.org_mkdirp___mkdirp_0.5.1.tgz";
-        url  = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+        name = "mkdirp___mkdirp_0.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
       };
     }
     {
@@ -9042,14 +9098,6 @@
       };
     }
     {
-      name = "mute_stream___mute_stream_0.0.8.tgz";
-      path = fetchurl {
-        name = "mute_stream___mute_stream_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz";
-        sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d";
-      };
-    }
-    {
       name = "nan___nan_2.14.1.tgz";
       path = fetchurl {
         name = "nan___nan_2.14.1.tgz";
@@ -9114,19 +9162,19 @@
       };
     }
     {
-      name = "node_fetch___node_fetch_2.6.0.tgz";
+      name = "node_fetch___node_fetch_2.6.1.tgz";
       path = fetchurl {
-        name = "node_fetch___node_fetch_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz";
-        sha1 = "e633456386d4aa55863f676a7ab0daa8fdecb0fd";
+        name = "node_fetch___node_fetch_2.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
+        sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
       };
     }
     {
-      name = "node_forge___node_forge_0.9.0.tgz";
+      name = "node_forge___node_forge_0.10.0.tgz";
       path = fetchurl {
-        name = "node_forge___node_forge_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz";
-        sha1 = "d624050edbb44874adca12bb9a52ec63cb782579";
+        name = "node_forge___node_forge_0.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz";
+        sha1 = "32dea2afb3e9926f02ee5ce8794902691a676bf3";
       };
     }
     {
@@ -9170,11 +9218,11 @@
       };
     }
     {
-      name = "node_releases___node_releases_1.1.58.tgz";
+      name = "node_releases___node_releases_1.1.70.tgz";
       path = fetchurl {
-        name = "node_releases___node_releases_1.1.58.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz";
-        sha1 = "8ee20eef30fa60e52755fcc0942def5a734fe935";
+        name = "node_releases___node_releases_1.1.70.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz";
+        sha1 = "66e0ed0273aa65666d7fe78febe7634875426a08";
       };
     }
     {
@@ -9346,11 +9394,11 @@
       };
     }
     {
-      name = "object_inspect___object_inspect_1.7.0.tgz";
+      name = "object_inspect___object_inspect_1.9.0.tgz";
       path = fetchurl {
-        name = "object_inspect___object_inspect_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
+        name = "object_inspect___object_inspect_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz";
+        sha1 = "c90521d74e1127b67266ded3394ad6116986533a";
       };
     }
     {
@@ -9370,19 +9418,19 @@
       };
     }
     {
-      name = "object.assign___object.assign_4.1.0.tgz";
+      name = "object.assign___object.assign_4.1.2.tgz";
       path = fetchurl {
-        name = "object.assign___object.assign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
-        sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+        name = "object.assign___object.assign_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
+        sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
       };
     }
     {
-      name = "object.entries___object.entries_1.1.1.tgz";
+      name = "object.entries___object.entries_1.1.3.tgz";
       path = fetchurl {
-        name = "object.entries___object.entries_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz";
-        sha1 = "ee1cf04153de02bb093fec33683900f57ce5399b";
+        name = "object.entries___object.entries_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz";
+        sha1 = "c601c7f168b62374541a07ddbd3e2d5e4f7711a6";
       };
     }
     {
@@ -9394,11 +9442,11 @@
       };
     }
     {
-      name = "object.values___object.values_1.1.0.tgz";
+      name = "object.values___object.values_1.1.2.tgz";
       path = fetchurl {
-        name = "object.values___object.values_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz";
-        sha1 = "bf6810ef5da3e5325790eaaa2be213ea84624da9";
+        name = "object.values___object.values_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz";
+        sha1 = "7a2015e06fcb0f546bd652486ce8583a4731c731";
       };
     }
     {
@@ -9482,6 +9530,14 @@
       };
     }
     {
+      name = "optionator___optionator_0.9.1.tgz";
+      path = fetchurl {
+        name = "optionator___optionator_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+        sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
+      };
+    }
+    {
       name = "orderedmap___orderedmap_1.0.0.tgz";
       path = fetchurl {
         name = "orderedmap___orderedmap_1.0.0.tgz";
@@ -9514,14 +9570,6 @@
       };
     }
     {
-      name = "os_locale___os_locale_3.1.0.tgz";
-      path = fetchurl {
-        name = "os_locale___os_locale_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
-        sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
-      };
-    }
-    {
       name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
       path = fetchurl {
         name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
@@ -9546,14 +9594,6 @@
       };
     }
     {
-      name = "p_defer___p_defer_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_defer___p_defer_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
-        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
-      };
-    }
-    {
       name = "p_each_series___p_each_series_2.1.0.tgz";
       path = fetchurl {
         name = "p_each_series___p_each_series_2.1.0.tgz";
@@ -9570,14 +9610,6 @@
       };
     }
     {
-      name = "p_is_promise___p_is_promise_2.1.0.tgz";
-      path = fetchurl {
-        name = "p_is_promise___p_is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
-      };
-    }
-    {
       name = "p_limit___p_limit_1.2.0.tgz";
       path = fetchurl {
         name = "p_limit___p_limit_1.2.0.tgz";
@@ -9626,11 +9658,11 @@
       };
     }
     {
-      name = "p_map___p_map_3.0.0.tgz";
+      name = "p_map___p_map_4.0.0.tgz";
       path = fetchurl {
-        name = "p_map___p_map_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz";
-        sha1 = "d704d9af8a2ba684e2600d9a215983d4141a979d";
+        name = "p_map___p_map_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz";
+        sha1 = "bb2f95a5eda2ec168ec9274e06a747c3e2904d2b";
       };
     }
     {
@@ -9994,14 +10026,6 @@
       };
     }
     {
-      name = "pixelmatch___pixelmatch_4.0.2.tgz";
-      path = fetchurl {
-        name = "pixelmatch___pixelmatch_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz";
-        sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
-      };
-    }
-    {
       name = "pkg_dir___pkg_dir_2.0.0.tgz";
       path = fetchurl {
         name = "pkg_dir___pkg_dir_2.0.0.tgz";
@@ -10026,22 +10050,6 @@
       };
     }
     {
-      name = "pkg_up___pkg_up_2.0.0.tgz";
-      path = fetchurl {
-        name = "pkg_up___pkg_up_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz";
-        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
-      };
-    }
-    {
-      name = "pngjs___pngjs_3.3.3.tgz";
-      path = fetchurl {
-        name = "pngjs___pngjs_3.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.3.tgz";
-        sha1 = "85173703bde3edac8998757b96e5821d0966a21b";
-      };
-    }
-    {
       name = "pofile___pofile_1.0.11.tgz";
       path = fetchurl {
         name = "pofile___pofile_1.0.11.tgz";
@@ -10066,11 +10074,11 @@
       };
     }
     {
-      name = "portfinder___portfinder_1.0.25.tgz";
+      name = "portfinder___portfinder_1.0.28.tgz";
       path = fetchurl {
-        name = "portfinder___portfinder_1.0.25.tgz";
-        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz";
-        sha1 = "254fd337ffba869f4b9d37edc298059cb4d35eca";
+        name = "portfinder___portfinder_1.0.28.tgz";
+        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz";
+        sha1 = "67c4622852bd5374dd1dd900f779f53462fac778";
       };
     }
     {
@@ -10242,6 +10250,14 @@
       };
     }
     {
+      name = "prelude_ls___prelude_ls_1.2.1.tgz";
+      path = fetchurl {
+        name = "prelude_ls___prelude_ls_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
+      };
+    }
+    {
       name = "prelude_ls___prelude_ls_1.1.2.tgz";
       path = fetchurl {
         name = "prelude_ls___prelude_ls_1.1.2.tgz";
@@ -10266,14 +10282,6 @@
       };
     }
     {
-      name = "prettier___prettier_1.18.2.tgz";
-      path = fetchurl {
-        name = "prettier___prettier_1.18.2.tgz";
-        url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz";
-        sha1 = "6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea";
-      };
-    }
-    {
       name = "prettier___prettier_2.0.5.tgz";
       path = fetchurl {
         name = "prettier___prettier_2.0.5.tgz";
@@ -10282,6 +10290,22 @@
       };
     }
     {
+      name = "prettier___prettier_2.2.1.tgz";
+      path = fetchurl {
+        name = "prettier___prettier_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz";
+        sha1 = "795a1a78dd52f073da0cd42b21f9c91381923ff5";
+      };
+    }
+    {
+      name = "prettier___prettier_1.18.2.tgz";
+      path = fetchurl {
+        name = "prettier___prettier_1.18.2.tgz";
+        url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz";
+        sha1 = "6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea";
+      };
+    }
+    {
       name = "pretty_format___pretty_format_25.5.0.tgz";
       path = fetchurl {
         name = "pretty_format___pretty_format_25.5.0.tgz";
@@ -10626,11 +10650,11 @@
       };
     }
     {
-      name = "querystringify___querystringify_2.1.0.tgz";
+      name = "querystringify___querystringify_2.2.0.tgz";
       path = fetchurl {
-        name = "querystringify___querystringify_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz";
-        sha1 = "7ded8dfbf7879dcc60d0a644ac6754b283ad17ef";
+        name = "querystringify___querystringify_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz";
+        sha1 = "3345941b4153cb9d082d8eee4cda2016a9aef7f6";
       };
     }
     {
@@ -10642,11 +10666,11 @@
       };
     }
     {
-      name = "randombytes___randombytes_2.0.6.tgz";
+      name = "randombytes___randombytes_2.1.0.tgz";
       path = fetchurl {
-        name = "randombytes___randombytes_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
-        sha1 = "d302c522948588848a8d300c932b44c24231da80";
+        name = "randombytes___randombytes_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
+        sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
       };
     }
     {
@@ -10682,11 +10706,11 @@
       };
     }
     {
-      name = "raw_loader___raw_loader_4.0.0.tgz";
+      name = "raw_loader___raw_loader_4.0.2.tgz";
       path = fetchurl {
-        name = "raw_loader___raw_loader_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.0.tgz";
-        sha1 = "d639c40fb9d72b5c7f8abc1fb2ddb25b29d3d540";
+        name = "raw_loader___raw_loader_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz";
+        sha1 = "1aac6b7d1ad1501e66efdac1522c73e59a584eb6";
       };
     }
     {
@@ -10866,11 +10890,11 @@
       };
     }
     {
-      name = "regexpp___regexpp_2.0.1.tgz";
+      name = "regexpp___regexpp_3.1.0.tgz";
       path = fetchurl {
-        name = "regexpp___regexpp_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
-        sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
+        name = "regexpp___regexpp_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
+        sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
       };
     }
     {
@@ -11026,11 +11050,11 @@
       };
     }
     {
-      name = "require_main_filename___require_main_filename_1.0.1.tgz";
+      name = "require_from_string___require_from_string_2.0.2.tgz";
       path = fetchurl {
-        name = "require_main_filename___require_main_filename_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
-        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+        name = "require_from_string___require_from_string_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
       };
     }
     {
@@ -11146,14 +11170,6 @@
       };
     }
     {
-      name = "restore_cursor___restore_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
-        sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
-      };
-    }
-    {
       name = "ret___ret_0.1.15.tgz";
       path = fetchurl {
         name = "ret___ret_0.1.15.tgz";
@@ -11178,14 +11194,6 @@
       };
     }
     {
-      name = "rimraf___rimraf_2.7.1.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
-        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
-      };
-    }
-    {
       name = "rimraf___rimraf_2.6.3.tgz";
       path = fetchurl {
         name = "rimraf___rimraf_2.6.3.tgz";
@@ -11234,14 +11242,6 @@
       };
     }
     {
-      name = "run_async___run_async_2.3.0.tgz";
-      path = fetchurl {
-        name = "run_async___run_async_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
-        sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
-      };
-    }
-    {
       name = "run_queue___run_queue_1.0.3.tgz";
       path = fetchurl {
         name = "run_queue___run_queue_1.0.3.tgz";
@@ -11258,14 +11258,6 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.5.4.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz";
-        sha1 = "e0777fe0d184cec7872df147f303572d414e211c";
-      };
-    }
-    {
       name = "safe_buffer___safe_buffer_5.1.2.tgz";
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.1.2.tgz";
@@ -11338,19 +11330,19 @@
       };
     }
     {
-      name = "schema_utils___schema_utils_2.6.4.tgz";
+      name = "schema_utils___schema_utils_2.7.1.tgz";
       path = fetchurl {
-        name = "schema_utils___schema_utils_2.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz";
-        sha1 = "a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53";
+        name = "schema_utils___schema_utils_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha1 = "1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7";
       };
     }
     {
-      name = "scope_css___scope_css_1.2.1.tgz";
+      name = "schema_utils___schema_utils_3.0.0.tgz";
       path = fetchurl {
-        name = "scope_css___scope_css_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz";
-        sha1 = "c35768bc900cad030a3e0d663a818c0f6a57f40e";
+        name = "schema_utils___schema_utils_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz";
+        sha1 = "67502f6aa2b66a2d4032b4279a2944978a0913ef";
       };
     }
     {
@@ -11386,11 +11378,11 @@
       };
     }
     {
-      name = "selfsigned___selfsigned_1.10.7.tgz";
+      name = "selfsigned___selfsigned_1.10.8.tgz";
       path = fetchurl {
-        name = "selfsigned___selfsigned_1.10.7.tgz";
-        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz";
-        sha1 = "da5819fd049d5574f28e88a9bcc6dbc6e6f3906b";
+        name = "selfsigned___selfsigned_1.10.8.tgz";
+        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz";
+        sha1 = "0d17208b7d12c33f8eac85c41835f27fc3d81a30";
       };
     }
     {
@@ -11418,11 +11410,11 @@
       };
     }
     {
-      name = "semver___semver_7.3.2.tgz";
+      name = "semver___semver_7.3.4.tgz";
       path = fetchurl {
-        name = "semver___semver_7.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
-        sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
+        name = "semver___semver_7.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
+        sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
       };
     }
     {
@@ -11458,6 +11450,14 @@
       };
     }
     {
+      name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+      path = fetchurl {
+        name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha1 = "b525e1238489a5ecfc42afacc3fe99e666f4b1aa";
+      };
+    }
+    {
       name = "serve_index___serve_index_1.9.1.tgz";
       path = fetchurl {
         name = "serve_index___serve_index_1.9.1.tgz";
@@ -11626,11 +11626,11 @@
       };
     }
     {
-      name = "slugify___slugify_1.3.1.tgz";
+      name = "slice_ansi___slice_ansi_4.0.0.tgz";
       path = fetchurl {
-        name = "slugify___slugify_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/slugify/-/slugify-1.3.1.tgz";
-        sha1 = "f572127e8535329fbc6c1edb74ab856b61ad7de2";
+        name = "slice_ansi___slice_ansi_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
+        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
       };
     }
     {
@@ -11698,19 +11698,19 @@
       };
     }
     {
-      name = "sockjs_client___sockjs_client_1.4.0.tgz";
+      name = "sockjs_client___sockjs_client_1.5.0.tgz";
       path = fetchurl {
-        name = "sockjs_client___sockjs_client_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz";
-        sha1 = "c9f2568e19c8fd8173b4997ea3420e0bb306c7d5";
+        name = "sockjs_client___sockjs_client_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz";
+        sha1 = "2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add";
       };
     }
     {
-      name = "sockjs___sockjs_0.3.19.tgz";
+      name = "sockjs___sockjs_0.3.21.tgz";
       path = fetchurl {
-        name = "sockjs___sockjs_0.3.19.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
-        sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
+        name = "sockjs___sockjs_0.3.21.tgz";
+        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz";
+        sha1 = "b34ffb98e796930b60a0cfa11904d6a339a7d417";
       };
     }
     {
@@ -11834,11 +11834,11 @@
       };
     }
     {
-      name = "spdy___spdy_4.0.1.tgz";
+      name = "spdy___spdy_4.0.2.tgz";
       path = fetchurl {
-        name = "spdy___spdy_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz";
-        sha1 = "6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2";
+        name = "spdy___spdy_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz";
+        sha1 = "b74f466203a3eda452c02492b91fb9e84a27677b";
       };
     }
     {
@@ -11890,11 +11890,11 @@
       };
     }
     {
-      name = "ssri___ssri_7.1.0.tgz";
+      name = "ssri___ssri_8.0.0.tgz";
       path = fetchurl {
-        name = "ssri___ssri_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz";
-        sha1 = "92c241bf6de82365b5c7fb4bd76e975522e1294d";
+        name = "ssri___ssri_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz";
+        sha1 = "79ca74e21f8ceaeddfcb4b90143c458b8d988808";
       };
     }
     {
@@ -11954,14 +11954,6 @@
       };
     }
     {
-      name = "stickyfilljs___stickyfilljs_2.1.0.tgz";
-      path = fetchurl {
-        name = "stickyfilljs___stickyfilljs_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/stickyfilljs/-/stickyfilljs-2.1.0.tgz";
-        sha1 = "46dabb599d8275d185bdb97db597f86a2e3afa7b";
-      };
-    }
-    {
       name = "stream_browserify___stream_browserify_2.0.1.tgz";
       path = fetchurl {
         name = "stream_browserify___stream_browserify_2.0.1.tgz";
@@ -12026,14 +12018,6 @@
       };
     }
     {
-      name = "string_width___string_width_2.1.1.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
-        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
-      };
-    }
-    {
       name = "string_width___string_width_3.1.0.tgz";
       path = fetchurl {
         name = "string_width___string_width_3.1.0.tgz";
@@ -12050,19 +12034,19 @@
       };
     }
     {
-      name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.3.tgz";
       path = fetchurl {
-        name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
-        sha1 = "9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74";
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz";
+        sha1 = "a22bd53cca5c7cf44d7c9d5c732118873d6cd18b";
       };
     }
     {
-      name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.3.tgz";
       path = fetchurl {
-        name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
-        sha1 = "440314b15996c866ce8a0341894d45186200c5d9";
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz";
+        sha1 = "9b4cb590e123bb36564401d59824298de50fd5aa";
       };
     }
     {
@@ -12146,14 +12130,6 @@
       };
     }
     {
-      name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
-      path = fetchurl {
-        name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz";
-        sha1 = "7a5625eff8a2b226cf8947a11254da96e13dae89";
-      };
-    }
-    {
       name = "strip_eof___strip_eof_1.0.0.tgz";
       path = fetchurl {
         name = "strip_eof___strip_eof_1.0.0.tgz";
@@ -12186,11 +12162,11 @@
       };
     }
     {
-      name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
       path = fetchurl {
-        name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
-        sha1 = "85713975a91fb87bf1b305cca77395e40d2a64a7";
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
       };
     }
     {
@@ -12202,11 +12178,11 @@
       };
     }
     {
-      name = "style_loader___style_loader_1.1.3.tgz";
+      name = "style_loader___style_loader_1.3.0.tgz";
       path = fetchurl {
-        name = "style_loader___style_loader_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz";
-        sha1 = "9e826e69c683c4d9bf9db924f85e9abb30d5e200";
+        name = "style_loader___style_loader_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz";
+        sha1 = "828b4a3b3b7e7aa5847ce7bae9e874512114249e";
       };
     }
     {
@@ -12242,19 +12218,19 @@
       };
     }
     {
-      name = "sugarss___sugarss_2.0.0.tgz";
+      name = "stylis___stylis_3.5.4.tgz";
       path = fetchurl {
-        name = "sugarss___sugarss_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz";
-        sha1 = "ddd76e0124b297d40bf3cca31c8b22ecb43bc61d";
+        name = "stylis___stylis_3.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz";
+        sha1 = "f665f25f5e299cf3d64654ab949a57c768b73fbe";
       };
     }
     {
-      name = "supports_color___supports_color_6.1.0.tgz";
+      name = "sugarss___sugarss_2.0.0.tgz";
       path = fetchurl {
-        name = "supports_color___supports_color_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
-        sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
+        name = "sugarss___sugarss_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz";
+        sha1 = "ddd76e0124b297d40bf3cca31c8b22ecb43bc61d";
       };
     }
     {
@@ -12274,6 +12250,14 @@
       };
     }
     {
+      name = "supports_color___supports_color_6.1.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
+        sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
+      };
+    }
+    {
       name = "supports_color___supports_color_7.2.0.tgz";
       path = fetchurl {
         name = "supports_color___supports_color_7.2.0.tgz";
@@ -12298,11 +12282,11 @@
       };
     }
     {
-      name = "swagger_ui_dist___swagger_ui_dist_3.32.4.tgz";
+      name = "swagger_ui_dist___swagger_ui_dist_3.43.0.tgz";
       path = fetchurl {
-        name = "swagger_ui_dist___swagger_ui_dist_3.32.4.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.32.4.tgz";
-        sha1 = "6fa920a99e38eaaf129580ac158cf730494a2190";
+        name = "swagger_ui_dist___swagger_ui_dist_3.43.0.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.43.0.tgz";
+        sha1 = "b064a2cec1d27776f9a124bc70423cfa0bbc0d3f";
       };
     }
     {
@@ -12330,6 +12314,14 @@
       };
     }
     {
+      name = "table___table_6.0.7.tgz";
+      path = fetchurl {
+        name = "table___table_6.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz";
+        sha1 = "e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34";
+      };
+    }
+    {
       name = "taffydb___taffydb_2.6.2.tgz";
       path = fetchurl {
         name = "taffydb___taffydb_2.6.2.tgz";
@@ -12362,6 +12354,14 @@
       };
     }
     {
+      name = "tar___tar_6.0.5.tgz";
+      path = fetchurl {
+        name = "tar___tar_6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz";
+        sha1 = "bde815086e10b39f1dcd298e89d596e1535e200f";
+      };
+    }
+    {
       name = "term_size___term_size_2.2.0.tgz";
       path = fetchurl {
         name = "term_size___term_size_2.2.0.tgz";
@@ -12466,14 +12466,6 @@
       };
     }
     {
-      name = "through___through_2.3.8.tgz";
-      path = fetchurl {
-        name = "through___through_2.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
-      };
-    }
-    {
       name = "thunky___thunky_0.1.0.tgz";
       path = fetchurl {
         name = "thunky___thunky_0.1.0.tgz";
@@ -12762,6 +12754,14 @@
       };
     }
     {
+      name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+      path = fetchurl {
+        name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
+      };
+    }
+    {
       name = "tslib___tslib_1.13.0.tgz";
       path = fetchurl {
         name = "tslib___tslib_1.13.0.tgz";
@@ -12802,6 +12802,14 @@
       };
     }
     {
+      name = "type_check___type_check_0.4.0.tgz";
+      path = fetchurl {
+        name = "type_check___type_check_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
+        sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
+      };
+    }
+    {
       name = "type_check___type_check_0.3.2.tgz";
       path = fetchurl {
         name = "type_check___type_check_0.3.2.tgz";
@@ -12818,14 +12826,6 @@
       };
     }
     {
-      name = "type_fest___type_fest_0.5.2.tgz";
-      path = fetchurl {
-        name = "type_fest___type_fest_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz";
-        sha1 = "d6ef42a0356c6cd45f49485c3b6281fc148e48a2";
-      };
-    }
-    {
       name = "type_fest___type_fest_0.6.0.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.6.0.tgz";
@@ -12866,11 +12866,11 @@
       };
     }
     {
-      name = "typescript___typescript_3.9.7.tgz";
+      name = "typescript___typescript_4.1.5.tgz";
       path = fetchurl {
-        name = "typescript___typescript_3.9.7.tgz";
-        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
-        sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
+        name = "typescript___typescript_4.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz";
+        sha1 = "123a3b214aaff3be32926f0d8f1f6e704eb89a72";
       };
     }
     {
@@ -13138,11 +13138,11 @@
       };
     }
     {
-      name = "url_parse___url_parse_1.4.4.tgz";
+      name = "url_parse___url_parse_1.4.7.tgz";
       path = fetchurl {
-        name = "url_parse___url_parse_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz";
-        sha1 = "cac1556e95faa0303691fec5cf9d5a1bc34648f8";
+        name = "url_parse___url_parse_1.4.7.tgz";
+        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz";
+        sha1 = "a8a83535e8c00a316e403a5db4ac1b9b853ae278";
       };
     }
     {
@@ -13250,11 +13250,11 @@
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
+      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
-        sha1 = "00f7494d2ae2b688cfe2899df6ed2c54bef91dbe";
+        name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
+        sha1 = "9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132";
       };
     }
     {
@@ -13442,11 +13442,11 @@
       };
     }
     {
-      name = "vue_eslint_parser___vue_eslint_parser_7.0.0.tgz";
+      name = "vue_eslint_parser___vue_eslint_parser_7.4.1.tgz";
       path = fetchurl {
-        name = "vue_eslint_parser___vue_eslint_parser_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz";
-        sha1 = "a4ed2669f87179dedd06afdd8736acbb3a3864d6";
+        name = "vue_eslint_parser___vue_eslint_parser_7.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.4.1.tgz";
+        sha1 = "e4adcf7876a7379758d9056a72235af18a587f92";
       };
     }
     {
@@ -13474,11 +13474,11 @@
       };
     }
     {
-      name = "vue_loader___vue_loader_15.9.5.tgz";
+      name = "vue_loader___vue_loader_15.9.6.tgz";
       path = fetchurl {
-        name = "vue_loader___vue_loader_15.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.5.tgz";
-        sha1 = "7a960dc420a3439deaacdda038fdcdbf7c432706";
+        name = "vue_loader___vue_loader_15.9.6.tgz";
+        url  = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz";
+        sha1 = "f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b";
       };
     }
     {
@@ -13586,19 +13586,19 @@
       };
     }
     {
-      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
+      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
       path = fetchurl {
-        name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz";
-        sha1 = "9948a1866cbbd6cb824dea13a7ed691f6c8ddff0";
+        name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz";
+        sha1 = "38500072ee6ece66f3769936950ea1771be1c957";
       };
     }
     {
-      name = "watchpack___watchpack_1.7.2.tgz";
+      name = "watchpack___watchpack_1.7.5.tgz";
       path = fetchurl {
-        name = "watchpack___watchpack_1.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz";
-        sha1 = "c02e4d4d49913c3e7e122c3325365af9d331e9aa";
+        name = "watchpack___watchpack_1.7.5.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz";
+        sha1 = "1267e6c55e0b9b5be44c2023aed5437a2c26c453";
       };
     }
     {
@@ -13634,19 +13634,19 @@
       };
     }
     {
-      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
+      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.9.0.tgz";
       path = fetchurl {
-        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz";
-        sha1 = "39b3a8f829ca044682bc6f9e011c95deb554aefd";
+        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz";
+        sha1 = "f6f94db108fb574e415ad313de41a2707d33ef3c";
       };
     }
     {
-      name = "webpack_cli___webpack_cli_3.3.11.tgz";
+      name = "webpack_cli___webpack_cli_3.3.12.tgz";
       path = fetchurl {
-        name = "webpack_cli___webpack_cli_3.3.11.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz";
-        sha1 = "3bf21889bf597b5d82c38f215135a411edfdc631";
+        name = "webpack_cli___webpack_cli_3.3.12.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz";
+        sha1 = "94e9ada081453cd0aa609c99e500012fd3ad2d4a";
       };
     }
     {
@@ -13658,11 +13658,11 @@
       };
     }
     {
-      name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
+      name = "webpack_dev_server___webpack_dev_server_3.11.2.tgz";
       path = fetchurl {
-        name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-        sha1 = "f35945036813e57ef582c2420ef7b470e14d3af0";
+        name = "webpack_dev_server___webpack_dev_server_3.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz";
+        sha1 = "695ebced76a4929f0d5de7fd73fafe185fe33708";
       };
     }
     {
@@ -13690,19 +13690,19 @@
       };
     }
     {
-      name = "webpack___webpack_4.42.0.tgz";
+      name = "webpack___webpack_4.46.0.tgz";
       path = fetchurl {
-        name = "webpack___webpack_4.42.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz";
-        sha1 = "b901635dd6179391d90740a63c93f76f39883eb8";
+        name = "webpack___webpack_4.46.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz";
+        sha1 = "bf9b4404ea20a073605e0a011d188d77cb6ad542";
       };
     }
     {
-      name = "websocket_driver___websocket_driver_0.6.5.tgz";
+      name = "websocket_driver___websocket_driver_0.7.4.tgz";
       path = fetchurl {
-        name = "websocket_driver___websocket_driver_0.6.5.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz";
-        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+        name = "websocket_driver___websocket_driver_0.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz";
+        sha1 = "89ad5295bbf64b480abcba31e4953aca706f5760";
       };
     }
     {
@@ -13810,14 +13810,6 @@
       };
     }
     {
-      name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
-        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
-      };
-    }
-    {
       name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
       path = fetchurl {
         name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
@@ -14050,14 +14042,6 @@
       };
     }
     {
-      name = "yargs_parser___yargs_parser_11.1.1.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_11.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
-        sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
-      };
-    }
-    {
       name = "yargs_parser___yargs_parser_13.1.2.tgz";
       path = fetchurl {
         name = "yargs_parser___yargs_parser_13.1.2.tgz";
@@ -14074,22 +14058,6 @@
       };
     }
     {
-      name = "yargs___yargs_12.0.5.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_12.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
-        sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
-      };
-    }
-    {
-      name = "yargs___yargs_13.2.4.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_13.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz";
-        sha1 = "0b562b794016eb9651b98bd37acf364aa5d6dc83";
-      };
-    }
-    {
       name = "yargs___yargs_13.3.2.tgz";
       path = fetchurl {
         name = "yargs___yargs_13.3.2.tgz";
@@ -14146,11 +14114,11 @@
       };
     }
     {
-      name = "zrender___zrender_4.2.0.tgz";
+      name = "zrender___zrender_4.3.2.tgz";
       path = fetchurl {
-        name = "zrender___zrender_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/zrender/-/zrender-4.2.0.tgz";
-        sha1 = "d001302e155f28de1f9fc7fcd5c254bad28471cf";
+        name = "zrender___zrender_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/zrender/-/zrender-4.3.2.tgz";
+        sha1 = "ec7432f9415c82c73584b6b7b8c47e1b016209c6";
       };
     }
   ];
diff --git a/pkgs/applications/version-management/gitstats/default.nix b/pkgs/applications/version-management/gitstats/default.nix
index ccd13ba818b..b987a3f5512 100644
--- a/pkgs/applications/version-management/gitstats/default.nix
+++ b/pkgs/applications/version-management/gitstats/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, perl, python, gnuplot, coreutils, gnugrep }:
+{ lib, stdenv, fetchzip, perl, python2, gnuplot, coreutils, gnugrep }:
 
 stdenv.mkDerivation rec {
   pname = "gitstats";
@@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
     name = "${pname}-${version}" + "-src";
   };
 
-  buildInputs = [ perl python ];
+  nativeBuildInputs = [ perl ];
+
+  buildInputs = [ python2 ];
+
+  strictDeps = true;
 
   postPatch = ''
     sed -e "s|gnuplot_cmd = .*|gnuplot_cmd = '${gnuplot}/bin/gnuplot'|" \
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/version-management/mercurial/4.9.nix b/pkgs/applications/version-management/mercurial/4.9.nix
index 29440724274..d2511e27863 100644
--- a/pkgs/applications/version-management/mercurial/4.9.nix
+++ b/pkgs/applications/version-management/mercurial/4.9.nix
@@ -21,7 +21,8 @@ in python2Packages.buildPythonApplication {
 
   inherit python; # pass it so that the same version can be used in hg2git
 
-  buildInputs = [ makeWrapper docutils unzip ]
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ docutils ]
     ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
   propagatedBuildInputs = [ hg-git dulwich ];
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index c841482126a..26d263b060d 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -19,7 +19,8 @@ in python3Packages.buildPythonApplication rec {
 
   passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
 
-  buildInputs = [ makeWrapper docutils unzip ]
+  nativeBuildInputs = [ makeWrapper unzip ];
+  buildInputs = [ docutils ]
     ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/applications/version-management/monotone-viz/default.nix b/pkgs/applications/version-management/monotone-viz/default.nix
index d6d55eaa4eb..cfde0721baf 100644
--- a/pkgs/applications/version-management/monotone-viz/default.nix
+++ b/pkgs/applications/version-management/monotone-viz/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, ocamlPackages, gnome2, pkg-config, makeWrapper, glib
-, libtool, libpng, yacc, expat, fontconfig, gd, pango, libjpeg, libwebp, xlibsWrapper, libXaw
+, libtool, libpng, bison, expat, fontconfig, gd, pango, libjpeg, libwebp, xlibsWrapper, libXaw
 }:
 # We need an old version of Graphviz for format compatibility reasons.
 # This version is vulnerable, but monotone-viz will never feed it bad input.
 let graphviz_2_0 = import ./graphviz-2.0.nix {
       inherit lib stdenv fetchurl pkg-config xlibsWrapper libpng libjpeg expat libXaw
-        yacc libtool fontconfig pango gd libwebp;
+        bison libtool fontconfig pango gd libwebp;
     }; in
 let inherit (gnome2) libgnomecanvas; in
 let inherit (ocamlPackages) ocaml lablgtk camlp4; in
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   version = "1.0.2";
   pname = "monotone-viz";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ocaml lablgtk libgnomecanvas glib graphviz_2_0 makeWrapper camlp4];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ocaml lablgtk libgnomecanvas glib graphviz_2_0 camlp4];
   src = fetchurl {
     url = "http://oandrieu.nerim.net/monotone-viz/${pname}-${version}-nolablgtk.tar.gz";
     sha256 = "1l5x4xqz5g1aaqbc1x80mg0yzkiah9ma9k9mivmn08alkjlakkdk";
diff --git a/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
index 8ecc5bf9ac8..541a2262f99 100644
--- a/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
+++ b/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
@@ -1,9 +1,7 @@
 { lib, stdenv, fetchurl, pkg-config, xlibsWrapper, libpng, libjpeg, expat, libXaw
-, yacc, libtool, fontconfig, pango, gd, libwebp
+, bison, libtool, fontconfig, pango, gd, libwebp
 }:
 
-assert libpng != null && libjpeg != null && expat != null;
-
 stdenv.mkDerivation rec {
   name = "graphviz-2.0";
 
@@ -14,7 +12,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    xlibsWrapper libpng libjpeg expat libXaw yacc
+    xlibsWrapper libpng libjpeg expat libXaw bison
     libtool fontconfig pango gd libwebp
   ];
 
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index eaad772f734..776a794d649 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "1.0.0-alpha.38";
+  version = "1.0.0-alpha.46";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "0f14jkr1yswwyqz0l47b0287vpyz0g1qmksr3hkskhbmwlkf1q2b";
+    sha256 = "0x095g26qdch1m3izkn8ynwk1xg1qyz9ia8di23j61k7z2rqk0j5";
   };
 
-  cargoSha256 = "08p2dq48d1islk02xz1j39402fqxfh4isf8qi219aivl0yciwjn3";
+  cargoSha256 = "0cw1y4vmhn70a94512mppk0kfh9xdfm0v4rp3zm00y06jzq1a1fp";
 
   cargoBuildFlags = lib.optional gitImportSupport "--features=git";
 
diff --git a/pkgs/applications/version-management/redmine/Gemfile b/pkgs/applications/version-management/redmine/Gemfile
index beff147c374..9e844a1e01f 100644
--- a/pkgs/applications/version-management/redmine/Gemfile
+++ b/pkgs/applications/version-management/redmine/Gemfile
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
 ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0'
 gem "bundler", ">= 1.5.0"
 
-gem 'rails', '5.2.4.2'
+gem 'rails', '5.2.4.5'
 gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5'
 gem "rouge", "~> 3.12.0"
 gem "request_store", "~> 1.4.1"
@@ -12,8 +12,8 @@ gem "actionpack-xml_parser"
 gem "roadie-rails", (RUBY_VERSION < "2.5" ? "~> 1.3.0" : "~> 2.1.0")
 gem "mimemagic"
 gem "mail", "~> 2.7.1"
-gem "csv", "~> 3.1.1"
-gem "nokogiri", "~> 1.10.0"
+gem 'csv', (RUBY_VERSION < '2.5' ? ['>= 3.1.1', '<= 3.1.5'] : '~> 3.1.1')
+gem 'nokogiri', (RUBY_VERSION < '2.5' ? '~> 1.10.0' : '~> 1.11.1')
 gem "i18n", "~> 1.6.0"
 gem "rbpdf", "~> 1.20.0"
 
@@ -38,7 +38,7 @@ end
 
 # Optional Markdown support, not for JRuby
 group :markdown do
-  gem "redcarpet", "~> 3.5.0"
+  gem 'redcarpet', '~> 3.5.1'
 end
 
 # Include database gems for the database adapters NixOS supports
diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock
index 60aed5e1792..c71a1b7bdde 100644
--- a/pkgs/applications/version-management/redmine/Gemfile.lock
+++ b/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -1,19 +1,19 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    actioncable (5.2.4.2)
-      actionpack (= 5.2.4.2)
+    actioncable (5.2.4.5)
+      actionpack (= 5.2.4.5)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailer (5.2.4.2)
-      actionpack (= 5.2.4.2)
-      actionview (= 5.2.4.2)
-      activejob (= 5.2.4.2)
+    actionmailer (5.2.4.5)
+      actionpack (= 5.2.4.5)
+      actionview (= 5.2.4.5)
+      activejob (= 5.2.4.5)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (5.2.4.2)
-      actionview (= 5.2.4.2)
-      activesupport (= 5.2.4.2)
+    actionpack (5.2.4.5)
+      actionview (= 5.2.4.5)
+      activesupport (= 5.2.4.5)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
@@ -21,26 +21,26 @@ GEM
     actionpack-xml_parser (2.0.1)
       actionpack (>= 5.0)
       railties (>= 5.0)
-    actionview (5.2.4.2)
-      activesupport (= 5.2.4.2)
+    actionview (5.2.4.5)
+      activesupport (= 5.2.4.5)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.3)
-    activejob (5.2.4.2)
-      activesupport (= 5.2.4.2)
+    activejob (5.2.4.5)
+      activesupport (= 5.2.4.5)
       globalid (>= 0.3.6)
-    activemodel (5.2.4.2)
-      activesupport (= 5.2.4.2)
-    activerecord (5.2.4.2)
-      activemodel (= 5.2.4.2)
-      activesupport (= 5.2.4.2)
+    activemodel (5.2.4.5)
+      activesupport (= 5.2.4.5)
+    activerecord (5.2.4.5)
+      activemodel (= 5.2.4.5)
+      activesupport (= 5.2.4.5)
       arel (>= 9.0)
-    activestorage (5.2.4.2)
-      actionpack (= 5.2.4.2)
-      activerecord (= 5.2.4.2)
+    activestorage (5.2.4.5)
+      actionpack (= 5.2.4.5)
+      activerecord (= 5.2.4.5)
       marcel (~> 0.3.1)
-    activesupport (5.2.4.2)
+    activesupport (5.2.4.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -48,7 +48,7 @@ GEM
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     arel (9.0.0)
-    ast (2.4.0)
+    ast (2.4.2)
     builder (3.2.4)
     capybara (3.25.0)
       addressable
@@ -59,21 +59,21 @@ GEM
       regexp_parser (~> 1.5)
       xpath (~> 3.2)
     childprocess (3.0.0)
-    concurrent-ruby (1.1.6)
+    concurrent-ruby (1.1.8)
     crass (1.0.6)
-    css_parser (1.7.1)
+    css_parser (1.9.0)
       addressable
-    csv (3.1.2)
-    docile (1.3.2)
-    erubi (1.9.0)
+    csv (3.1.9)
+    docile (1.3.5)
+    erubi (1.10.0)
     globalid (0.4.2)
       activesupport (>= 4.2.0)
     htmlentities (4.3.4)
     i18n (1.6.0)
       concurrent-ruby (~> 1.0)
     jaro_winkler (1.5.4)
-    json (2.3.0)
-    loofah (2.5.0)
+    json (2.5.1)
+    loofah (2.9.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
@@ -81,61 +81,63 @@ GEM
     marcel (0.3.3)
       mimemagic (~> 0.3.2)
     method_source (1.0.0)
-    mimemagic (0.3.4)
+    mimemagic (0.3.5)
     mini_magick (4.9.5)
     mini_mime (1.0.2)
-    mini_portile2 (2.4.0)
-    minitest (5.14.0)
-    mocha (1.11.2)
+    mini_portile2 (2.5.0)
+    minitest (5.14.4)
+    mocha (1.12.0)
     mysql2 (0.5.3)
-    net-ldap (0.16.2)
-    nio4r (2.5.2)
-    nokogiri (1.10.9)
-      mini_portile2 (~> 2.4.0)
-    parallel (1.19.1)
-    parser (2.7.1.0)
-      ast (~> 2.4.0)
+    net-ldap (0.16.3)
+    nio4r (2.5.7)
+    nokogiri (1.11.2)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    parallel (1.20.1)
+    parser (3.0.0.0)
+      ast (~> 2.4.1)
     pg (1.1.4)
-    public_suffix (4.0.4)
-    puma (3.12.4)
-    rack (2.2.2)
+    public_suffix (4.0.6)
+    puma (3.12.6)
+    racc (1.5.2)
+    rack (2.2.3)
     rack-openid (1.4.2)
       rack (>= 1.1.0)
       ruby-openid (>= 2.1.8)
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
-    rails (5.2.4.2)
-      actioncable (= 5.2.4.2)
-      actionmailer (= 5.2.4.2)
-      actionpack (= 5.2.4.2)
-      actionview (= 5.2.4.2)
-      activejob (= 5.2.4.2)
-      activemodel (= 5.2.4.2)
-      activerecord (= 5.2.4.2)
-      activestorage (= 5.2.4.2)
-      activesupport (= 5.2.4.2)
+    rails (5.2.4.5)
+      actioncable (= 5.2.4.5)
+      actionmailer (= 5.2.4.5)
+      actionpack (= 5.2.4.5)
+      actionview (= 5.2.4.5)
+      activejob (= 5.2.4.5)
+      activemodel (= 5.2.4.5)
+      activerecord (= 5.2.4.5)
+      activestorage (= 5.2.4.5)
+      activesupport (= 5.2.4.5)
       bundler (>= 1.3.0)
-      railties (= 5.2.4.2)
+      railties (= 5.2.4.5)
       sprockets-rails (>= 2.0.0)
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.3.0)
       loofah (~> 2.3)
-    railties (5.2.4.2)
-      actionpack (= 5.2.4.2)
-      activesupport (= 5.2.4.2)
+    railties (5.2.4.5)
+      actionpack (= 5.2.4.5)
+      activesupport (= 5.2.4.5)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.19.0, < 2.0)
     rainbow (3.0.0)
-    rake (13.0.1)
+    rake (13.0.3)
     rbpdf (1.20.1)
       htmlentities
       rbpdf-font (~> 1.19.0)
     rbpdf-font (1.19.1)
-    redcarpet (3.5.0)
-    regexp_parser (1.7.0)
+    redcarpet (3.5.1)
+    regexp_parser (1.8.2)
     request_store (1.4.1)
       rack (>= 1.4)
     roadie (4.0.0)
@@ -158,7 +160,7 @@ GEM
       rack (>= 1.1)
       rubocop (>= 0.72.0)
     ruby-openid (2.9.2)
-    ruby-progressbar (1.10.1)
+    ruby-progressbar (1.11.0)
     rubyzip (2.3.0)
     selenium-webdriver (3.142.7)
       childprocess (>= 0.5, < 4.0)
@@ -168,24 +170,24 @@ GEM
       json (>= 1.8, < 3)
       simplecov-html (~> 0.10.0)
     simplecov-html (0.10.2)
-    sprockets (4.0.0)
+    sprockets (4.0.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
-    sprockets-rails (3.2.1)
+    sprockets-rails (3.2.2)
       actionpack (>= 4.0)
       activesupport (>= 4.0)
       sprockets (>= 3.0.0)
-    thor (1.0.1)
+    thor (1.1.0)
     thread_safe (0.3.6)
-    tzinfo (1.2.7)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
     unicode-display_width (1.6.1)
-    websocket-driver (0.7.1)
+    websocket-driver (0.7.3)
       websocket-extensions (>= 0.1.0)
-    websocket-extensions (0.1.4)
+    websocket-extensions (0.1.5)
     xpath (3.2.0)
       nokogiri (~> 1.8)
-    yard (0.9.24)
+    yard (0.9.26)
 
 PLATFORMS
   ruby
@@ -204,14 +206,14 @@ DEPENDENCIES
   mocha (>= 1.4.0)
   mysql2 (~> 0.5.0)
   net-ldap (~> 0.16.0)
-  nokogiri (~> 1.10.0)
+  nokogiri (~> 1.11.1)
   pg (~> 1.1.4)
   puma (~> 3.7)
   rack-openid
-  rails (= 5.2.4.2)
+  rails (= 5.2.4.5)
   rails-dom-testing
   rbpdf (~> 1.20.0)
-  redcarpet (~> 3.5.0)
+  redcarpet (~> 3.5.1)
   request_store (~> 1.4.1)
   roadie-rails (~> 2.1.0)
   rouge (~> 3.12.0)
diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix
index ab5b4ffded5..37905e273da 100644
--- a/pkgs/applications/version-management/redmine/default.nix
+++ b/pkgs/applications/version-management/redmine/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }:
 
 let
-  version = "4.1.1";
+  version = "4.1.2";
   rubyEnv = bundlerEnv {
     name = "redmine-env-${version}";
 
@@ -16,7 +16,7 @@ in
 
     src = fetchurl {
       url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
-      sha256 = "1nndy5hz8zvfglxf1f3bsb1pkrfwinfxzkdan1vjs3rkckkszyh5";
+      sha256 = "13i2rlkpdwkdhidpdb5r2zxwxna00r71rh248kzfhgy5a5rkj8ky";
     };
 
     nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix
index a8fd6eba6f0..e110c1bf543 100644
--- a/pkgs/applications/version-management/redmine/gemset.nix
+++ b/pkgs/applications/version-management/redmine/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q4by8d41n972j8cdcddrwsh7qphcki50xvgm1syrawyck6w1f5v";
+      sha256 = "1rlx5597621jmdzpf8mhfm52d0fcz1izdj94k58l4sln4gw0x73j";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kg2nayy8wmxhfp52217h80yqr0mcg793xw3cjlfg9lkvdh0nb5z";
+      sha256 = "19y5y2dypqakk39smcmyslic8wnffzc0670d2zjadsrgsg850gyp";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w1l9i6q9xns4yl41l582pyc5i1xi40yyyq802drm58gwylv3wax";
+      sha256 = "1dh83klnrhfi94s066ahfl2bxaqxqc0sqga71bvcgn8xmcl56bhq";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   actionpack-xml_parser = {
     dependencies = ["actionpack" "railties"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fp3my6216lb9gp800s46y0404jwfl6xb3j9rvx4zf087497q8lp";
+      sha256 = "0kxf9gd52hh33z6015gsfsnyavly29f15lbsljlai68r7qc2j89c";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qsvb89rwqrp779mvpn67qbzidg2q6d1fa8kwybvpc93nzb9zpvi";
+      sha256 = "1mb4s49vbrxyg3pba76z3llbzclm8d4zcjhalf4yrfq5y357kkya";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jcfdv00kmifj86d0z347nw55q1f8vwzr1aa9jrfnwz47ndi22di";
+      sha256 = "0qc4bjxnkjrlqpz2k7hllqk30ydad5m2q7pbqzdr0hxzycavxz7m";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport" "arel"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yaqrh23c8krrjw6rvxv7pvnkpp46nk5aq9z2daby640si4xpmp5";
+      sha256 = "1smg691az7r2bsydfj2d46mr2d5sm0lq3ydwvfv6hl5c3y1y5jfg";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   activestorage = {
     dependencies = ["actionpack" "activerecord" "marcel"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d51zp17c9k4brivm8y46rszcz07s5rb75gmkm0dpzg3rz3v38s9";
+      sha256 = "12i3an3vxg0fqjvr4mi0b3nnsb8jpcphkmz1717nb7lsy3wm4081";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y1397g5xxinjyxjsdmp8c92yn0y3bd2hl4wbmmrpd08bggy6flc";
+      sha256 = "0fp4gr3g25qgl01y3pd88wfh4pjc5zj3bz4v7rkxxwaxdjg7a9cc";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -135,10 +135,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.2";
   };
   builder = {
     groups = ["default"];
@@ -176,10 +176,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.8";
   };
   crass = {
     groups = ["default"];
@@ -197,40 +197,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw";
+      sha256 = "0xs4ind9xd099rb52b73pch8ha143dl8bhivqsbba4wrvxpbx751";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.9.0";
   };
   csv = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00szzw96bqz59r0kaab4p75qb0wq54iahmq37wpdg96bxc8y80f5";
+      sha256 = "07mgyalwdxaxnff86j5p6n5szmhqz7nrlkb40826mzggrmva8v1m";
       type = "gem";
     };
-    version = "3.1.2";
+    version = "3.1.9";
   };
   docile = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      sha256 = "1bpdrsdqwv80qqc3f4xxzpii13lx9mlx3zay4bnmmscrx8c0p63z";
       type = "gem";
     };
-    version = "1.3.2";
+    version = "1.3.5";
   };
   erubi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -279,10 +279,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.5.1";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -290,10 +290,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
+      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.9.0";
   };
   mail = {
     dependencies = ["mini_mime"];
@@ -332,10 +332,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0frrfvz52fh4v1sb2xr9pyxhrxm5f7jppqxagpmd7c5ific66l9p";
+      sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
       type = "gem";
     };
-    version = "0.3.4";
+    version = "0.3.5";
   };
   mini_magick = {
     groups = ["minimagick"];
@@ -362,30 +362,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   minitest = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.4";
   };
   mocha = {
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4";
+      sha256 = "05yw6rwgjppq116jgqfg4pv4bql3ci4r2fmmg0m2c3sqib1bq41a";
       type = "gem";
     };
-    version = "1.11.2";
+    version = "1.12.0";
   };
   mysql2 = {
     groups = ["default"];
@@ -410,41 +410,41 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg";
+      sha256 = "13lh6qizxi8fza8py73b2dvjp9p010dvbaq7diagir9nh8plsinv";
       type = "gem";
     };
-    version = "0.16.2";
+    version = "0.16.3";
   };
   nio4r = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c";
+      sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5";
       type = "gem";
     };
-    version = "2.5.2";
+    version = "2.5.7";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.11.2";
   };
   parallel = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
       type = "gem";
     };
-    version = "1.19.1";
+    version = "1.20.1";
   };
   parser = {
     dependencies = ["ast"];
@@ -452,10 +452,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07awrcwm2xibglrh7qwpj24vwzn9p64m7bmfr9xbrlffaznr0ii7";
+      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
       type = "gem";
     };
-    version = "2.7.1.0";
+    version = "3.0.0.0";
   };
   pg = {
     groups = ["default"];
@@ -480,30 +480,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "4.0.4";
+    version = "4.0.6";
   };
   puma = {
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mg8yh478mh55pg7pv8z7xyvk35ra98hy61z9lwkfr8fzyyz57zs";
+      sha256 = "1ypkyqhysb2vvdvkl4w923yvpmi228gld4kbargb1i2d4sa9s49a";
       type = "gem";
     };
-    version = "3.12.4";
+    version = "3.12.6";
+  };
+  racc = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
   };
   rack = {
     groups = ["default" "openid" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.2.3";
   };
   rack-openid = {
     dependencies = ["rack" "ruby-openid"];
@@ -533,10 +543,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x8k6n4yziwf386prhvr9d9plc9fwv0j8spw2bnmkwhf54v2ias4";
+      sha256 = "1nzsm1fqqnhlvgcfrrpsmcv2znldfkyq5c9z7k08p2p54jrd8kfd";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "nokogiri"];
@@ -566,10 +576,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p2rnd1xdqlk19k3m5gd058yzvwjj25k5hwn4km683b5dhylpd16";
+      sha256 = "1qwgjwfzkm4q7wby30c9r724w1sp1bywbqfmpv20lq3zdcrf1rfd";
       type = "gem";
     };
-    version = "5.2.4.2";
+    version = "5.2.4.5";
   };
   rainbow = {
     groups = ["default" "test"];
@@ -586,10 +596,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
   rbpdf = {
     dependencies = ["htmlentities" "rbpdf-font"];
@@ -617,20 +627,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k";
+      sha256 = "0bvk8yyns5s1ls437z719y5sdv9fr8kfs8dmr6g8s761dv5n8zvi";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.5.1";
   };
   regexp_parser = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l2vcj9qffj5b3v9jsyi4k994bdj3rjz7l9ql8x04lndqxfrrrv2";
+      sha256 = "0x4s82lgf0l71y3xc9gp4qxkrgx1kv8f6avdqd68l46ijbyvicdm";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.8.2";
   };
   request_store = {
     dependencies = ["rack"];
@@ -723,10 +733,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc";
       type = "gem";
     };
-    version = "1.10.1";
+    version = "1.11.0";
   };
   rubyzip = {
     groups = ["default" "test"];
@@ -776,10 +786,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jm37zpvvm1arxjwrd6am0wrdbfhrhc5y0l4p2i3p11z04bsvgap";
+      sha256 = "0ikgwbl6jv3frfiy3xhg5yxw9d0064rgzghar1rg391xmrc4gm38";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.0.2";
   };
   sprockets-rails = {
     dependencies = ["actionpack" "activesupport" "sprockets"];
@@ -787,20 +797,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+      sha256 = "0mwmz36265646xqfyczgr1mhkm1hfxgxxvgdgr4xfcbf2g72p1k2";
       type = "gem";
     };
-    version = "3.2.1";
+    version = "3.2.2";
   };
   thor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   thread_safe = {
     groups = ["default" "test"];
@@ -818,10 +828,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.2.9";
   };
   unicode-display_width = {
     groups = ["default" "test"];
@@ -839,20 +849,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2";
+      sha256 = "1i3rs4kcj0jba8idxla3s6xd1xfln3k8b4cb1dik2lda3ifnp3dh";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.7.3";
   };
   websocket-extensions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m";
+      sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw";
       type = "gem";
     };
-    version = "0.1.4";
+    version = "0.1.5";
   };
   xpath = {
     dependencies = ["nokogiri"];
@@ -870,9 +880,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g0bw2qcl48fxawrdf68l229508z53mrqisavji2lkxzv4w4j2pp";
+      sha256 = "0qzr5j1a1cafv81ib3i51qyl8jnmwdxlqi3kbiraldzpbjh4ln9h";
       type = "gem";
     };
-    version = "0.9.24";
+    version = "0.9.26";
   };
 }
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index 7b01ab21f49..1ca04a1634a 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,13 +4,13 @@ let
   common = opts: callPackage (import ./common.nix opts);
 in {
   sublime-merge = common {
-    buildVersion = "2039";
-    sha256 = "0l82408jli7g6nc267bnnnz0zz015lvpwva5fxj53mval32ii4i8";
+    buildVersion = "2047";
+    sha256 = "03a0whifhx9py25l96xpqhb4p6hi9qmnrk2bxz6gh02sinsp3mia";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "2037";
-    sha256 = "1s0g18l2msmnn6w7f126andh2dygm9l94fxxhsi64v74mkawqg82";
+    buildVersion = "2046";
+    sha256 = "04laygxr4vm6mawlfmdn2vj0dwj1swab39znsgb1d6rhysz62kjd";
     dev = true;
   } {};
 }
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 5540e53c84e..d6cad454026 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -111,11 +111,6 @@ let
   });
 
 in {
-  subversion19 = common {
-    version = "1.9.12";
-    sha256 = "15z33gdnfiqblm5515020wfdwnp2837r3hnparava6m2fgyiafiw";
-  };
-
   subversion_1_10 = common {
     version = "1.10.6";
     sha256 = "19zc215mhpnm92mlyl5jbv57r5zqp6cavr3s2g9yglp6j4kfgj0q";
diff --git a/pkgs/applications/video/alass/default.nix b/pkgs/applications/video/alass/default.nix
new file mode 100644
index 00000000000..c57a224ee0a
--- /dev/null
+++ b/pkgs/applications/video/alass/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, makeWrapper
+, ffmpeg
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "alass";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "kaegi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-q1IV9TtmznpR7RO75iN0p16nmTja5ADWqFj58EOPWvU=";
+  };
+
+  cargoSha256 = "sha256-6CVa/ypz37bm/3R0Gi65ovu4SIwWcgVde3Z2W1R16mk=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/alass-cli" --prefix PATH : "${lib.makeBinPath [ ffmpeg ]}"
+  '';
+
+  meta = with lib; {
+    description = "Automatic Language-Agnostic Subtitle Synchronization";
+    homepage = "https://github.com/kaegi/alass";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ erictapen ];
+  };
+}
diff --git a/pkgs/applications/video/avidemux/default.nix b/pkgs/applications/video/avidemux/default.nix
index da3c25def3f..9b2073bc799 100644
--- a/pkgs/applications/video/avidemux/default.nix
+++ b/pkgs/applications/video/avidemux/default.nix
@@ -25,11 +25,11 @@ assert !withQT -> default != "qt5";
 
 stdenv.mkDerivation rec {
   pname = "avidemux";
-  version = "2.7.6";
+  version = "2.7.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/avidemux/avidemux/${version}/avidemux_${version}.tar.gz";
-    sha256 = "1kwkn976ppahrcr74bnv6sqx75pzl9y21m1mvr5ksi1m6lgp924s";
+    sha256 = "sha256-YopAT1If8oEnYHAK4+KqeOWBaw/z+2/QWsPnUkjZdAE=";
   };
 
   patches = [
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
index d22657d651c..e4225963cb2 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.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vq1wg79b7855za6v6bsfgypm0v3b4wakap4rash45mhzbgjj0kq";
+    sha256 = "fef58bf7a8ebaba98399d1077cc4615f53d0196aab2a989df369a66f7111963b";
   };
 
   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/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index 6db2450d136..b24ff43ac67 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -5,10 +5,10 @@
 
 mkDerivation rec {
   pname = "clipgrab";
-  version = "3.9.5";
+  version = "3.9.6";
 
   src = fetchurl {
-    sha256 = "1p8pqa5s70basdm2zpmahc54shsxrr0fr7chvv425n5a9sqba4dh";
+    sha256 = "sha256-1rQu2Gh9PKSbC0tuQxLwFhzy280z4obpa+eXvDBzDW0=";
     # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
     url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
   };
diff --git a/pkgs/applications/video/corrscope/default.nix b/pkgs/applications/video/corrscope/default.nix
new file mode 100644
index 00000000000..d691882a2c6
--- /dev/null
+++ b/pkgs/applications/video/corrscope/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, mkDerivationWith
+, python3Packages
+, wrapQtAppsHook
+, ffmpeg
+, qtbase
+}:
+
+mkDerivationWith python3Packages.buildPythonApplication rec {
+  pname = "corrscope";
+  version = "0.7.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "0m62p3jlbx5dlp3j8wn1ka1sqpffsxbpsgv2h5cvj1n1lsgbss2s";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'attrs>=18.2.0,<19.0.0' 'attrs>=18.2.0' \
+      --replace 'numpy>=1.15,<2.0,!=1.19.4' 'numpy>=1.15,<2.0'
+  '';
+
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  buildInputs = [ ffmpeg qtbase ];
+
+  propagatedBuildInputs = with python3Packages; [ appdirs attrs click matplotlib numpy pyqt5 ruamel_yaml ];
+
+  dontWrapQtApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      --prefix PATH : ${ffmpeg}/bin
+      "''${qtWrapperArgs[@]}"
+    )
+  '';
+
+  preCheck = "export HOME=$TEMP";
+
+  meta = with lib; {
+    description = "Render wave files into oscilloscope views, featuring advanced correlation-based triggering algorithm";
+    longDescription = ''
+      Corrscope renders oscilloscope views of WAV files recorded from chiptune (game music from
+      retro sound chips).
+
+      Corrscope uses "waveform correlation" to track complex waves (including SNES and Sega
+      Genesis/FM synthesis) which jump around on other oscilloscope programs.
+    '';
+    homepage = "https://github.com/corrscope/corrscope";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/video/droidcam/default.nix b/pkgs/applications/video/droidcam/default.nix
index 3e6a06db1a8..eed4c030cfa 100644
--- a/pkgs/applications/video/droidcam/default.nix
+++ b/pkgs/applications/video/droidcam/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "droidcam";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "aramg";
     repo = "droidcam";
     rev = "v${version}";
-    sha256 = "sha256-f7wLi4ReExkqb+SfOK0juzKbwdcqUVkklIUOIMtmnxM=";
+    sha256 = "sha256-Ny/PJu+ifs9hQRDUv1pONBb6fKJzoiNtjPOFc4veU8c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 0e7cce4fee7..a9d56cc9108 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "filebot";
-  version = "4.9.2";
+  version = "4.9.3";
 
   src = fetchurl {
     url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
-    sha256 = "0hcyam8l0fzc9fnp1dpawk0s3rwhfph78w99y7zlcv5l4l4h04lz";
+    sha256 = "sha256-xgdCjo2RLp+EtUTfSiys7PURhnC00R9IOLPtz3427pA=";
   };
 
   unpackPhase = "tar xvf $src";
diff --git a/pkgs/applications/video/freetube/default.nix b/pkgs/applications/video/freetube/default.nix
new file mode 100644
index 00000000000..a5de2142d77
--- /dev/null
+++ b/pkgs/applications/video/freetube/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, lib, fetchurl, appimageTools, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+  pname = "freetube";
+  version = "0.12.0";
+
+  src = fetchurl {
+    url = "https://github.com/FreeTubeApp/FreeTube/releases/download/v${version}-beta/freetube_${version}_amd64.AppImage";
+    sha256 = "151fcm1swsasrwzm93fddx669q4xlfl3d58q1w58nyv7r6kh4fda";
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    name = "${pname}-${version}";
+    inherit src;
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/${pname} $out/share/applications
+
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+    cp -a ${appimageContents}/freetube.desktop $out/share/applications/${pname}.desktop
+    cp -a ${appimageContents}/usr/share/icons $out/share
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app.asar
+  '';
+
+  meta = with lib; {
+    description = "An Open Source YouTube app for privacy";
+    homepage = "https://freetubeapp.io/";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ ryneeverett ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix
index 6317d7b1ab3..e14d902681d 100644
--- a/pkgs/applications/video/handbrake/default.nix
+++ b/pkgs/applications/video/handbrake/default.nix
@@ -9,7 +9,7 @@
 
 { stdenv, lib, fetchFromGitHub,
   # Main build tools
-  pkg-config, autoconf, automake, libtool, m4, lzma, python3,
+  pkg-config, autoconf, automake, libtool, m4, xz, python3,
   numactl,
   # Processing, video codecs, containers
   ffmpeg-full, nv-codec-headers, libogg, x264, x265, libvpx, libtheora, dav1d,
@@ -100,7 +100,7 @@ _EOF
     ffmpeg-full libogg libtheora x264 x265 libvpx dav1d
     libopus lame libvorbis a52dec speex libsamplerate
     libiconv fribidi fontconfig freetype libass jansson libxml2 harfbuzz
-    libdvdread libdvdnav libdvdcss libbluray lzma
+    libdvdread libdvdnav libdvdcss libbluray xz
   ] ++ lib.optional (!stdenv.isDarwin) numactl
   ++ lib.optionals useGtk [
     glib gtk3 libappindicator-gtk3 libnotify
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index 6dc42a47685..e577abda95c 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -1,25 +1,68 @@
-{ lib, buildPythonApplication, fetchFromGitHub, callPackage
-, mpv, python-mpv-jsonipc, jellyfin-apiclient-python
-, pillow, tkinter, pystray, jinja2, pywebview }:
+{ lib
+, buildPythonApplication
+, copyDesktopItems
+, fetchPypi
+, makeDesktopItem
+, flask
+, jellyfin-apiclient-python
+, jinja2
+, mpv
+, pillow
+, pydantic
+, pyqtwebengine
+, pystray
+, python-mpv-jsonipc
+, pywebview
+, qt5
+, tkinter
+, werkzeug
+}:
 
-let
-  shaderPack = callPackage ./shader-pack.nix {};
-in
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "1.7.1";
+  version = "1.10.3";
 
-  src = fetchFromGitHub {
-    owner = "iwalton3";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0alrh5h3f8pq9mrq09jmpqa0yslxsjqwij6kwn24ggbwc10zkq75";
-    fetchSubmodules = true; # needed for display_mirror css file
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-Tl7P8SJ/ZuwIi8RxDWkhfd7LUd63xv5Ehg1UqaYHb1g=";
   };
 
-  patches = [
-    ./disable-desktop-client.patch
-    ./disable-update-check.patch
+  propagatedBuildInputs = [
+    jellyfin-apiclient-python
+    mpv
+    pillow
+    pydantic
+    python-mpv-jsonipc
+
+    # gui dependencies
+    pystray
+    tkinter
+
+    # display_mirror dependencies
+    jinja2
+    pywebview
+
+    # desktop dependencies
+    flask
+    pyqtwebengine
+    werkzeug
+  ];
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    qt5.wrapQtAppsHook
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Jellyfin Desktop";
+      exec = "jellyfin-desktop";
+      icon = "jellyfin-desktop";
+      desktopName = "jellyfin-desktop";
+      comment = "MPV-based desktop and cast client for Jellyfin";
+      genericName = "MPV-based desktop and cast client for Jellyfin";
+      categories = "Video;AudioVideo;TV;Player";
+    })
   ];
 
   # override $HOME directory:
@@ -34,31 +77,27 @@ buildPythonApplication rec {
   '';
 
   postPatch = ''
-    # link the default shader pack
-    ln -s ${shaderPack} jellyfin_mpv_shim/default_shader_pack
+    substituteInPlace jellyfin_mpv_shim/conf.py \
+      --replace "check_updates: bool = True" "check_updates: bool = False" \
+      --replace "notify_updates: bool = True" "notify_updates: bool = False"
   '';
 
-  propagatedBuildInputs = [
-    jellyfin-apiclient-python
-    mpv
-    pillow
-    python-mpv-jsonipc
-
-    # gui dependencies
-    pystray
-    tkinter
+  postInstall = ''
+    mkdir -p $out/share/pixmaps
+    cp jellyfin_mpv_shim/integration/jellyfin-256.png $out/share/pixmaps/jellyfin-desktop.png
+  '';
 
-    # display_mirror dependencies
-    jinja2
-    pywebview
-  ];
+  postFixup = ''
+    wrapQtApp $out/bin/jellyfin-desktop
+    wrapQtApp $out/bin/jellyfin-mpv-desktop
+  '';
 
   # no tests
   doCheck = false;
   pythonImportsCheck = [ "jellyfin_mpv_shim" ];
 
   meta = with lib; {
-    homepage = "https://github.com/iwalton3/jellyfin-mpv-shim";
+    homepage = "https://github.com/jellyfin/jellyfin-desktop";
     description = "Allows casting of videos to MPV via the jellyfin mobile and web app";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jojosch ];
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch b/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
deleted file mode 100644
index 996225efb3a..00000000000
--- a/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/setup.py b/setup.py
-index a831959..2206e6e 100644
---- a/setup.py
-+++ b/setup.py
-@@ -25,7 +25,6 @@ setup(
-     entry_points={
-         'console_scripts': [
-             'jellyfin-mpv-shim=jellyfin_mpv_shim.mpv_shim:main',
--            'jellyfin-mpv-desktop=jellyfin_mpv_shim.mpv_shim:main_desktop',
-         ]
-     },
-     classifiers=[
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch b/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
deleted file mode 100644
index 6941b956e85..00000000000
--- a/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/jellyfin_mpv_shim/conf.py b/jellyfin_mpv_shim/conf.py
-index 0ab9326..ccedc17 100644
---- a/jellyfin_mpv_shim/conf.py
-+++ b/jellyfin_mpv_shim/conf.py
-@@ -88,8 +88,8 @@ class Settings(object):
-         "sync_revert_seek":     True,
-         "sync_osd_message":     True,
-         "screenshot_menu":      True,
--        "check_updates":        True,
--        "notify_updates":       True,
-+        "check_updates":        False,
-+        "notify_updates":       False,
-         "lang":                 None,
-         "desktop_scale":        1.0,
-     }
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix b/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
deleted file mode 100644
index 89a601af4ad..00000000000
--- a/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "jellyfin-mpv-shim-shader-pack";
-  version = "1.0.0";
-
-  src = fetchFromGitHub {
-    owner = "iwalton3";
-    repo = "default-shader-pack";
-    rev = "v${version}";
-    sha256 = "04y8gvjy4v3773b1kyan4dxqcf86b56x7v33m2k246jbn0rl2pgr";
-  };
-
-  installPhase = ''
-    mkdir -p $out
-    cp -a . $out
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/iwalton3/default-shader-pack";
-    description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients";
-    license = with licenses; [ mit lgpl3Plus unlicense ];
-    maintainers = with maintainers; [ jojosch ];
-  };
-}
diff --git a/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix b/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix
new file mode 100644
index 00000000000..5d714cf1799
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildKodiAddon, fetchFromGitHub, requests, vfs-libarchive  }:
+
+buildKodiAddon rec {
+  pname = "a4ksubtitles";
+  namespace = "service.subtitles.a4ksubtitles";
+  version = "2.3.0";
+
+  src = fetchFromGitHub {
+    owner = "a4k-openproject";
+    repo = "a4kSubtitles";
+    rev = "${namespace}/${namespace}-${version}";
+    sha256 = "0hxvxkbihfyvixmlxf5n4ccn70w0244hhw3hr44rqvx00a0bg1lh";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    vfs-libarchive
+  ];
+
+  meta = with lib; {
+    homepage = "https://a4k-openproject.github.io/a4kSubtitles/";
+    description = "Multi-Source Subtitles Addon";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/addon-update-script/default.nix b/pkgs/applications/video/kodi-packages/addon-update-script/default.nix
new file mode 100644
index 00000000000..17c1d45783f
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/addon-update-script/default.nix
@@ -0,0 +1,23 @@
+{ writeShellScript
+, nix
+, curl
+, gzip
+, xmlstarlet
+, common-updater-scripts
+}:
+
+{ attrPath }:
+
+let
+  url = "http://mirrors.kodi.tv/addons/matrix/addons.xml.gz";
+  updateScript = writeShellScript "update.sh" ''
+    set -ex
+
+    attrPath=$1
+    namespace=$(${nix}/bin/nix-instantiate $systemArg --eval -E "with import ./. {}; $attrPath.namespace" | tr -d '"')
+    version=$(${curl}/bin/curl -s -L ${url} | ${gzip}/bin/gunzip -c | ${xmlstarlet}/bin/xml select -T -t -m "//addons/addon[@id='$namespace']" -v @version)
+
+    ${common-updater-scripts}/bin/update-source-version "$attrPath" "$version"
+  '';
+in
+  [ updateScript attrPath ]
diff --git a/pkgs/applications/video/kodi-packages/certifi/default.nix b/pkgs/applications/video/kodi-packages/certifi/default.nix
new file mode 100644
index 00000000000..d122cacc878
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/certifi/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "certifi";
+  namespace = "script.module.certifi";
+  version = "2019.11.28+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "0vsd68izv1ix0hb1gm74qq3zff0sxmhfhjyh7y9005zzp2gpi62v";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.certifi";
+  };
+
+  meta = with lib; {
+    homepage = "https://certifi.io";
+    description = "Python package for providing Mozilla's CA Bundle";
+    license = licenses.mpl20;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/chardet/default.nix b/pkgs/applications/video/kodi-packages/chardet/default.nix
new file mode 100644
index 00000000000..7c069592c67
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/chardet/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "chardet";
+  namespace = "script.module.chardet";
+  version = "3.0.4+matrix.3";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "05928dj4fsj2zg8ajdial3sdf8izddq64sr0al3zy1gqw91jp80f";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.chardet";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/Freso/script.module.chardet";
+    description = "Universal encoding detector";
+    license = licenses.lgpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/controllers/default.nix b/pkgs/applications/video/kodi-packages/controllers/default.nix
new file mode 100644
index 00000000000..825ad5d53fc
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/controllers/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchFromGitHub, controller }:
+buildKodiAddon rec {
+  pname = "game-controller-${controller}";
+  namespace = "game.controller.${controller}";
+  version = "1.0.3";
+
+  sourceDir = "addons/" + namespace;
+
+  src = fetchFromGitHub {
+    owner = "kodi-game";
+    repo = "kodi-game-controllers";
+    rev = "01acb5b6e8b85392b3cb298b034aadb1b24ccf18";
+    sha256 = "0sbc0w0fwbp7rbmbgb6a1kglhnn5g85hijcbbvf5x6jdq9v3f1qb";
+  };
+
+  meta = with lib; {
+    description = "Add support for different gaming controllers.";
+    platforms = platforms.all;
+    license = licenses.odbl;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/dateutil/default.nix b/pkgs/applications/video/kodi-packages/dateutil/default.nix
new file mode 100644
index 00000000000..665858d3d57
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/dateutil/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six }:
+
+buildKodiAddon rec {
+  pname = "dateutil";
+  namespace = "script.module.dateutil";
+  version = "2.8.1+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1jr77017ihs7j3455i72af71wyvs792kbizq4539ccd98far8lm7";
+  };
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.dateutil";
+  };
+
+  meta = with lib; {
+    homepage = "https://dateutil.readthedocs.io/en/stable/";
+    description = "Extensions to the standard Python datetime module";
+    license = with licenses; [ asl20 bsd3 ];
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/idna/default.nix b/pkgs/applications/video/kodi-packages/idna/default.nix
new file mode 100644
index 00000000000..662a45188ec
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/idna/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "idna";
+  namespace = "script.module.idna";
+  version = "2.8.1+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "02s75fhfmbs3a38wvxba51aj3lv5bidshjdkl6yjfji6waxpr9xh";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.idna";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/Freso/script.module.idna";
+    description = "Internationalized Domain Names for Python";
+    license = licenses.bsd3;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix b/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
new file mode 100644
index 00000000000..00e58ece075
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss }:
+buildKodiBinaryAddon rec {
+  pname = "inputstream-adaptive";
+  namespace = "inputstream.adaptive";
+  version = "2.6.8";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "inputstream.adaptive";
+    rev = "${version}-${rel}";
+    sha256 = "0m2d5r0f82qv4kqmq5yxzpi1awkjir2b2s2mfwkjn8p55r7gzp7c";
+  };
+
+  extraBuildInputs = [ expat ];
+
+  extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
+
+  extraInstallPhase = let n = namespace; in ''
+    ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/xbmc/inputstream.adaptive";
+    description = "Kodi inputstream addon for several manifest types";
+    platforms = platforms.all;
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix b/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
new file mode 100644
index 00000000000..32b55d5e0cb
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
@@ -0,0 +1,24 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, kodi, bzip2, zlib }:
+
+buildKodiBinaryAddon rec {
+  pname = "inputstream-ffmpegdirect";
+  namespace = "inputstream.ffmpegdirect";
+  version = "1.19.4";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "inputstream.ffmpegdirect";
+    rev = "${version}-${rel}";
+    sha256 = "1ppvs6zybbi73zq1qh8klyhj99byh61c6nijmb1gd5yhg7cywf72";
+  };
+
+  extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];
+
+  meta = with lib; {
+    homepage = "https://github.com/xbmc/inputstream.ffmpegdirect/";
+    description = "InputStream Client for streams that can be opened by either FFmpeg's libavformat or Kodi's cURL";
+    platforms = platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix b/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix
new file mode 100644
index 00000000000..c575cfccfcc
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix
@@ -0,0 +1,24 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, openssl, rtmpdump, zlib }:
+
+buildKodiBinaryAddon rec {
+  pname = "inputstream-rtmp";
+  namespace = "inputstream.rtmp";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "inputstream.rtmp";
+    rev = "${version}-${rel}";
+    sha256 = "1q4k6plkjasnjs7gnbcc1x2mwr562ach7bkqk1z1y343s0dp9qnq";
+  };
+
+  extraBuildInputs = [ openssl rtmpdump zlib ];
+
+  meta = with lib; {
+    homepage = "https://github.com/xbmc/inputstream.rtmp/";
+    description = "Client for RTMP streams";
+    platforms = platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix b/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
new file mode 100644
index 00000000000..b42c32fed10
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "inputstreamhelper";
+  namespace = "script.module.inputstreamhelper";
+  version = "0.5.2+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "18lkksljfa57w69yklbldf7dgyykrm84pd10mdjdqdm88fdiiijk";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.inputstreamhelper";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/emilsvennesson/script.module.inputstreamhelper";
+    description = "A simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/jellyfin/default.nix b/pkgs/applications/video/kodi-packages/jellyfin/default.nix
new file mode 100644
index 00000000000..03a037ce538
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/jellyfin/default.nix
@@ -0,0 +1,49 @@
+{ lib, addonDir, buildKodiAddon, fetchFromGitHub, kodi, requests, dateutil, six, kodi-six, signals }:
+let
+  python = kodi.pythonPackages.python.withPackages (p: with p; [ pyyaml ]);
+in
+buildKodiAddon rec {
+  pname = "jellyfin";
+  namespace = "plugin.video.jellyfin";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "jellyfin";
+    repo = "jellyfin-kodi";
+    rev = "v${version}";
+    sha256 = "0fx20gmd5xlg59ks4433qh2b3jhbs5qrnc49zi4rkqqr4jr4nhnn";
+  };
+
+  nativeBuildInputs = [
+    python
+  ];
+
+  prePatch = ''
+    substituteInPlace .config/generate_xml.py \
+      --replace "'jellyfin-kodi/release.yaml'" "'release.yaml'" \
+      --replace "'jellyfin-kodi/addon.xml'" "'addon.xml'"
+  '';
+
+  buildPhase = ''
+    ${python}/bin/python3 .config/generate_xml.py py3
+  '';
+
+  postInstall = ''
+    mv /build/source/addon.xml $out${addonDir}/${namespace}/
+  '';
+
+  propagatedBuildInputs = [
+    requests
+    dateutil
+    six
+    kodi-six
+    signals
+  ];
+
+  meta = with lib; {
+    homepage = "https://jellyfin.org/";
+    description = "A whole new way to manage and view your media library";
+    license = licenses.gpl3Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/joystick/default.nix b/pkgs/applications/video/kodi-packages/joystick/default.nix
new file mode 100644
index 00000000000..a1b9c3eeeef
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/joystick/default.nix
@@ -0,0 +1,22 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, tinyxml, udev }:
+buildKodiBinaryAddon rec {
+  pname = namespace;
+  namespace = "peripheral.joystick";
+  version = "1.7.1";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = namespace;
+    rev = "${version}-${rel}";
+    sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
+  };
+
+  extraBuildInputs = [ tinyxml udev ];
+
+  meta = with lib; {
+    description = "Binary addon for raw joystick input.";
+    platforms = platforms.all;
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/kodi-platform/default.nix b/pkgs/applications/video/kodi-packages/kodi-platform/default.nix
new file mode 100644
index 00000000000..6d458f7377d
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/kodi-platform/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchFromGitHub, cmake, kodi, libcec_platform, tinyxml }:
+stdenv.mkDerivation rec {
+  pname = "kodi-platform";
+  version = "17.1";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = pname;
+    rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
+    sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ kodi libcec_platform tinyxml ];
+}
diff --git a/pkgs/applications/video/kodi-packages/kodi-six/default.nix b/pkgs/applications/video/kodi-packages/kodi-six/default.nix
new file mode 100644
index 00000000000..b4f1169b36d
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/kodi-six/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+
+buildKodiAddon rec {
+  pname = "kodi-six";
+  namespace = "script.module.kodi-six";
+  version = "0.1.3.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "14m232p9hx925pbk8knsg994m1nbpa5278zmcrnfblh4z84gjv4x";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.kodi-six";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/romanvm/kodi.six";
+    description = "Wrappers around Kodi Python API for seamless Python 2/3 compatibility";
+    license = licenses.gpl3Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/myconnpy/default.nix b/pkgs/applications/video/kodi-packages/myconnpy/default.nix
new file mode 100644
index 00000000000..bd0c98137a5
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/myconnpy/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "myconnpy";
+  namespace = "script.module.myconnpy";
+  version = "8.0.18+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1cx3qdzw9lkkmbyvyrmc2i193is20fihn2sfl7kmv43f708vam0k";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.myconnpy";
+  };
+
+  meta = with lib; {
+    homepage = "http://dev.mysql.com/doc/connector-python/en/index.html";
+    description = "MySQL Connector/Python";
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/netflix/default.nix b/pkgs/applications/video/kodi-packages/netflix/default.nix
new file mode 100644
index 00000000000..e258270dad6
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/netflix/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildKodiAddon, fetchFromGitHub, signals, inputstream-adaptive, inputstreamhelper, requests, myconnpy }:
+
+buildKodiAddon rec {
+  pname = "netflix";
+  namespace = "plugin.video.netflix";
+  version = "1.15.0";
+
+  src = fetchFromGitHub {
+    owner = "CastagnaIT";
+    repo = namespace;
+    rev = "v${version}";
+    sha256 = "1jibzzm8viqpanby6lqxpb95gw5hw3lfsw4jasjskiinbf8n469k";
+  };
+
+  propagatedBuildInputs = [
+    signals
+    inputstream-adaptive
+    inputstreamhelper
+    requests
+    myconnpy
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/CastagnaIT/plugin.video.netflix";
+    description = "Netflix VOD Services Add-on";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/osmc-skin/default.nix b/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
new file mode 100644
index 00000000000..c83fd66a433
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildKodiAddon, fetchFromGitHub }:
+buildKodiAddon rec {
+  pname = "osmc-skin";
+  namespace = "skin.osmc";
+  version = "18.0.0";
+
+  src = fetchFromGitHub {
+    owner = "osmc";
+    repo = namespace;
+    rev = "40a6c318641e2cbeac58fb0e7dde9c2beac737a0";
+    sha256 = "1l7hyfj5zvjxjdm94y325bmy1naak455b9l8952sb0gllzrcwj6s";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/osmc/skin.osmc";
+    description = "The default skin for OSMC";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ worldofpeace ];
+    license = licenses.cc-by-nc-sa-30;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/pdfreader/default.nix b/pkgs/applications/video/kodi-packages/pdfreader/default.nix
new file mode 100644
index 00000000000..8896a94c9c3
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/pdfreader/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildKodiAddon, fetchFromGitHub }:
+buildKodiAddon rec {
+  pname = "pdfreader";
+  namespace = "plugin.image.pdf";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = "i96751414";
+    repo = "plugin.image.pdfreader";
+    rev = "v${version}";
+    sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
+  };
+
+  meta = with lib; {
+    homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
+    description = "A comic book reader";
+    license = licenses.gpl2Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix b/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix
new file mode 100644
index 00000000000..ba1a0241ffe
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix
@@ -0,0 +1,23 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, jsoncpp, libhdhomerun }:
+buildKodiBinaryAddon rec {
+  pname = "pvr-hdhomerun";
+  namespace = "pvr.hdhomerun";
+  version = "7.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kodi-pvr";
+    repo = "pvr.hdhomerun";
+    rev = "${version}-${rel}";
+    sha256 = "0gbwjssnd319csq2kwlyjj1rskg19m1dxac5dl2dymvx5hn3zrgm";
+  };
+
+  extraBuildInputs = [ jsoncpp libhdhomerun ];
+
+  meta = with lib; {
+    homepage = "https://github.com/kodi-pvr/pvr.hdhomerun";
+    description = "Kodi's HDHomeRun PVR client addon";
+    platforms = platforms.all;
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/pvr-hts/default.nix b/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
new file mode 100644
index 00000000000..32b4a035bfe
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
@@ -0,0 +1,21 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub }:
+buildKodiBinaryAddon rec {
+  pname = "pvr-hts";
+  namespace = "pvr.hts";
+  version = "8.2.4";
+
+  src = fetchFromGitHub {
+    owner = "kodi-pvr";
+    repo = "pvr.hts";
+    rev = "${version}-${rel}";
+    sha256 = "sha256-05RSB4ZwwZSzY2b1/MRw6zzl/HhMbeVhCVCOj3gSTWA=";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/kodi-pvr/pvr.hts";
+    description = "Kodi's Tvheadend HTSP client addon";
+    platforms = platforms.all;
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix b/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
new file mode 100644
index 00000000000..7fe0ed08e8f
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
@@ -0,0 +1,35 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub
+, pugixml, zlib
+, inputstream-adaptive, inputstream-ffmpegdirect, inputstream-rtmp
+}:
+
+buildKodiBinaryAddon rec {
+  pname = "pvr-iptvsimple";
+  namespace = "pvr.iptvsimple";
+  version = "7.5.1";
+
+  src = fetchFromGitHub {
+    owner = "kodi-pvr";
+    repo = "pvr.iptvsimple";
+    rev = "${version}-${rel}";
+    sha256 = "1q470v9nipnrca0rbwvqlbxw9ccbl9s1k46hwwrh94vhyp5rjlib";
+  };
+
+  extraBuildInputs = [
+    pugixml
+    zlib
+  ];
+  propagatedBuildInputs = [
+    inputstream-adaptive
+    inputstream-ffmpegdirect
+    inputstream-rtmp
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/kodi-pvr/pvr.iptvsimple";
+    description = "Kodi's IPTV Simple client addon";
+    platforms = platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/requests/default.nix b/pkgs/applications/video/kodi-packages/requests/default.nix
new file mode 100644
index 00000000000..7d79abd0872
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/requests/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript, certifi, chardet, idna, urllib3 }:
+buildKodiAddon rec {
+  pname = "requests";
+  namespace = "script.module.requests";
+  version = "2.22.0+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "09576galkyzhw8fhy2h4aablm5rm2v08g0mdmg9nn55dlxhkkljq";
+  };
+
+  propagatedBuildInputs = [
+    certifi
+    chardet
+    idna
+    urllib3
+  ];
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.requests";
+  };
+
+  meta = with lib; {
+    homepage = "http://python-requests.org";
+    description = "Python HTTP for Humans";
+    license = licenses.asl20;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/signals/default.nix b/pkgs/applications/video/kodi-packages/signals/default.nix
new file mode 100644
index 00000000000..bba7b112e9f
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/signals/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "signals";
+  namespace = "script.module.addon.signals";
+  version = "0.0.6+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1qcjbakch8hvx02wc01zv014nmzgn6ahc4n2bj5mzr114ppd3hjs";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.signals";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/ruuk/script.module.addon.signals";
+    description = "Provides signal/slot mechanism for inter-addon communication";
+    license = licenses.lgpl21Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/six/default.nix b/pkgs/applications/video/kodi-packages/six/default.nix
new file mode 100644
index 00000000000..8d7b8f936f3
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/six/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+
+buildKodiAddon rec {
+  pname = "six";
+  namespace = "script.module.six";
+  version = "1.14.0+matrix.2";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "1f9g43j4y5x7b1bgbwqqfj0p2bkqjpycj17dj7a9j271mcr5zhwb";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.six";
+  };
+
+  meta = with lib; {
+    homepage = "https://pypi.org/project/six/";
+    description = "Python 2 and 3 compatibility utilities";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/steam-controller/default.nix b/pkgs/applications/video/kodi-packages/steam-controller/default.nix
new file mode 100644
index 00000000000..d2b79029f7c
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/steam-controller/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildKodiBinaryAddon, fetchFromGitHub, libusb1 }:
+buildKodiBinaryAddon rec {
+  pname = namespace;
+  namespace = "peripheral.steamcontroller";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "kodi-game";
+    repo = namespace;
+    rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
+    sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
+  };
+
+  extraBuildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "Binary addon for steam controller.";
+    platforms = platforms.all;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/steam-launcher/default.nix b/pkgs/applications/video/kodi-packages/steam-launcher/default.nix
new file mode 100644
index 00000000000..c4a695b8f81
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/steam-launcher/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildKodiAddon, fetchFromGitHub, steam }:
+buildKodiAddon {
+  pname = "steam-launcher";
+  namespace = "script.steam.launcher";
+  version = "3.5.1";
+
+  src = fetchFromGitHub rec {
+    owner = "teeedubb";
+    repo = owner + "-xbmc-repo";
+    rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
+    sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
+  };
+
+  propagatedBuildInputs = [ steam ];
+
+  meta = with lib; {
+    homepage = "https://forum.kodi.tv/showthread.php?tid=157499";
+    description = "Launch Steam in Big Picture Mode from Kodi";
+    longDescription = ''
+      This add-on will close/minimise Kodi, launch Steam in Big
+      Picture Mode and when Steam BPM is exited (either by quitting
+      Steam or returning to the desktop) Kodi will
+      restart/maximise. Running pre/post Steam scripts can be
+      configured via the addon.
+    '';
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/svtplay/default.nix b/pkgs/applications/video/kodi-packages/svtplay/default.nix
new file mode 100644
index 00000000000..db4fbb642c0
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/svtplay/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildKodiAddon, fetchFromGitHub }:
+buildKodiAddon rec {
+  pname = "svtplay";
+  namespace = "plugin.video.svtplay";
+  version = "5.1.12";
+
+  src = fetchFromGitHub {
+    owner = "nilzen";
+    repo = "xbmc-" + pname;
+    rev = "v${version}";
+    sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
+  };
+
+  meta = with lib; {
+    homepage = "https://forum.kodi.tv/showthread.php?tid=67110";
+    description = "Watch content from SVT Play";
+    longDescription = ''
+      With this addon you can stream content from SVT Play
+      (svtplay.se). The plugin fetches the video URL from the SVT
+      Play website and feeds it to the Kodi video player. HLS (m3u8)
+      is the preferred video format by the plugin.
+    '';
+    platforms = platforms.all;
+    license = licenses.gpl3Plus;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/urllib3/default.nix b/pkgs/applications/video/kodi-packages/urllib3/default.nix
new file mode 100644
index 00000000000..e3127a8d118
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/urllib3/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
+buildKodiAddon rec {
+  pname = "urllib3";
+  namespace = "script.module.urllib3";
+  version = "1.25.8+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "080yq8ns0sag6rmdag1hjwi0whcmp35wzqjp3by92m81cpszs75q";
+  };
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.urllib3";
+  };
+
+  meta = with lib; {
+    homepage = "https://urllib3.readthedocs.io/en/latest/";
+    description = "HTTP library with thread-safe connection pooling, file post, and more";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix b/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix
new file mode 100644
index 00000000000..2db17f17aba
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix
@@ -0,0 +1,22 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, libarchive, xz, bzip2, zlib, lz4, lzo, openssl }:
+buildKodiBinaryAddon rec {
+  pname = namespace;
+  namespace = "vfs.libarchive";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = namespace;
+    rev = "${version}-${rel}";
+    sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
+  };
+
+  extraBuildInputs = [ libarchive xz bzip2 zlib lz4 lzo openssl ];
+
+  meta = with lib; {
+    description = "LibArchive Virtual Filesystem add-on for Kodi";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix b/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix
new file mode 100644
index 00000000000..e41f008281a
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix
@@ -0,0 +1,22 @@
+{ lib, rel, buildKodiBinaryAddon, fetchFromGitHub, openssl, libssh, zlib }:
+buildKodiBinaryAddon rec {
+  pname = namespace;
+  namespace = "vfs.sftp";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "xbmc";
+    repo = namespace;
+    rev = "${version}-${rel}";
+    sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
+  };
+
+  extraBuildInputs = [ openssl libssh zlib ];
+
+  meta = with lib; {
+    description = "SFTP Virtual Filesystem add-on for Kodi";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi/build-kodi-addon.nix b/pkgs/applications/video/kodi/build-kodi-addon.nix
new file mode 100644
index 00000000000..572d5dda805
--- /dev/null
+++ b/pkgs/applications/video/kodi/build-kodi-addon.nix
@@ -0,0 +1,25 @@
+{ stdenv, toKodiAddon, addonDir }:
+{ name ? "${attrs.pname}-${attrs.version}"
+, namespace
+, sourceDir ? ""
+, ... } @ attrs:
+toKodiAddon (stdenv.mkDerivation ({
+  name = "kodi-" + name;
+
+  dontStrip = true;
+
+  extraRuntimeDependencies = [ ];
+
+  installPhase = ''
+    runHook preInstall
+
+    cd $src/$sourceDir
+    d=$out${addonDir}/${namespace}
+    mkdir -p $d
+    sauce="."
+    [ -d ${namespace} ] && sauce=${namespace}
+    cp -R "$sauce/"* $d
+
+    runHook postInstall
+  '';
+} // attrs))
diff --git a/pkgs/applications/video/kodi/build-kodi-binary-addon.nix b/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
new file mode 100644
index 00000000000..e0ca5d1cf6e
--- /dev/null
+++ b/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
@@ -0,0 +1,35 @@
+{ stdenv, toKodiAddon, addonDir, cmake, kodi, kodi-platform, libcec_platform }:
+{ name ? "${attrs.pname}-${attrs.version}"
+, namespace
+, version
+, extraBuildInputs ? []
+, extraRuntimeDependencies ? []
+, extraInstallPhase ? "", ... } @ attrs:
+toKodiAddon (stdenv.mkDerivation ({
+  name = "kodi-" + name;
+
+  dontStrip = true;
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
+
+  inherit extraRuntimeDependencies;
+
+  # disables check ensuring install prefix is that of kodi
+  cmakeFlags = [
+    "-DOVERRIDE_PATHS=1"
+  ];
+
+  # kodi checks for addon .so libs existance in the addon folder (share/...)
+  # and the non-wrapped kodi lib/... folder before even trying to dlopen
+  # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
+  installPhase = let n = namespace; in ''
+    runHook preInstall
+
+    make install
+    ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
+    ${extraInstallPhase}
+
+    runHook postInstall
+  '';
+} // attrs))
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 3aaa465a3cc..3f382efff11 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -1,292 +1,14 @@
-{ stdenv, lib, fetchpatch, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
-, pkg-config, cmake, gnumake, yasm, python2Packages
-, libgcrypt, libgpgerror, libunistring
-, boost, avahi, lame, autoreconfHook
-, gettext, pcre-cpp, yajl, fribidi, which
-, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
-, libxml2, systemd
-, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
-, libjpeg, libpng, libtiff
-, libmpeg2, libsamplerate, libmad
-, libogg, libvorbis, flac, libxslt
-, lzo, libcdio, libmodplug, libass, libbluray
-, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
-, curl, bzip2, zip, unzip, glxinfo
-, libcec, libcec_platform, dcadec, libuuid
-, libcrossguid, libmicrohttpd
-, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
-, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
-, lirc
-, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
-, dbusSupport ? true, dbus ? null
-, joystickSupport ? true, cwiid ? null
-, nfsSupport ? true, libnfs ? null
-, pulseSupport ? true, libpulseaudio ? null
-, rtmpSupport ? true, rtmpdump ? null
-, sambaSupport ? true, samba ? null
-, udevSupport ? true, udev ? null
-, usbSupport  ? false, libusb-compat-0_1 ? null
-, vdpauSupport ? true, libvdpau ? null
-, useWayland ? false, wayland ? null, wayland-protocols ? null
-, waylandpp ?  null, libxkbcommon ? null
-, useGbm ? false, mesa ? null, libinput ? null
-, buildPackages
-}:
-
-assert dbusSupport  -> dbus != null;
-assert nfsSupport   -> libnfs != null;
-assert pulseSupport -> libpulseaudio != null;
-assert rtmpSupport  -> rtmpdump != null;
-assert sambaSupport -> samba != null;
-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;
-
+{ callPackage, ... } @ args:
 let
-  kodiReleaseDate = "20200728";
-  kodiVersion = "18.9";
-  rel = "Leia";
-
-  kodi_src = fetchFromGitHub {
-    owner  = "xbmc";
-    repo   = "xbmc";
-    rev    = "${kodiVersion}-${rel}";
-    sha256 = "0nnf7823pixj6n2fkjc8rbdjwayvhlbglij2by4rnjzzfgmqmw20";
-  };
-
-  cmakeProto = fetchurl {
-    url = "https://raw.githubusercontent.com/pramsey/libght/ca9b1121c352ea10170636e170040e1af015bad1/cmake/modules/CheckPrototypeExists.cmake";
-    sha256  = "1zai82gm5x55n3xvdv7mns3ja6a2k81x9zz0nk42j6s2yb0fkjxh";
-  };
-
-  cmakeProtoPatch = ''
-    # get rid of windows headers as they will otherwise be found first
-    rm -rf msvc
-
-    cp ${cmakeProto} cmake/${cmakeProto.name}
-    # we need to enable support for C++ for check_prototype_exists to do its thing
-    substituteInPlace CMakeLists.txt --replace 'LANGUAGES C' 'LANGUAGES C CXX'
-    if [ -f cmake/CheckHeadersSTDC.cmake ]; then
-      sed -i cmake/CheckHeadersSTDC.cmake \
-        -e '7iinclude(CheckPrototypeExists)'
-    fi
-  '';
-
-  kodiDependency = { name, version, rev, sha256, ... } @attrs:
-    let
-      attrs' = builtins.removeAttrs attrs ["name" "version" "rev" "sha256"];
-    in stdenv.mkDerivation ({
-      name = "kodi-${lib.toLower name}-${version}";
-      src = fetchFromGitHub {
-        owner = "xbmc";
-        repo  = name;
-        inherit rev sha256;
+  unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]);
+  kodiPackages = callPackage ../../../top-level/kodi-packages.nix { kodi = unwrapped; };
+in
+  unwrapped.overrideAttrs (oldAttrs: {
+    passthru = oldAttrs.passthru // {
+      packages = kodiPackages;
+      withPackages = func: callPackage ./wrapper.nix {
+        kodi = unwrapped;
+        addons = kodiPackages.requiredKodiAddons (func kodiPackages);
       };
-    } // attrs');
-
-  ffmpeg = kodiDependency rec {
-    name    = "FFmpeg";
-    version = "4.0.3";
-    rev     = "${version}-${rel}-18.2";
-    sha256  = "1krsjlr949iy5l6ljxancza1yi6w1annxc5s6k283i9mb15qy8cy";
-    preConfigure = ''
-      cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
-      sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
-      sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
-    '';
-    cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      "-DCROSSCOMPILING=ON"
-      "-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
-      "-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
-      "-DPKG_CONFIG_EXECUTABLE=pkg-config"
-    ];
-    buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
-      ++ lib.optional  vdpauSupport    libvdpau;
-    nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
-  };
-
-  # We can build these externally but FindLibDvd.cmake forces us to build it
-  # them, so we currently just use them for the src.
-  libdvdcss = kodiDependency rec {
-    name              = "libdvdcss";
-    version           = "1.4.2";
-    rev               = "${version}-${rel}-Beta-5";
-    sha256            = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
-    buildInputs       = [ linuxHeaders ];
-    nativeBuildInputs = [ cmake pkg-config ];
-    postPatch = ''
-      rm -rf msvc
-
-      substituteInPlace config.h.cm \
-        --replace '#cmakedefine O_BINARY "''${O_BINARY}"' '#define O_BINARY 0'
-    '';
-    cmakeFlags = [
-      "-DBUILD_SHARED_LIBS=1"
-      "-DHAVE_LINUX_DVD_STRUCT=1"
-    ];
-  };
-
-  libdvdnav = kodiDependency rec {
-    name              = "libdvdnav";
-    version           = "6.0.0";
-    rev               = "${version}-${rel}-Alpha-3";
-    sha256            = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
-    buildInputs       = [ libdvdcss libdvdread ];
-    nativeBuildInputs = [ cmake pkg-config ];
-    postPatch         = cmakeProtoPatch;
-    postInstall = ''
-      mv $out/lib/liblibdvdnav.so $out/lib/libdvdnav.so
-    '';
-  };
-
-  libdvdread = kodiDependency rec {
-    name              = "libdvdread";
-    version           = "6.0.0";
-    rev               = "${version}-${rel}-Alpha-3";
-    sha256            = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
-    buildInputs       = [ libdvdcss ];
-    nativeBuildInputs = [ cmake pkg-config ];
-    configureFlags    = [ "--with-libdvdcss" ];
-    postPatch         = cmakeProtoPatch;
-  };
-
-in stdenv.mkDerivation {
-    name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}";
-
-    src = kodi_src;
-
-    buildInputs = [
-      gnutls libidn libtasn1 nasm p11-kit
-      libxml2 python2Packages.python
-      boost libmicrohttpd
-      gettext pcre-cpp yajl fribidi libva libdrm
-      openssl gperf tinyxml2 taglib libssh
-      alsaLib libGL libGLU fontconfig freetype ftgl
-      libjpeg libpng libtiff
-      libmpeg2 libsamplerate libmad
-      libogg libvorbis flac libxslt systemd
-      lzo libcdio libmodplug libass libbluray
-      sqlite libmysqlclient avahi lame
-      curl bzip2 zip unzip glxinfo
-      libcec libcec_platform dcadec libuuid
-      libgcrypt libgpgerror libunistring
-      libcrossguid libplist
-      bluez giflib glib harfbuzz lcms2 libpthreadstubs
-      ffmpeg flatbuffers fmt fstrcmp rapidjson
-      lirc
-      # libdvdcss libdvdnav libdvdread
-    ]
-    ++ lib.optional x11Support [
-      libX11 xorgproto libXt libXmu libXext.dev libXdmcp
-      libXinerama libXrandr.dev libXtst libXfixes
-    ]
-    ++ lib.optional  dbusSupport     dbus
-    ++ lib.optional joystickSupport cwiid
-    ++ lib.optional  nfsSupport      libnfs
-    ++ lib.optional  pulseSupport    libpulseaudio
-    ++ lib.optional  rtmpSupport     rtmpdump
-    ++ lib.optional  sambaSupport    samba
-    ++ lib.optional  udevSupport     udev
-    ++ lib.optional  usbSupport      libusb-compat-0_1
-    ++ lib.optional  vdpauSupport    libvdpau
-    ++ lib.optionals useWayland [
-      wayland
-      waylandpp.dev
-      wayland-protocols
-      # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
-      libxkbcommon.dev
-    ]
-    ++ lib.optional useGbm [
-      libxkbcommon.dev
-      mesa.dev
-      libinput.dev
-    ];
-
-    nativeBuildInputs = [
-      cmake
-      doxygen
-      makeWrapper
-      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
-
-      # for TexturePacker
-      giflib zlib libpng libjpeg lzo
-    ] ++ lib.optionals useWayland [ wayland-protocols waylandpp.bin ];
-
-    depsBuildBuild = [
-      buildPackages.stdenv.cc
-    ];
-
-    cmakeFlags = [
-      "-Dlibdvdcss_URL=${libdvdcss.src}"
-      "-Dlibdvdnav_URL=${libdvdnav.src}"
-      "-Dlibdvdread_URL=${libdvdread.src}"
-      "-DGIT_VERSION=${kodiReleaseDate}"
-      "-DENABLE_EVENTCLIENTS=ON"
-      "-DENABLE_INTERNAL_CROSSGUID=OFF"
-      "-DENABLE_OPTICAL=ON"
-      "-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"
-    ] ++ 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 -
-    # I'm guessing there is a thing waiting to time out
-    doCheck = false;
-
-    # Need these tools on the build system when cross compiling,
-    # hacky, but have found no other way.
-    preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-      CXX=c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
-      cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
-
-      CXX=c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
-      cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
-    '';
-
-    postPatch = ''
-      substituteInPlace xbmc/platform/linux/LinuxTimezone.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 LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
-              ([ curl systemd libmad libvdpau libcec libcec_platform libass ]
-                 ++ lib.optional nfsSupport libnfs
-                 ++ lib.optional rtmpSupport rtmpdump)}"
-      done
-
-      substituteInPlace $out/share/xsessions/kodi.desktop \
-        --replace kodi-standalone $out/bin/kodi-standalone
-    '';
-
-    doInstallCheck = true;
-
-    installCheckPhase = "$out/bin/kodi --version";
-
-    passthru = {
-      pythonPackages = python2Packages;
     };
-
-    meta = with lib; {
-      description = "Media center";
-      homepage    = "https://kodi.tv/";
-      license     = licenses.gpl2;
-      platforms   = platforms.linux;
-      maintainers = with maintainers; [ domenkozar titanous edwtjo peterhoeg sephalon ];
-    };
-}
+  })
diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/packages.nix
index 7d9fdcc3d00..e6ce955e055 100644
--- a/pkgs/applications/video/kodi/plugins.nix
+++ b/pkgs/applications/video/kodi/packages.nix
@@ -1,39 +1,34 @@
 { lib, stdenv, callPackage, fetchFromGitHub
-, cmake, kodiPlain, libcec_platform, tinyxml, rapidxml
+, cmake, kodi, libcec_platform, tinyxml, pugixml
 , steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
-, python2Packages, expat, glib, nspr, nss, openssl
-, libssh, libarchive, lzma, bzip2, lz4, lzo }:
+, python3Packages, expat, glib, nspr, nss, openssl
+, libssh, libarchive, xz, bzip2, lz4, lzo }:
 
 with lib;
 
 let self = rec {
 
-  pluginDir = "/share/kodi/addons";
-  rel = "Leia";
+  addonDir = "/share/kodi/addons";
+  rel = "Matrix";
 
-  kodi = kodiPlain;
+  inherit kodi;
 
   # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
-  toKodiPlugin = drv: drv.overrideAttrs(oldAttrs: {
+  toKodiAddon = drv: drv.overrideAttrs(oldAttrs: {
     # Use passthru in order to prevent rebuilds when possible.
     passthru = (oldAttrs.passthru or {})// {
-      kodiPluginFor = kodi;
-      requiredKodiPlugins = requiredKodiPlugins drv.propagatedBuildInputs;
+      kodiAddonFor = kodi;
+      requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
     };
   });
 
-  # Check whether a derivation provides a Kodi plugin.
-  hasKodiPlugin = drv: drv ? kodiPluginFor && drv.kodiPluginFor == kodi;
+  # Check whether a derivation provides a Kodi addon.
+  hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
 
-  # Get list of required Kodi plugins given a list of derivations.
-  requiredKodiPlugins = drvs: let
-      modules = filter hasKodiPlugin drvs;
-    in unique (modules ++ concatLists (catAttrs "requiredKodiPlugins" modules));
-
-  kodiWithPlugins = func: callPackage ./wrapper.nix {
-    inherit kodi;
-    plugins = requiredKodiPlugins (func self);
-  };
+  # Get list of required Kodi addons given a list of derivations.
+  requiredKodiAddons = drvs: let
+      modules = filter hasKodiAddon drvs;
+    in unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
 
   kodi-platform = stdenv.mkDerivation rec {
     project = "kodi-platform";
@@ -48,36 +43,45 @@ let self = rec {
     };
 
     nativeBuildInputs = [ cmake ];
-    buildInputs = [ kodiPlain libcec_platform tinyxml ];
+    buildInputs = [ kodi libcec_platform tinyxml ];
   };
 
-  mkKodiPlugin = { plugin, namespace, version, sourceDir ? null, ... }@args:
-  toKodiPlugin (stdenv.mkDerivation ({
-    name = "kodi-plugin-${plugin}-${version}";
+  buildKodiAddon =
+    { name ? "${attrs.pname}-${attrs.version}"
+    , namespace
+    , sourceDir ? ""
+    , ... } @ attrs:
+  toKodiAddon (stdenv.mkDerivation ({
+    name = "kodi-" + name;
 
     dontStrip = true;
 
     extraRuntimeDependencies = [ ];
 
     installPhase = ''
-      ${if sourceDir == null then "" else "cd $src/$sourceDir"}
-      d=$out${pluginDir}/${namespace}
+      cd $src/$sourceDir
+      d=$out${addonDir}/${namespace}
       mkdir -p $d
       sauce="."
       [ -d ${namespace} ] && sauce=${namespace}
       cp -R "$sauce/"* $d
     '';
-  } // args));
-
-  mkKodiABIPlugin = { plugin, namespace, version, extraBuildInputs ? [],
-    extraRuntimeDependencies ? [], extraInstallPhase ? "", ... }@args:
-  toKodiPlugin (stdenv.mkDerivation ({
-    name = "kodi-plugin-${plugin}-${version}";
+  } // attrs));
+
+  buildKodiBinaryAddon =
+    { name ? "${attrs.pname}-${attrs.version}"
+    , namespace
+    , version
+    , extraBuildInputs ? []
+    , extraRuntimeDependencies ? []
+    , extraInstallPhase ? "", ... } @ attrs:
+  toKodiAddon (stdenv.mkDerivation ({
+    name = "kodi-" + name;
 
     dontStrip = true;
 
     nativeBuildInputs = [ cmake ];
-    buildInputs = [ kodiPlain kodi-platform libcec_platform ] ++ extraBuildInputs;
+    buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
 
     inherit extraRuntimeDependencies;
 
@@ -86,25 +90,25 @@ let self = rec {
       "-DOVERRIDE_PATHS=1"
     ];
 
-    # kodi checks for plugin .so libs existance in the addon folder (share/...)
+    # kodi checks for addon .so libs existance in the addon folder (share/...)
     # and the non-wrapped kodi lib/... folder before even trying to dlopen
     # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
     installPhase = let n = namespace; in ''
       make install
-      ln -s $out/lib/addons/${n}/${n}.so.${version} $out${pluginDir}/${n}/${n}.so.${version}
+      ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
       ${extraInstallPhase}
     '';
-  } // args));
+  } // attrs));
 
-  advanced-launcher = mkKodiPlugin rec {
+  advanced-launcher = buildKodiAddon rec {
 
-    plugin = "advanced-launcher";
+    pname = "advanced-launcher";
     namespace = "plugin.program.advanced.launcher";
     version = "2.5.8";
 
     src = fetchFromGitHub {
       owner = "edwtjo";
-      repo = plugin;
+      repo = pname;
       rev = version;
       sha256 = "142vvgs37asq5m54xqhjzqvgmb0xlirvm0kz6lxaqynp0vvgrkx2";
     };
@@ -122,13 +126,14 @@ let self = rec {
       '';
       platforms = platforms.all;
       maintainers = with maintainers; [ edwtjo ];
+      broken = true; # requires port to python3
     };
 
   };
 
-  advanced-emulator-launcher = mkKodiPlugin rec {
+  advanced-emulator-launcher = buildKodiAddon rec {
 
-    plugin = "advanced-emulator-launcher";
+    pname = "advanced-emulator-launcher";
     namespace = "plugin.program.advanced.emulator.launcher";
     version = "0.9.6";
 
@@ -151,6 +156,7 @@ let self = rec {
       '';
       platforms = platforms.all;
       maintainers = with maintainers; [ edwtjo ];
+      broken = true; # requires port to python3
     };
 
   };
@@ -173,8 +179,8 @@ let self = rec {
     };
 
     mkController = controller: {
-        ${controller} = mkKodiPlugin rec {
-          plugin = pname + "-" + controller;
+        ${controller} = buildKodiAddon rec {
+          pname = pname + "-" + controller;
           namespace = "game.controller." + controller;
           sourceDir = "addons/" + namespace;
           inherit version src meta;
@@ -204,31 +210,31 @@ 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 {
-      plugin = pname + "-service";
+    service = buildKodiAddon {
+      pname = pname + "-service";
       version = "1.2.1";
       namespace = "service.hyper.launcher";
       inherit src meta;
     };
-    plugin = mkKodiPlugin {
-      plugin = pname;
+    plugin = buildKodiAddon {
       namespace = "plugin.hyper.launcher";
-      inherit version src meta;
+      inherit pname version src meta;
     };
   };
 
-  joystick = mkKodiABIPlugin rec {
+  joystick = buildKodiBinaryAddon rec {
+    pname = namespace;
     namespace = "peripheral.joystick";
-    version = "1.4.7";
-    plugin = namespace;
+    version = "1.7.1";
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
-      rev = "v${version}";
-      sha256 = "03gsp4kg41s3n4ib4wsv7m3krfipgwc2z07i4mnd5zvg0c4xrmap";
+      rev = "${version}-${rel}";
+      sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
     };
 
     meta = {
@@ -237,11 +243,11 @@ let self = rec {
       maintainers = with maintainers; [ edwtjo ];
     };
 
-    extraBuildInputs = [ udev ];
+    extraBuildInputs = [ tinyxml udev ];
   };
 
-  simpleplugin = mkKodiPlugin rec {
-    plugin = "simpleplugin";
+  simpleplugin = buildKodiAddon rec {
+    pname = "simpleplugin";
     namespace = "script.module.simpleplugin";
     version = "2.3.2";
 
@@ -256,21 +262,22 @@ let self = rec {
       homepage = src.meta.homepage;
       description = "Simpleplugin API";
       license = licenses.gpl3;
+      broken = true; # requires port to python3
     };
   };
 
-  svtplay = mkKodiPlugin rec {
+  svtplay = buildKodiAddon rec {
 
-    plugin = "svtplay";
+    pname = "svtplay";
     namespace = "plugin.video.svtplay";
-    version = "4.0.48";
+    version = "5.1.12";
 
     src = fetchFromGitHub {
-      name = plugin + "-" + version + ".tar.gz";
+      name = pname + "-" + version + ".tar.gz";
       owner = "nilzen";
-      repo = "xbmc-" + plugin;
-      rev = "dc18ad002cd69257611d0032fba91f57bb199165";
-      sha256 = "0klk1jpjc243ak306k94mag4b4s17w68v69yb8lzzydszqkaqa7x";
+      repo = "xbmc-" + pname;
+      rev = "v${version}";
+      sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
     };
 
     meta = {
@@ -288,16 +295,16 @@ let self = rec {
 
   };
 
-  steam-controller = mkKodiABIPlugin rec {
+  steam-controller = buildKodiBinaryAddon rec {
+    pname = namespace;
     namespace = "peripheral.steamcontroller";
-    version = "0.10.0";
-    plugin = namespace;
+    version = "0.11.0";
 
     src = fetchFromGitHub {
       owner = "kodi-game";
       repo = namespace;
-      rev = "ea345392ab5aa4485f3a48d2037fa8a8e8ab82de";
-      sha256 = "1hbd8fdvn7xkr9csz1g9wah78nhnq1rkazl4zwa31y70830k3279";
+      rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
+      sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
     };
 
     extraBuildInputs = [ libusb1 ];
@@ -310,17 +317,17 @@ let self = rec {
 
   };
 
-  steam-launcher = mkKodiPlugin {
+  steam-launcher = buildKodiAddon {
 
-    plugin = "steam-launcher";
+    pname = "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 ];
@@ -339,17 +346,16 @@ let self = rec {
     };
   };
 
-  pdfreader = mkKodiPlugin rec {
-    plugin = "pdfreader";
+  pdfreader = buildKodiAddon rec {
+    pname = "pdfreader";
     namespace = "plugin.image.pdf";
-    version = "1.0.2";
+    version = "2.0.2";
 
-    src = fetchFromGitHub rec {
-      name = plugin + "-" + version + ".tar.gz";
-      owner = "teeedubb";
-      repo = owner + "-xbmc-repo";
-      rev = "0a405b95208ced8a1365ad3193eade8d1c2117ce";
-      sha256 = "1iv7d030z3xvlflvp4p5v3riqnwg9g0yvzxszy63v1a6x5kpjkqa";
+    src = fetchFromGitHub {
+      owner = "i96751414";
+      repo = "plugin.image.pdfreader";
+      rev = "v${version}";
+      sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
     };
 
     meta = {
@@ -359,17 +365,17 @@ let self = rec {
     };
   };
 
-  pvr-hts = mkKodiABIPlugin rec {
+  pvr-hts = buildKodiBinaryAddon rec {
 
-    plugin = "pvr-hts";
+    pname = "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 = {
@@ -381,17 +387,17 @@ let self = rec {
 
   };
 
-  pvr-hdhomerun = mkKodiABIPlugin rec {
+  pvr-hdhomerun = buildKodiBinaryAddon rec {
 
-    plugin = "pvr-hdhomerun";
+    pname = "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 = {
@@ -405,17 +411,17 @@ let self = rec {
 
   };
 
-  pvr-iptvsimple = mkKodiABIPlugin rec {
+  pvr-iptvsimple = buildKodiBinaryAddon rec {
 
-    plugin = "pvr-iptvsimple";
+    pname = "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,12 +432,12 @@ let self = rec {
       license = licenses.gpl2Plus;
     };
 
-    extraBuildInputs = [ zlib rapidxml ];
+    extraBuildInputs = [ zlib pugixml ];
   };
 
-  osmc-skin = mkKodiPlugin rec {
+  osmc-skin = buildKodiAddon rec {
 
-    plugin = "osmc-skin";
+    pname = "osmc-skin";
     namespace = "skin.osmc";
     version = "18.0.0";
 
@@ -451,8 +457,8 @@ let self = rec {
     };
   };
 
-  yatp = python2Packages.toPythonModule (mkKodiPlugin rec {
-    plugin = "yatp";
+  yatp = python3Packages.toPythonModule (buildKodiAddon rec {
+    pname = "yatp";
     namespace = "plugin.video.yatp";
     version = "3.3.2";
 
@@ -467,28 +473,29 @@ 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
     };
   });
 
-  inputstream-adaptive = mkKodiABIPlugin rec {
+  inputstream-adaptive = buildKodiBinaryAddon rec {
 
-    plugin = "inputstream-adaptive";
+    pname = "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 ];
@@ -496,7 +503,7 @@ let self = rec {
     extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
 
     extraInstallPhase = let n = namespace; in ''
-      ln -s $out/lib/addons/${n}/libssd_wv.so $out/${pluginDir}/${n}/libssd_wv.so
+      ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
     '';
 
     meta = {
@@ -507,16 +514,16 @@ let self = rec {
     };
   };
 
-  vfs-sftp = mkKodiABIPlugin rec {
+  vfs-sftp = buildKodiBinaryAddon rec {
+    pname = namespace;
     namespace = "vfs.sftp";
-    version = "1.0.6";
-    plugin = namespace;
+    version = "2.0.0";
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
       rev = "${version}-${rel}";
-      sha256 = "044kkzcpzvbyih4vys33r4hqw38xa82snmvl4qj1r80wnszc8af1";
+      sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
     };
 
     meta = with lib; {
@@ -529,16 +536,16 @@ let self = rec {
     extraBuildInputs = [ openssl libssh zlib ];
   };
 
-  vfs-libarchive = mkKodiABIPlugin rec {
+  vfs-libarchive = buildKodiBinaryAddon rec {
+    pname = namespace;
     namespace = "vfs.libarchive";
-    version = "1.0.7";
-    plugin = namespace;
+    version = "2.0.0";
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
       rev = "${version}-${rel}";
-      sha256 = "01qhv095h5j67ispm4iw18pd3kl7a0mnjkgm92al9qqiyif8lzgh";
+      sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
     };
 
     meta = with lib; {
@@ -548,6 +555,6 @@ let self = rec {
       maintainers = with maintainers; [ minijackson ];
     };
 
-    extraBuildInputs = [ libarchive lzma bzip2 zlib lz4 lzo openssl ];
+    extraBuildInputs = [ libarchive xz bzip2 zlib lz4 lzo openssl ];
   };
 }; in self
diff --git a/pkgs/applications/video/kodi/unwrapped.nix b/pkgs/applications/video/kodi/unwrapped.nix
new file mode 100644
index 00000000000..6f926176eaf
--- /dev/null
+++ b/pkgs/applications/video/kodi/unwrapped.nix
@@ -0,0 +1,243 @@
+{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
+, pkg-config, cmake, gnumake, yasm, python3Packages
+, libgcrypt, libgpgerror, libunistring
+, 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, fontconfig, freetype, ftgl
+, libjpeg, libpng, libtiff
+, libmpeg2, libsamplerate, libmad
+, libogg, libvorbis, flac, libxslt
+, lzo, libcdio, libmodplug, libass, libbluray
+, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
+, curl, bzip2, zip, unzip, glxinfo
+, libcec, libcec_platform, dcadec, libuuid
+, libcrossguid, libmicrohttpd
+, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
+, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
+, lirc
+, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
+, dbusSupport ? true, dbus
+, joystickSupport ? true, cwiid
+, nfsSupport ? true, libnfs
+, pulseSupport ? true, libpulseaudio
+, rtmpSupport ? true, rtmpdump
+, sambaSupport ? true, samba
+, udevSupport ? true, udev
+, usbSupport  ? false, libusb-compat-0_1
+, vdpauSupport ? true, libvdpau
+, waylandSupport ? false, wayland, wayland-protocols
+, waylandpp ?  null, libxkbcommon
+, gbmSupport ? false, mesa, libinput
+, buildPackages
+}:
+
+assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
+assert gbmSupport || waylandSupport || x11Support;
+
+let
+  kodiReleaseDate = "20210219";
+  kodiVersion = "19.0";
+  rel = "Matrix";
+
+  kodi_src = fetchFromGitHub {
+    owner  = "xbmc";
+    repo   = "xbmc";
+    rev    = "${kodiVersion}-${rel}";
+    sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p";
+  };
+
+  ffmpeg = stdenv.mkDerivation rec {
+    pname = "kodi-ffmpeg";
+    version = "4.3.1";
+    src = fetchFromGitHub {
+      owner   = "xbmc";
+      repo    = "FFmpeg";
+      rev     = "${version}-${rel}-Beta1";
+      sha256  = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
+    };
+    preConfigure = ''
+      cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
+      sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
+      sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
+    '';
+    cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "-DCROSSCOMPILING=ON"
+      "-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
+      "-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
+      "-DPKG_CONFIG_EXECUTABLE=pkg-config"
+    ];
+    buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
+      ++ lib.optional vdpauSupport libvdpau;
+    nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
+  };
+
+  # We can build these externally but FindLibDvd.cmake forces us to build it
+  # them, so we currently just use them for the src.
+  libdvdcss = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "libdvdcss";
+    rev = "1.4.2-${rel}-Beta-5";
+    sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
+  };
+
+  libdvdnav = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "libdvdnav";
+    rev = "6.0.0-${rel}-Alpha-3";
+    sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
+  };
+
+  libdvdread = fetchFromGitHub {
+    owner = "xbmc";
+    repo = "libdvdread";
+    rev = "6.0.0-${rel}-Alpha-3";
+    sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
+  };
+
+  kodi_platforms = lib.optional gbmSupport "gbm"
+    ++ lib.optional waylandSupport "wayland"
+    ++ lib.optional x11Support "x11";
+
+in stdenv.mkDerivation {
+    pname = "kodi";
+    version = kodiVersion;
+
+    src = kodi_src;
+
+    buildInputs = [
+      gnutls libidn libtasn1 nasm p11-kit
+      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
+      libogg libvorbis flac libxslt systemd
+      lzo libcdio libmodplug libass libbluray
+      sqlite libmysqlclient avahi lame
+      curl bzip2 zip unzip glxinfo
+      libcec libcec_platform dcadec libuuid
+      libgcrypt libgpgerror libunistring
+      libcrossguid libplist
+      bluez giflib glib harfbuzz lcms2 libpthreadstubs
+      ffmpeg flatbuffers fmt fstrcmp rapidjson
+      lirc
+    ]
+    ++ lib.optional x11Support [
+      libX11 xorgproto libXt libXmu libXext.dev libXdmcp
+      libXinerama libXrandr.dev libXtst libXfixes
+    ]
+    ++ lib.optional  dbusSupport     dbus
+    ++ lib.optional  joystickSupport cwiid
+    ++ lib.optional  nfsSupport      libnfs
+    ++ lib.optional  pulseSupport    libpulseaudio
+    ++ lib.optional  rtmpSupport     rtmpdump
+    ++ lib.optional  sambaSupport    samba
+    ++ lib.optional  udevSupport     udev
+    ++ lib.optional  usbSupport      libusb-compat-0_1
+    ++ lib.optional  vdpauSupport    libvdpau
+    ++ lib.optionals waylandSupport [
+      wayland
+      waylandpp.dev
+      wayland-protocols
+      # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
+      libxkbcommon.dev
+    ]
+    ++ lib.optional gbmSupport [
+      libxkbcommon.dev
+      mesa.dev
+      libinput.dev
+    ];
+
+    nativeBuildInputs = [
+      cmake
+      doxygen
+      makeWrapper
+      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 python3Packages.python flatbuffers
+
+      # for TexturePacker
+      giflib zlib libpng libjpeg lzo
+    ] ++ lib.optionals waylandSupport [ wayland-protocols waylandpp.bin ];
+
+    depsBuildBuild = [
+      buildPackages.stdenv.cc
+    ];
+
+    cmakeFlags = [
+      "-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}"
+      "-Dlibdvdcss_URL=${libdvdcss}"
+      "-Dlibdvdnav_URL=${libdvdnav}"
+      "-Dlibdvdread_URL=${libdvdread}"
+      "-DGIT_VERSION=${kodiReleaseDate}"
+      "-DENABLE_EVENTCLIENTS=ON"
+      "-DENABLE_INTERNAL_CROSSGUID=OFF"
+      "-DENABLE_OPTICAL=ON"
+      "-DLIRC_DEVICE=/run/lirc/lircd"
+      "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
+      "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
+      "-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
+    ] ++ lib.optional waylandSupport [
+      "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
+    ];
+
+    # 14 tests fail but the biggest issue is that every test takes 30 seconds -
+    # I'm guessing there is a thing waiting to time out
+    doCheck = false;
+
+    preConfigure = ''
+      cmakeFlagsArray+=("-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}")
+    '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+      # Need these tools on the build system when cross compiling,
+      # hacky, but have found no other way.
+      CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
+      cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
+
+      CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
+      cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
+    '';
+
+    postPatch = ''
+      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 ([ python3Packages.python glxinfo ]
+            ++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \
+          --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
+              ([ curl systemd libmad libvdpau libcec libcec_platform libass ]
+                 ++ lib.optional nfsSupport libnfs
+                 ++ lib.optional rtmpSupport rtmpdump)}"
+      done
+
+      substituteInPlace $out/share/xsessions/kodi.desktop \
+        --replace kodi-standalone $out/bin/kodi-standalone
+    '';
+
+    doInstallCheck = true;
+
+    installCheckPhase = "$out/bin/kodi --version";
+
+    passthru = {
+      pythonPackages = python3Packages;
+      ffmpeg = ffmpeg;
+    };
+
+    meta = with lib; {
+      description = "Media center";
+      homepage    = "https://kodi.tv/";
+      license     = licenses.gpl2Plus;
+      platforms   = platforms.linux;
+      maintainers = teams.kodi.members;
+    };
+}
diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix
index 80a36df3de7..86164682138 100644
--- a/pkgs/applications/video/kodi/wrapper.nix
+++ b/pkgs/applications/video/kodi/wrapper.nix
@@ -1,11 +1,14 @@
-{ lib, makeWrapper, buildEnv, kodi, plugins }:
+{ lib, makeWrapper, buildEnv, kodi, addons }:
 
 let
-  drvName = builtins.parseDrvName kodi.name;
-in buildEnv {
-  name = "${drvName.name}-with-plugins-${drvName.version}";
+  # linux distros are supposed to provide pillow and pycryptodome
+  requiredPythonPackages = with kodi.pythonPackages; [ pillow pycryptodome] ++ addons;
+in
 
-  paths = [ kodi ] ++ plugins;
+buildEnv {
+  name = "${kodi.name}-env";
+
+  paths = [ kodi ] ++ addons;
   pathsToLink = [ "/share" ];
 
   buildInputs = [ makeWrapper ];
@@ -15,16 +18,11 @@ in buildEnv {
     for exe in kodi{,-standalone}
     do
       makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
-        --prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath plugins} \
+        --prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath requiredPythonPackages} \
         --prefix KODI_HOME : $out/share/kodi \
         --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
           (lib.concatMap
-            (plugin: plugin.extraRuntimeDependencies or []) plugins)}"
+            (plugin: plugin.extraRuntimeDependencies or []) addons)}"
     done
   '';
-
-  meta = kodi.meta // {
-    description = kodi.meta.description
-                + " (with plugins: ${lib.concatMapStringsSep ", " (x: x.name) plugins})";
-  };
 }
diff --git a/pkgs/applications/video/kodi/yatp/dont-monkey.patch b/pkgs/applications/video/kodi/yatp/dont-monkey.patch
deleted file mode 100644
index 62d5d0c0d4c..00000000000
--- a/pkgs/applications/video/kodi/yatp/dont-monkey.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/plugin.video.yatp/server.py b/plugin.video.yatp/server.py
-index 1adcbb5..488b72c 100644
---- a/plugin.video.yatp/server.py
-+++ b/plugin.video.yatp/server.py
-@@ -20,24 +20,8 @@ addon = Addon()
- _ = addon.initialize_gettext()
- addon.log_notice('Starting Torrent Server...')
- 
--# A monkey-patch to set the necessary librorrent version
--librorrent_addon = Addon('script.module.libtorrent')
--orig_custom_version = librorrent_addon.get_setting('custom_version', False)
--orig_set_version = librorrent_addon.get_setting('set_version', False)
--librorrent_addon.set_setting('custom_version', 'true')
--if addon.libtorrent_version == '1.0.9':
--    librorrent_addon.set_setting('set_version', '4')
--elif addon.libtorrent_version == '1.1.0':
--    librorrent_addon.set_setting('set_version', '5')
--elif addon.libtorrent_version == '1.1.1':
--    librorrent_addon.set_setting('set_version', '6')
--else:
--    librorrent_addon.set_setting('set_version', '0')
--
- from libs.server import wsgi_app
- 
--librorrent_addon.set_setting('custom_version', orig_custom_version)
--librorrent_addon.set_setting('set_version', orig_set_version)
- # ======
- 
- if addon.enable_limits:
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index 1776aab0033..0312c34bf70 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -30,7 +30,8 @@ let
         }
       else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
-    buildInputs = [ dpkg makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ dpkg ];
 
     phases = [ "unpackPhase" "installPhase" ];
     unpackPhase = "dpkg-deb -x ${src} ./";
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index cec6468c43b..817daf31d0a 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -13,21 +13,21 @@
 }:
 
 let
-  version = "1.15.4";
+  version = "1.16.3";
   # Using two URLs as the first one will break as soon as a new version is released
   src_bin = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
     ];
-    hash = "sha256-Reun5hp7Rnsf6N5yL6iQ1Vbhnz/AKnt/jYRqyOK625o=";
+    hash = "sha256-G2XceMwiFu4fWT4L3HJzDB/rD3eSX6ko6RdVw72QLzg=";
   };
   src_oss = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
     ];
-    hash = "sha256-gtBi1IRNF5ASk/ZdzkDmOuEIT9gazNaRNCftqbLEP+M=";
+    hash = "sha256-YUGozP9B6vmWQ4WxctSbezzu+0yLJXNKQk9TwnQF8F0=";
   };
 in mkDerivation {
   pname = "makemkv";
diff --git a/pkgs/applications/video/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index a5bd030e470..84b5e2a1d73 100644
--- a/pkgs/applications/video/minitube/default.nix
+++ b/pkgs/applications/video/minitube/default.nix
@@ -1,28 +1,26 @@
 { mkDerivation, lib, fetchFromGitHub, phonon, phonon-backend-vlc, qtbase, qmake
 , qtdeclarative, qttools, qtx11extras, mpv
 
-# "Free" key generated by nckx <github@tobias.gr>. I no longer have a Google
-# account. You'll need to generate (and please share :-) a new one if it breaks.
-, withAPIKey ? "AIzaSyBtFgbln3bu1swQC-naMxMtKh384D3xJZE" }:
+# "Free" key generated by pasqui23
+, withAPIKey ? "AIzaSyBQvZXseEVvgu5Ega_DI-AIJ55v0OsHmVY" }:
 
 mkDerivation rec {
   pname = "minitube";
-  version = "3.6";
+  version = "3.8.1";
 
   src = fetchFromGitHub {
-    sha256 = "6IaBPYL/yGWKUHxPe1FnAR1gDHImXYGItYWq7VNjwEU=";
+    sha256 = "3lpZyPwo4NnxZJKfmCFsH4WdakV4KB5BtCr5xsleeIQ=";
     rev = version;
     repo = "minitube";
     owner = "flaviotordini";
     fetchSubmodules = true;
   };
 
-  buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qtx11extras mpv ];
   nativeBuildInputs = [ qmake qttools ];
 
-  qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
+  buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qtx11extras mpv ];
 
-  enableParallelBuilding = true;
+  qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
 
   meta = with lib; {
     description = "Stand-alone YouTube video player";
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 39d2f1e21ce..d26acfd7c0b 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -13,13 +13,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "53.0.0";
+  version = "55.0.0";
 
   src = fetchFromGitLab {
     owner  = "mbunkus";
     repo   = "mkvtoolnix";
     rev    = "release-${version}";
-    sha256 = "04wjs3sgb3gn85gl8y1svx177d1213hswx37zdsj80giw1k5df79";
+    sha256 = "129azp4cpdd05f6072gkxdjj811aqs29nbw6v6qm8vv47gfvjcf7";
   };
 
   nativeBuildInputs = [
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   CXXFLAGS = optional stdenv.cc.isClang "-std=c++17";
+  LDFLAGS = optional stdenv.cc.isClang "-lc++fs";
 
   dontWrapQtApps = true;
   postFixup = optionalString withGUI ''
@@ -60,7 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Cross-platform tools for Matroska";
     homepage    = "http://www.bunkus.org/videotools/mkvtoolnix/";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Only;
     maintainers = with maintainers; [ codyopel rnhmjoj ];
     platforms   = platforms.linux
       ++ optionals (!withGUI) platforms.darwin;
diff --git a/pkgs/applications/video/mpv/scripts/thumbnail.nix b/pkgs/applications/video/mpv/scripts/thumbnail.nix
new file mode 100644
index 00000000000..cda15b2674c
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/thumbnail.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub, lib, python3, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "mpv_thumbnail_script";
+  version = "unstable-2020-01-16";
+
+  src = fetchFromGitHub {
+    owner = "theamm";
+    repo = pname;
+    rev = "682becf5b5115c2a206b4f0bdee413d4be8b5bef";
+    sha256 = "0dgfrb8ypc5vlq35kzn423fm6l6348ivl85vb6j3ccc9a51xprw3";
+  };
+
+  nativeBuildInputs = [ python3 ];
+
+  postPatch = ''
+    patchShebangs concat_files.py
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/mpv/scripts
+    cp mpv_thumbnail_script_{client_osc,server}.lua $out/share/mpv/scripts
+    runHook postInstall
+  '';
+
+  passthru.scriptName = "mpv_thumbnail_script_{client_osc,server}.lua";
+
+  meta = with lib; {
+    description = "A lua script to show preview thumbnails in mpv's OSC seekbar";
+    homepage = "https://github.com/theamm/mpv_thumbnail_script";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/applications/video/natron/default.nix b/pkgs/applications/video/natron/default.nix
index a455869ebf9..bbbcf3d7687 100644
--- a/pkgs/applications/video/natron/default.nix
+++ b/pkgs/applications/video/natron/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl, qt4, pkg-config, boost, expat, cairo, python2Packages,
   cmake, flex, bison, pango, librsvg, librevenge, libxml2, libcdr, libzip,
   poppler, imagemagick, openexr, ffmpeg_3, opencolorio, openimageio,
-  qmake4Hook, libpng, libGL, lndir }:
+  qmake4Hook, libpng, libGL, lndir, libraw, openjpeg, libwebp, fetchFromGitHub }:
 
 let
-  minorVersion = "2.1";
-  version = "${minorVersion}.9";
+  minorVersion = "2.3";
+  version = "${minorVersion}.15";
   OpenColorIO-Configs = fetchurl {
-    url = "https://github.com/MrKepzie/OpenColorIO-Configs/archive/Natron-v${minorVersion}.tar.gz";
-    sha256 = "9eec5a02ca80c9cd8e751013cb347ea982fdddd592a4a9215cce462e332dac51";
+    url = "https://github.com/NatronGitHub/OpenColorIO-Configs/archive/Natron-v${minorVersion}.tar.gz";
+    sha256 = "AZK9J+RnMyxOYcAQOAQZj5QciPQ999m6jrtBt5rdpkA=";
   };
   seexpr = stdenv.mkDerivation rec {
     version = "1.0.1";
@@ -20,14 +20,15 @@ let
     nativeBuildInputs = [ cmake ];
     buildInputs = [ libpng flex bison ];
   };
-  buildPlugin = { pluginName, sha256, nativeBuildInputs ? [], buildInputs ? [], preConfigure ? "" }:
+  buildPlugin = { pluginName, sha256, nativeBuildInputs ? [], buildInputs ? [], preConfigure ? "", postPatch ? "" }:
     stdenv.mkDerivation {
-      name = "openfx-${pluginName}-${version}";
+      pname = "openfx-${pluginName}";
+      version = version;
       src = fetchurl {
-        url = "https://github.com/MrKepzie/Natron/releases/download/${version}/openfx-${pluginName}-${version}.tar.xz";
+        url = "https://github.com/NatronGitHub/openfx-${pluginName}/releases/download/Natron-${version}/openfx-${pluginName}-Natron-${version}.tar.xz";
         inherit sha256;
       };
-      inherit nativeBuildInputs buildInputs;
+      inherit nativeBuildInputs buildInputs postPatch;
       preConfigure = ''
         makeFlagsArray+=("CONFIG=release")
         makeFlagsArray+=("PLUGINPATH=$out/Plugins/OFX/Natron")
@@ -42,14 +43,19 @@ let
     url = "https://raw.githubusercontent.com/lvandeve/lodepng/a70c086077c0eaecbae3845e4da4424de5f43361/lodepng.h";
     sha256 = "14drdikd0vws3wwpyqq7zzm5z3kg98svv4q4w0hr45q6zh6hs0bq";
   };
+  cimgversion = "89b9d062ec472df3d33989e6d5d2a8b50ba0775c";
   CImgh = fetchurl {
-    url = "https://raw.githubusercontent.com/dtschump/CImg/572c12d82b2f59ece21be8f52645c38f1dd407e6/CImg.h";
-    sha256 = "0n4qfxj8j6rmj4svf68gg2pzg8d1pb74bnphidnf8i2paj6lwniz";
+    url = "https://raw.githubusercontent.com/dtschump/CImg/${cimgversion}/CImg.h";
+    sha256 = "sha256-NbYpZDNj2oZ+wqoEkRwwCjiujdr+iGOLA0Pa0Ynso6U=";
+  };
+  inpainth = fetchurl {
+    url = "https://raw.githubusercontent.com/dtschump/CImg/${cimgversion}/plugins/inpaint.h";
+    sha256 = "sha256-cd28a3VOs5002GkthHkbIUrxZfKuGhqIYO4Oxe/2HIQ=";
   };
   plugins = map buildPlugin [
     ({
       pluginName = "arena";
-      sha256 = "0qba13vn9qdfax7nqlz1ps27zspr5kh795jp1xvbmwjzjzjpkqkf";
+      sha256 = "tUb6myG03mRieUAfgRZfv5Ap+cLvbpNrLMYCGTiAq8c=";
       nativeBuildInputs = [ pkg-config ];
       buildInputs = [
         pango librsvg librevenge libcdr opencolorio libxml2 libzip
@@ -65,32 +71,37 @@ let
     })
     ({
       pluginName = "io";
-      sha256 = "0s196i9fkgr9iw92c94mxgs1lkxbhynkf83vmsgrldflmf0xjky7";
+      sha256 = "OQg6a5wNy9TFFySjmgd1subvXRxY/ZnSOCkaoUo+ZaA=";
       nativeBuildInputs = [ pkg-config ];
       buildInputs = [
         libpng ffmpeg_3 openexr opencolorio openimageio boost libGL
-        seexpr
+        seexpr libraw openjpeg libwebp
       ];
     })
     ({
       pluginName = "misc";
-      sha256 = "02h79jrll0c17azxj16as1mks3lmypm4m3da4mms9sg31l3n82qi";
+      sha256 = "XkdQyWI9ilF6IoP3yuHulNUZRPLX1m4lq/+RbXsrFEQ=";
       buildInputs = [
         libGL
       ];
-      preConfigure = ''
-        cp ${CImgh} CImg/CImg.h
+      postPatch = ''
+        cp '${inpainth}' CImg/Inpaint/inpaint.h
+        patch -p0 -dCImg < CImg/Inpaint/inpaint.h.patch # taken from the Makefile; it gets skipped if the file already exists
+        cp '${CImgh}' CImg/CImg.h
       '';
     })
   ];
 in
 stdenv.mkDerivation {
   inherit version;
-  name = "natron-${version}";
+  pname = "natron";
 
-  src = fetchurl {
-    url = "https://github.com/MrKepzie/Natron/releases/download/${version}/Natron-${version}.tar.xz";
-    sha256 = "1wdc0zqriw2jhlrhzs6af3kagrv22cm086ffnbr1x43mgc9hfhjp";
+  src = fetchFromGitHub {
+    owner = "NatronGitHub";
+    repo = "Natron";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-KuXJmmIsvwl4uqmAxXqWU+273jsdWrCuUSwWn5vuu8M=";
   };
 
   nativeBuildInputs = [ qmake4Hook pkg-config python2Packages.wrapPython ];
@@ -124,6 +135,5 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [ maintainers.puffnfresh ];
     platforms = platforms.linux;
-    broken = true;
   };
 }
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 9fdb78c7038..caeffa56b17 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -17,6 +17,7 @@
 , libv4l
 , x264
 , curl
+, wayland
 , xorg
 , makeWrapper
 , pkg-config
@@ -67,6 +68,7 @@ in mkDerivation rec {
     qtx11extras
     qtsvg
     speex
+    wayland
     x264
     libvlc
     makeWrapper
diff --git a/pkgs/applications/video/obs-studio/obs-ndi.nix b/pkgs/applications/video/obs-studio/obs-ndi.nix
index d9867b1bb2d..b35398d65b5 100644
--- a/pkgs/applications/video/obs-studio/obs-ndi.nix
+++ b/pkgs/applications/video/obs-studio/obs-ndi.nix
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
     "-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api"
   ];
 
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "Network A/V plugin for OBS Studio";
     homepage = "https://github.com/Palakis/obs-ndi";
diff --git a/pkgs/applications/video/obs-studio/v4l2sink.nix b/pkgs/applications/video/obs-studio/v4l2sink.nix
index eb8e4186882..2716120682e 100644
--- a/pkgs/applications/video/obs-studio/v4l2sink.nix
+++ b/pkgs/applications/video/obs-studio/v4l2sink.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ qtbase obs-studio ];
 
+  dontWrapQtApps = true;
+
   patches = [
     # Fixes the segfault when stopping the plugin
     (fetchpatch {
diff --git a/pkgs/applications/video/openshot-qt/libopenshot.nix b/pkgs/applications/video/openshot-qt/libopenshot.nix
index 2070d05d980..169bd33b709 100644
--- a/pkgs/applications/video/openshot-qt/libopenshot.nix
+++ b/pkgs/applications/video/openshot-qt/libopenshot.nix
@@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
     ++ optional stdenv.isDarwin llvmPackages.openmp
   ;
 
+  dontWrapQtApps = true;
+
   LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
   "UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++";
 
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/qstopmotion/default.nix b/pkgs/applications/video/qstopmotion/default.nix
index 53b46ceeb07..9a5bb5eb462 100644
--- a/pkgs/applications/video/qstopmotion/default.nix
+++ b/pkgs/applications/video/qstopmotion/default.nix
@@ -24,11 +24,11 @@
 
 mkDerivation rec {
   pname = "qstopmotion";
-  version = "2.4.1";
+  version = "2.5.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${pname}/Version_${builtins.replaceStrings ["."] ["_"] version}/${pname}-${version}-Source.tar.gz";
-    sha256 = "03r6jxyq0bak2vsy2b78nk27m7fm96hnl8cx11l3l17704j4iglh";
+    sha256 = "sha256-jyBUyadkSuQKXOrr5XZ1jy6of1Qw8S2HPxuOrPc7RnE=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/video/quvi/tool.nix b/pkgs/applications/video/quvi/tool.nix
index 6718fc1dc36..87c8066a976 100644
--- a/pkgs/applications/video/quvi/tool.nix
+++ b/pkgs/applications/video/quvi/tool.nix
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1h52s265rp3af16dvq1xlscp2926jqap2l4ah94vrfchv6m1hffb";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ lua5 curl quvi_scripts libquvi glib makeWrapper ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+  buildInputs = [ lua5 curl quvi_scripts libquvi glib ];
   postInstall = ''
       wrapProgram $out/bin/quvi --set LUA_PATH "${lua5_sockets}/share/lua/${lua5.luaversion}/?.lua"
   '';
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index b8e07e9c3ef..24cb3769aac 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -25,13 +25,13 @@ assert lib.versionAtLeast mlt.version "6.24.0";
 
 mkDerivation rec {
   pname = "shotcut";
-  version = "21.01.29";
+  version = "21.02.27";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "0Q+63IRY4UbiYS+IMnn7hlr6w3IYtWynjBfTBvtWBMo=";
+    sha256 = "bcuJz27jDAB3OPEKq3xNgfv6C31UoMKosS4YIRZNMjM=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix
index a8d2aaaff0e..007ef4262ef 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/applications/video/smplayer/default.nix
@@ -1,26 +1,53 @@
-{ lib, mkDerivation, fetchurl, qmake, qtscript }:
+{ lib
+, stdenv
+, fetchurl
+, qmake
+, qtscript
+, wrapQtAppsHook
+}:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "smplayer";
-  version = "20.6.0";
+  version = "21.1.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0c59gfgm2ya8yb2nx7gy1zc0nrr4206213xy86y7jw0bk9mmjxmy";
+    hash = "sha256-Y0uq32XoQ8fpIJDScRfA7p3RYd6x1PWZSsYyAYYKf/c=";
   };
 
+  nativeBuildInputs = [ qmake wrapQtAppsHook ];
   buildInputs = [ qtscript ];
-  nativeBuildInputs = [ qmake ];
 
   dontUseQmakeConfigure = true;
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
 
-  meta = {
-    description = "A complete front-end for MPlayer";
-    longDescription = "Either mplayer or mpv should also be installed for smplayer to play medias";
+  meta = with lib; {
     homepage = "https://www.smplayer.info";
-    license = lib.licenses.gpl3Plus;
-    platforms = lib.platforms.linux;
+    description = "A complete front-end for MPlayer";
+    longDescription = ''
+      SMPlayer is a free media player for Windows and Linux with built-in codecs
+      that can play virtually all video and audio formats. It doesn't need any
+      external codecs. Just install SMPlayer and you'll be able to play all
+      formats without the hassle to find and install codec packs.
+
+      One of the most interesting features of SMPlayer: it remembers the
+      settings of all files you play. So you start to watch a movie but you have
+      to leave... don't worry, when you open that movie again it will be resumed
+      at the same point you left it, and with the same settings: audio track,
+      subtitles, volume...
+
+      SMPlayer is a graphical user interface (GUI) for the award-winning
+      MPlayer, which is capable of playing almost all known video and audio
+      formats. But apart from providing access for the most common and useful
+      options of MPlayer, SMPlayer adds other interesting features like the
+      possibility to play Youtube videos or download subtitles.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
+# TODO [ AndersonTorres ]: some form of wrapping mplayer/mpv around it
diff --git a/pkgs/applications/video/sub-batch/default.nix b/pkgs/applications/video/sub-batch/default.nix
index 070bcc90685..9cda6eb0a2b 100644
--- a/pkgs/applications/video/sub-batch/default.nix
+++ b/pkgs/applications/video/sub-batch/default.nix
@@ -1,21 +1,29 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchFromGitHub
 , rustPlatform
+, makeWrapper
+, alass
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sub-batch";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "kl";
     repo = pname;
-    # Upstream doesn't tag releases.
-    rev = "631bd6e2d931f8a8e12798f4b6460739a14bcfff";
-    sha256 = "sha256-424e40v2LBxlmgDKxvsT/iuUn/IKWPKMwih0cSQ5sFE=";
+    rev = "v${version}";
+    sha256 = "sha256-5fDnSmnnVB1RGrNrnmp40OGFF+OAhppnhOjVgnYxXr0=";
   };
 
-  cargoSha256 = "sha256-l+BTF9PGb8bG8QHhNCoBsrsVX8nlRjPlaea1ESFfMW0=";
+  cargoSha256 = "sha256-cj1htJcUPCeYbP0t15UcMv4WQAG7tUROb97v4rUeMvU=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/sub-batch" --prefix PATH : "${lib.makeBinPath [ alass ]}"
+  '';
 
   meta = with lib; {
     description = "Match and rename subtitle files to video files and perform other batch operations on subtitle files";
diff --git a/pkgs/applications/video/tartube/default.nix b/pkgs/applications/video/tartube/default.nix
index 3619d4ee5e3..69f777541a4 100644
--- a/pkgs/applications/video/tartube/default.nix
+++ b/pkgs/applications/video/tartube/default.nix
@@ -15,13 +15,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tartube";
-  version = "2.3.085";
+  version = "2.3.110";
 
   src = fetchFromGitHub {
     owner = "axcore";
     repo = "tartube";
     rev = "v${version}";
-    sha256 = "bkz64nj6748552ZMRcL/I1lUXGpZjaATUEqv3Kkphck=";
+    sha256 = "0sdbd2lsc4bvgkwi55arjwbzwmq05abfmv6vsrvz4gsdv8s8wha5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index f7989925960..adb7ba970e2 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
     libbluray dbus fribidi libvorbis libtheora speex lua5 libgcrypt libgpgerror
     libupnp libcaca libpulseaudio flac schroedinger libxml2 librsvg mpeg2dec
-    systemd gnutls avahi libcddb SDL SDL_image libmtp unzip taglib libarchive
+    systemd gnutls avahi libcddb SDL SDL_image libmtp taglib libarchive
     libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva
     xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms
     libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     ++ optional jackSupport libjack2
     ++ optionals chromecastSupport [ protobuf libmicrodns ];
 
-  nativeBuildInputs = [ autoreconfHook perl pkg-config removeReferencesTo ]
+  nativeBuildInputs = [ autoreconfHook perl pkg-config removeReferencesTo unzip ]
     ++ optionals withQt5 [ wrapQtAppsHook ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/video/webtorrent_desktop/default.nix b/pkgs/applications/video/webtorrent_desktop/default.nix
index ac3dd320d3a..7660edcc768 100644
--- a/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -1,6 +1,6 @@
 {
   alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
-  gdk-pixbuf, glib, gnome3, libX11, libXScrnSaver, libXcomposite, libXcursor,
+  gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor,
   libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
   libxcb, nspr, nss, lib, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core
 }:
@@ -19,7 +19,7 @@
     freetype
     gdk-pixbuf
     glib
-    gnome3.gtk
+    gtk3
     pango
     libuuid
     libX11
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/video/xscast/default.nix b/pkgs/applications/video/xscast/default.nix
index 49f5b43bb73..6501a399088 100644
--- a/pkgs/applications/video/xscast/default.nix
+++ b/pkgs/applications/video/xscast/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "0br27bq9bpglfdpv63h827bipgvhlh10liyhmhcxls4227kagz72";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/applications/virtualization/aqemu/default.nix b/pkgs/applications/virtualization/aqemu/default.nix
index 2d865f41818..13b27c7d6cc 100644
--- a/pkgs/applications/virtualization/aqemu/default.nix
+++ b/pkgs/applications/virtualization/aqemu/default.nix
@@ -22,5 +22,6 @@ mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ hrdinka ];
     platforms = with platforms; linux;
+    broken = true;
   };
 }
diff --git a/pkgs/applications/virtualization/catatonit/default.nix b/pkgs/applications/virtualization/catatonit/default.nix
new file mode 100644
index 00000000000..c44db31f50c
--- /dev/null
+++ b/pkgs/applications/virtualization/catatonit/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, glibc, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "catatonit";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "openSUSE";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "ciJ1MI7jr5P2PgxIykQ+BiwNUO8lQHGt0+U8CNbc5bI=";
+  };
+
+  patches = [
+    # Fix compilation with musl
+    (fetchpatch {
+      url = "https://github.com/openSUSE/catatonit/commit/75014b1c3099245b7d0f44f24d7f6dc4888a45fd.patch";
+      sha256 = "sha256-9VMNUT1U90ocjvE7EXYfLxuodDwTXXHYg89qqa5Jq0g=";
+    })
+  ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    readelf -d $out/bin/catatonit | grep 'There is no dynamic section in this file.'
+  '';
+
+  passthru.tests = { inherit (nixosTests) podman; };
+
+  meta = with lib; {
+    description = "A container init that is so simple it's effectively brain-dead";
+    homepage = "https://github.com/openSUSE/catatonit";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ erosennin ] ++ teams.podman.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/virtualization/charliecloud/default.nix b/pkgs/applications/virtualization/charliecloud/default.nix
index 9e866d7cf4d..3e9029cce0a 100644
--- a/pkgs/applications/virtualization/charliecloud/default.nix
+++ b/pkgs/applications/virtualization/charliecloud/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
 
-  version = "0.21";
+  version = "0.22";
   pname = "charliecloud";
 
   src = fetchFromGitHub {
     owner = "hpc";
     repo = "charliecloud";
     rev = "v${version}";
-    sha256 = "Y/tH6Znq//HBA/FHfIm2Wpppx6TiL7CqKtZFDc/XSNc=";
+    sha256 = "sha256-+9u7WRKAJ9F70+I68xNRck5Q22XzgLKTCnjGbIcsyW8=";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper ];
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch b/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
deleted file mode 100644
index 7a7378faa58..00000000000
--- a/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index e566ed25..a661a963 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -689,7 +689,7 @@ dependencies = [
-  "serde",
-  "serde_derive",
-  "serde_json",
-- "vfio-bindings 0.2.0 (git+https://github.com/rust-vmm/vfio-bindings)",
-+ "vfio-bindings",
-  "vfio-ioctls",
-  "vm-allocator",
-  "vm-device",
-@@ -1346,17 +1346,12 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
- [[package]]
- name = "vfio-bindings"
- version = "0.2.0"
--source = "git+https://github.com/rust-vmm/vfio-bindings#f08cbcbf4041c981441d9c036c49ebad5098ed1c"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
- dependencies = [
-  "vmm-sys-util",
- ]
- 
--[[package]]
--name = "vfio-bindings"
--version = "0.2.0"
--source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
--
- [[package]]
- name = "vfio-ioctls"
- version = "0.1.0"
-@@ -1366,7 +1361,7 @@ dependencies = [
-  "kvm-bindings",
-  "kvm-ioctls",
-  "log 0.4.8",
-- "vfio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vfio-bindings",
-  "vm-memory",
-  "vmm-sys-util",
- ]
-diff --git a/pci/Cargo.toml b/pci/Cargo.toml
-index 9c6955c7..4ecf8e6b 100644
---- a/pci/Cargo.toml
-+++ b/pci/Cargo.toml
-@@ -23,5 +23,5 @@ vm-memory = "0.2.1"
- vm-migration = { path = "../vm-migration" }
- 
- [dependencies.vfio-bindings]
--git = "https://github.com/rust-vmm/vfio-bindings"
-+version = "0.2.0"
- features = ["fam-wrappers"]
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index 32d5be13d3b..5a12be3afa6 100644
--- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -1,28 +1,27 @@
-{ lib, fetchFromGitHub, rustPlatform, pkg-config, openssl }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, dtc, openssl }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cloud-hypervisor";
-  version = "0.8.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "cloud-hypervisor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "h2aWWjycTm84TS89/vhqnAvwOqeeSDtvvCt+Is6I0eI=";
+    sha256 = "0pnfg6dzpz8v40cwg3dmlj52x8pblavv7mkczar814dwbk01y7vr";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
 
-  cargoPatches = [ ./cargo-lock-vendor-fix.patch ];
-  cargoSha256 = "fOIB+qVDqAAgQPW3bK2NfST24GzYJeRXgaMFXyNPcPQ=";
+  cargoSha256 = "0dbjds40znly11i0ssfv66w82ynxp00ixw1349m5ln9i9ms94sr4";
 
   meta = with lib; {
     homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
     description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM";
     changelog = "https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v${version}";
     license = with licenses; [ asl20 bsd3 ];
-    maintainers = with maintainers; [ offline ];
-    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ offline qyliss ];
+    platforms = [ "aarch64-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/virtualization/cntr/default.nix b/pkgs/applications/virtualization/cntr/default.nix
index 2283b45aee4..9b57be87e44 100644
--- a/pkgs/applications/virtualization/cntr/default.nix
+++ b/pkgs/applications/virtualization/cntr/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cntr";
-  version = "1.4.1";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "cntr";
     rev = version;
-    sha256 = "sha256-4ogyOKuz6702/sOQNvE+UP+cvQrPPU3VjL4b0FUfRNw=";
+    sha256 = "sha256-z+0bSxoLJTK4e5xS4CHZ2hNUI56Ci1gbWJsRcN6ZqZA=";
   };
 
-  cargoSha256 = "sha256-lblvun2T1qpFiowld77Ti2MFPzhs5pOWWRbErORXYCM=";
+  cargoSha256 = "sha256-o8o/ixjYdnezQZEp78brjmR2lvQbiwCJr4Y97tHiYbk=";
 
   meta = with lib; {
     description = "A container debugging tool based on FUSE";
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index e5df1c655d8..5e84b883b6e 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.0.26";
+  version = "2.0.27";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-q2lh02iZ7FDBPjtoKY5p3c6Vcn9Ey8DCMn/Oe7/74ug=";
+    sha256 = "sha256-LMvhSoKd652XVPzuId8Ortf0f08FUP1zCn06PgtRwkA=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -27,7 +27,9 @@ stdenv.mkDerivation rec {
   makeFlags = [ "bin/conmon" ];
 
   installPhase = ''
+    runHook preInstall
     install -D bin/conmon -t $out/bin
+    runHook postInstall
   '';
 
   passthru.tests = { inherit (nixosTests) cri-o podman; };
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index 695109fd8a4..8a4302de64f 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -10,13 +10,13 @@
 
 buildGoPackage rec {
   pname = "containerd";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "09xvhjg5f8h90w1y94kqqnqzhbhd62dcdd9wb9sdqakisjk6zrl0";
+    sha256 = "0qjbfj1dw6pykxhh8zahcxlgpyjzgnrngk5vjaf34akwyan8nrxb";
   };
 
   goPackagePath = "github.com/containerd/containerd";
@@ -40,13 +40,8 @@ buildGoPackage rec {
   installPhase = ''
     install -Dm555 bin/* -t $out/bin
     installManPage man/*.[1-9]
-  '';
-
-  # completion installed separately so it can be overridden in docker
-  # can be moved to installPhase when docker uses containerd >= 1.4
-  postInstall = ''
-    installShellFiles --bash contrib/autocomplete/ctr
-    installShellFiles --zsh --name _ctr contrib/autocomplete/zsh_autocomplete
+    installShellCompletion --bash contrib/autocomplete/ctr
+    installShellCompletion --zsh --name _ctr contrib/autocomplete/zsh_autocomplete
   '';
 
   passthru.tests = { inherit (nixosTests) docker; };
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 99505371507..d3a440fefc5 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;
 
@@ -41,10 +41,13 @@ buildGoModule rec {
 
   BUILDTAGS = "apparmor seccomp selinux containers_image_openpgp containers_image_ostree_stub";
   buildPhase = ''
+    runHook preBuild
     make binaries docs BUILDTAGS="$BUILDTAGS"
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 bin/* -t $out/bin
 
     for shell in bash fish zsh; do
@@ -52,6 +55,7 @@ buildGoModule rec {
     done
 
     installManPage docs/*.[1-9]
+    runHook postInstall
   '';
 
   passthru.tests = { inherit (nixosTests) cri-o; };
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 59e07530fbc..15ca7c9667f 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -12,6 +12,7 @@
 , nixosTests
 , criu
 , system
+, fetchpatch
 }:
 
 let
@@ -37,16 +38,24 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "0.17";
+  version = "0.18";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OdB7UXLG99ErbfSCvq87LxBy5EYkUvTfyQNG70RFbl4=";
+    sha256 = "sha256-VjMpfj2qUQdhqdnLpZsYigfo2sM7gNl0GrE4nitp13g=";
     fetchSubmodules = true;
   };
 
+  patches = [
+    # For 0.18 some tests switched to static builds, this was reverted after 0.18 was released
+    (fetchpatch {
+      url = "https://github.com/containers/crun/commit/d26579bfe56aa36dd522745d47a661ce8c70d4e7.patch";
+      sha256 = "1xmc0wj0j2xcg0915vxn0pplc4s94rpmw0s5g8cyf8dshfl283f9";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook go-md2man pkg-config python3 ];
 
   buildInputs = [ libcap libseccomp systemd yajl ]
diff --git a/pkgs/applications/virtualization/docker-compose/default.nix b/pkgs/applications/virtualization/docker-compose/default.nix
index 93f5f56ac55..233ee13ead8 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.6";
   pname = "docker-compose";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f148b590414915d029dad7551f4cdf0b03a774dc9baa674480217236d260cc1";
+    sha256 = "1d44906f7ab738ba2d1785130ed31b16111eee6dc5a1dbd7252091dae48c5281";
   };
 
   # lots of networking and other fails
@@ -21,12 +21,12 @@ buildPythonApplication rec {
   nativeBuildInputs = [ installShellFiles ];
   checkInputs = [ mock pytest nose ];
   propagatedBuildInputs = [
-    pyyaml backports_ssl_match_hostname colorama dockerpty docker
+    pyyaml colorama dockerpty docker
     ipaddress jsonschema requests six texttable websocket_client
     docopt cached-property paramiko distro python-dotenv
-  ] ++
-    lib.optional (pythonOlder "3.4") enum34 ++
-    lib.optional (pythonOlder "3.2") functools32;
+  ] ++ lib.optional (pythonOlder "3.7") backports_ssl_match_hostname
+  ++ lib.optional (pythonOlder "3.4") enum34
+  ++ lib.optional (pythonOlder "3.2") functools32;
 
   postPatch = ''
     # Remove upper bound on requires, see also
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index 207ebdf2211..a6f64444f87 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -1,11 +1,11 @@
-{ lib, callPackage }:
+{ lib, callPackage, fetchFromGitHub }:
 
 with lib;
 
 rec {
   dockerGen = {
       version, rev, sha256
-      , mobyRev, mobySha256
+      , moby-src
       , runcRev, runcSha256
       , containerdRev, containerdSha256
       , tiniRev, tiniSha256, buildxSupport ? false
@@ -13,7 +13,7 @@ rec {
       , stdenv, fetchFromGitHub, fetchpatch, buildGoPackage
       , makeWrapper, installShellFiles, pkg-config
       , go-md2man, go, containerd, runc, docker-proxy, tini, libtool
-      , sqlite, iproute, lvm2, systemd, docker-buildx
+      , sqlite, iproute2, lvm2, systemd, docker-buildx
       , btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git
       , procps, libseccomp
       , nixosTests
@@ -65,19 +65,14 @@ rec {
       inherit version;
       inherit docker-runc docker-containerd docker-proxy docker-tini;
 
-      src = fetchFromGitHub {
-        owner = "moby";
-        repo = "moby";
-        rev = mobyRev;
-        sha256 = mobySha256;
-      };
+      src = moby-src;
 
       goPackagePath = "github.com/docker/docker";
 
       nativeBuildInputs = [ makeWrapper pkg-config go-md2man go libtool installShellFiles ];
       buildInputs = [ sqlite lvm2 btrfs-progs systemd libseccomp ];
 
-      extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps util-linux git ]);
+      extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]);
 
       buildPhase = ''
         export GOCACHE="$TMPDIR/go-cache"
@@ -211,6 +206,9 @@ rec {
       maintainers = with maintainers; [ offline tailhook vdemeester periklis ];
       platforms = with platforms; linux ++ darwin;
     };
+
+    # Exposed for tarsum build on non-linux systems (build-support/docker/default.nix)
+    inherit moby-src;
   });
 
   # Get revisions from
@@ -219,8 +217,12 @@ rec {
     version = "20.10.2";
     rev = "v${version}";
     sha256 = "0z0hpm5hrqh7p8my8lmiwpym2shs48my6p0zv2cc34wym0hcly51";
-    mobyRev = "v${version}";
-    mobySha256 = "0c2zycpnwj4kh8m8xckv1raj3fx07q9bfaj46rr85jihm4p2dp5w";
+    moby-src = fetchFromGitHub {
+      owner = "moby";
+      repo = "moby";
+      rev = "v${version}";
+      sha256 = "0c2zycpnwj4kh8m8xckv1raj3fx07q9bfaj46rr85jihm4p2dp5w";
+    };
     runcRev = "ff819c7e9184c13b7c2607fe6c30ae19403a7aff"; # v1.0.0-rc92
     runcSha256 = "0r4zbxbs03xr639r7848282j1ybhibfdhnxyap9p76j5w8ixms94";
     containerdRev = "269548fa27e0089a8b8278fc4fc781d7f65a939b"; # v1.4.3
diff --git a/pkgs/applications/virtualization/docker/gc.nix b/pkgs/applications/virtualization/docker/gc.nix
index f7bd5a4b069..52ca54501d7 100644
--- a/pkgs/applications/virtualization/docker/gc.nix
+++ b/pkgs/applications/virtualization/docker/gc.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "07wf9yn0f771xkm3x12946x5rp83hxjkd70xgfgy35zvj27wskzm";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/virtualization/gvisor/default.nix b/pkgs/applications/virtualization/gvisor/default.nix
index 56760c293eb..e6b83286c00 100644
--- a/pkgs/applications/virtualization/gvisor/default.nix
+++ b/pkgs/applications/virtualization/gvisor/default.nix
@@ -5,7 +5,7 @@
 , git
 , glibcLocales
 , go
-, iproute
+, iproute2
 , iptables
 , makeWrapper
 , procps
@@ -87,7 +87,7 @@ in buildBazelPackage rec {
 
       # Needed for the 'runsc do' subcomand
       wrapProgram $out/bin/runsc \
-        --prefix PATH : ${lib.makeBinPath [ iproute iptables procps ]}
+        --prefix PATH : ${lib.makeBinPath [ iproute2 iptables procps ]}
     '';
   };
 
diff --git a/pkgs/applications/virtualization/libnvidia-container/default.nix b/pkgs/applications/virtualization/libnvidia-container/default.nix
index 3ce493c6178..dd16fb4d25a 100644
--- a/pkgs/applications/virtualization/libnvidia-container/default.nix
+++ b/pkgs/applications/virtualization/libnvidia-container/default.nix
@@ -20,13 +20,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libnvidia-container";
-  version = "1.3.1";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0j6b8z9x9hrrs4xp11zyjjd7kyl7fzcicpiis8k1qb1q2afnqsrq";
+    sha256 = "0rr6ngkzqgw250nilv36fz7fhsqxcgl4nhld2hnr0sr4ngirqcjp";
   };
 
   patches = [
diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index 1afe994977c..e56293dcc64 100644
--- a/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
   fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps, libtirpc, rpcsvc-proto,
   libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
-  pkg-config, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute, dbus, systemd, which,
+  pkg-config, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute2, dbus, systemd, which,
   withX ? true }:
 
 stdenv.mkDerivation rec {
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram "$out/etc/vmware-tools/scripts/vmware/network" \
-      --prefix PATH ':' "${lib.makeBinPath [ iproute dbus systemd which ]}"
+      --prefix PATH ':' "${lib.makeBinPath [ iproute2 dbus systemd which ]}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 0f212aedfa6..b64fc82f532 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -16,13 +16,13 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    sha256 = "1dsriw2vjzjaddxdhl3wbj2ppnsyi29f4bjwc8lzyz20wfwx4ay4";
+    sha256 = "sha256-Cql9ikk0lo/LeWNykEJSKgfGnBSUU5vOh/zUIEvMapk=";
   };
 
   patches = [
@@ -48,14 +48,18 @@ buildGoModule rec {
   ];
 
   buildPhase = ''
+    runHook preBuild
     patchShebangs .
     ${if stdenv.isDarwin
       then "make podman-remote"
       else "make podman"}
     make docs
+    runHook postBuild
   '';
 
-  installPhase = lib.optionalString stdenv.isDarwin ''
+  installPhase = ''
+    runHook preInstall
+  '' + lib.optionalString stdenv.isDarwin ''
     mv bin/{podman-remote,podman}
   '' + ''
     install -Dm555 bin/podman $out/bin/podman
@@ -66,6 +70,8 @@ buildGoModule rec {
   '' + lib.optionalString stdenv.isLinux ''
     install -Dm644 contrib/tmpfile/podman.conf -t $out/lib/tmpfiles.d
     install -Dm644 contrib/systemd/system/podman.{socket,service} -t $out/lib/systemd/system
+  '' + ''
+    runHook postInstall
   '';
 
   passthru.tests = { inherit (nixosTests) podman; };
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index dd1a2da0171..c04d3b33945 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -77,7 +77,6 @@ stdenv.mkDerivation rec {
     ++ optionals libiscsiSupport [ libiscsi ]
     ++ optionals smbdSupport [ samba ];
 
-  enableParallelBuilding = true;
   dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
 
   outputs = [ "out" "ga" ];
@@ -102,7 +101,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  hardeningDisable = [ "stackprotector" ];
+  # Otherwise tries to ensure /var/run exists.
+  postPatch = ''
+    sed -i "/install_subdir('run', install_dir: get_option('localstatedir'))/d" \
+        qga/meson.build
+  '';
 
   preConfigure = ''
     unset CPP # intereferes with dependency calculation
@@ -122,6 +125,7 @@ stdenv.mkDerivation rec {
       "--enable-docs"
       "--enable-tools"
       "--enable-guest-agent"
+      "--localstatedir=/var"
       "--sysconfdir=/etc"
     ]
     ++ optional numaSupport "--enable-numa"
@@ -147,7 +151,7 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     # the .desktop is both invalid and pointless
-    test -e $out/share/applications/qemu.desktop && rm -f $out/share/applications/qemu.desktop
+    rm -f $out/share/applications/qemu.desktop
 
     # copy qemu-ga (guest agent) to separate output
     mkdir -p $ga/bin
diff --git a/pkgs/applications/virtualization/qtemu/default.nix b/pkgs/applications/virtualization/qtemu/default.nix
index 3a5f26bfcc8..9568a0bb695 100644
--- a/pkgs/applications/virtualization/qtemu/default.nix
+++ b/pkgs/applications/virtualization/qtemu/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitLab, pkg-config, qmake, qtbase, qemu, makeWrapper }:
+{ lib, mkDerivation, fetchFromGitLab, pkg-config, qmake, qtbase, qemu }:
 
 mkDerivation rec {
   pname = "qtemu";
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index f9fbec9f4ba..152cbf6199b 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -35,17 +35,21 @@ buildGoPackage rec {
   makeFlags = [ "BUILDTAGS+=seccomp" ];
 
   buildPhase = ''
+    runHook preBuild
     cd go/src/${goPackagePath}
     patchShebangs .
     make ${toString makeFlags} runc man
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 runc $out/bin/runc
     installManPage man/*/*.[1-9]
     wrapProgram $out/bin/runc \
       --prefix PATH : ${lib.makeBinPath [ procps ]} \
       --prefix PATH : /run/current-system/systemd/bin
+    runHook postInstall
   '';
 
   passthru.tests = { inherit (nixosTests) cri-o docker podman; };
diff --git a/pkgs/applications/virtualization/seabios/default.nix b/pkgs/applications/virtualization/seabios/default.nix
index f97f13dab2a..42e1eaf56d4 100644
--- a/pkgs/applications/virtualization/seabios/default.nix
+++ b/pkgs/applications/virtualization/seabios/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, iasl, python }:
+{ lib, stdenv, fetchurl, iasl, python3 }:
 
 stdenv.mkDerivation rec {
 
@@ -10,7 +10,11 @@ stdenv.mkDerivation rec {
     sha256 = "1zc1brgafbbf5hmdr1qc1p859cabpz73l8sklq83xa4sn9icqw7b";
   };
 
-  buildInputs = [ iasl python ];
+  nativeBuildInputs = [ python3 ];
+
+  buildInputs = [ iasl ];
+
+  strictDeps = true;
 
   hardeningDisable = [ "pic" "stackprotector" "fortify" ];
 
diff --git a/pkgs/applications/virtualization/singularity/default.nix b/pkgs/applications/virtualization/singularity/default.nix
index 3bc2df19d1d..28e28fa591a 100644
--- a/pkgs/applications/virtualization/singularity/default.nix
+++ b/pkgs/applications/virtualization/singularity/default.nix
@@ -5,7 +5,6 @@
 , openssl
 , libuuid
 , coreutils
-, go
 , which
 , makeWrapper
 , cryptsetup
@@ -16,11 +15,11 @@ with lib;
 
 buildGoPackage rec {
   pname = "singularity";
-  version = "3.7.1";
+  version = "3.7.2";
 
   src = fetchurl {
     url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
-    sha256 = "sha256-gtLGUGNWAZXsNFUZMb48MluV6OIAnpJ1X9farTRuCDw=";
+    sha256 = "sha256-NpFiIuJvuTRATwdm4P82jtrDbX/DHKVx9fYJRmYJBms=";
   };
 
   goPackagePath = "github.com/sylabs/singularity";
diff --git a/pkgs/applications/virtualization/spike/default.nix b/pkgs/applications/virtualization/spike/default.nix
index 12dfc713fd2..054918dabf1 100644
--- a/pkgs/applications/virtualization/spike/default.nix
+++ b/pkgs/applications/virtualization/spike/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, dtc, nixosTests }:
+{ lib, stdenv, fetchgit, dtc, nixosTests, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "spike";
@@ -13,7 +13,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ dtc ];
   enableParallelBuilding = true;
 
-  patchPhase = ''
+  patches = [
+    # Add missing headers to fix build.
+    (fetchpatch {
+      url = "https://github.com/riscv/riscv-isa-sim/commit/b3855682c2d744c613d2ffd6b53e3f021ecea4f3.patch";
+      sha256 = "1v1mpp4iddf5n4h3kmj65g075m7xc31bxww7gldnmgl607ma7cnl";
+    })
+  ];
+
+  postPatch = ''
     patchShebangs scripts/*.sh
     patchShebangs tests/ebreak.py
   '';
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 360e6e36c1a..fe19f1f4a3e 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -2,7 +2,7 @@
 , libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL
 , libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
 , qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
-, alsaLib, curl, libvpx, nettools, dbus, substituteAll, fetchpatch
+, alsaLib, curl, libvpx, nettools, dbus, substituteAll
 # If open-watcom-bin is not passed, VirtualBox will fall back to use
 # the shipped alternative sources (assembly).
 , open-watcom-bin ? null
@@ -103,6 +103,8 @@ in stdenv.mkDerivation {
       qtPluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}:${qtwayland.bin}/${qtbase.qtPluginPrefix}";
     })
   ++ [
+    # NOTE: the patch for linux 5.11 can be removed when the next version of VirtualBox is released
+    ./linux-5-11.patch
     ./qtx11extras.patch
   ];
 
diff --git a/pkgs/applications/virtualization/virtualbox/linux-5-11.patch b/pkgs/applications/virtualization/virtualbox/linux-5-11.patch
new file mode 100644
index 00000000000..66b70bf0d97
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/linux-5-11.patch
@@ -0,0 +1,12 @@
+diff --git a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+index 7033b45..c8178a6 100644
+--- a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
++++ b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+@@ -39,6 +39,7 @@
+ #endif
+ #include <linux/netdevice.h>
+ #include <linux/etherdevice.h>
++#include <linux/ethtool.h>
+ #include <linux/rtnetlink.h>
+ #include <linux/miscdevice.h>
+ #include <linux/inetdevice.h>
diff --git a/pkgs/applications/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix
index b671c1f6fa4..ea3b87b47e4 100644
--- a/pkgs/applications/virtualization/x11docker/default.nix
+++ b/pkgs/applications/virtualization/x11docker/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute2 }:
 stdenv.mkDerivation rec {
   pname = "x11docker";
   version = "6.6.2";
@@ -16,14 +16,14 @@ stdenv.mkDerivation rec {
   installPhase = ''
     install -D x11docker "$out/bin/x11docker";
     wrapProgram "$out/bin/x11docker" \
-      --prefix PATH : "${lib.makeBinPath [ getopt gnugrep gawk ps mount iproute nx-libs xorg.xdpyinfo xorg.xhost xorg.xinit ]}"
+      --prefix PATH : "${lib.makeBinPath [ getopt gnugrep gawk ps mount iproute2 nx-libs xorg.xdpyinfo xorg.xhost xorg.xinit ]}"
   '';
 
   meta = {
     description = "Run graphical applications with Docker";
     homepage = "https://github.com/mviereck/x11docker";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ jD91mZM2 ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/virtualization/xen/generic.nix b/pkgs/applications/virtualization/xen/generic.nix
index 5019ce23282..3d0ff3a6f33 100644
--- a/pkgs/applications/virtualization/xen/generic.nix
+++ b/pkgs/applications/virtualization/xen/generic.nix
@@ -13,7 +13,7 @@ config:
 
 # Scripts
 , coreutils, gawk, gnused, gnugrep, diffutils, multipath-tools
-, iproute, inetutils, iptables, bridge-utils, openvswitch, nbd, drbd
+, iproute2, inetutils, iptables, bridge-utils, openvswitch, nbd, drbd
 , lvm2, util-linux, procps, systemd
 
 # Documentation
@@ -31,7 +31,7 @@ let
   scriptEnvPath = concatMapStringsSep ":" (x: "${x}/bin") [
     which perl
     coreutils gawk gnused gnugrep diffutils util-linux multipath-tools
-    iproute inetutils iptables bridge-utils openvswitch nbd drbd
+    iproute2 inetutils iptables bridge-utils openvswitch nbd drbd
   ];
 
   withXenfiles = f: concatStringsSep "\n" (mapAttrsToList f config.xenfiles);
diff --git a/pkgs/applications/window-managers/bspwm/unstable.nix b/pkgs/applications/window-managers/bspwm/unstable.nix
deleted file mode 100644
index 93718448340..00000000000
--- a/pkgs/applications/window-managers/bspwm/unstable.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchFromGitHub, libxcb, libXinerama, xcbutil, xcbutilkeysyms, xcbutilwm }:
-
-stdenv.mkDerivation {
-  name = "bspwm-unstable-2016-09-30";
-
-
-  src = fetchFromGitHub {
-    owner   = "baskerville";
-    repo    = "bspwm";
-    rev     = "8664c007e44de162c1597fd7e163635b274fb747";
-    sha256  = "0clvpz32z38i8kr10hqlifa661szpfn93c63m2aq2h4dwmr44slz";
-  };
-
-  buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
-
-  buildPhase = ''
-    make PREFIX=$out
-  '';
-
-  installPhase = ''
-    make PREFIX=$out install
-  '';
-
-  meta = {
-    description = "A tiling window manager based on binary space partitioning (git version)";
-    homepage = "https://github.com/baskerville/bspwm";
-    maintainers = [ lib.maintainers.meisternu lib.maintainers.epitrochoid ];
-    license = lib.licenses.bsd2;
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix
index a4e5d7f7028..93ac815346e 100644
--- a/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/pkgs/applications/window-managers/cagebreak/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cagebreak";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "project-repo";
     repo = "cagebreak";
     rev = version;
-    hash = "sha256-P6zBVQEv+fKdverNIXhoEavu51uGKbSHx3Sh5FWsc2E=";
+    hash = "sha256-F7fqDVbJS6pVgmj6C1/l9PAaz5yzcYpaq6oc6a6v/Qk=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dxwayland=${lib.boolToString withXwayland}"
     "-Dversion_override=${version}"
+    "-Dman-pages=true"
   ];
 
   postInstall = ''
diff --git a/pkgs/applications/window-managers/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix
index 69c9cc1c37c..24c59508157 100644
--- a/pkgs/applications/window-managers/cwm/default.nix
+++ b/pkgs/applications/window-managers/cwm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, yacc, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, bison, pkg-config }:
 
 stdenv.mkDerivation rec {
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libX11 libXinerama libXrandr libXft yacc ];
+  buildInputs = [ libX11 libXinerama libXrandr libXft bison ];
 
   prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
 
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/applications/window-managers/dwm/dwm-status.nix b/pkgs/applications/window-managers/dwm/dwm-status.nix
index d419b0ebe3a..e32cd38ec2d 100644
--- a/pkgs/applications/window-managers/dwm/dwm-status.nix
+++ b/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -1,10 +1,10 @@
 { lib, rustPlatform, fetchFromGitHub, dbus, gdk-pixbuf, libnotify, makeWrapper, pkg-config, xorg
 , enableAlsaUtils ? true, alsaUtils, coreutils
-, enableNetwork ? true, dnsutils, iproute, wirelesstools }:
+, enableNetwork ? true, dnsutils, iproute2, wirelesstools }:
 
 let
   bins = lib.optionals enableAlsaUtils [ alsaUtils coreutils ]
-    ++ lib.optionals enableNetwork [ dnsutils iproute wirelesstools ];
+    ++ lib.optionals enableNetwork [ dnsutils iproute2 wirelesstools ];
 in
 
 rustPlatform.buildRustPackage rec {
diff --git a/pkgs/applications/window-managers/herbstluftwm/default.nix b/pkgs/applications/window-managers/herbstluftwm/default.nix
index ad45f01915d..ce0b40c0bb7 100644
--- a/pkgs/applications/window-managers/herbstluftwm/default.nix
+++ b/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -1,44 +1,42 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, asciidoc
+{ lib, stdenv, fetchurl, cmake, pkg-config, python3, libX11, libXext, libXinerama, libXrandr, libXft, freetype, asciidoc
 , xdotool, xorgserver, xsetroot, xterm, runtimeShell
 , nixosTests }:
 
-# Doc generation is disabled by default when cross compiling because asciidoc
-# dependency is broken when cross compiling for now
-
-let
-  cross = stdenv.buildPlatform != stdenv.targetPlatform;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "herbstluftwm";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchurl {
     url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
-    sha256 = "0r4qaklv97qcq8p0pnz4f2zqg69vfai6c2qi1ydi2kz24xqjf5hy";
+    sha256 = "0avfhr68f6fjnafjdcyxcx7dkg38f2nadmhpj971qyqzfq2f6i38";
   };
 
   outputs = [
     "out"
-    "doc" # share/doc exists with examples even without generated html documentation
-  ] ++ lib.optionals (!cross) [
+    "doc"
     "man"
   ];
 
   cmakeFlags = [
     "-DCMAKE_INSTALL_SYSCONF_PREFIX=${placeholder "out"}/etc"
-  ] ++ lib.optional cross "-DWITH_DOCUMENTATION=OFF";
+  ];
 
   nativeBuildInputs = [
     cmake
     pkg-config
-    python3
-  ] ++ lib.optional (!cross) asciidoc;
+  ];
+
+  depsBuildBuild = [
+    asciidoc
+  ];
 
   buildInputs = [
     libX11
     libXext
     libXinerama
     libXrandr
+    libXft
+    freetype
   ];
 
   patches = [
@@ -75,6 +73,9 @@ in stdenv.mkDerivation rec {
   '';
 
   pytestFlagsArray = [ "../tests" ];
+  disabledTests = [
+    "test_title_different_letters_are_drawn"
+  ];
 
   passthru = {
     tests.herbstluftwm = nixosTests.herbstluftwm;
diff --git a/pkgs/applications/window-managers/i3/auto-layout.nix b/pkgs/applications/window-managers/i3/auto-layout.nix
new file mode 100644
index 00000000000..d24715aa980
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/auto-layout.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "i3-auto-layout";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "chmln";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ps08lga6qkgc8cgf5cx2lgwlqcnd2yazphh9xd2fznnzrllfxxz";
+  };
+
+  cargoSha256 = "1ch5mh515rlqmr65x96xcvrx6iaigqgjxc7sbwbznzkc5kmvwhc0";
+
+  # Currently no tests are implemented, so we avoid building the package twice
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automatic, optimal tiling for i3wm";
+    homepage = "https://github.com/chmln/i3-auto-layout";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mephistophiles ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/i3/blocks-gaps.nix b/pkgs/applications/window-managers/i3/blocks-gaps.nix
index 9c97c72ad5d..df774aa417f 100644
--- a/pkgs/applications/window-managers/i3/blocks-gaps.nix
+++ b/pkgs/applications/window-managers/i3/blocks-gaps.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, lib, stdenv, perl, makeWrapper
-, iproute, acpi, sysstat, alsaUtils
+, iproute2, acpi, sysstat, alsaUtils
 , scripts ? [ "bandwidth" "battery" "cpu_usage" "disk" "iface"
               "load_average" "memory" "volume" "wifi" ]
 }:
@@ -30,13 +30,13 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     wrapProgram $out/libexec/i3blocks/bandwidth \
-      --prefix PATH : ${makeBinPath (optional (elem "bandwidth" scripts) iproute)}
+      --prefix PATH : ${makeBinPath (optional (elem "bandwidth" scripts) iproute2)}
     wrapProgram $out/libexec/i3blocks/battery \
       --prefix PATH : ${makeBinPath (optional (elem "battery" scripts) acpi)}
     wrapProgram $out/libexec/i3blocks/cpu_usage \
       --prefix PATH : ${makeBinPath (optional (elem "cpu_usage" scripts) sysstat)}
     wrapProgram $out/libexec/i3blocks/iface \
-      --prefix PATH : ${makeBinPath (optional (elem "iface" scripts) iproute)}
+      --prefix PATH : ${makeBinPath (optional (elem "iface" scripts) iproute2)}
     wrapProgram $out/libexec/i3blocks/volume \
       --prefix PATH : ${makeBinPath (optional (elem "volume" scripts) alsaUtils)}
   '';
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index c918a3b5d8c..305c1d728f3 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "i3";
-  version = "4.19.1";
+  version = "4.19.2";
 
   src = fetchurl {
     url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
-    sha256 = "sha256-IoTIEvxongM42P6b4LjRVS5Uj8Fo0WX3lbJr9JfCK0c=";
+    sha256 = "sha256-im7hd2idzyKWTSC2CTAU7k+gQZNF0/1RXVUS2ZgLsnk=";
   };
 
   nativeBuildInputs = [ pkg-config makeWrapper meson ninja installShellFiles ];
diff --git a/pkgs/applications/window-managers/i3/i3-ratiosplit.nix b/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
new file mode 100644
index 00000000000..35751da8172
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "i3-ratiosplit";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "333fred";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yfmr5zk2c2il9d31yjjbr48sqgcq6hp4a99hl5mjm2ajyhy5bz3";
+  };
+
+  cargoSha256 = "0d5qd1wid5l1pl3ckrlfgdb980myi5gxcir39caywb9pkbnfndz6";
+
+  # Currently no tests are implemented, so we avoid building the package twice
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Resize newly created windows";
+    homepage = "https://github.com/333fred/i3-ratiosplit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ svrana ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix
index 6f22070dbc8..3581e474943 100644
--- a/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/pkgs/applications/window-managers/i3/lock-color.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.13.c.1";
+  version = "2.13.c.2";
   pname = "i3lock-color";
 
   src = fetchFromGitHub {
     owner = "PandorasFox";
     repo = "i3lock-color";
     rev = version;
-    sha256 = "sha256-E+ejc26eyCJ0PnMpDgQrouaBIaUH0SWlzB08fQs8lDw=";
+    sha256 = "sha256-cMj1uB2Hf7v5Rukw9c5YeUmwbdTn1+PV13bUaOWzBp0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index be7e88a2501..88d035bce66 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -6,25 +6,26 @@
 , dbus
 , libpulseaudio
 , notmuch
+, openssl
 , ethtool
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.14.3";
+  version = "0.14.7";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1k9dgmd4wz9950kr35da31rhph43gmvg8dif7hg1xw41xch6bi60";
+    sha256 = "1ndqh4bzwim32n8psgsgdd47xmlb45rhvcwla1wm506byb21nk4c";
   };
 
-  cargoSha256 = "0qqkcgl9iz4kxl1a2vv2p7vy7wxn970y28jynf3n7hfp16i3liy2";
+  cargoSha256 = "098dzwqwbhcyswm73m880z0w03i7xrq56x79vfyvacw4k27q2zm9";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
-  buildInputs = [ dbus libpulseaudio notmuch ];
+  buildInputs = [ dbus libpulseaudio notmuch openssl ];
 
   cargoBuildFlags = [
     "--features=notmuch"
diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix
index 571c13e9461..8f1a920296a 100644
--- a/pkgs/applications/window-managers/icewm/default.nix
+++ b/pkgs/applications/window-managers/icewm/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , cmake
 , pkg-config
-, perl
 , asciidoc
 , expat
 , fontconfig
@@ -34,21 +34,26 @@
 , libxcb
 , mkfontdir
 , pcre
+, perl
 }:
 
 stdenv.mkDerivation rec {
   pname = "icewm";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner  = "bbidulock";
     repo = pname;
     rev = version;
-    sha256 = "sha256-n9mLD1WrHsO9W1rxopFQENxQEHp/sxuixV3PxLp2vOY=";
+    hash = "sha256-STM8t311lf0xIqs2Onmwg48xgE7V9VZrUfJrUzYRxL4=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config perl asciidoc ];
-
+  nativeBuildInputs = [
+    asciidoc
+    cmake
+    perl
+    pkg-config
+  ];
   buildInputs = [
     expat
     fontconfig
@@ -90,6 +95,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "https://www.ice-wm.org/";
     description = "A simple, lightweight X window manager";
     longDescription = ''
       IceWM is a window manager for the X Window System. The goal of IceWM is
@@ -104,8 +110,7 @@ stdenv.mkDerivation rec {
       includes an optional external background wallpaper manager with
       transparency support, a simple session manager and a system tray.
     '';
-    homepage = "https://www.ice-wm.org/";
-    license = licenses.lgpl2;
+    license = licenses.lgpl2Only;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix
index 72170401d79..bab0439bf8b 100644
--- a/pkgs/applications/window-managers/leftwm/default.nix
+++ b/pkgs/applications/window-managers/leftwm/default.nix
@@ -17,7 +17,8 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-j57LHPU3U3ipUGQDrZ8KCuELOVJ3BxhLXsJePOO6rTM=";
 
-  buildInputs = [ makeWrapper libX11 libXinerama ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ libX11 libXinerama ];
 
   postInstall = ''
     wrapProgram $out/bin/leftwm --prefix LD_LIBRARY_PATH : "${rpath}"
@@ -31,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mschneider ];
+    changelog = "https://github.com/leftwm/leftwm/blob/${version}/CHANGELOG";
   };
 }
diff --git a/pkgs/applications/window-managers/sawfish/default.nix b/pkgs/applications/window-managers/sawfish/default.nix
index 7615c6c4bd8..cb76f0c465c 100644
--- a/pkgs/applications/window-managers/sawfish/default.nix
+++ b/pkgs/applications/window-managers/sawfish/default.nix
@@ -1,20 +1,23 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
-, pkg-config
-, which
 , autoreconfHook
-, rep-gtk
-, pango
 , gdk-pixbuf-xlib
-, imlib
 , gettext
-, texinfo
+, gtk2
+, imlib
+, libICE
+, libSM
 , libXinerama
 , libXrandr
 , libXtst
-, libICE
-, libSM
+, librep
 , makeWrapper
+, pango
+, pkg-config
+, rep-gtk
+, texinfo
+, which
 }:
 
 stdenv.mkDerivation rec {
@@ -26,20 +29,42 @@ stdenv.mkDerivation rec {
     sha256 = "18p8srqqj9vjffg13qhspfz2gr1h4vfs10qzlv89g76r289iam31";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ which
-    rep-gtk pango gdk-pixbuf-xlib imlib gettext texinfo
-    libXinerama libXrandr libXtst libICE libSM
-    makeWrapper ];
+  nativeBuildInputs = [
+    autoreconfHook
+    gettext
+    librep
+    makeWrapper
+    pkg-config
+    texinfo
+    which
+  ];
+  buildInputs = [
+    gdk-pixbuf-xlib
+    gtk2
+    imlib
+    libICE
+    libSM
+    libXinerama
+    libXrandr
+    libXtst
+    librep
+    pango
+    rep-gtk
+  ];
 
-  patchPhase = ''
+  postPatch = ''
     sed -e 's|REP_DL_LOAD_PATH=|REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):|g' -i Makedefs.in
     sed -e 's|$(repexecdir)|$(libdir)/rep|g' -i src/Makefile.in
   '';
 
+  strictDeps = true;
+
   postInstall = ''
-    for i in $out/lib/sawfish/sawfish-menu $out/bin/sawfish-about \
-             $out/bin/sawfish-client $out/bin/sawfish-config $out/bin/sawfish; do
+    for i in $out/lib/sawfish/sawfish-menu \
+             $out/bin/sawfish-about \
+             $out/bin/sawfish-client \
+             $out/bin/sawfish-config \
+             $out/bin/sawfish; do
       wrapProgram $i \
         --prefix REP_DL_LOAD_PATH : "$out/lib/rep" \
         --set REP_LOAD_PATH "$out/share/sawfish/lisp"
@@ -47,16 +72,17 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "http://sawfish.tuxfamily.org/";
     description = "An extensible, Lisp-based window manager";
     longDescription = ''
-      Sawfish is an extensible window manager using a Lisp-based scripting language.
-      Its policy is very minimal compared to most window managers. Its aim is simply
-      to manage windows in the most flexible and attractive manner possible.
-      All high-level WM functions are implemented in Lisp for future extensibility
-      or redefinition.
+      Sawfish is an extensible window manager using a Lisp-based scripting
+      language. Its policy is very minimal compared to most window managers. Its
+      aim is simply to manage windows in the most flexible and attractive manner
+      possible. All high-level WM functions are implemented in Lisp for future
+      extensibility or redefinition.
     '';
-    homepage = "https://sawfish.fandom.com/wiki/Main_Page";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.AndersonTorres ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/window-managers/wayfire/wcm.nix b/pkgs/applications/window-managers/wayfire/wcm.nix
index d6ac6aeb84e..9d524019ad5 100644
--- a/pkgs/applications/window-managers/wayfire/wcm.nix
+++ b/pkgs/applications/window-managers/wayfire/wcm.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, wrapGAppsHook
-, gnome3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell
+, gtk3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config wayland wrapGAppsHook ];
   buildInputs = [
-    gnome3.gtk libevdev libxml2 wayfire wayland
+    gtk3 libevdev libxml2 wayfire wayland
     wayland-protocols wf-config wf-shell
   ];
 
diff --git a/pkgs/applications/window-managers/wayfire/wf-shell.nix b/pkgs/applications/window-managers/wayfire/wf-shell.nix
index 3948e9a32ab..cc99e79fca8 100644
--- a/pkgs/applications/window-managers/wayfire/wf-shell.nix
+++ b/pkgs/applications/window-managers/wayfire/wf-shell.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, git
-, alsaLib, gnome3, gtk-layer-shell, pulseaudio, wayfire, wf-config
+, alsaLib, gtkmm3, gtk-layer-shell, pulseaudio, wayfire, wf-config
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config wayland ];
   buildInputs = [
-    alsaLib gnome3.gtkmm gtk-layer-shell pulseaudio wayfire wf-config
+    alsaLib gtkmm3 gtk-layer-shell pulseaudio wayfire wf-config
   ];
 
   mesonFlags = [ "--sysconfdir" "/etc" ];
diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix b/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
index e427a85d038..c201c55dcea 100644
--- a/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
+++ b/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
       --replace "/usr/bin/install" "install"
   '';
 
-  makeFlags = [ "CC=cc" ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   preInstall = ''
     runHook preInstall
diff --git a/pkgs/applications/window-managers/wmii-hg/default.nix b/pkgs/applications/window-managers/wmii-hg/default.nix
index b78b7c01570..0acad8edbe5 100644
--- a/pkgs/applications/window-managers/wmii-hg/default.nix
+++ b/pkgs/applications/window-managers/wmii-hg/default.nix
@@ -29,8 +29,8 @@ stdenv.mkDerivation rec {
     EOF
   '';
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ unzip libixp_hg txt2tags dash python which
+  nativeBuildInputs = [ pkg-config unzip ];
+  buildInputs = [ libixp_hg txt2tags dash python which
                   libX11 libXrender libXext libXinerama libXrandr libXft ];
 
   # For some reason including mercurial in buildInputs did not help
diff --git a/pkgs/applications/window-managers/xmonad/log-applet/default.nix b/pkgs/applications/window-managers/xmonad/log-applet/default.nix
index ebabcf196d5..830242667db 100644
--- a/pkgs/applications/window-managers/xmonad/log-applet/default.nix
+++ b/pkgs/applications/window-managers/xmonad/log-applet/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/kalj/xmonad-log-applet";
     license = licenses.bsd3;
-    broken = desktopSupport == "gnomeflashback";
+    broken = desktopSupport == "gnomeflashback" || desktopSupport == "xfce4";
     description = "An applet that will display XMonad log information (${desktopSupport} version)";
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];