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/audio/ashuffle/default.nix26
-rw-r--r--pkgs/applications/audio/csound/default.nix4
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/gspeech/default.nix8
-rw-r--r--pkgs/applications/audio/lv2-cpp-tools/default.nix28
-rw-r--r--pkgs/applications/audio/parlatype/default.nix4
-rw-r--r--pkgs/applications/audio/picard/default.nix4
-rw-r--r--pkgs/applications/audio/snd/default.nix4
-rw-r--r--pkgs/applications/audio/talentedhack/default.nix36
-rw-r--r--pkgs/applications/audio/virtual-ans/default.nix89
-rw-r--r--pkgs/applications/audio/vocproc/default.nix27
-rw-r--r--pkgs/applications/blockchains/bitcoin-abc.nix4
-rw-r--r--pkgs/applications/blockchains/bitcoin-unlimited.nix6
-rw-r--r--pkgs/applications/blockchains/clightning.nix4
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--pkgs/applications/blockchains/monero/default.nix4
-rw-r--r--pkgs/applications/editors/android-studio/default.nix6
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix7
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/setzer/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix6
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix6
-rw-r--r--pkgs/applications/gis/gmt/dcw.nix32
-rw-r--r--pkgs/applications/gis/gmt/default.nix73
-rw-r--r--pkgs/applications/gis/gmt/gshhg.nix31
-rw-r--r--pkgs/applications/graphics/qosmic/default.nix70
-rw-r--r--pkgs/applications/graphics/runwayml/default.nix9
-rw-r--r--pkgs/applications/graphics/write_stylus/default.nix22
-rw-r--r--pkgs/applications/misc/bemenu/default.nix4
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/cheat/default.nix4
-rw-r--r--pkgs/applications/misc/coolreader/default.nix26
-rw-r--r--pkgs/applications/misc/foot/default.nix38
-rw-r--r--pkgs/applications/misc/html5validator/default.nix25
-rw-r--r--pkgs/applications/misc/imag/default.nix63
-rw-r--r--pkgs/applications/misc/keepassx/community.nix4
-rw-r--r--pkgs/applications/misc/lutris/default.nix9
-rw-r--r--pkgs/applications/misc/mlterm/default.nix5
-rw-r--r--pkgs/applications/misc/moolticute/default.nix4
-rw-r--r--pkgs/applications/misc/rescuetime/default.nix12
-rw-r--r--pkgs/applications/misc/sidequest/default.nix4
-rw-r--r--pkgs/applications/misc/simplenote/default.nix4
-rw-r--r--pkgs/applications/misc/snowsql/default.nix50
-rw-r--r--pkgs/applications/misc/super_user_spark/default.nix32
-rw-r--r--pkgs/applications/misc/systembus-notify/default.nix4
-rw-r--r--pkgs/applications/misc/taskell/default.nix66
-rw-r--r--pkgs/applications/misc/wofi/default.nix5
-rw-r--r--pkgs/applications/misc/wofi/do_not_follow_symlinks.patch39
-rw-r--r--pkgs/applications/networking/browsers/eolie/default.nix18
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/atlantis/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/cni/plugins.nix2
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kpt/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/kube3d/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/ssm-agent/default.nix47
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix9
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/nheko/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/ytalk/default.nix21
-rw-r--r--pkgs/applications/networking/ipfs/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix31
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch-bower/default.nix4
-rw-r--r--pkgs/applications/networking/nextdns/default.nix4
-rw-r--r--pkgs/applications/networking/ssb-patchwork/default.nix26
-rw-r--r--pkgs/applications/office/espanso/default.nix6
-rw-r--r--pkgs/applications/office/softmaker/freeoffice.nix20
-rw-r--r--pkgs/applications/office/softmaker/softmaker_office.nix21
-rw-r--r--pkgs/applications/office/timeular/default.nix45
-rw-r--r--pkgs/applications/radio/inspectrum/default.nix11
-rw-r--r--pkgs/applications/science/biology/igv/default.nix22
-rw-r--r--pkgs/applications/science/biology/star/default.nix4
-rw-r--r--pkgs/applications/science/biology/whisper/default.nix34
-rw-r--r--pkgs/applications/science/electronics/adms/default.nix4
-rw-r--r--pkgs/applications/science/electronics/hyp2mat/default.nix6
-rw-r--r--pkgs/applications/science/electronics/kicad/base.nix2
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix2
-rw-r--r--pkgs/applications/science/electronics/kicad/libraries.nix6
-rw-r--r--pkgs/applications/science/electronics/kicad/versions.nix24
-rw-r--r--pkgs/applications/science/electronics/verilator/default.nix23
-rw-r--r--pkgs/applications/science/electronics/vhd2vl/default.nix39
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix22
-rw-r--r--pkgs/applications/science/logic/mcy/default.nix6
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix25
-rw-r--r--pkgs/applications/science/logic/z3/default.nix6
-rw-r--r--pkgs/applications/science/math/calculix/calculix.patch27
-rw-r--r--pkgs/applications/science/math/calculix/default.nix4
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix14
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix15
-rw-r--r--pkgs/applications/version-management/git-and-tools/fast-export/default.nix36
-rw-r--r--pkgs/applications/version-management/p4/default.nix30
-rw-r--r--pkgs/applications/video/smtube/default.nix4
-rw-r--r--pkgs/applications/video/streamlink-twitch-gui/bin.nix100
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix2
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix3
-rw-r--r--pkgs/applications/virtualization/cri-o/wrapper.nix2
-rw-r--r--pkgs/applications/virtualization/crun/default.nix2
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix4
-rw-r--r--pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix58
-rw-r--r--pkgs/applications/virtualization/podman/default.nix2
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix2
-rw-r--r--pkgs/applications/virtualization/runc/default.nix2
-rw-r--r--pkgs/applications/window-managers/i3/lock-fancy-rapid.nix32
110 files changed, 1455 insertions, 377 deletions
diff --git a/pkgs/applications/audio/ashuffle/default.nix b/pkgs/applications/audio/ashuffle/default.nix
new file mode 100644
index 00000000000..6bb21b5edaa
--- /dev/null
+++ b/pkgs/applications/audio/ashuffle/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, mpd_clientlib, meson, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "ashuffle";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "joshkunz";
+    repo = "ashuffle";
+    rev = "v${version}";
+    sha256 = "09q6lwgc1dc8bg1mb9js9qz3xcsxph3548nxzvyb4v8111gixrp7";
+    fetchSubmodules = true;
+  };
+
+  dontUseCmakeConfigure = true;
+  nativeBuildInputs = [ cmake pkg-config meson ninja ];
+  buildInputs = [ mpd_clientlib ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/joshkunz/ashuffle";
+    description = "Automatic library-wide shuffle for mpd";
+    maintainers = [ maintainers.tcbravo ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/applications/audio/csound/default.nix b/pkgs/applications/audio/csound/default.nix
index 4b426609fea..944a2d189d7 100644
--- a/pkgs/applications/audio/csound/default.nix
+++ b/pkgs/applications/audio/csound/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   # When updating, please check if https://github.com/csound/csound/issues/1078
   # has been fixed in the new version so we can use the normal fluidsynth
   # version and remove fluidsynth 1.x from nixpkgs again.
-  version = "6.13.0";
+  version = "6.14.0";
 
   enableParallelBuilding = true;
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "csound";
     repo = "csound";
     rev = version;
-    sha256 = "14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh";
+    sha256 = "1sr9knfhbm2m0wpkjq2l5n471vnl51wy4p6j4m95zqybimzb4s2j";
   };
 
   cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 60040119d64..1db5644fc32 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.26";
+  version = "1.28";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "0fqb4415qy2nwjz7ahi43nk795ifswb2b37sc7p5n9m4yc8h53wv";
+    sha256 = "1hbcl89cpx9bsafxrjyfx6vrbs4h3lnzmqm12smcvdg8ksfgzj0d";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/gspeech/default.nix b/pkgs/applications/audio/gspeech/default.nix
index f51eb338d28..920c06038fe 100644
--- a/pkgs/applications/audio/gspeech/default.nix
+++ b/pkgs/applications/audio/gspeech/default.nix
@@ -20,13 +20,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gSpeech";
-  version = "0.9.2";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "mothsart";
     repo = pname;
     rev = version;
-    sha256 = "11pvdpb9jjssp8nmlj21gs7ncgfm89kw26mfc8c2x8w2q4h92ja3";
+    sha256 = "1i0jwgxcn94nsi7c0ad0w77y04g04ka2szijzfqzqfnacdmdyrfc";
   };
 
   nativeBuildInputs = [
@@ -56,8 +56,8 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   postFixup = ''
-    wrapProgram $out/bin/gspeech --prefix PATH : ${lib.makeBinPath [ picotts ]}
-    wrapProgram $out/bin/gspeech-cli --prefix PATH : ${lib.makeBinPath [ picotts ]}
+    wrapProgram $out/bin/gspeech --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
+    wrapProgram $out/bin/gspeech-cli --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
   '';
 
   strictDeps = false;
diff --git a/pkgs/applications/audio/lv2-cpp-tools/default.nix b/pkgs/applications/audio/lv2-cpp-tools/default.nix
new file mode 100644
index 00000000000..d98135fb014
--- /dev/null
+++ b/pkgs/applications/audio/lv2-cpp-tools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip, pkgconfig, lv2, gtkmm2, boost }:
+
+stdenv.mkDerivation rec {
+  pname = "lv2-cpp-tools";
+  version = "1.0.5";
+
+  src = fetchzip {
+    url = "http://deb.debian.org/debian/pool/main/l/lv2-c++-tools/lv2-c++-tools_${version}.orig.tar.bz2";
+    sha256 = "039bq7d7s2bhfcnlsfq0mqxr9a9iqwg5bwcpxfi24c6yl6krydsi";
+  };
+
+  preConfigure = ''
+    sed -r 's,/bin/bash,${stdenv.shell},g' -i ./configure
+    sed -r 's,/sbin/ldconfig,ldconfig,g' -i ./Makefile.template
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 gtkmm2 boost ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://ll-plugins.nongnu.org/hacking.html";
+    description = "Tools and libraries that may come in handy when writing LV2 plugins in C++";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix
index e4728b9b9c4..b9babddb800 100644
--- a/pkgs/applications/audio/parlatype/default.nix
+++ b/pkgs/applications/audio/parlatype/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "parlatype";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner  = "gkarsay";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "026i19vkdq35rldbjp1wglamr22a1330iv736mmgbd8fs7vz22nx";
+    sha256 = "1k53q0kbwpnbgyr0lmfzf5sm4f93d8nbjrzdz9pdhzpxgihndg25";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index 276fe75dd9f..2aeae1f1890 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -12,13 +12,13 @@ let
   ;
 in pythonPackages.buildPythonApplication rec {
   pname = "picard";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "metabrainz";
     repo = pname;
     rev = "release-${version}";
-    sha256 = "0s4jmcg1n6ayxf7x0amq67rgn6y127h98s2k4fcna6n9477krrwf";
+    sha256 = "0sbccsisk9w0gnblvhg7wk1c5ydppldjbvaa0zhl3yrid5a363ah";
   };
 
   nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix
index 9bc8fcb6694..76ea4efeace 100644
--- a/pkgs/applications/audio/snd/default.nix
+++ b/pkgs/applications/audio/snd/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "snd-20.2";
+  name = "snd-20.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/snd/${name}.tar.gz";
-    sha256 = "0ip4sfyxqlbghlggipmvvqjqs1a7qas0zcmzw8d1nwg6krjkfj0r";
+    sha256 = "016slh34gb6qqb38m8k9yg48rbhc5p12084szcwvanhh5v7fc7mk";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/applications/audio/talentedhack/default.nix b/pkgs/applications/audio/talentedhack/default.nix
new file mode 100644
index 00000000000..b30cf59f7b3
--- /dev/null
+++ b/pkgs/applications/audio/talentedhack/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, lv2, fftwFloat, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  pname = "talentedhack";
+  version = "1.86";
+
+  src = fetchFromGitHub {
+    owner = "jeremysalwen";
+    repo = "talentedhack";
+    rev = "v${version}";
+    sha256 = "0kwvayalysmk7y49jq0k16al252md8d45z58hphzsksmyz6148bx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 fftwFloat ];
+
+  # To avoid name clashes, plugins should be compiled with symbols hidden, except for `lv2_descriptor`:
+  preConfigure = ''
+    sed -r 's/^CFLAGS.*$/\0 -fvisibility=hidden/' -i Makefile
+  '';
+
+  installPhase = ''
+    d=$out/lib/lv2/talentedhack.lv2
+    mkdir -p $d
+    cp *.so *.ttl $d
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jeremysalwen/TalentedHack";
+    description = "LV2 port of Autotalent pitch correction plugin";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/virtual-ans/default.nix b/pkgs/applications/audio/virtual-ans/default.nix
new file mode 100644
index 00000000000..24e112aff2b
--- /dev/null
+++ b/pkgs/applications/audio/virtual-ans/default.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, fetchzip
+, libX11
+, libXi
+, libGL
+, alsaLib
+, SDL2
+, autoPatchelfHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "virtual-ans";
+  version = "3.0.2c";
+
+  src = fetchzip {
+    url = "https://warmplace.ru/soft/ans/virtual_ans-${version}.zip";
+    sha256 = "03r1v3l7rd59dakr7ndvgsqchv00ppkvi6sslgf1ng07r3rsvb1n";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    libX11
+    libXi
+    libGL
+    alsaLib
+    SDL2
+  ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -R ./* $out/
+
+    # Remove all executables except for current architecture
+    ls -1d $out/START*              | grep -v ${startScript}     | xargs rm -rf
+    ls -1d $out/bin/pixilang_linux* | grep -v ${linuxExecutable} | xargs rm -rf
+
+    # Start script performs relative search for resources, so it cannot be moved
+    # to bin directory
+    ln -s $out/${startScript} $out/bin/virtual-ans
+  '';
+
+  startScript = if stdenv.isx86_32 then "START_LINUX_X86"
+    else        if stdenv.isx86_64 then "START_LINUX_X86_64"
+    #else        if stdenv.isDarwin then "START_MACOS.app" # disabled because I cannot test on Darwin
+    else abort "Unsupported platform: ${stdenv.platform.kernelArch}.";
+
+  linuxExecutable = if stdenv.isx86_32 then "pixilang_linux_x86"
+    else            if stdenv.isx86_64 then "pixilang_linux_x86_64"
+    else                                    "";
+
+  meta = with stdenv.lib; {
+    description = "Photoelectronic microtonal/spectral musical instrument";
+    longDescription = ''
+      Virtual ANS is a software simulator of the unique Russian synthesizer ANS
+      - photoelectronic musical instrument created by Evgeny Murzin from 1938 to
+      1958. The ANS made it possible to draw music in the form of a spectrogram
+      (sonogram), without live instruments and performers. It was used by
+      Stanislav Kreichi, Alfred Schnittke, Edward Artemiev and other Soviet
+      composers in their experimental works. You can also hear the sound of the
+      ANS in Andrei Tarkovsky's movies Solaris, The Mirror, Stalker.
+
+      The simulator extends the capabilities of the original instrument. Now
+      it's a full-featured graphics editor where you can convert sound into an
+      image, load and play pictures, draw microtonal/spectral music and create
+      some unusual deep atmospheric sounds. This app is for everyone who loves
+      experiments and is looking for something new.
+
+      Key features:
+
+      + unlimited number of pure tone generators;
+      + powerful sonogram editor - you can draw the spectrum and play it at the same time;
+      + any sound (from a WAV file or a Microphone/Line-in) can be converted to image (sonogram) and vice versa;
+      + support for MIDI devices;
+      + polyphonic synth mode with MIDI mapping;
+      + supported file formats: WAV, AIFF, PNG, JPEG, GIF;
+      + supported sound systems: ASIO, DirectSound, MME, ALSA, OSS, JACK, Audiobus, IAA.
+      '';
+    homepage = "https://warmplace.ru/soft/ans/";
+    license = licenses.free;
+    # I cannot test the Darwin version, so I'll leave it disabled
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ jacg ];
+  };
+
+}
diff --git a/pkgs/applications/audio/vocproc/default.nix b/pkgs/applications/audio/vocproc/default.nix
new file mode 100644
index 00000000000..ddaa5b790e2
--- /dev/null
+++ b/pkgs/applications/audio/vocproc/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip, pkgconfig, lvtk, lv2, fftw, lv2-cpp-tools, gtkmm2 }:
+
+stdenv.mkDerivation rec {
+  pname = "vocproc";
+  version = "0.2.1";
+
+  src = fetchzip {
+    url = "https://hyperglitch.com/files/vocproc/${pname}-${version}.default.tar.gz";
+    sha256 = "07a1scyz14mg2jdbw6fpv4qg91zsw61qqii64n9qbnny9d5pn8n2";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 fftw lv2-cpp-tools gtkmm2 ];
+
+  makeFlags = [
+    "INSTALL_DIR=$(out)/lib/lv2"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://hyperglitch.com/dev/VocProc";
+    description = "An LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice (harmonizer)";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/blockchains/bitcoin-abc.nix b/pkgs/applications/blockchains/bitcoin-abc.nix
index 420e267aa82..1596ed2d357 100644
--- a/pkgs/applications/blockchains/bitcoin-abc.nix
+++ b/pkgs/applications/blockchains/bitcoin-abc.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 mkDerivation rec {
 
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
-  version = "0.21.12";
+  version = "0.21.13";
 
   src = fetchFromGitHub {
     owner = "bitcoin-ABC";
     repo = "bitcoin-abc";
     rev = "v${version}";
-    sha256 = "1mad3aqfwrxi06135nf8hv13d67nilmxpx4dw5vjcy1zi3lljj1j";
+    sha256 = "1x8xcdi1vcskggk9bqkwr3ah4vi9b7sj2h8hf7spac6dvz8lmzav";
   };
 
   patches = [ ./fix-bitcoin-qt-build.patch ];
diff --git a/pkgs/applications/blockchains/bitcoin-unlimited.nix b/pkgs/applications/blockchains/bitcoin-unlimited.nix
index f755efaa0e1..fe39b955a28 100644
--- a/pkgs/applications/blockchains/bitcoin-unlimited.nix
+++ b/pkgs/applications/blockchains/bitcoin-unlimited.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
-  version = "1.7.0.0";
+  version = "1.8.0.0";
 
   src = fetchFromGitHub {
     owner = "bitcoinunlimited";
     repo = "bitcoinunlimited";
-    rev = "bucash${version}";
-    sha256 = "0lil6rivrj4cnr8a7n8zn9rp9f4h2nk88jjxc29m6dwqn5gk6f1i";
+    rev = "BCHunlimited${version}";
+    sha256 = "01qi15li5x9fvhsmvx7ai5fz6yzqqd3r9yv7081h75jn0nxai49q";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook python3 ]
diff --git a/pkgs/applications/blockchains/clightning.nix b/pkgs/applications/blockchains/clightning.nix
index f289139d8d8..43de23b68fc 100644
--- a/pkgs/applications/blockchains/clightning.nix
+++ b/pkgs/applications/blockchains/clightning.nix
@@ -4,11 +4,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.9.0";
+  version = "0.9.0-1";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "11ig5bqxvhx82gq9nl7c5iqaf3x8xbwfx7cf2318pyqdimz4r1v6";
+    sha256 = "01cwcrqysqsrf96bbbj0grm8j5m46a3acgwy0kzxdx05jdzld9sc";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index cfd72db7f46..83a6cfaf05b 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.0";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "1lja4ba6bm1jk0lh2ra5v8i5g3f1gy7mk2b3yrx1w7x02ll9gr06";
+    sha256 = "1qr1vfb6mhm2hxl2ksydkhadm7phadn93lwm3f9zni01plk56bb5";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix
index 569a9b17045..f1186564119 100644
--- a/pkgs/applications/blockchains/monero/default.nix
+++ b/pkgs/applications/blockchains/monero/default.nix
@@ -10,13 +10,13 @@ assert stdenv.isDarwin -> IOKit != null;
 
 stdenv.mkDerivation rec {
   pname = "monero";
-  version = "0.16.0.1";
+  version = "0.16.0.3";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    sha256 = "0n2cviqm8radpynx70fc0819k1xknjc58cvb4whlc49ilyvh8ky6";
+    sha256 = "1r9x3712vhb24dxxirfiwj5f9x0h4m7x0ngiiavf5983dfdlgz33";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index c622a1fcead..3a0bef24ab7 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -19,9 +19,9 @@ let
     sha256Hash = "11lkwcbzdl86cyz4lci65cx9z5jjhrc4z40maqx2r5hw1xka9290";
   };
   latestVersion = { # canary & dev
-    version = "4.2.0.5"; # "Android Studio 4.2 Canary 5"
-    build = "201.6682321";
-    sha256Hash = "076q6d7kmi0wcsqak7n6ggp1qns4xj1134xcpdzb92qk3dmg3wrh";
+    version = "4.2.0.7"; # "Android Studio 4.2 Canary 7"
+    build = "201.6720134";
+    sha256Hash = "1c9s6rd0z596qr7hbil5rl3fqby7c8h7ma52d1qj5rxra73k77nz";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 10569afec94..fa382cc8836 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -220,9 +220,6 @@ let
       };
     }) (attrs: {
       patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + ''
-        # Patch built-in mono for ReSharperHost to start successfully
-        interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
-        patchelf --set-interpreter "$interpreter" lib/ReSharperHost/linux-x64/mono/bin/mono-sgen
         rm -rf lib/ReSharperHost/linux-x64/dotnet
         mkdir -p lib/ReSharperHost/linux-x64/dotnet/
         ln -s ${dotnet-sdk_3}/bin/dotnet lib/ReSharperHost/linux-x64/dotnet/dotnet
@@ -388,12 +385,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2020.1.4"; /* updated by script */
+    version = "2020.2"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "0vicgwgsbllfw6fz4l82x4vbka3agf541576ix9akyvsskwbaxj9"; /* updated by script */
+      sha256 = "0fxgdxsrrl659lh45slikgck6jld90rd6nnj8gj3aixq0yp5pkix"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index 13a0e797adc..244649f8663 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -20,11 +20,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nano";
-  version = "5.0";
+  version = "5.2";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "0dmagj4p1llb1a2w0iwdrqbd9cgp0bda4s18vwh6y1ndd6z983bw";
+    sha256 = "1qd7pn9g5dgzbfg4fb3nqxqgi2iqq0g6x33x8d1mx6mfw51xmhij";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/setzer/default.nix b/pkgs/applications/editors/setzer/default.nix
index 5a0ef754db1..0b1dd8fcb9f 100644
--- a/pkgs/applications/editors/setzer/default.nix
+++ b/pkgs/applications/editors/setzer/default.nix
@@ -17,13 +17,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "setzer";
-  version = "0.2.8";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "cvfosammmm";
     repo = "Setzer";
     rev = "v${version}";
-    sha256 = "1llxxjj038nd2p857bjdyyhzskn56826qi259v47vaqlv9hkifil";
+    sha256 = "0gx5fnyi932lswkhdvxfqs0wxx7hz690cbnpv4m3ysydi96mxwiv";
   };
 
   format = "other";
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 25d9eaabef4..0bf0435d2fc 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -11,8 +11,8 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0rrs2v97xhlxyjvipss5dmk88j7b03kyszwyhy46755954nzm85j";
-    x86_64-darwin = "1vmr78wf6cpib6j0f5gxs8683n27jk96lm4mwg6ji1np6b00m8nx";
+    x86_64-linux = "1yar8j6h39gpnq4givxh5cvi336p56sgc8pg32j6sasqk6mxv02c";
+    x86_64-darwin = "1d68xkqkd49z7v4y3230l2v77aw34d7jkdbgj0wnc04kv6n8wx88";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -21,7 +21,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.48.0";
+    version = "1.48.1";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index aa63bce7b53..edb55264354 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -11,8 +11,8 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1zf2z6rbm18cib4crnn8r6ggx3cc2irwqjhbka2zmq38z7l3qv6c";
-    x86_64-darwin = "1rgbr1q35q0q64kzap6g72nyvcp5wjmyzi8701536az7mxjfvjz4";
+    x86_64-linux = "0f8p25963i7bbm2zxb4ra935maxk3sxims6j873wqwqnzn701diq";
+    x86_64-darwin = "0k8ylcbiqvb0cnvbz3059rbyjqxmvig8zf7bfqgln1w591i411c4";
   }.${system};
 
   sourceRoot = {
@@ -27,7 +27,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.48.0";
+    version = "1.48.1";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/gis/gmt/dcw.nix b/pkgs/applications/gis/gmt/dcw.nix
new file mode 100644
index 00000000000..58390e89290
--- /dev/null
+++ b/pkgs/applications/gis/gmt/dcw.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "dcw-gmt";
+  version = "1.1.4";
+  src = fetchurl {
+    url = "ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-${version}.tar.gz";
+    sha256 = "8d47402abcd7f54a0f711365cd022e4eaea7da324edac83611ca035ea443aad3";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/dcw-gmt
+    cp -rv ./* $out/share/dcw-gmt
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.soest.hawaii.edu/pwessel/dcw/";
+    description = "Vector basemap of the world, for use with GMT";
+    longDescription = ''
+      DCW-GMT is an enhancement to the original 1:1,000,000 scale vector basemap
+      of the world, available from the Princeton University Digital Map and
+      Geospatial Information Center. It contains more state boundaries (the
+      largest 8 countries are now represented) than the original data
+      source. Information about DCW can be found on Wikipedia
+      (https://en.wikipedia.org/wiki/Digital_Chart_of_the_World). This data is
+      for use by GMT, the Generic Mapping Tools.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/pkgs/applications/gis/gmt/default.nix b/pkgs/applications/gis/gmt/default.nix
new file mode 100644
index 00000000000..8c7c7687f3d
--- /dev/null
+++ b/pkgs/applications/gis/gmt/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, cmake, curl, Accelerate, CoreGraphics, CoreVideo
+, fftwSinglePrec, netcdf, pcre, gdal, blas, lapack, glibc, ghostscript, dcw-gmt
+, gshhg-gmt }:
+
+/* The onus is on the user to also install:
+    - ffmpeg for webm or mp4 output
+    - graphicsmagick for gif output
+*/
+
+stdenv.mkDerivation rec {
+  pname = "gmt";
+  version = "6.1.0";
+  src = fetchurl {
+    url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
+    sha256 = "0vzxzpvbf1sqma2airsibxvqb9m4sajm7jsfr7rrv6q7924c7ijw";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ curl gdal netcdf pcre dcw-gmt gshhg-gmt ]
+    ++ (if stdenv.isDarwin then [
+      Accelerate
+      CoreGraphics
+      CoreVideo
+    ] else [
+      glibc
+      fftwSinglePrec
+      blas
+      lapack
+    ]);
+
+  propagatedBuildInputs = [ ghostscript ];
+
+  cmakeFlags = [
+    "-DGMT_DOCDIR=share/doc/gmt"
+    "-DGMT_MANDIR=share/man"
+    "-DGMT_LIBDIR=lib"
+    "-DCOPY_GSHHG:BOOL=FALSE"
+    "-DGSHHG_ROOT=${gshhg-gmt.out}/share/gshhg-gmt"
+    "-DCOPY_DCW:BOOL=FALSE"
+    "-DDCW_ROOT=${dcw-gmt.out}/share/dcw-gmt"
+    "-DGDAL_ROOT=${gdal.out}"
+    "-DNETCDF_ROOT=${netcdf.out}"
+    "-DPCRE_ROOT=${pcre.out}"
+    "-DGMT_INSTALL_TRADITIONAL_FOLDERNAMES:BOOL=FALSE"
+    "-DGMT_ENABLE_OPENMP:BOOL=TRUE"
+    "-DGMT_INSTALL_MODULE_LINKS:BOOL=FALSE"
+    "-DLICENSE_RESTRICTED=LGPL" # "GPL" and "no" also valid
+  ] ++ (with stdenv;
+    lib.optional (!isDarwin) [
+      "-DFFTW3_ROOT=${fftwSinglePrec.dev}"
+      "-DLAPACK_LIBRARY=${lapack}/lib/liblapack.so"
+      "-DBLAS_LIBRARY=${blas}/lib/libblas.so"
+    ]);
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.generic-mapping-tools.org";
+    description = "Tools for manipulating geographic and cartesian data sets";
+    longDescription = ''
+      GMT is an open-source collection of command-line tools for manipulating
+      geographic and Cartesian data sets (including filtering, trend fitting,
+      gridding, projecting, etc.) and producing high-quality illustrations
+      ranging from simple x–y plots via contour maps to artificially illuminated
+      surfaces and 3D perspective views. It supports many map projections and
+      transformations and includes supporting data such as coastlines, rivers,
+      and political boundaries and optionally country polygons.
+    '';
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/pkgs/applications/gis/gmt/gshhg.nix b/pkgs/applications/gis/gmt/gshhg.nix
new file mode 100644
index 00000000000..0f22f87c89b
--- /dev/null
+++ b/pkgs/applications/gis/gmt/gshhg.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "gshhg-gmt";
+  version = "2.3.7";
+  src = fetchurl {
+    url = "ftp://ftp.soest.hawaii.edu/gmt/gshhg-gmt-${version}.tar.gz";
+    sha256 = "9bb1a956fca0718c083bef842e625797535a00ce81f175df08b042c2a92cfe7f";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/gshhg-gmt
+    cp -rv ./* $out/share/gshhg-gmt
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.soest.hawaii.edu/pwessel/gshhg/";
+    description = "High-resolution shoreline data set, for use with GMT";
+    longDescription = ''
+      GSHHG is a high-resolution shoreline data set amalgamated from two
+      databases: Global Self-consistent Hierarchical High-resolution Shorelines
+      (GSHHS) and CIA World Data Bank II (WDBII). GSHHG contains vector
+      descriptions at five different resolutions of land outlines, lakes,
+      rivers, and political boundaries. This data is for use by GMT, the Generic
+      Mapping Tools.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/pkgs/applications/graphics/qosmic/default.nix b/pkgs/applications/graphics/qosmic/default.nix
new file mode 100644
index 00000000000..96823441b6e
--- /dev/null
+++ b/pkgs/applications/graphics/qosmic/default.nix
@@ -0,0 +1,70 @@
+{ mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, qmake
+, wrapQtAppsHook
+, qtbase
+, pkg-config
+, lua
+, flam3
+, libxml2
+, libpng
+, libjpeg
+, lib
+}:
+
+mkDerivation rec {
+  pname = "qosmic";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "bitsed";
+    repo = "qosmic";
+    rev = "v${version}";
+    sha256 = "13nw1mkdib14430r21mj352v62vi546vf184vyhxm7yjjygyra1w";
+  };
+
+  patches = [
+    # Allow overriding PREFIX (to install to $out,
+    # written while creating this derivation)
+    # https://github.com/bitsed/qosmic/pull/39
+    (fetchpatch {
+      name = "allow-overriding-PREFIX.patch";
+      url = "https://github.com/bitsed/qosmic/commit/77fb3a577b0710efae2a1d9ed97c26ae16f3a5ba.patch";
+      sha256 = "0v9hj9s78cb6bg8ca0wjkbr3c7ml1n51n8h4a70zpzzgzz7rli5b";
+    })
+    # Fix QButtonGroup include errors with Qt 5.11:
+    # Will be part of the next post-1.6.0 release
+    (fetchpatch {
+      name = "fix-class-QButtonGroup-include-errors-with-Qt-5.11.patch";
+      url = "https://github.com/bitsed/qosmic/commit/3f6e1ea8d384a124dbc2d568171a4da798480752.patch";
+      sha256 = "0bp6b759plkqs32nvfpkfvf3qqzc9716k3ycwnjvwabbvpg1xwbl";
+    })
+  ];
+
+  nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
+
+  buildInputs = [
+    qtbase
+    lua
+    flam3
+    libxml2
+    libpng
+    libjpeg
+  ];
+
+  qmakeFlags = [
+    # Use pkg-config to correctly locate library paths
+    "-config" "link_pkgconfig"
+  ];
+
+  meta = with lib; {
+    description = "A cosmic recursive flame fractal editor";
+    homepage = "https://github.com/bitsed/qosmic";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.raboof ];
+    # It might be possible to make it work on OSX,
+    # but this has not been tested.
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/graphics/runwayml/default.nix b/pkgs/applications/graphics/runwayml/default.nix
index eb8ecc34b8f..9366276ebf8 100644
--- a/pkgs/applications/graphics/runwayml/default.nix
+++ b/pkgs/applications/graphics/runwayml/default.nix
@@ -6,20 +6,19 @@
 
 let
   pname = "runwayml";
-  version = "0.10.20";
+  version = "0.14.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "https://runway-releases.s3.amazonaws.com/Runway%20${version}.AppImage";
-    sha256 = "1wi94xi8nrwfc4v2j1crlmwr0nxg95ffp5h4hxd84crvya8ibxgz";
-    name="${pname}-${version}.AppImage";
+    url = "https://runway-releases.s3.amazonaws.com/Runway-${version}.AppImage";
+    sha256 = "1bx8j39wd2z6f32hdvmk9z77bivnizzdhn296kin2nnqgq6v6y93";
   };
 
   binary = appimageTools.wrapType2 {
     name = pname;
     inherit src;
   };
-  # we only use this to extract the icon
+  # we only use this to extract the icon and desktop file
   appimage-contents = appimageTools.extractType2 {
     inherit name src;
   };
diff --git a/pkgs/applications/graphics/write_stylus/default.nix b/pkgs/applications/graphics/write_stylus/default.nix
index 380f70c7c93..8396ce72e50 100644
--- a/pkgs/applications/graphics/write_stylus/default.nix
+++ b/pkgs/applications/graphics/write_stylus/default.nix
@@ -1,29 +1,22 @@
 { mkDerivation, stdenv, lib, qtbase, qtsvg, libglvnd, libX11, libXi, fetchurl, makeDesktopItem }:
 let
-  # taken from: https://www.iconfinder.com/icons/50835/edit_pencil_write_icon
-  # license: Free for commercial use
-  desktopIcon = fetchurl {
-    url = "https://www.iconfinder.com/icons/50835/download/png/256";
-    sha256 = "0abdya42yf9alxbsmc2nf8jwld50zfria6z3d4ncvp1zw2a9jhb8";
-  };
-in
-mkDerivation rec {
-  pname = "write_stylus";
-  version = "300";
-
   desktopItem = makeDesktopItem {
     name = "Write";
     exec = "Write";
     comment = "A word processor for handwriting";
-    icon = desktopIcon;
+    icon = "write_stylus";
     desktopName = "Write";
     genericName = "Write";
     categories = "Office;Graphics";
   };
+in
+mkDerivation rec {
+  pname = "write_stylus";
+  version = "300";
 
   src = fetchurl {
     url = "http://www.styluslabs.com/write/write${version}.tar.gz";
-    sha256 = "1kg4qqxgg7iyxl13hkbl3j27dykra56dj67hbv0392mwdcgavihq";
+    sha256 = "0h1wf3af7jzp3f3l8mlnshi83d7a4v4y8nfqfai4lmskyicqlz7c";
   };
 
   sourceRoot = ".";
@@ -36,8 +29,11 @@ mkDerivation rec {
     # symlink the binary to bin/
     ln -s $out/Write/Write $out/bin/Write
 
+    # Create desktop item
     mkdir -p $out/share/applications
     ln -s ${desktopItem}/share/applications/* $out/share/applications/
+    mkdir -p $out/share/icons
+    ln -s $out/Write/Write144x144.png $out/share/icons/write_stylus.png
   '';
   preFixup = let
     libPath = lib.makeLibraryPath [
diff --git a/pkgs/applications/misc/bemenu/default.nix b/pkgs/applications/misc/bemenu/default.nix
index 8b17ecea3cb..43362b0394e 100644
--- a/pkgs/applications/misc/bemenu/default.nix
+++ b/pkgs/applications/misc/bemenu/default.nix
@@ -11,13 +11,13 @@ assert x11Support -> xlibs != null && xorg != null;
 
 stdenv.mkDerivation rec {
   pname = "bemenu";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = pname;
     rev = version;
-    sha256 = "1fjcs9d3533ay3nz79cx3c0lmy2chgragr2lhsy0xl2ckr0iins0";
+    sha256 = "1ifq5bk7782b9m6bl111x33fn38rpppdrww7hfavqia9a9gi2sl5";
   };
 
   nativeBuildInputs = [ pkgconfig pcre ];
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 2e6981490ce..2190307fbb5 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -17,11 +17,11 @@ let python = python3Packages.python; in
 
 stdenv.mkDerivation rec {
   pname = "blender";
-  version = "2.83.4";
+  version = "2.83.5";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
-    sha256 = "1y4phkzrxy17kpjbg0jbz1236nw8w8p006x1crbqmvwz8wd3dm46";
+    sha256 = "0xyawly00a59hfdb6b7va84k5fhcv2mxnzd77vs22bzi9y7sap43";
   };
 
   patches = lib.optional stdenv.isDarwin ./darwin.patch;
diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix
index 6fa8e0cf7bd..e3ffdef44d0 100644
--- a/pkgs/applications/misc/cheat/default.nix
+++ b/pkgs/applications/misc/cheat/default.nix
@@ -3,13 +3,13 @@
 
 buildGoModule rec {
   pname = "cheat";
-  version = "4.0.3";
+  version = "4.0.4";
 
   src = fetchFromGitHub {
     owner = "cheat";
     repo = "cheat";
     rev = version;
-    sha256 = "1bzlbd8lvagpipyv553icv17bafhaydscrrlly8jz7kfi4d9xvkk";
+    sha256 = "0cracw6pja3d7z6ip6lbmpvfxlxcnh3fbgh5ba8c87bhfz99idqn";
   };
 
   subPackages = [ "cmd/cheat" ];
diff --git a/pkgs/applications/misc/coolreader/default.nix b/pkgs/applications/misc/coolreader/default.nix
new file mode 100644
index 00000000000..c3efed72cb0
--- /dev/null
+++ b/pkgs/applications/misc/coolreader/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, fetchFromGitHub, cmake, pkg-config, lib,
+  qttools, fribidi, libunibreak }:
+
+mkDerivation rec {
+  pname = "coolreader";
+  version = "3.2.45";
+
+  src = fetchFromGitHub {
+    owner = "buggins";
+    repo = pname;
+    rev = "cr${version}";
+    sha256 = "0nkk4d0j04yjwanjszq8h8hvx87rnwax2k6akm4bpjxwpcs4icws";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ qttools fribidi libunibreak ];
+
+  meta = with lib; {
+    homepage = "https://github.com/buggins/coolreader";
+    description = "Cross platform open source e-book reader";
+    license = licenses.gpl2Plus; # see https://github.com/buggins/coolreader/issues/80
+    maintainers = with maintainers; [ gebner ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/foot/default.nix b/pkgs/applications/misc/foot/default.nix
new file mode 100644
index 00000000000..02909ee1f2f
--- /dev/null
+++ b/pkgs/applications/misc/foot/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit
+, fcft, freetype, pixman, libxkbcommon, fontconfig, wayland
+, meson, ninja, ncurses, scdoc, tllist, wayland-protocols, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "foot";
+  version = "1.4.4";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/foot.git";
+    rev = "${version}";
+    sha256 = "1cr4sz075v18clh8nlvgyxlbvfkhbsg0qrqgnclip5rwa24ry1lg";
+  };
+
+  nativeBuildInputs = [
+    meson ninja ncurses scdoc tllist wayland-protocols pkg-config
+  ];
+  buildInputs = [
+    fontconfig freetype pixman wayland libxkbcommon fcft
+  ];
+
+  # recommended build flags for foot as per INSTALL.md
+  # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#user-content-release-build
+  preConfigure = ''
+    export CFLAGS+="-O3 -fno-plt"
+  '';
+
+  mesonFlags = [ "--buildtype=release" "-Db_lto=true" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://codeberg.org/dnkl/foot/";
+    description = "A fast, lightweight and minimalistic Wayland terminal emulator";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/html5validator/default.nix b/pkgs/applications/misc/html5validator/default.nix
new file mode 100644
index 00000000000..657996d1da9
--- /dev/null
+++ b/pkgs/applications/misc/html5validator/default.nix
@@ -0,0 +1,25 @@
+{ buildPythonApplication, fetchFromGitHub, nose, openjdk, lib }:
+
+buildPythonApplication rec {
+  pname = "html5validator";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    owner = "svenkreiss";
+    repo = "html5validator";
+    rev = "v${version}";
+    sha256 = "130acqi0dsy3midg7hwslykzry6crr4ln6ia0f0avyywkz4bplsv";
+  };
+
+  propagatedBuildInputs = [ openjdk ];
+
+  checkInputs = [ nose ];
+  checkPhase = "PATH=$PATH:$out/bin nosetests";
+
+  meta = with lib; {
+    homepage = "https://github.com/svenkreiss/html5validator";
+    description = "Command line tool that tests files for HTML5 validity";
+    license = licenses.mit;
+    maintainers = [ maintainers.phunehehe ];
+  };
+}
diff --git a/pkgs/applications/misc/imag/default.nix b/pkgs/applications/misc/imag/default.nix
new file mode 100644
index 00000000000..bb6956aaa59
--- /dev/null
+++ b/pkgs/applications/misc/imag/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, llvmPackages
+, openssl
+, pkg-config
+, installShellFiles
+, Security
+, gitMinimal
+, utillinuxMinimal
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "imag";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "matthiasbeyer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0f9915f083z5qqcxyavj0w6m973c8m1x7kfb89pah5agryy5mkaq";
+  };
+
+  nativeBuildInputs = [ installShellFiles pkg-config ];
+  buildInputs = [ openssl ]
+    ++ stdenv.lib.optional stdenv.isDarwin Security;
+  checkInputs = [ gitMinimal utillinuxMinimal ];
+
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+  cargoSha256 = "0n8cw70qh8g4hfwfaxwwxbrrx5hm2z037z8kdhvdpqkxljl9189x";
+
+  checkPhase = ''
+    export HOME=$TMPDIR
+    git config --global user.email "nobody@example.com"
+    git config --global user.name "Nobody"
+
+    # UI tests uses executables directly, so we need to build them before
+    # launching the tests
+    cargo build
+  '' + (
+    # CLI uses the presence of a controlling TTY to check if arguments are
+    # passed in stdin, or in the command-line, so we use script to create
+    # a PTY for us.
+    if !stdenv.isDarwin then ''
+      script -qfec "cargo test --workspace"
+    '' else ''
+      script -q "cargo test --workspace"
+    ''
+  );
+
+  postInstall = ''
+    installShellCompletion target/imag.{bash,fish} --zsh target/_imag
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Commandline personal information management suite";
+    homepage = "https://imag-pim.org/";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ filalex77 minijackson ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index 86ea1d6d504..f0131712b23 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -40,13 +40,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "keepassxc";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = version;
-    sha256 = "0yi6kxnsrqirjn6hxhwym2krzf86qxf3kc6bfpkmiaggnd2kqpkp";
+    sha256 = "0wgn0glmcxaa670bpxh7n7abjlxcx4h1rl1169cmah0ddxnxnxpq";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [
diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix
index 99e24eea158..b3a68cffeff 100644
--- a/pkgs/applications/misc/lutris/default.nix
+++ b/pkgs/applications/misc/lutris/default.nix
@@ -8,7 +8,6 @@
 , gobject-introspection
 , gst_all_1
 , gtk3
-, libgnome-keyring
 , libnotify
 , pango
 , webkitgtk
@@ -22,6 +21,7 @@
 , pygobject3
 , pyyaml
 , requests
+, keyring
 
 # commands that lutris needs
 , xrandr
@@ -71,13 +71,13 @@ let
 
 in buildPythonApplication rec {
   pname = "lutris-original";
-  version = "0.5.6";
+  version = "0.5.7.1";
 
   src = fetchFromGitHub {
     owner = "lutris";
     repo = "lutris";
     rev = "v${version}";
-    sha256 = "1f78qhyy8xqdg0rhxcwkap1bmg5mfxhb8qw1vbpxr6g62ajpwksa";
+    sha256 = "12ispwkbbm5aq263n3bdjmjfkpwplizacnqs2c0wnag4zj4kpm29";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -88,14 +88,13 @@ in buildPythonApplication rec {
     gnome-desktop
     gobject-introspection
     gtk3
-    libgnome-keyring
     libnotify
     pango
     webkitgtk
   ] ++ gstDeps;
 
   propagatedBuildInputs = [
-    evdev distro pyyaml pygobject3 requests pillow dbus-python
+    evdev distro pyyaml pygobject3 requests pillow dbus-python keyring
   ];
 
   # avoid double wrapping
diff --git a/pkgs/applications/misc/mlterm/default.nix b/pkgs/applications/misc/mlterm/default.nix
index f58fb13e61f..7c7906fc841 100644
--- a/pkgs/applications/misc/mlterm/default.nix
+++ b/pkgs/applications/misc/mlterm/default.nix
@@ -3,6 +3,8 @@
 , harfbuzz #substituting glyphs with opentype fonts
 , fribidi, m17n_lib #bidi and encoding
 , openssl, libssh2 #build-in ssh
+, fcitx, ibus, uim #IME
+, wrapGAppsHook #color picker in mlconfig
 }:
 
 stdenv.mkDerivation rec {
@@ -14,10 +16,11 @@ stdenv.mkDerivation rec {
     sha256 = "17h6j4nmbyvsx2shm8mqm7smzq9i7mbqxjw19c2m0rhf5yzqhr3k";
   };
 
-  nativeBuildInputs = [ pkgconfig autoconf ];
+  nativeBuildInputs = [ pkgconfig autoconf wrapGAppsHook ];
   buildInputs = [
     libX11 gdk-pixbuf.dev cairo libXft gtk3 vte
     harfbuzz fribidi m17n_lib openssl libssh2
+    fcitx ibus uim
   ];
 
   #bad configure.ac and Makefile.in everywhere
diff --git a/pkgs/applications/misc/moolticute/default.nix b/pkgs/applications/misc/moolticute/default.nix
index efd9cc4c021..c815a74e019 100644
--- a/pkgs/applications/misc/moolticute/default.nix
+++ b/pkgs/applications/misc/moolticute/default.nix
@@ -9,13 +9,13 @@
 
 mkDerivation rec {
   pname = "moolticute";
-  version = "0.43.19";
+  version = "0.44.0";
 
   src = fetchFromGitHub {
     owner = "mooltipass";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rpkiyhy7z5zq0rmn0kj2kva57bnhkhvaplrlhfczv99h1kwsixg";
+    sha256 = "1xlbhx6f1ysx8gka8g67271whzhkzsnkavpq3x58hdxr8v88khby";
   };
 
   outputs = [ "out" "udev" ];
diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix
index 837e30ee8f2..6b28b52dcf0 100644
--- a/pkgs/applications/misc/rescuetime/default.nix
+++ b/pkgs/applications/misc/rescuetime/default.nix
@@ -1,19 +1,21 @@
 { stdenv, lib, fetchurl, dpkg, patchelf, qt5, libXtst, libXext, libX11, mkDerivation, makeWrapper, libXScrnSaver }:
 
 let
+  version = "2.16.3.1";
   src =
     if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
       name = "rescuetime-installer.deb";
-      url = "https://www.rescuetime.com/installers/rescuetime_current_i386.deb";
-      sha256 = "157yg4n5ppgnrd5wrz06qfx391vggp3wifla39rvcaaysvvisl8v";
+      url = "https://www.rescuetime.com/installers/rescuetime_${version}_i386.deb";
+      sha256 = "1374nmj6g6w24cv604kzac0v57gcl1pwpw0nxpr7kv2786x1aqg2";
     } else fetchurl {
       name = "rescuetime-installer.deb";
-      url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb";
-      sha256 = "17gjiwf0qbh1zbrxxsilnpg0qxy5kdpqxlnl28namp671rv0aic8";
+      url = "https://www.rescuetime.com/installers/rescuetime_${version}_amd64.deb";
+      sha256 = "05qs6wbc3705z8w9c3n83m4j8xfmzm673lyh5j95x1ak5czkrphk";
     };
 in mkDerivation {
   # https://www.rescuetime.com/updates/linux_release_notes.html
-  name = "rescuetime-2.16.2.1";
+  inherit version;
+  pname = "rescuetime";
   inherit src;
   nativeBuildInputs = [ dpkg ];
   # avoid https://github.com/NixOS/patchelf/issues/99
diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix
index 6c55c3157f5..883b3eec03d 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.2";
+		version = "0.10.11";
 
 		desktopItem = makeDesktopItem rec {
 			name = "SideQuest";
@@ -16,7 +16,7 @@
 
 			src = fetchurl {
 				url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
-				sha256 = "1vfxn4gx5b138gj6nk4w3jlp2l56cqpb8hq2kn5mrf4dhjii8n88";
+				sha256 = "0fw952kdh1gn00y6sx2ag0rnb2paxq9ikg4bzgmbj7rrd1c6l2k9";
 			};
 
 			buildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix
index 6c66987ddb5..d763bd6d6b0 100644
--- a/pkgs/applications/misc/simplenote/default.nix
+++ b/pkgs/applications/misc/simplenote/default.nix
@@ -16,10 +16,10 @@ let
 
   pname = "simplenote";
 
-  version = "1.21.0";
+  version = "1.21.1";
 
   sha256 = {
-    x86_64-linux = "073dg4agqgimsgs3ia7g0pjv4vxkh24bj7vpmssiysdxhm4li1j1";
+    x86_64-linux = "00qx82d17yrrg2mxwhm40av0mpf5hy14j338i5ijhwp79yc8fk8x";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/snowsql/default.nix b/pkgs/applications/misc/snowsql/default.nix
new file mode 100644
index 00000000000..a860b555b59
--- /dev/null
+++ b/pkgs/applications/misc/snowsql/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchurl
+, rpmextract
+, patchelf
+, makeWrapper
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "snowsql";
+  version = "1.2.5";
+
+  src = fetchurl {
+    url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowflake-snowsql-1.2.5-1.x86_64.rpm";
+    sha256 = "c66e2044640197f4a5b5a16b89e8e7c6a816aa539004a0fb016aab185795f2d5";
+  };
+
+  nativeBuildInputs = [ rpmextract makeWrapper ];
+
+  libPath =
+    stdenv.lib.makeLibraryPath
+      [
+        openssl
+      ];
+
+  buildCommand = ''
+    mkdir -p $out/bin/
+    cd $out
+    rpmextract $src
+    rm -R usr/bin
+    mv usr/* $out
+    rmdir usr
+
+    ${patchelf}/bin/patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+        lib64/snowflake/snowsql/snowsql
+
+    makeWrapper $out/lib64/snowflake/snowsql/snowsql $out/bin/snowsql \
+      --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/lib64/snowflake/snowsql \
+
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command line client for the Snowflake database";
+    homepage = "https://www.snowflake.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ andehen ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/super_user_spark/default.nix b/pkgs/applications/misc/super_user_spark/default.nix
deleted file mode 100644
index dd1218282d8..00000000000
--- a/pkgs/applications/misc/super_user_spark/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ mkDerivation, fetchgit, aeson, aeson-pretty, base, bytestring, directory
-, filepath, hspec, hspec-core, HUnit, mtl, optparse-applicative
-, parsec, process, pureMD5, QuickCheck, shelly, stdenv, text
-, transformers, unix
-}:
-mkDerivation {
-  pname = "super-user-spark";
-  version = "0.3.2.0-dev";
-  src = fetchgit {
-    url = "https://github.com/NorfairKing/super-user-spark";
-    sha256 = "0akyc51bghzkk8j75n0i8v8rrsklidwvljhx3aibxfbkqp33372g";
-    rev = "ab8635682d67842b9e6d909cf3c618014e4157f2";
-  };
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [
-    aeson aeson-pretty base bytestring directory filepath mtl
-    optparse-applicative parsec process pureMD5 shelly text
-    transformers unix
-  ];
-  executableHaskellDepends = [ base ];
-  testHaskellDepends = [
-    aeson aeson-pretty base bytestring directory filepath hspec
-    hspec-core HUnit mtl optparse-applicative parsec process pureMD5
-    QuickCheck shelly text transformers unix
-  ];
-  jailbreak = true;
-  description = "Configure your dotfile deployment with a DSL";
-  license = stdenv.lib.licenses.mit;
-  homepage = "https://github.com/NorfairKing/super-user-spark";
-  maintainers = [ stdenv.lib.maintainers.badi ];
-}
diff --git a/pkgs/applications/misc/systembus-notify/default.nix b/pkgs/applications/misc/systembus-notify/default.nix
index 28c1be4219d..374adc6c89b 100644
--- a/pkgs/applications/misc/systembus-notify/default.nix
+++ b/pkgs/applications/misc/systembus-notify/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "systembus-notify";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "rfjakob";
     repo = "systembus-notify";
     rev = "v${version}";
-    sha256 = "11zq84qfmbyl51d3r6294l2bjhlgwa9bx7d263g9fkqrwsg0si0y";
+    sha256 = "1pdn45rfpwhrf20hs87qmk2j8sr7ab8161f81019wnypnb1q2fsv";
   };
 
   buildInputs = [ systemd ];
diff --git a/pkgs/applications/misc/taskell/default.nix b/pkgs/applications/misc/taskell/default.nix
deleted file mode 100644
index c8974c5c275..00000000000
--- a/pkgs/applications/misc/taskell/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ lib, haskellPackages, fetchFromGitHub }:
-
-let
-  version = "1.10.0";
-  sha256  = "102iwn6011rypdlx07fzbdll3r5cd204qf96lzwkadvjb7h8clil";
-
-in (haskellPackages.mkDerivation {
-  pname = "taskell";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "smallhadroncollider";
-    repo = "taskell";
-    rev = version;
-    inherit sha256;
-  };
-
-  postPatch = ''${haskellPackages.hpack}/bin/hpack'';
-
-  # basically justStaticExecutables; TODO: use justStaticExecutables
-  enableSharedExecutables = false;
-  enableLibraryProfiling = false;
-  isExecutable = true;
-  doHaddock = false;
-  postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
-
-  # copied from packages.yaml
-  libraryHaskellDepends = with haskellPackages; [
-    classy-prelude
-    # base <=5
-    aeson
-    brick
-    # bytestring
-    config-ini
-    # containers
-    # directory
-    file-embed
-    fold-debounce
-    http-conduit
-    http-client
-    http-types
-    lens
-    raw-strings-qq
-    # mtl
-    # template-haskell
-    # text
-    time
-    vty
-    tz
-  ];
-
-  executableHaskellDepends = [];
-
-  testHaskellDepends = with haskellPackages; [
-    tasty
-    tasty-discover
-    tasty-expected-failure
-    tasty-hunit
-  ];
-
-  description = "Command-line Kanban board/task manager with support for Trello boards and GitHub projects";
-  homepage    = "https://taskell.app";
-  license     = lib.licenses.bsd3;
-  maintainers = with lib.maintainers; [ matthiasbeyer ];
-  platforms = [ "x86_64-linux" ];
-})
diff --git a/pkgs/applications/misc/wofi/default.nix b/pkgs/applications/misc/wofi/default.nix
index 69ec8fffaa1..4aeff6c9ec8 100644
--- a/pkgs/applications/misc/wofi/default.nix
+++ b/pkgs/applications/misc/wofi/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook installShellFiles ];
   buildInputs = [ wayland gtk3 ];
 
+  patches = [
+    # https://todo.sr.ht/~scoopta/wofi/121
+    ./do_not_follow_symlinks.patch
+  ];
+
   postInstall = ''
     installManPage man/wofi*
   '';
diff --git a/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch b/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch
new file mode 100644
index 00000000000..f917c4c1685
--- /dev/null
+++ b/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch
@@ -0,0 +1,39 @@
+diff -r 3414ab984249 modes/run.c
+--- a/modes/run.c	Tue Aug 11 19:07:49 2020 -0700
++++ b/modes/run.c	Sat Aug 22 13:39:52 2020 +0200
+@@ -91,23 +91,10 @@
+ 
+ 	char* path = strdup(getenv("PATH"));
+ 
+-	struct map* paths = map_init();
+-
+ 	char* save_ptr;
+ 	char* str = strtok_r(path, ":", &save_ptr);
+ 	do {
+ 
+-		str = realpath(str, NULL);
+-		if(str == NULL) {
+-			continue;
+-		}
+-		if(map_contains(paths, str)) {
+-			free(str);
+-			continue;
+-		}
+-
+-		map_put(paths, str, "true");
+-
+ 		DIR* dir = opendir(str);
+ 		if(dir == NULL) {
+ 			continue;
+@@ -132,11 +119,9 @@
+ 			}
+ 			free(full_path);
+ 		}
+-		free(str);
+ 		closedir(dir);
+ 	} while((str = strtok_r(NULL, ":", &save_ptr)) != NULL);
+ 	free(path);
+-	map_free(paths);
+ 	map_free(cached);
+ 	map_free(entries);
+ }
diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix
index ca868a08077..a16beb65208 100644
--- a/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/pkgs/applications/networking/browsers/eolie/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchgit, meson, ninja, pkgconfig, nix-update-script
-, python3, gtk3, libsecret, gst_all_1, webkitgtk
+, python3, gtk3, libsecret, gst_all_1, webkitgtk, glib
 , glib-networking, gtkspell3, hunspell, desktop-file-utils
-, gobject-introspection, wrapGAppsHook }:
+, gobject-introspection, wrapGAppsHook, gnome3 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "eolie";
-  version = "0.9.63";
+  version = "0.9.99";
 
   format = "other";
   doCheck = false;
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
     url = "https://gitlab.gnome.org/World/eolie";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "0z8gcfg7i842rr5p8r3vqa31kf7nnj1yv3afax3jzf4zbnhb8wm0";
+    sha256 = "077jww5mqg6bbqbj0j1gss2j3dxlfr2xw8bc43k8vg52drqg6g8w";
   };
 
   nativeBuildInputs = [
@@ -33,18 +33,23 @@ python3.pkgs.buildPythonApplication rec {
     gst-plugins-base
     gst-plugins-ugly
     gstreamer
+    gnome3.gnome-settings-daemon
     gtk3
     gtkspell3
     hunspell
     libsecret
-    webkitgtk
+    (webkitgtk.override {enableGLES = false;})
+    glib
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
+    pyfxa
     beautifulsoup4
+    cryptography
     pycairo
     pygobject3
     python-dateutil
+    pycrypto
   ];
 
   postPatch = ''
@@ -52,9 +57,11 @@ python3.pkgs.buildPythonApplication rec {
     patchShebangs meson_post_install.py
   '';
 
+  dontWrapGApps = true;
   preFixup = ''
     buildPythonPath "$out $propagatedBuildInputs"
     patchPythonScript "$out/libexec/eolie-sp"
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
   passthru = {
@@ -63,6 +70,7 @@ python3.pkgs.buildPythonApplication rec {
     };
   };
 
+  strictDeps = false;
 
   meta = with stdenv.lib; {
     description = "A new GNOME web browser";
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index 8d711b6de2f..fa19c4efa9d 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -119,9 +119,13 @@ in stdenv.mkDerivation {
       --replace /opt $out/share \
       --replace $out/share/google/$appname/google-$appname $exe
 
-    for icon_file in $out/share/google/chrome*/product_logo_*[0-9].png; do
+    for icon_file in $out/share/google/chrome*/product_logo_[0-9]*.png; do
       num_and_suffix="''${icon_file##*logo_}"
-      icon_size="''${num_and_suffix%.*}"
+      if [ $dist = "stable" ]; then
+        icon_size="''${num_and_suffix%.*}"
+      else
+        icon_size="''${num_and_suffix%_*}"
+      fi
       logo_output_prefix="$out/share/icons/hicolor"
       logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
       mkdir -p "$logo_output_path"
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 686ffee9148..f2bf39b548b 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -47,11 +47,11 @@ let
 in stdenv.mkDerivation rec {
 
   pname = "opera";
-  version = "67.0.3575.31";
+  version = "68.0.3618.63";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    sha256 = "1ghygin7xf5lwd77s8f6bag339di4alwlkqwjzlq20wzwx4lns4w";
+    sha256 = "1643043ywz94x2yr7xyw7krfq53iwkr8qxlbydzq6zb2zina7jxd";
   };
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 601b3da1570..45bbfbd6c40 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,16 +19,16 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "2.9.5";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "1x44mgvnbn47a33xnhnh9bxxvj1vsr32lvh9bq6w5hpmxb7qbq4f";
+    sha256 = "19z1v6p59pcl8smywn1b5igqpv9wj48n6500wjxx5ayhc4mg00h2";
   };
 
-  vendorSha256 = "1vqmzz76lcwwnw89n4lyg4jjf7wbdgn9sdzwsgrjwkj8ax7d48cv";
+  vendorSha256 = "0fqdxs3r4249qxlc9cac0lpbqf2aifkcah07v0cckb9rxfyiwhjz";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 86d1b80d061..d3e18ce691f 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "1g1bh1v3yd3dz80ckjrhspmsf78nw8hc907hh9jzbq62psqg4459";
+    sha256 = "0nb0dm4yn6f5pw7clgb2d1khcwcxiidqyc0sdh38wwqg0zyil0cz";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/cni/plugins.nix b/pkgs/applications/networking/cluster/cni/plugins.nix
index d3b2addee10..3822f453a30 100644
--- a/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -38,7 +38,7 @@ buildGoModule rec {
     "plugins/meta/tuning"
   ];
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with lib; {
     description = "Some standard networking plugins, maintained by the CNI team";
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index 865a892efb7..44e21de0a03 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.20.1";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "1l514rf7rg05prq9548ygj6z284sy85ddzrwiiqr74vz4kilg3vb";
+    sha256 = "1a44lmrvi5f9jr04rblhcsg3zvqzvdp9wyw4m4h4scsqp5g7dfb7";
   };
 
-  vendorSha256 = "00qm45vfz4afj8f9hikrlk96w0rdzxqq2azhzrnzfymyiwc6jk5c";
+  vendorSha256 = "1yzh6iglrzd43yqs1b6qh1i62b6qaz3232lgxyg3gmc81p0i5kr0";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index d1cfc89f2df..f713d8a8a6d 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.125.5";
+  version = "0.125.7";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "00c1sppvdnsqay8zk6fz5xz8yw74zv30hq54r4sf1a5rb84nd05h";
+    sha256 = "1m030gjrd98z4vbj7l927qi55vgr11czrb8wmw56ifkqwfi6h9hi";
   };
 
-  vendorSha256 = "04mga3jc2c01daygjcn245mv30lc2ibax0mpb1wjk3s8lkl4cxcz";
+  vendorSha256 = "0w72nlf26k64cq1hrqycks0pyp18y4wh3h40jpn5qnysi5pb2ndj";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/kpt/default.nix b/pkgs/applications/networking/cluster/kpt/default.nix
index 634fa22fe77..c370d122703 100644
--- a/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/pkgs/applications/networking/cluster/kpt/default.nix
@@ -2,22 +2,18 @@
 
 buildGoModule rec {
   pname = "kpt";
-  version = "0.32.0";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pgv15zgv30dpv148bn6x0anv9q6x78y6ldmzarb9fbjpk6j0wxl";
+    sha256 = "1lvfbpxxddm1pk4mb4sm0chw15dalsfyhgy86npz94xjf1jssyh8";
   };
 
-  vendorSha256 = "0l8xdnv2m6byd5dwvs3zgcj1lsci7ax4xvx178a8a78sgkqalvmq";
+  vendorSha256 = "1xkjgzy9z7v5z4kl1769dgrrr0ljr0fdxfdj7xbic9hl6nm94kif";
 
-  doCheck = false;
-
-  postInstall = ''
-    rm $out/bin/{mdtogo,formula}
-  '';
+  subPackages = [ "." ];
 
   meta = with lib; {
     description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index decbdbd1fbc..0c1f452ea5b 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "3.0.0";
+  version = "3.0.1";
   k3sVersion = "1.18.6-k3s1";
 
   excludedPackages = ''tools'';
@@ -11,7 +11,7 @@ buildGoModule rec {
     owner  = "rancher";
     repo   = "k3d";
     rev    = "v${version}";
-    sha256 = "1p4rqzi67cr8vf1ih7zqxkpssqq0vy4pb5crvkxbbf5ad5mwrjri";
+    sha256 = "1l6mh0dpf2bw9sxpn14iivv3pr8mj4favzx2hhn8k1j71cm1w4rj";
   };
 
   buildFlagsArray = ''
diff --git a/pkgs/applications/networking/cluster/ssm-agent/default.nix b/pkgs/applications/networking/cluster/ssm-agent/default.nix
index 0835d268cd7..c6f9217b35b 100644
--- a/pkgs/applications/networking/cluster/ssm-agent/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -1,22 +1,56 @@
-{ stdenv, fetchFromGitHub, buildGoPackage }:
+{ stdenv, fetchFromGitHub, buildGoPackage, bash, makeWrapper }:
 
 buildGoPackage rec {
   pname   = "amazon-ssm-agent";
-  version = "2.0.633.0";
+  version = "2.3.1319.0";
 
   goPackagePath = "github.com/aws/${pname}";
-  subPackages   = [ "agent" ];
+  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 ];
 
   src = fetchFromGitHub {
-    rev    = "v${version}";
+    rev    = version;
     owner  = "aws";
     repo   = pname;
-    sha256 = "10arshfn2k3m3zzgw8b3xc6ywd0ss73746nq5srh2jir7mjzi4xv";
+    sha256 = "1yiyhj7ckqa32b1rnbwn7zx89rsj00m5imn1xlpsw002ywxsxbnv";
   };
 
   preBuild = ''
     mv go/src/${goPackagePath}/vendor strange-vendor
     mv strange-vendor/src go/src/${goPackagePath}/vendor
+
+    cd go/src/${goPackagePath}
+    echo ${version} > VERSION
+
+    substituteInPlace agent/plugins/inventory/gatherers/application/dataProvider.go \
+      --replace '"github.com/aws/amazon-ssm-agent/agent/plugins/configurepackage/localpackages"' ""
+
+    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 -
+  '';
+
+  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
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bash}/bin
   '';
 
   meta = with stdenv.lib; {
@@ -24,7 +58,6 @@ buildGoPackage rec {
     homepage    = "https://github.com/aws/amazon-ssm-agent";
     license     = licenses.asl20;
     platforms   = platforms.unix;
-    maintainers = with maintainers; [ copumpkin ];
+    maintainers = with maintainers; [ copumpkin manveru ];
   };
 }
-
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
index 2a7899f2fed..1793af1085a 100644
--- a/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/pkgs/applications/networking/cluster/tanka/default.nix
@@ -1,4 +1,4 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
 
 buildGoModule rec {
   pname = "tanka";
@@ -17,6 +17,13 @@ buildGoModule rec {
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    echo "complete -C $out/bin/tk tk" > tk.bash
+    installShellCompletion tk.bash
+  '';
+
   meta = with lib; {
     description = "Flexible, reusable and concise configuration for Kubernetes";
     homepage = "https://github.com/grafana/tanka/";
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index be5d47eb0e0..14744f188b0 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.23.32";
+  version = "0.23.33";
 
    src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pa3k0hjdb5bj0bp4aj3lfcgz98l3wd9kfa12rn9zzbcmp087kih";
+    sha256 = "0fsyvmdg2llnzy0yzmiihnb865ccq2sn6d3i935dflppnjyp01p4";
   };
 
-  vendorSha256 = "1xn7c6y32vpanqvf1sfpw6bs73dbjniavjbf00j0vx83bfyklsr4";
+  vendorSha256 = "05p72l724qqf61dn0frahf4awvkkcw8cpl6nhwlacd1jw8c14fjl";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 2f5316c9fe2..5d9963956ed 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -54,6 +54,11 @@ mkDerivation rec {
     qtquickcontrols2
     qtgraphicaleffects
   ] ++ lib.optional stdenv.isDarwin qtmacextras;
+  # Quick and dirty fix to https://github.com/NixOS/nixpkgs/issues/94952
+  # and/or: https://github.com/NixOS/nixpkgs/issues/94905
+  cmakeFlags = [
+    "-DCMAKE_OSX_ARCHITECTURES="
+  ];
 
   meta = with stdenv.lib; {
     description = "Desktop client for the Matrix protocol";
diff --git a/pkgs/applications/networking/instant-messengers/ytalk/default.nix b/pkgs/applications/networking/instant-messengers/ytalk/default.nix
new file mode 100644
index 00000000000..8cb22aabc69
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/ytalk/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "ytalk";
+  version = "3.3.0";
+
+  src = fetchurl {
+    url = "ftp://ftp.ourproject.org/pub/ytalk/${pname}-${version}.tar.gz";
+    sha256 = "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf";
+  };
+
+  buildInputs = [ ncurses ];
+
+  meta = {
+    homepage    = "http://ytalk.ourproject.org";
+    description = "A terminal based talk client";
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ taeer ];
+    license     = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index 8928cafa74e..dbc6dc97ef2 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -26,8 +26,6 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
-  doCheck = false;
-
   postInstall = ''
     install -D misc/systemd/ipfs.service $out/etc/systemd/system/ipfs.service
     install -D misc/systemd/ipfs-api.socket $out/etc/systemd/system/ipfs-api.socket
diff --git a/pkgs/applications/networking/irc/weechat/scripts/default.nix b/pkgs/applications/networking/irc/weechat/scripts/default.nix
index 0880a32af92..6d228688607 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -7,6 +7,8 @@
 
   weechat-matrix = python3Packages.callPackage ./weechat-matrix { };
 
+  weechat-notify-send = python3Packages.callPackage ./weechat-notify-send { };
+
   wee-slack = callPackage ./wee-slack { };
 
   weechat-autosort = callPackage ./weechat-autosort { };
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
new file mode 100644
index 00000000000..d219aa481cd
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libnotify }:
+
+stdenv.mkDerivation rec {
+  pname = "weechat-notify-send";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "s3rvac";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1693b7axm9ls5p7hm6kq6avddsisi491khr5irvswr5lpizvys6a";
+  };
+
+  passthru.scripts = [ "notify_send.py" ];
+
+  dontBuild = true;
+  doCheck = false;
+
+  installPhase = ''
+    install -D notify_send.py $out/share/notify_send.py
+    substituteInPlace $out/share/notify_send.py \
+      --replace "'notify-send'" "'${libnotify}/bin/notify-send'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A WeeChat script that sends highlight and message notifications through notify-send";
+    homepage = "https://github.com/s3rvac/weechat-notify-srnd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tobim ];
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index f15e4b5fbbf..84c81ecff64 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -5,14 +5,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "20200814";
+  version = "20200821";
   pname = "neomutt";
 
   src = fetchFromGitHub {
     owner  = "neomutt";
     repo   = "neomutt";
     rev    = version;
-    sha256 = "00i2xbadw7rq2b30yjla54m0df4jbh22g6phby41albw2wc2hn72";
+    sha256 = "0l66xf6qp2fdhm5h2v58bbc73pwj72c80mriqac9pfyjh5padir5";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
index 0b2a76cc00f..214f4311e69 100644
--- a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "notmuch-bower";
-  version = "0.11";
+  version = "0.12";
 
   src = fetchFromGitHub {
     owner = "wangp";
     repo = "bower";
     rev = version;
-    sha256 = "0vhac8yjnhb1gz60jfzg27spyn96c1rr849gc6vjym5xamw7zp0v";
+    sha256 = "0hvvlbvad6h73iiyn9xshlj073p2ddchgh0pyizh9gi8niir4fn5";
   };
 
   nativeBuildInputs = [ gawk mercury pandoc ];
diff --git a/pkgs/applications/networking/nextdns/default.nix b/pkgs/applications/networking/nextdns/default.nix
index e6bb229b118..de3ff40e43c 100644
--- a/pkgs/applications/networking/nextdns/default.nix
+++ b/pkgs/applications/networking/nextdns/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "nextdns";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "nextdns";
     repo = "nextdns";
     rev = "v${version}";
-    sha256 = "15xw8d6b9rv0lalzfllixm8n89clz9j8ag1gk4r16k7yv5l6xrpd";
+    sha256 = "001swxmf7ga2g0ri3gsnwvgjcarwdhfg476ymblg34kk9wclidmy";
   };
 
   vendorSha256 = "09whpzsn16znyrknfm5zlhla253r69j6d751czza4c83m4r36swj";
diff --git a/pkgs/applications/networking/ssb-patchwork/default.nix b/pkgs/applications/networking/ssb-patchwork/default.nix
index db33e7e6bb2..7bc5563d470 100644
--- a/pkgs/applications/networking/ssb-patchwork/default.nix
+++ b/pkgs/applications/networking/ssb-patchwork/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ssb-patchwork";
-  version = "3.17.7";
+  version = "3.18.0";
   name = "Patchwork-${version}";
 
   src = fetchurl {
     url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage";
-    sha256 = "1xj2aqy7daf4r3ypch6hkvk1s0jnx70qwh0p63c7rzm16vh8kb2f";
+    sha256 = "1sb9q1qj5mj4cf8d9dsc498mg8a1ri2y0p9qbh44i8ykby8jkgjc";
   };
 
   binary = appimageTools.wrapType2 {
@@ -40,14 +40,14 @@ in
       cp ${desktopItem}/share/applications/* $out/share/applications/
     '';
 
-  meta = with lib; {
-    description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
-    longDescription = ''
-      sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
-    '';
-    homepage = "https://www.scuttlebutt.nz/";
-    license = licenses.agpl3;
-    maintainers = with maintainers; [ asymmetric ninjatrappeur thedavidmeister ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
+    meta = with lib; {
+      description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
+      longDescription = ''
+        sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
+      '';
+      homepage = "https://www.scuttlebutt.nz/";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ asymmetric ninjatrappeur ];
+      platforms = [ "x86_64-linux" ];
+    };
+  }
diff --git a/pkgs/applications/office/espanso/default.nix b/pkgs/applications/office/espanso/default.nix
index 04a40875f79..889f363dfb9 100644
--- a/pkgs/applications/office/espanso/default.nix
+++ b/pkgs/applications/office/espanso/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "espanso";
-  version = "0.6.3";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "federico-terzi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1x5p7hniapggqd18rx26mjvdf33z7rm7zz5vsqm2siv3mcl19033";
+    sha256 = "11xdnn1iwpx58s3wvjb6dkgfc6dzsblzb6fngc0np5vx8r2pccpg";
   };
 
-  cargoSha256 = "0liwwdncymjql5dw7rwhhimcr7qdbyvfgmsd0bawvi0ym7m1v408";
+  cargoSha256 = "1yjpqjfrixscg52yhalybgp734w3sdqg5hxka8ppcvz7lp3w5b1s";
 
   nativeBuildInputs = [
     extra-cmake-modules
diff --git a/pkgs/applications/office/softmaker/freeoffice.nix b/pkgs/applications/office/softmaker/freeoffice.nix
index d9f901ff463..634a696a73e 100644
--- a/pkgs/applications/office/softmaker/freeoffice.nix
+++ b/pkgs/applications/office/softmaker/freeoffice.nix
@@ -1,14 +1,26 @@
-{ callPackage, fetchurl, ... } @ args:
+{ callPackage
+, fetchurl
 
-callPackage ./generic.nix (args // rec {
-  pname = "freeoffice";
+  # This is a bit unusual, but makes version and hash easily
+  # overridable. This is useful when the upstream archive was replaced
+  # and nixpkgs is not in sync yet.
+, officeVersion ? {
   version = "976";
   edition = "2018";
+  sha256 = "13yh4lyqakbdqf4r8vw8imy5gwpfva697iqfd85qmp3wimqvzskl";
+}
+
+, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  inherit (officeVersion) version edition;
+
+  pname = "freeoffice";
   suiteName = "FreeOffice";
 
   src = fetchurl {
+    inherit (officeVersion) sha256;
     url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
-    sha256 = "13yh4lyqakbdqf4r8vw8imy5gwpfva697iqfd85qmp3wimqvzskl";
   };
 
   archive = "freeoffice${edition}.tar.lzma";
diff --git a/pkgs/applications/office/softmaker/softmaker_office.nix b/pkgs/applications/office/softmaker/softmaker_office.nix
index 39a6c9288b4..6aaa8c6745a 100644
--- a/pkgs/applications/office/softmaker/softmaker_office.nix
+++ b/pkgs/applications/office/softmaker/softmaker_office.nix
@@ -1,14 +1,27 @@
-{ callPackage, fetchurl, ... } @ args:
+{ callPackage
+, fetchurl
+
+  # This is a bit unusual, but makes version and hash easily
+  # overridable. This is useful when people have an older version of
+  # Softmaker Office or when the upstream archive was replaced and
+  # nixpkgs is not in sync yet.
+, officeVersion ? {
+  version = "1018";
+  edition = "2021";
+  sha256 = "1g9mcn0z7s3xw7d5bcjxbnamh6knzndcysahydskfcds6czdxg0c";
+}
+
+, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
+  inherit (officeVersion) version edition;
+
   pname = "softmaker-office";
-  version = "1016";
-  edition = "2021";
   suiteName = "SoftMaker Office";
 
   src = fetchurl {
+    inherit (officeVersion) sha256;
     url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
-    sha256 = "0s8kzpc6w2cjkfqmhb2p1pkmkiq9vk9gnc7z2992kijaf9bwk3qz";
   };
 
   archive = "office${edition}.tar.lzma";
diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix
new file mode 100644
index 00000000000..f0fc5c3738c
--- /dev/null
+++ b/pkgs/applications/office/timeular/default.nix
@@ -0,0 +1,45 @@
+{
+  stdenv,
+  fetchurl,
+  appimageTools,
+  libsecret
+}:
+
+let
+  version = "3.4.1";
+  pname = "timeular";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
+    sha256 = "1s5jjdl1nzq9yd582lqs904yl10mp0s25897zmifmcbw1vz38bar";
+  };
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  extraPkgs = pkgs: with pkgs; [
+    libsecret
+  ];
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+    install -m 444 -D ${appimageContents}/timeular.desktop $out/share/applications/timeular.desktop
+    install -m 444 -D ${appimageContents}/timeular.png $out/share/icons/hicolor/512x512/apps/timeular.png
+    substituteInPlace $out/share/applications/timeular.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Timetracking by flipping 8-sided dice";
+    longDescription = ''
+      The Timeular Tracker is an 8-sided dice that sits on your desk.
+      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;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ktor ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/radio/inspectrum/default.nix b/pkgs/applications/radio/inspectrum/default.nix
index a205cec714d..f55c78ea26b 100644
--- a/pkgs/applications/radio/inspectrum/default.nix
+++ b/pkgs/applications/radio/inspectrum/default.nix
@@ -8,20 +8,21 @@
 , gnuradio
 , liquid-dsp
 , qtbase
+, wrapQtAppsHook
 }:
 
-mkDerivation {
+mkDerivation rec {
   pname = "inspectrum";
-  version = "unstable-2017-05-31";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "miek";
     repo = "inspectrum";
-    rev = "a89d1337efb31673ccb6a6681bb89c21894c76f7";
-    sha256 = "1fvnr8gca25i6s9mg9b2hyqs0zzr4jicw13mimc9dhrgxklrr1yv";
+    rev = "v${version}";
+    sha256 = "1a517y7s1xi66y5kjrpjay450pad9nc228pa8801mxq1c7m1lamm";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
   buildInputs = [
     fftwFloat
     boost
diff --git a/pkgs/applications/science/biology/igv/default.nix b/pkgs/applications/science/biology/igv/default.nix
index aa6c95071b7..bc4f1677fc9 100644
--- a/pkgs/applications/science/biology/igv/default.nix
+++ b/pkgs/applications/science/biology/igv/default.nix
@@ -1,32 +1,34 @@
-{ stdenv, fetchurl, unzip, jre }:
+{ stdenv, fetchzip, jdk11 }:
 
 stdenv.mkDerivation rec {
   pname = "igv";
-  version = "2.4.19";
-
-  src = fetchurl {
-    url = "https://data.broadinstitute.org/igv/projects/downloads/2.4/IGV_${version}.zip";
-    sha256 = "048dgrhxcb854d24kyjkqz12bw04bsv49i5jawb75yzkswwfkb0z";
+  version = "2.8.9";
+  src = fetchzip {
+    url = "https://data.broadinstitute.org/igv/projects/downloads/2.8/IGV_${version}.zip";
+    sha256 = "1874w1xprv91caz1ymfxilq6inhj36xzx8j9m0mcyp0qfvfvyjp7";
   };
 
-  buildInputs = [ unzip jre ];
-
   installPhase = ''
     mkdir -pv $out/{share,bin}
     cp -Rv * $out/share/
 
     sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igv.sh
-    sed -i 's#java#${jre}/bin/java#g' $out/share/igv.sh
+    sed -i 's#java#${jdk11}/bin/java#g' $out/share/igv.sh
+
+    sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igvtools
+    sed -i 's#java#${jdk11}/bin/java#g' $out/share/igvtools
 
     ln -s $out/share/igv.sh $out/bin/igv
+    ln -s $out/share/igvtools $out/bin/igvtools
 
     chmod +x $out/bin/igv
+    chmod +x $out/bin/igvtools
   '';
 
   meta = with stdenv.lib; {
     homepage = "https://www.broadinstitute.org/igv/";
     description = "A visualization tool for interactive exploration of genomic datasets";
-    license = licenses.lgpl21;
+    license = licenses.mit;
     platforms = platforms.unix;
     maintainers = [ maintainers.mimame ];
   };
diff --git a/pkgs/applications/science/biology/star/default.nix b/pkgs/applications/science/biology/star/default.nix
index 6f4211d0c0d..3f362e6d46a 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.3a";
+  version = "2.7.4a";
 
   src = fetchFromGitHub {
     repo = "STAR";
     owner = "alexdobin";
     rev = version;
-    sha256 = "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq";
+    sha256 = "1y4g7h6f95pa9g8kv1aihrfglavqymdx4mnqh6ascs50ibm7zdmz";
   };
 
   sourceRoot = "source/source";
diff --git a/pkgs/applications/science/biology/whisper/default.nix b/pkgs/applications/science/biology/whisper/default.nix
new file mode 100644
index 00000000000..9e336600202
--- /dev/null
+++ b/pkgs/applications/science/biology/whisper/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "whisper";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "refresh-bio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wpx1w1mar2d6zq2v14vy6nn896ds1n3zshxhhrrj5d528504iyw";
+  };
+
+  preConfigure = ''
+    cd src
+
+    # disable default static linking
+    sed -i 's/ -static / /' makefile
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/bin whisper whisper-index
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Short read sequence mapper";
+    license = licenses.gpl3;
+    homepage = "https://github.com/refresh-bio/whisper";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/applications/science/electronics/adms/default.nix b/pkgs/applications/science/electronics/adms/default.nix
index f55dd2f0528..0fcf4d25e2d 100644
--- a/pkgs/applications/science/electronics/adms/default.nix
+++ b/pkgs/applications/science/electronics/adms/default.nix
@@ -2,14 +2,14 @@
   libxml2, perl, perlPackages, gd }:
 
 stdenv.mkDerivation rec {
-  version = "2.3.6";
+  version = "2.3.7";
   pname = "adms";
 
   src = fetchFromGitHub {
     owner = "Qucs";
     repo = "adms";
     rev = "release-${version}";
-    sha256 = "1pcwq5khzdq4x33lid9hq967gv78dr5i4f2sk8m8rwkfqb9vdzrg";
+    sha256 = "0i37c9k6q1iglmzp9736rrgsnx7sw8xn3djqbbjw29zsyl3pf62c";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/science/electronics/hyp2mat/default.nix b/pkgs/applications/science/electronics/hyp2mat/default.nix
index 1fa2c23b569..154b68dd5aa 100644
--- a/pkgs/applications/science/electronics/hyp2mat/default.nix
+++ b/pkgs/applications/science/electronics/hyp2mat/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hyp2mat";
-  version = "0.0.17";
+  version = "0.0.18";
 
   src = fetchFromGitHub {
     owner = "koendv";
     repo = "hyp2mat";
     rev = "v${version}";
-    sha256 = "04bd2vrn8y1izir7pwl34a60cg2v05baqcrmpfdx5fvf33bbflaj";
+    sha256 = "03ibk51swxfl7pfrhcrfiffdi4mnf8kla0g1xj1lsrvrjwapfx03";
   };
 
   nativeBuildInputs = [
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Import Hyperlynx Boardsim files to openEMS, an open source 3D full-wave electromagnetic field solver";
-    homepage = https://github.com/koendv/hyp2mat;
+    homepage = "https://github.com/koendv/hyp2mat";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ matthuszagh ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/electronics/kicad/base.nix b/pkgs/applications/science/electronics/kicad/base.nix
index b7ab5fa70d9..2fd4c122041 100644
--- a/pkgs/applications/science/electronics/kicad/base.nix
+++ b/pkgs/applications/science/electronics/kicad/base.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   i18n = libraries.i18n;
 
   pname = "kicad-base";
-  version = "${versions.${baseName}.kicadVersion.version}";
+  version = "${builtins.substring 0 10 versions.${baseName}.kicadVersion.src.rev}";
 
   src = fetchFromGitLab (
     {
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index a8340a2c22c..e5ce1f0092e 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -9,7 +9,7 @@
 , oceSupport ? false, opencascade
 , withOCCT ? true, opencascade-occt
 , ngspiceSupport ? true, libngspice
-, scriptingSupport ? false, swig, python3
+, scriptingSupport ? true, swig, python3
 , debug ? false, valgrind
 , with3d ? true
 , withI18n ? true
diff --git a/pkgs/applications/science/electronics/kicad/libraries.nix b/pkgs/applications/science/electronics/kicad/libraries.nix
index 4dde2a0a122..91ce30de5f0 100644
--- a/pkgs/applications/science/electronics/kicad/libraries.nix
+++ b/pkgs/applications/science/electronics/kicad/libraries.nix
@@ -15,7 +15,9 @@ let
   mkLib = name:
     stdenv.mkDerivation {
       pname = "kicad-${name}";
-      version = "${version}";
+      # Use the revision instead of `version` (which is an ISO 8601 date)
+      # to prevent duplicating the library when just the date changed
+      version = "${builtins.substring 0 10 libSources.${name}.rev}";
       src = fetchFromGitHub (
         {
           owner = "KiCad";
@@ -50,7 +52,7 @@ in
   i18n = let name = "i18n"; in
     stdenv.mkDerivation {
       pname = "kicad-${name}";
-      version = "${version}";
+      version = "${builtins.substring 0 10 libSources.${name}.rev}";
       src = fetchFromGitLab (
         {
           group = "kicad";
diff --git a/pkgs/applications/science/electronics/kicad/versions.nix b/pkgs/applications/science/electronics/kicad/versions.nix
index 7299e8ee907..d001cc43367 100644
--- a/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/pkgs/applications/science/electronics/kicad/versions.nix
@@ -27,25 +27,25 @@
   };
   "kicad-unstable" = {
     kicadVersion = {
-      version =			"2020-07-21";
+      version =			"2020-08-22";
       src = {
-        rev =			"9a801d8b72f24e297a7d9d6e8cee2eef6cab2988";
-        sha256 =		"0yilmmng7y3rz1bxw2b0s0aqs8hdqr7ach2r45bx8v1f4bih4ka9";
+        rev =			"a2341f0f335b0abb9fc8cb86d19cbe6f9b38fade";
+        sha256 =		"0167yb39f800xarq3khn7sbdkgcx9j2ayhy8c7lhhks6kh7459g0";
       };
     };
     libVersion = {
-      version =			"2020-07-21";
+      version =			"2020-08-22";
       libSources = {
-        i18n.rev =		"a311975d139caf8be9848dd613a9800570adc245";
-        i18n.sha256 =		"1bkn2hhwcg8xdpn9yfm9nnqsg02c1nizhpxd4yhpxgifhh4psz1g";
-        symbols.rev =		"18572c4c118fe8ef779edf3131eebf2c33c6fa46";
-        symbols.sha256 =	"0hqx0aznzrnlbdkpsnl8mbs9bdgiv029d6zjh10nyjzcw27q3hxz";
+        i18n.rev =		"cbbb1efd940094bf0c3168280698b2b059a8c509";
+        i18n.sha256 =		"1q4jakn6m8smnr2mg7jgb520nrb6fag9mdvlcpx3smp3qbxka818";
+        symbols.rev =		"9ca6a5348cdeb88e699582d4ed051ff7303b44d3";
+        symbols.sha256 =	"13w6pb34rhz96rnar25z7kiscy6q1fm8l39hq1bpb8g9yn86ssz4";
         templates.rev =		"ae16953b81055855bcede4a33305413599d86a15";
         templates.sha256 =	"1pkv90p3liy3bj4nklxsvpzh9m56p0k5ldr22armvgqfaqaadx9v";
-        footprints.rev =	"4835f80b4a52256aa7a3eb650e6e0fef33a77d0d";
-        footprints.sha256 =	"00rc6phxmkry35i0xzry14axvh2akvvkly45s3xxi06vaydaw7i5";
-        packages3d.rev =	"9b560cf94a35b692ca516d37bdaf392ce10e549d";
-        packages3d.sha256 =	"0b9jglf77fy0n0r8xs4yqkv6zvipyfvp0z5dnqlzp32csy5aqpi1";
+        footprints.rev =	"f94c2d5d619d16033f69a555b449f59604d97865";
+        footprints.sha256 =	"1g71sk77jvqaf9xvgq6dkyvd9pij2lb4n0bn0dqnwddhwam935db";
+        packages3d.rev =	"f699b0e3c13fe75618086913e39279c85da14cc7";
+        packages3d.sha256 =	"0m5rb5axa946v729z35ga84in76y4zpk32qzi0hwqx957zy72hs9";
       };
     };
   };
diff --git a/pkgs/applications/science/electronics/verilator/default.nix b/pkgs/applications/science/electronics/verilator/default.nix
index 0613e22bbda..9c59ad3a394 100644
--- a/pkgs/applications/science/electronics/verilator/default.nix
+++ b/pkgs/applications/science/electronics/verilator/default.nix
@@ -1,22 +1,29 @@
-{ stdenv, fetchurl, perl, flex, bison }:
+{ stdenv, fetchurl
+, perl, flex, bison
+}:
 
 stdenv.mkDerivation rec {
   pname = "verilator";
-  version = "4.036";
+  version = "4.040";
 
   src = fetchurl {
     url    = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
-    sha256 = "1sy02pgq3kvk8548l57hsh08vfbqdg8dghj8mwlybdi8fdjz4z1h";
+    sha256 = "1qy0wllsmxva3c838spxwmacxx36r3njxwhgp172m4l3829785bf";
   };
 
   enableParallelBuilding = true;
-  buildInputs = [ perl flex bison ];
+  buildInputs = [ perl ];
+  nativeBuildInputs = [ flex bison ];
 
-  meta = {
+  # these tests need some interpreter paths patched early on...
+  doCheck = false;
+  checkTarget = "test";
+
+  meta = with stdenv.lib; {
     description = "Fast and robust (System)Verilog simulator/compiler";
     homepage    = "https://www.veripool.org/wiki/verilator";
-    license     = stdenv.lib.licenses.lgpl3;
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+    license     = licenses.lgpl3;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/applications/science/electronics/vhd2vl/default.nix b/pkgs/applications/science/electronics/vhd2vl/default.nix
new file mode 100644
index 00000000000..43dfdcabd02
--- /dev/null
+++ b/pkgs/applications/science/electronics/vhd2vl/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, bison
+, flex
+, verilog
+}:
+
+stdenv.mkDerivation rec {
+  pname = "vhd2vl";
+  version = "unstable-2018-09-01";
+
+  src = fetchFromGitHub {
+    owner = "ldoolitt";
+    repo = pname;
+    rev = "37e3143395ce4e7d2f2e301e12a538caf52b983c";
+    sha256 = "17va2pil4938j8c93anhy45zzgnvq3k71a7glj02synfrsv6fs8n";
+  };
+
+  nativeBuildInputs = [
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    verilog
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp src/vhd2vl $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "VHDL to Verilog converter";
+    homepage = "https://github.com/ldoolitt/vhd2vl";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index d2e49d81783..a12d75eabbe 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -3,18 +3,18 @@
 
 stdenv.mkDerivation rec {
   pname = "isabelle";
-  version = "2018";
+  version = "2020";
 
   dirname = "Isabelle${version}";
 
   src = if stdenv.isDarwin
     then fetchurl {
-      url = "http://isabelle.in.tum.de/website-${dirname}/dist/${dirname}.dmg";
-      sha256 = "0jwnvsf5whklq14ihaxs7b9nbic94mm56nvxljrdbvl6y628j9r5";
+      url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
+      sha256 = "1sfr5filsaqj93g5y4p9n8g5652dhr4whj25x4lifdxr2pp560xx";
     }
     else fetchurl {
       url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
-      sha256 = "1928lwrw1v1p9s23kix30ncpqm8djmrnjixj82f3ni2a8sc3hrsp";
+      sha256 = "1bibabhlsvf6qsjjkgxcpq3cvl1z7r8yfcgqbhbvsiv69n3gyfk3";
     };
 
   buildInputs = [ perl polyml z3 ]
@@ -42,14 +42,14 @@ stdenv.mkDerivation rec {
       ML_SOURCES="\$POLYML_HOME/src"
     EOF
 
-    cat >contrib/jdk/etc/settings <<EOF
+    cat >contrib/jdk*/etc/settings <<EOF
       ISABELLE_JAVA_PLATFORM=${stdenv.system}
       ISABELLE_JDK_HOME=${java}
     EOF
 
     echo ISABELLE_LINE_EDITOR=${rlwrap}/bin/rlwrap >>etc/settings
 
-    for comp in contrib/jdk contrib/polyml-* contrib/z3-*; do
+    for comp in contrib/jdk* contrib/polyml-* contrib/z3-*; do
       rm -rf $comp/x86*
     done
     '' + (if ! stdenv.isLinux then "" else ''
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
     bin/isabelle install $out/bin
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A generic proof assistant";
 
     longDescription = ''
@@ -74,9 +74,9 @@ stdenv.mkDerivation rec {
       to be expressed in a formal language and provides tools for proving those
       formulas in a logical calculus.
     '';
-    homepage = "http://isabelle.in.tum.de/";
-    license = "LGPL";
-    maintainers = [ stdenv.lib.maintainers.jwiegley ];
-    platforms = stdenv.lib.platforms.linux;
+    homepage = "https://isabelle.in.tum.de/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.jwiegley ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/logic/mcy/default.nix b/pkgs/applications/science/logic/mcy/default.nix
index bbdcacf2b50..eba910e07eb 100644
--- a/pkgs/applications/science/logic/mcy/default.nix
+++ b/pkgs/applications/science/logic/mcy/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation {
   pname = "mcy";
-  version = "2020.07.06";
+  version = "2020.08.03";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "mcy";
-    rev    = "6e8433ed9acbface5e080719110a957d89d849df";
-    sha256 = "1vbzg0rgmf7kp735m6p4msxc51vpsrdwk24ir7z0zxsb8lv53gg7";
+    rev    = "62048e69df13f8e03670424626755ae8ef4c36ff";
+    sha256 = "15xxgzx1zxzx5kshqyrxnfx33cz6cjzxcdcn6z98jhs9bwyvf96f";
   };
 
   buildInputs = [ python ];
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index b3ae4580256..9cf8b0845d4 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -1,20 +1,20 @@
 { stdenv, fetchFromGitHub
 , bash, python3, yosys
-, yices, boolector, aiger
+, yices, boolector, z3, aiger
 }:
 
 stdenv.mkDerivation {
   pname = "symbiyosys";
-  version = "2020.07.03";
+  version = "2020.08.22";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "SymbiYosys";
-    rev    = "06e80194c77f5cc38c6999b1d3047a2d6ca82e15";
-    sha256 = "1hl03qy98pgq24ijyimf9pf7qxp42l7cki66wx48jys4m1s6n8v9";
+    rev    = "33b0bb7d836fe2a73dc7b10587222f2a718beef4";
+    sha256 = "03rbrbwsji1sqcp2yhgbc0fca04zsryv2g4izjhdzv64nqjzjyhn";
   };
 
-  buildInputs = [ python3 ];
+  buildInputs = [ ];
   patchPhase = ''
     patchShebangs .
 
@@ -26,14 +26,15 @@ stdenv.mkDerivation {
     # Fix various executable references
     substituteInPlace sbysrc/sby_core.py \
       --replace '"/usr/bin/env", "bash"' '"${bash}/bin/bash"' \
-      --replace ': "btormc"'       ': "${boolector}/bin/btormc"' \
-      --replace ': "yosys"'        ': "${yosys}/bin/yosys"' \
-      --replace ': "yosys-smtbmc"' ': "${yosys}/bin/yosys-smtbmc"' \
-      --replace ': "yosys-abc"'    ': "${yosys}/bin/yosys-abc"' \
-      --replace ': "aigbmc"'       ': "${aiger}/bin/aigbmc"' \
+      --replace ', "btormc"'             ', "${boolector}/bin/btormc"' \
+      --replace ', "aigbmc"'             ', "${aiger}/bin/aigbmc"'
+
+    substituteInPlace sbysrc/sby_core.py \
+      --replace '##yosys-program-prefix##' '"${yosys}/bin/"'
   '';
 
   buildPhase = "true";
+
   installPhase = ''
     mkdir -p $out/bin $out/share/yosys/python3
 
@@ -43,6 +44,10 @@ stdenv.mkDerivation {
     chmod +x $out/bin/sby
   '';
 
+  doCheck = false; # not all provers are yet packaged...
+  checkInputs = [ python3 yosys boolector yices z3 aiger ];
+  checkPhase = "make test";
+
   meta = {
     description = "Tooling for Yosys-based verification flows";
     homepage    = "https://symbiyosys.readthedocs.io/";
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index 53dfb84760e..350a4f99af8 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -10,13 +10,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "z3";
-  version = "4.8.7";
+  version = "4.8.8";
 
   src = fetchFromGitHub {
     owner  = "Z3Prover";
     repo   = pname;
     rev    = "z3-${version}";
-    sha256 = "0hprcdwhhyjigmhhk6514m71bnmvqci9r8gglrqilgx424r6ff7q";
+    sha256 = "1rn538ghqwxq0v8i6578j8mflk6fyv0cp4hjfqynzvinjbps56da";
   };
 
   buildInputs = [ python fixDarwinDylibNames ] ++ optional javaBindings jdk;
@@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://github.com/Z3Prover/z3";
     license     = stdenv.lib.licenses.mit;
     platforms   = stdenv.lib.platforms.x86_64;
-    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ttuegel ];
   };
 }
diff --git a/pkgs/applications/science/math/calculix/calculix.patch b/pkgs/applications/science/math/calculix/calculix.patch
index 5b8f492a8e7..2334d54711e 100644
--- a/pkgs/applications/science/math/calculix/calculix.patch
+++ b/pkgs/applications/science/math/calculix/calculix.patch
@@ -1,16 +1,7 @@
-diff --git a/ccx_2.15/src/Makefile b/ccx_2.15/src/Makefile
-index 9cab2fc..6e977b8 100755
---- a/ccx_2.15/src/Makefile
-+++ b/ccx_2.15/src/Makefile
-@@ -1,6 +1,6 @@
- 
- CFLAGS = -Wall -O3  -I ../../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DNETWORKOUT
--FFLAGS = -Wall -O3 
-+FFLAGS = -Wall -O3
- 
- CC=cc
- FC=gfortran
-@@ -18,15 +18,10 @@ OCCXF = $(SCCXF:.f=.o)
+diff -Naur a/ccx_2.17/src/Makefile b/ccx_2.17/src/Makefile
+--- a/ccx_2.17/src/Makefile	2020-07-23 21:41:38.507761972 +0200
++++ b/ccx_2.17/src/Makefile	2020-08-22 16:53:50.004938281 +0200
+@@ -18,15 +18,10 @@
  OCCXC = $(SCCXC:.c=.o)
  OCCXMAIN = $(SCCXMAIN:.c=.o)
  
@@ -22,10 +13,10 @@ index 9cab2fc..6e977b8 100755
 -	../../../ARPACK/libarpack_INTEL.a \
 -       -lpthread -lm -lc
 -
--ccx_2.15: $(OCCXMAIN) ccx_2.15.a  $(LIBS)
--	./date.pl; $(CC) $(CFLAGS) -c ccx_2.15.c; $(FC)  -Wall -O3 -o $@ $(OCCXMAIN) ccx_2.15.a $(LIBS)
-+ccx_2.15: $(OCCXMAIN) ccx_2.15.a
-+	$(CC) $(CFLAGS) -c ccx_2.15.c; $(FC)  -Wall -O3 -o $@ $(OCCXMAIN) ccx_2.15.a $(LIBS)
+-ccx_2.17: $(OCCXMAIN) ccx_2.17.a  $(LIBS)
+-	./date.pl; $(CC) $(CFLAGS) -c ccx_2.17.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
++ccx_2.17: $(OCCXMAIN) ccx_2.17.a
++	$(CC) $(CFLAGS) -c ccx_2.17.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
  
- ccx_2.15.a: $(OCCXF) $(OCCXC)
+ ccx_2.17.a: $(OCCXF) $(OCCXC)
  	ar vr $@ $?
diff --git a/pkgs/applications/science/math/calculix/default.nix b/pkgs/applications/science/math/calculix/default.nix
index 44882594550..e37e9d0910c 100644
--- a/pkgs/applications/science/math/calculix/default.nix
+++ b/pkgs/applications/science/math/calculix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "calculix";
-  version = "2.15";
+  version = "2.17";
 
   src = fetchurl {
     url = "http://www.dhondt.de/ccx_${version}.src.tar.bz2";
-    sha256 = "0d4axfxgm3ag4p2vx9rjcky7c122k99a2nhv1jv53brm35rblzdw";
+    sha256 = "0l3fizxfdj2mpdp62wnk9v47q2yc3cy39fpsm629z7bjmba8lw6a";
   };
 
   nativeBuildInputs = [ gfortran ];
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index 213530b60a9..df622e7303d 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,17 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "3.8.0a";
+  version = "3.12.1";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "0bjd61bbc5b2i09kz3ss01c0xmxrhmiv5wpbhhplkp3yhw2qrf3m";
+    sha256 = "0ylsxj9rn3dc1grn9w6jisci3ak0hxgbwzqp54azs3aj5cmvkfgg";
   };
 
   patchPhase = ''
-    substituteInPlace src/main.cc --replace 'getPackageDataDir().c_str()' \"$out/share\"
+    # The gnome-search-provider2.c file generated by gdbus-codegen depends
+    # on gio-unix-2.0, which is a Requires.private of gtk+-3.0,
+    # and private dependencies are dropped in our default patched pkg-config.
+    # https://github.com/Qalculate/qalculate-gtk/pull/178
+    # https://github.com/NixOS/nixpkgs/issues/292
+    substituteInPlace configure.ac --replace 'libxml-2.0' 'libxml-2.0 gio-unix-2.0'
+
+    # https://github.com/Qalculate/qalculate-gtk/pull/179
+    echo searchprovider.o: gnome-search-provider2.c >>src/Makefile.am
   '';
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 41ef3cce465..657ae4605eb 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -98,7 +98,7 @@ let
 
   git-fame = callPackage ./git-fame {};
 
-  git-fast-export = callPackage ./fast-export { };
+  git-fast-export = callPackage ./fast-export { mercurial = mercurial_4; };
 
   git-filter-repo = callPackage ./git-filter-repo {
     pythonPackages = python3Packages;
diff --git a/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
index c073edaee7d..ffdb788745a 100644
--- a/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
@@ -11,12 +11,19 @@ stdenv.mkDerivation rec {
     sha256 = "0aavxahzha2mms4vdwysk79pa6wzswpfwgsq2hwaxnaf66maahfl";
   };
 
-  # Perl is needed here for patchShebangs
-  nativeBuildInputs = [ perl makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
 
-  buildPhase = null;
+  buildInputs = [
+    perl # needed for patchShebangs
+  ];
+
+  dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin $out/lib/diff-so-fancy
 
     # diff-so-fancy executable searches for it's library relative to
@@ -32,6 +39,8 @@ stdenv.mkDerivation rec {
       --prefix PATH : "${git}/bin" \
       --prefix PATH : "${coreutils}/bin" \
       --prefix PATH : "${ncurses.out}/bin"
+
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
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 22009f10d44..80f048d0575 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
@@ -1,13 +1,14 @@
-{stdenv, fetchgit, mercurial, makeWrapper}:
+{stdenv, fetchFromGitHub, git, mercurial, makeWrapper}:
 
 stdenv.mkDerivation rec {
   pname = "fast-export";
-  version = "190107";
+  version = "200213";
 
-  src = fetchgit {
-    url = "git://repo.or.cz/fast-export.git";
+  src = fetchFromGitHub {
+    owner = "frej";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "14azfps9jd5anivcvfwflgsvqdyy6gm9jy284kzx2ng9f7871d14";
+    sha256 = "0hzyh66rlawxip4n2pvz7pbs0cq82clqv1d6c7hf60v1drjxw287";
   };
 
   buildInputs = [mercurial.python mercurial makeWrapper];
@@ -27,11 +28,34 @@ stdenv.mkDerivation rec {
 
     for script in $out/bin/*.sh; do
       wrapProgram $script \
-        --prefix PATH : "${mercurial.python}/bin":$libexec \
+        --prefix PATH : "${git}/bin":"${mercurial.python}/bin":$libexec \
         --prefix PYTHONPATH : "${mercurial}/${mercurial.python.sitePackages}":$sitepackagesPath
     done
   '';
 
+  doInstallCheck = true;
+  # deliberately not adding git or hg into installCheckInputs - package should
+  # be able to work without them in runtime env
+  installCheckPhase = ''
+    mkdir repo-hg
+    pushd repo-hg
+    ${mercurial}/bin/hg init
+    echo foo > bar
+    ${mercurial}/bin/hg add bar
+    ${mercurial}/bin/hg commit --message "baz"
+    popd
+
+    mkdir repo-git
+    pushd repo-git
+    ${git}/bin/git init
+    ${git}/bin/git config core.ignoreCase false  # for darwin
+    $out/bin/hg-fast-export.sh -r ../repo-hg/ --hg-hash
+    for s in "foo" "bar" "baz" ; do
+      (${git}/bin/git show | grep $s > /dev/null) && echo $s found
+    done
+    popd
+  '';
+
   meta = with stdenv.lib; {
     description = "Import mercurial into git";
     homepage = "https://repo.or.cz/w/fast-export.git";
diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix
new file mode 100644
index 00000000000..3a397b5bf87
--- /dev/null
+++ b/pkgs/applications/version-management/p4/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, lib, autoPatchelfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "p4";
+  version = "2020.1.1991450";
+
+  src = fetchurl {
+    url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/helix-core-server.tgz";
+    sha256 = "0nhcxhwx3scx6vf7i2bc8j0b1l57lmq9bfy1cfbfbqasd3an721k";
+  };
+
+  sourceRoot = ".";
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp p4 p4broker p4d p4p $out/bin
+  '';
+
+  meta = {
+    description = "Perforce Command-Line Client";
+    homepage = "https://www.perforce.com";
+    license = lib.licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ corngood ];
+  };
+}
diff --git a/pkgs/applications/video/smtube/default.nix b/pkgs/applications/video/smtube/default.nix
index 1cd6fb693e8..26b14ab739c 100644
--- a/pkgs/applications/video/smtube/default.nix
+++ b/pkgs/applications/video/smtube/default.nix
@@ -1,12 +1,12 @@
 { lib, mkDerivation, fetchurl, qmake, qtscript, qtwebkit }:
 
 mkDerivation rec {
-  version = "20.1.0";
+  version = "20.6.0";
   pname = "smtube";
 
   src = fetchurl {
     url = "mirror://sourceforge/smtube/SMTube/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "00x7gyk06d01hrr1lcqbrffbkkpj2j0j1fy9mkxc7slbzqcl27dz";
+    sha256 = "0hnza5gszwqnkc1py5g34hi4p976vpkc4h3ab0247ynqs83fpwc2";
   };
 
   makeFlags = [
diff --git a/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
new file mode 100644
index 00000000000..251f495b7e1
--- /dev/null
+++ b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -0,0 +1,100 @@
+{ autoPatchelfHook, fetchurl, lib, makeDesktopItem, makeWrapper, stdenv, wrapGAppsHook
+, at-spi2-core, atk, alsaLib, cairo, cups, dbus, expat, gcc-unwrapped
+, gdk-pixbuf, glib, gnome2, gtk3-x11, libudev0-shim, libuuid, nss, nspr, xorg
+, streamlink }:
+
+let
+  basename = "streamlink-twitch-gui";
+  runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
+  arch =
+    if stdenv.hostPlatform.system == "x86_64-linux"
+    then
+      "linux64"
+    else
+      "linux32";
+
+in
+stdenv.mkDerivation rec {
+  pname = "${basename}-bin";
+  version = "1.10.0";
+
+  src = fetchurl {
+    url = "https://github.com/streamlink/${basename}/releases/download/v${version}/${basename}-v${version}-${arch}.tar.gz";
+    sha256 =
+      if arch == "linux64"
+      then
+        "17s9zbzj4pgz9mxxwjbp3788afkddc9s3p7xp28y5084z9wwzph2"
+      else
+        "1pww05hr48m6v0g1sz48g1c7p615lig3s12l21xgyz4gkjzmjy22";
+  };
+
+  nativeBuildInputs = with xorg; [
+    at-spi2-core
+    atk
+    alsaLib
+    autoPatchelfHook
+    cairo
+    cups.lib
+    dbus.daemon.lib
+    expat
+    gcc-unwrapped
+    gdk-pixbuf
+    glib
+    gnome2.pango
+    gtk3-x11
+    nss
+    nspr
+    libuuid
+    libX11
+    libxcb
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXScrnSaver
+    libXtst
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = [ streamlink ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  installPhase = ''
+    mkdir -p $out/{bin,opt/${basename},share}
+
+    # Install all files, remove unnecessary ones
+    cp -a . $out/opt/${basename}/
+    rm -r $out/opt/${basename}/{{add,remove}-menuitem.sh,credits.html,icons/}
+
+    wrapProgram $out/opt/${basename}/${basename} --add-flags "--no-version-check" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
+
+    ln -s "$out/opt/${basename}/${basename}" $out/bin/
+    ln -s "${desktopItem}/share/applications" $out/share/
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = basename;
+    exec = basename;
+    icon = basename;
+    desktopName = "Streamlink Twitch GUI";
+    genericName = meta.description;
+    categories = "AudioVideo;Network;";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Twitch.tv browser for Streamlink";
+    longDescription = "Browse Twitch.tv and watch streams in your videoplayer of choice";
+    homepage = "https://streamlink.github.io/streamlink-twitch-gui/";
+    downloadPage = https://github.com/streamlink/streamlink-twitch-gui/releases;
+    license = licenses.mit;
+    maintainers = with maintainers; [ rileyinman ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index 675d713f4b4..064500fde7f 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "PREFIX=$(out)" ];
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/containers/conmon";
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index 4210994f435..e6595a207b8 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -4,7 +4,7 @@ with lib;
 
 buildGoPackage rec {
   pname = "containerd";
-  version = "1.2.13";
+  version = "1.4.0";
   # git commit for the above version's tag
   commit = "7ad184331fa3e55e52b890ea95e65ba581ae3429";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "1rac3iak3jpz57yarxc72bxgxvravwrl0j6s6w2nxrmh2m3kxqzn";
+    sha256 = "1ajns679ck5yp6vmf39pyshzf8jijw5fcg5biixkj54jhj3bv1sq";
   };
 
   goPackagePath = "github.com/containerd/containerd";
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 9ec34e1b54a..d0c8938e6de 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -10,6 +10,7 @@
 , libselinux
 , lvm2
 , pkg-config
+, nixosTests
 }:
 
 buildGoModule rec {
@@ -57,6 +58,8 @@ buildGoModule rec {
     installManPage docs/*.[1-9]
   '';
 
+  passthru.tests = { inherit (nixosTests) cri-o; };
+
   meta = with stdenv.lib; {
     homepage = "https://cri-o.io";
     description = ''
diff --git a/pkgs/applications/virtualization/cri-o/wrapper.nix b/pkgs/applications/virtualization/cri-o/wrapper.nix
index 1578eaf4f58..298bec6550e 100644
--- a/pkgs/applications/virtualization/cri-o/wrapper.nix
+++ b/pkgs/applications/virtualization/cri-o/wrapper.nix
@@ -27,7 +27,7 @@ let
 
 in runCommand cri-o.name {
   name = "${cri-o.pname}-wrapper-${cri-o.version}";
-  inherit (cri-o) pname version;
+  inherit (cri-o) pname version passthru;
 
   meta = builtins.removeAttrs cri-o.meta [ "outputsToInstall" ];
 
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 4c5699419eb..5f002f5ddc8 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with lib; {
     description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index 6e5ba4abf37..c68c0d47e39 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.30.0";
+  version = "1.31.0";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "10w5v0qqj8yqd81hpz65pq1lx0j9pl112s7hl6y9p3i3f0m0931f";
+    sha256 = "0kj97kwyjs9hksaas0zic4m7w8b17c1d7c8vhiq2862w97ngxrsk";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix b/pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix
new file mode 100644
index 00000000000..0e97a7c3646
--- /dev/null
+++ b/pkgs/applications/virtualization/oci-seccomp-bpf-hook/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, go-md2man
+, installShellFiles
+, libseccomp
+, linuxPackages
+, pkg-config
+}:
+
+buildGoModule rec {
+  pname = "oci-seccomp-bpf-hook";
+  version = "1.2.0";
+  src = fetchFromGitHub {
+    owner = "containers";
+    repo = "oci-seccomp-bpf-hook";
+    rev = "v${version}";
+    sha256 = "143x4daixzhhhpli1l14r7dr7dn3q42w8dddr16jzhhwighsirqw";
+  };
+  vendorSha256 = null;
+  doCheck = false;
+
+  outputs = [ "out" "man" ];
+  nativeBuildInputs = [
+    go-md2man
+    installShellFiles
+    pkg-config
+  ];
+  buildInputs = [
+    libseccomp
+    linuxPackages.bcc
+  ];
+
+  buildPhase = ''
+    make
+  '';
+
+  postBuild = ''
+    substituteInPlace oci-seccomp-bpf-hook.json --replace HOOK_BIN_DIR "$out/bin"
+  '';
+
+  installPhase = ''
+    install -Dm755 bin/* -t $out/bin
+    install -Dm644 oci-seccomp-bpf-hook.json -t $out
+    installManPage docs/*.[1-9]
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/containers/oci-seccomp-bpf-hook";
+    description = ''
+      OCI hook to trace syscalls and generate a seccomp profile
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ saschagrunert ];
+    platforms = platforms.linux;
+    badPlatforms = [ "aarch64-linux" ];
+  };
+}
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index cc805aefc9f..b6656ea50bd 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -60,7 +60,7 @@ buildGoModule rec {
     MANDIR=$man/share/man make install.man-nobuild
   '';
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with stdenv.lib; {
     homepage = "https://podman.io/";
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 7cbc3e4c619..535f8371153 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -18,6 +18,7 @@
 , openGLSupport ? sdlSupport, mesa, epoxy, libdrm
 , virglSupport ? openGLSupport, virglrenderer
 , smbdSupport ? false, samba
+, tpmSupport ? true
 , hostCpuOnly ? false
 , hostCpuTargets ? (if hostCpuOnly
                     then (stdenv.lib.optional stdenv.isx86_64 "i386-softmmu"
@@ -127,6 +128,7 @@ stdenv.mkDerivation rec {
     ++ optional cephSupport "--enable-rbd"
     ++ optional openGLSupport "--enable-opengl"
     ++ optional virglSupport "--enable-virglrenderer"
+    ++ optional tpmSupport "--enable-tpm"
     ++ optional smbdSupport "--smbd=${samba}/bin/smbd";
 
   doCheck = false; # tries to access /dev
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index ecd282d6f7d..fd3d914af66 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -45,7 +45,7 @@ buildGoPackage rec {
     installManPage man/*/*.[1-9]
   '';
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with lib; {
     homepage = "https://github.com/opencontainers/runc";
diff --git a/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
new file mode 100644
index 00000000000..f6e24d979a4
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, xorg, i3lock }:
+
+stdenv.mkDerivation rec {
+  pname = "i3lock-fancy-rapid";
+  version = "2019-10-09";
+  src = fetchFromGitHub {
+    owner = "yvbbrjdr";
+    repo = "i3lock-fancy-rapid";
+    rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0";
+    sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6";
+  };
+
+  buildInputs = [ xorg.libX11 ];
+  propagatedBuildInputs = [ i3lock ];
+
+  postPatch = ''
+    substituteInPlace i3lock-fancy-rapid.c \
+      --replace '"i3lock"' '"${i3lock}/bin/i3lock"'
+  '';
+
+  installPhase = ''
+    install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A faster implementation of i3lock-fancy";
+    homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid";
+    maintainers = with maintainers; [ nickhu ];
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+  };
+}