summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/x11spice/default.nix5
-rw-r--r--pkgs/tools/admin/chamber/default.nix2
-rw-r--r--pkgs/tools/admin/oxidized/default.nix2
-rw-r--r--pkgs/tools/audio/mpd-mpris/default.nix6
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/backup/dirvish/default.nix2
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix4
-rw-r--r--pkgs/tools/compression/xz/default.nix2
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/httpfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/moosefs/default.nix4
-rw-r--r--pkgs/tools/graphics/dpic/default.nix4
-rw-r--r--pkgs/tools/graphics/optar/default.nix2
-rw-r--r--pkgs/tools/graphics/pfstools/default.nix8
-rw-r--r--pkgs/tools/misc/bdf2sfd/default.nix4
-rw-r--r--pkgs/tools/misc/birdfont/default.nix4
-rw-r--r--pkgs/tools/misc/byobu/default.nix65
-rw-r--r--pkgs/tools/misc/debianutils/default.nix4
-rw-r--r--pkgs/tools/misc/flameshot/default.nix32
-rw-r--r--pkgs/tools/misc/fzf/default.nix8
-rw-r--r--pkgs/tools/misc/goaccess/default.nix9
-rw-r--r--pkgs/tools/misc/hebcal/default.nix4
-rw-r--r--pkgs/tools/misc/logstash/6.x.nix2
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix10
-rw-r--r--pkgs/tools/misc/ostree/default.nix4
-rw-r--r--pkgs/tools/misc/shallot/default.nix2
-rw-r--r--pkgs/tools/misc/slurp/default.nix11
-rw-r--r--pkgs/tools/misc/somafm-cli/default.nix1
-rw-r--r--pkgs/tools/misc/sweep-visualizer/default.nix4
-rw-r--r--pkgs/tools/misc/vimv/default.nix24
-rw-r--r--pkgs/tools/misc/wootility/default.nix2
-rw-r--r--pkgs/tools/misc/zsh-autoenv/default.nix2
-rw-r--r--pkgs/tools/networking/bukubrow/default.nix2
-rw-r--r--pkgs/tools/networking/corerad/default.nix2
-rw-r--r--pkgs/tools/networking/croc/default.nix7
-rw-r--r--pkgs/tools/networking/croc/test-local-relay.nix20
-rw-r--r--pkgs/tools/networking/curlie/default.nix2
-rw-r--r--pkgs/tools/networking/dnstracer/default.nix2
-rw-r--r--pkgs/tools/networking/driftnet/default.nix2
-rw-r--r--pkgs/tools/networking/goreplay/default.nix2
-rw-r--r--pkgs/tools/networking/maxscale/default.nix2
-rw-r--r--pkgs/tools/networking/ngrok-2/default.nix5
-rw-r--r--pkgs/tools/networking/pmacct/default.nix2
-rw-r--r--pkgs/tools/networking/rcon/default.nix30
-rw-r--r--pkgs/tools/networking/ssldump/default.nix2
-rw-r--r--pkgs/tools/package-management/morph/default.nix2
-rw-r--r--pkgs/tools/security/1password-gui/default.nix2
-rw-r--r--pkgs/tools/security/acsccid/default.nix2
-rw-r--r--pkgs/tools/security/bitwarden/default.nix4
-rw-r--r--pkgs/tools/security/fpm2/default.nix2
-rw-r--r--pkgs/tools/security/gobuster/default.nix6
-rw-r--r--pkgs/tools/security/notary/default.nix2
-rw-r--r--pkgs/tools/security/rustscan/default.nix10
-rw-r--r--pkgs/tools/security/sequoia/default.nix9
-rw-r--r--pkgs/tools/security/ssh-audit/default.nix1
-rw-r--r--pkgs/tools/security/sshguard/default.nix2
-rw-r--r--pkgs/tools/system/daemon/default.nix2
-rw-r--r--pkgs/tools/system/jump/default.nix2
-rw-r--r--pkgs/tools/system/netdata/default.nix4
-rw-r--r--pkgs/tools/system/snooze/default.nix3
-rw-r--r--pkgs/tools/system/testdisk/default.nix2
-rw-r--r--pkgs/tools/system/thinkfan/default.nix3
-rw-r--r--pkgs/tools/text/jsawk/default.nix2
-rw-r--r--pkgs/tools/text/mdbook/default.nix6
-rw-r--r--pkgs/tools/text/miller/default.nix2
-rw-r--r--pkgs/tools/text/sift/default.nix2
-rw-r--r--pkgs/tools/text/vale/default.nix4
-rw-r--r--pkgs/tools/typesetting/asciidoctorj/default.nix16
-rw-r--r--pkgs/tools/typesetting/rubber/default.nix18
-rw-r--r--pkgs/tools/typesetting/ted/default.nix2
-rw-r--r--pkgs/tools/virtualization/amazon-ecs-cli/default.nix6
-rw-r--r--pkgs/tools/wayland/wshowkeys/default.nix37
72 files changed, 308 insertions, 168 deletions
diff --git a/pkgs/tools/X11/x11spice/default.nix b/pkgs/tools/X11/x11spice/default.nix
index 23af2ac44ca..33bc9110848 100644
--- a/pkgs/tools/X11/x11spice/default.nix
+++ b/pkgs/tools/X11/x11spice/default.nix
@@ -24,10 +24,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "-lpthread";
 
   meta = with stdenv.lib; {
-    description = ''
-      x11spice will enable a running X11 desktop to be available
-      via a Spice server
-    '';
+    description = "Enable a running X11 desktop to be available via a Spice server";
     homepage = "https://gitlab.freedesktop.org/spice/x11spice";
     platforms = platforms.linux;
     license = licenses.gpl3;
diff --git a/pkgs/tools/admin/chamber/default.nix b/pkgs/tools/admin/chamber/default.nix
index fb21bda4150..7a80ed37188 100644
--- a/pkgs/tools/admin/chamber/default.nix
+++ b/pkgs/tools/admin/chamber/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description =
-      "Chamber is a tool for managing secrets by storing them in AWS SSM Parameter Store.";
+      "A tool for managing secrets by storing them in AWS SSM Parameter Store";
     homepage = "https://github.com/segmentio/chamber";
     license = licenses.mit;
     maintainers = with maintainers; [ kalekseev ];
diff --git a/pkgs/tools/admin/oxidized/default.nix b/pkgs/tools/admin/oxidized/default.nix
index 01129c5afb1..022b304a845 100644
--- a/pkgs/tools/admin/oxidized/default.nix
+++ b/pkgs/tools/admin/oxidized/default.nix
@@ -11,7 +11,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "oxidized";
 
   meta = with lib; {
-    description = "Oxidized is a network device configuration backup tool. It's a RANCID replacement!";
+    description = "A network device configuration backup tool. It's a RANCID replacement!";
     homepage    = "https://github.com/ytti/oxidized";
     license     = licenses.asl20;
     maintainers = with maintainers; [ willibutz nicknovitski ];
diff --git a/pkgs/tools/audio/mpd-mpris/default.nix b/pkgs/tools/audio/mpd-mpris/default.nix
index 79387d9ad1f..c66a12dadd3 100644
--- a/pkgs/tools/audio/mpd-mpris/default.nix
+++ b/pkgs/tools/audio/mpd-mpris/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mpd-mpris";
-  version = "0.2.4";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "natsukagami";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1cr5j2z2ynj1hwkjzi5amcg59vmgazsci41v6vpsj119g7psjmzm";
+    sha256 = "1kzjbv04b2garb99l64wdq8yksnm4pbhkgyzh89j5j3gb9k55zal";
   };
 
-  vendorSha256 = "108yjymp64iqx1b2wqjbkmbm2w199wq46g7hrmqhcziv6f4aqljp";
+  vendorSha256 = "1ggrqwd3h602rav1dc3amsf4wxsq8mdq4ijkdsg759sqhpzl6rqs";
 
   doCheck = false;
 
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index 1f379feece4..8689bc9cd86 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -8,12 +8,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.10";
+  version = "2.6.12";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "1ryj4xxar18hshg38j1ljhplypgmfprwqn72k1jwxi28qravg80n";
+    sha256 = "0jwgaim2p93skdpjwiz5qgibd3j9965ycqn47wrrjlcvzk93mvyk";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/backup/dirvish/default.nix b/pkgs/tools/backup/dirvish/default.nix
index 9b138d48f21..c762da1a5fc 100644
--- a/pkgs/tools/backup/dirvish/default.nix
+++ b/pkgs/tools/backup/dirvish/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Dirvish is a fast, disk based, rotating network backup system";
+    description = "Fast, disk based, rotating network backup system";
     homepage = "http://dirvish.org/";
     license = stdenv.lib.licenses.osl2;
     platforms = platforms.linux;
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index aa8693b365a..ac50f3667c4 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchurl {
     url = "https://github.com/blueman-project/blueman/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1pngqbwapbvywhkmflapqvs0wa0af7d1a87wy56l5hg2r462xl1v";
+    sha256 = "1nk46s1s8yrlqv37sc7la05nnn7sdgqhkrcdm98qin34llwkv70x";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index 5cf88288d81..0b6082bb578 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = "https://tukaani.org/xz/";
-    description = "XZ, general-purpose data compression software, successor of LZMA";
+    description = "A general-purpose data compression software, successor of LZMA";
 
     longDescription =
       '' XZ Utils is free general-purpose data compression software with high
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 8ff72421a59..3358d1c0277 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "5.7";
+  version = "5.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "0p6ycbr8sw5bq3mj84gh9rvh5sk8sjr2l9hb9dhm4j41ij5h8bsw";
+    sha256 = "14d7hz07kfczfgmy1ixkgccjn393gpkjn7givz5kwxddcnk5i4xq";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/httpfs/default.nix b/pkgs/tools/filesystems/httpfs/default.nix
index d97b05abb6c..23edb817579 100644
--- a/pkgs/tools/filesystems/httpfs/default.nix
+++ b/pkgs/tools/filesystems/httpfs/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "HTTPFS2, a FUSE-based HTTP file system for Linux";
+    description = "FUSE-based HTTP filesystem for Linux";
 
     homepage = "http://httpfs.sourceforge.net/";
 
diff --git a/pkgs/tools/filesystems/moosefs/default.nix b/pkgs/tools/filesystems/moosefs/default.nix
index df3dd661d75..2be21cea3a5 100644
--- a/pkgs/tools/filesystems/moosefs/default.nix
+++ b/pkgs/tools/filesystems/moosefs/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "moosefs";
-  version = "3.0.114";
+  version = "3.0.115";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0bilrzzlg599xy21cm7r0xb2sanngr74j3z03xgybcm10kl97i7j";
+    sha256 = "0dap9dqwwx8adma6arxg015riqc86cmjv2m44hk0kz7s24h79ipq";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
diff --git a/pkgs/tools/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
index 7b7eea3d509..ea65f3dbb55 100644
--- a/pkgs/tools/graphics/dpic/default.nix
+++ b/pkgs/tools/graphics/dpic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dpic";
-  version = "2020.06.01";
+  version = "2020.09.15";
 
   src = fetchurl {
     url = "https://ece.uwaterloo.ca/~aplevich/dpic/${pname}-${version}.tar.gz";
-    sha256 = "1gbkpbjwjaaifxff8amm9b47dynq4l4698snjdgnn4flndw62q88";
+    sha256 = "0gmmp4dlir3bn892nm55a3q8cfsj8yg7fp1dixmhsdhsrgmg1b83";
   };
 
   # The prefix passed to configure is not used.
diff --git a/pkgs/tools/graphics/optar/default.nix b/pkgs/tools/graphics/optar/default.nix
index 4eee8acb979..3061a5cebaf 100644
--- a/pkgs/tools/graphics/optar/default.nix
+++ b/pkgs/tools/graphics/optar/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    description = "Optar stands for OPTical ARchiver - it's a codec for encoding data on paper";
+    description = "OPTical ARchiver - it's a codec for encoding data on paper";
     homepage = "http://ronja.twibright.com/optar/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix
index 1c437a3f05c..f570251374c 100644
--- a/pkgs/tools/graphics/pfstools/default.nix
+++ b/pkgs/tools/graphics/pfstools/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, cmake, pkgconfig, darwin
+{ stdenv, mkDerivation, fetchurl, cmake, pkgconfig, darwin
 , openexr, zlib, imagemagick, libGLU, libGL, freeglut, fftwFloat
-, fftw, gsl, libexif, perl, opencv2, qt5, netpbm
+, fftw, gsl, libexif, perl, opencv2, qtbase, netpbm
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "pfstools";
   version = "2.1.0";
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [
     openexr zlib imagemagick fftwFloat
-    fftw gsl libexif perl opencv2 qt5.qtbase netpbm
+    fftw gsl libexif perl opencv2 qtbase netpbm
   ] ++ (if stdenv.isDarwin then (with darwin.apple_sdk.frameworks; [
     OpenGL GLUT
   ]) else [
diff --git a/pkgs/tools/misc/bdf2sfd/default.nix b/pkgs/tools/misc/bdf2sfd/default.nix
index e7a9d98aaf2..09616499045 100644
--- a/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/pkgs/tools/misc/bdf2sfd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2sfd";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "fcambus";
     repo = pname;
     rev = version;
-    sha256 = "0v1kkds35qfyv1h5kxc2m7f2gsprg9c7jzpsm3p4f71qn982wry6";
+    sha256 = "1lg3yabnf26lghlrmhpq7hbhydmw85q0k64246b8fwv1dnxc7afd";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/birdfont/default.nix b/pkgs/tools/misc/birdfont/default.nix
index 7cec0cab996..c3361739f0b 100644
--- a/pkgs/tools/misc/birdfont/default.nix
+++ b/pkgs/tools/misc/birdfont/default.nix
@@ -4,11 +4,11 @@ gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "birdfont";
-  version = "2.29.0";
+  version = "2.29.1";
 
   src = fetchurl {
     url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "18z3qbrsbfpn00c4xq3ck1mnmvrnqgl9g1s7m4dgc1871fi6sv8w";
+    sha256 = "0620bppcbm9pb8l0d4sc56gfwkr97gw4zjirjz5ikk5lj0m801yi";
   };
 
   nativeBuildInputs = [ python3 pkgconfig vala_0_44 gobject-introspection wrapGAppsHook ];
diff --git a/pkgs/tools/misc/byobu/default.nix b/pkgs/tools/misc/byobu/default.nix
index ad17c5edd6e..695ae54d876 100644
--- a/pkgs/tools/misc/byobu/default.nix
+++ b/pkgs/tools/misc/byobu/default.nix
@@ -1,5 +1,11 @@
-{ stdenv, fetchurl, python3, perl, textual-window-manager }:
+{ stdenv, fetchurl, makeWrapper
+, ncurses, python3, perl, textual-window-manager
+, gettext, vim, bc, screen }:
 
+let
+  inherit (stdenv) lib;
+  pythonEnv = python3.withPackages (ps: with ps; [ snack ]);
+in
 stdenv.mkDerivation rec {
   version = "5.133";
   name = "byobu-" + version;
@@ -11,26 +17,59 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  buildInputs = [ python3 perl ];
-  propagatedBuildInputs = [ textual-window-manager ];
+  buildInputs = [ perl makeWrapper gettext ];
+  propagatedBuildInputs = [ textual-window-manager screen ];
 
-  meta = {
+  postPatch = ''
+    substituteInPlace usr/bin/byobu-export.in \
+      --replace "gettext" "${gettext}/bin/gettext"
+    substituteInPlace usr/lib/byobu/menu \
+      --replace "gettext" "${gettext}/bin/gettext"
+  '';
+
+  postInstall = ''
+    # Byobu does not compile its po files for some reason
+    for po in po/*.po; do
+      lang=''${po#po/}
+      lang=''${lang%.po}
+      # Path where byobu looks for translations as observed in the source code and strace
+      mkdir -p $out/share/byobu/po/$lang/LC_MESSAGES/
+      msgfmt $po -o $out/share/byobu/po/$lang/LC_MESSAGES/byobu.mo
+    done
+
+    # Override the symlinks otherwise they mess with the wrapping
+    cp --remove-destination $out/bin/byobu $out/bin/byobu-screen
+    cp --remove-destination $out/bin/byobu $out/bin/byobu-tmux
+
+    for i in $out/bin/byobu*; do
+      # We don't use the usual ".$package-wrapped" because arg0 within the shebang scripts
+      # points to the filename and byobu matches against this to know which backend
+      # to start with
+      file=".$(basename $i)"
+      mv $i $out/bin/$file
+      makeWrapper "$out/bin/$file" "$out/bin/$(basename $i)" --argv0 $(basename $i) \
+        --set BYOBU_PATH ${lib.escapeShellArg (lib.makeBinPath [ vim bc ])} \
+        --set BYOBU_PYTHON "${pythonEnv}/bin/python"
+    done
+  '';
+
+  meta = with stdenv.lib; {
     homepage = "https://launchpad.net/byobu/";
     description = "Text-based window manager and terminal multiplexer";
 
     longDescription =
-      ''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer. 
-        It was originally designed to provide elegant enhancements to the otherwise functional, 
-        plain, practical GNU Screen, for the Ubuntu server distribution. 
-        Byobu now includes an enhanced profiles, convenient keybindings, 
-        configuration utilities, and toggle-able system status notifications for both 
-        the GNU Screen window manager and the more modern Tmux terminal multiplexer, 
+      ''Byobu is a GPLv3 open source text-based window manager and terminal multiplexer.
+        It was originally designed to provide elegant enhancements to the otherwise functional,
+        plain, practical GNU Screen, for the Ubuntu server distribution.
+        Byobu now includes an enhanced profiles, convenient keybindings,
+        configuration utilities, and toggle-able system status notifications for both
+        the GNU Screen window manager and the more modern Tmux terminal multiplexer,
         and works on most Linux, BSD, and Mac distributions.
       '';
 
-    license = stdenv.lib.licenses.gpl3;
+    license = licenses.gpl3;
 
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.qknight ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ qknight berbiche ];
   };
 }
diff --git a/pkgs/tools/misc/debianutils/default.nix b/pkgs/tools/misc/debianutils/default.nix
index 141df333222..42deec9dc5d 100644
--- a/pkgs/tools/misc/debianutils/default.nix
+++ b/pkgs/tools/misc/debianutils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "debianutils";
-  version = "4.11.1";
+  version = "4.11.2";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.xz";
-    sha256 = "0g4qmzb2ff0rqszzpsal465hcslnpdl4nhghv59qvhamkkqnks4b";
+    sha256 = "1pjh2s5f8qp8jaky2x08yvf125np0s48zb2z6f3h6x4vf20hws1v";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/flameshot/default.nix b/pkgs/tools/misc/flameshot/default.nix
index afca2e3007e..de7d56e5584 100644
--- a/pkgs/tools/misc/flameshot/default.nix
+++ b/pkgs/tools/misc/flameshot/default.nix
@@ -1,44 +1,26 @@
-{ mkDerivation, lib, fetchFromGitHub, qtbase, qmake, qttools, qtsvg }:
+{ mkDerivation, lib, fetchFromGitHub, qtbase, cmake, qttools, qtsvg }:
 
-# To use `flameshot gui`, you will also need to put flameshot in `services.dbus.packages`
-# in configuration.nix so that the daemon gets launched properly:
-#
-#   services.dbus.packages = [ pkgs.flameshot ];
-#   environment.systemPackages = [ pkgs.flameshot ];
 mkDerivation rec {
   pname = "flameshot";
-  version = "0.6.0";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
-    owner = "lupoDharkael";
+    owner = "flameshot-org";
     repo = "flameshot";
     rev = "v${version}";
-    sha256 = "193szslh55v44jzxzx5g9kxhl8p8di7vbcnxlid4acfidhnvgazm";
+    sha256 = "0nr50ma8l612drl2br084kb3xac7jqkqr41b26d4p9y7ylwk05yq";
   };
 
-  nativeBuildInputs = [ qmake qttools qtsvg ];
+  nativeBuildInputs = [ cmake qttools qtsvg ];
   buildInputs = [ qtbase ];
 
-  qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
-
-  preConfigure = ''
-    # flameshot.pro assumes qmake is being run in a git checkout.
-    git() { echo ${version}; }
-    export -f git
-  '';
-
-  postFixup = ''
-    substituteInPlace $out/share/dbus-1/services/org.dharkael.Flameshot.service \
-      --replace "/usr/local" "$out"
-  '';
-
   enableParallelBuilding = true;
 
   meta = with lib; {
     description = "Powerful yet simple to use screenshot software";
-    homepage = "https://github.com/lupoDharkael/flameshot";
+    homepage = "https://flameshot.js.org";
     maintainers = [ maintainers.scode ];
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix
index 88000c0ba2c..86819d77a9e 100644
--- a/pkgs/tools/misc/fzf/default.nix
+++ b/pkgs/tools/misc/fzf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.23.1";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    sha256 = "1x55y96i4b3gk9l2zlwb6ifsk8nxzfny3b73ly89g7kifwkb543k";
+    sha256 = "0a1jhlkv6z5msw8p3wccy3axwpdvpnri6qps9fmvz57gfm9a3jmr";
   };
 
-  vendorSha256 = "0bd4fk15i292377mv5w57gzxjp21f0rcf1py9gd6v99rx1pviq66";
+  vendorSha256 = "0dd0qm1fxp3jnlrhfaas8fw87cj7rygaac35a9nk3xh2xsk7q35p";
 
   outputs = [ "out" "man" ];
 
@@ -19,6 +19,8 @@ buildGoModule rec {
 
   buildInputs = [ ncurses ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
   # The vim plugin expects a relative path to the binary; patch it to abspath.
   patchPhase = ''
     sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/fzf.vim
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index 1906c9d5665..d14ef9d526a 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, ncurses, glib, libmaxminddb }:
+{ stdenv, fetchurl, pkgconfig, ncurses, glib, libmaxminddb, fetchpatch }:
 
 stdenv.mkDerivation rec {
   version = "1.4";
@@ -9,6 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "1gkpjg39f3afdwm9128jqjsfap07p8s027czzlnxfmi5hpzvkyz8";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/allinurl/goaccess/commit/514618cdd69453497fbf67913ccb37a0a0b07391.patch";
+      sha256 = "11lp7mabfl6ibgzsd9nw10k2xvcm0hrimrwidl06r8dqn2jzjxf6";
+    })
+  ];
+
   configureFlags = [
     "--enable-geoip=mmdb"
     "--enable-utf8"
diff --git a/pkgs/tools/misc/hebcal/default.nix b/pkgs/tools/misc/hebcal/default.nix
index 96c95848440..049a79fa757 100644
--- a/pkgs/tools/misc/hebcal/default.nix
+++ b/pkgs/tools/misc/hebcal/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "4.21";
+  version = "4.22";
   pname = "hebcal";
 
   src = fetchFromGitHub {
     owner = "hebcal";
     repo = "hebcal";
     rev = "v${version}";
-    sha256 = "0gqjhl5i0hvnpvsg6cfc2z5ckrs66h3jlrdgim62azn3hh5bday2";
+    sha256 = "0bm29n51qi9q4vx4qsz3l9l1wvpvsk138zixfl5f5yz4kngzbx24";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/logstash/6.x.nix b/pkgs/tools/misc/logstash/6.x.nix
index ec8106e922a..52e74e5babf 100644
--- a/pkgs/tools/misc/logstash/6.x.nix
+++ b/pkgs/tools/misc/logstash/6.x.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Logstash is a data pipeline that helps you process logs and other event data from a variety of systems";
+    description = "A data pipeline that helps you process logs and other event data from a variety of systems";
     homepage    = "https://www.elastic.co/products/logstash";
     license     = if enableUnfree then licenses.elastic else licenses.asl20;
     platforms   = platforms.unix;
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index ec6be6eba28..93fca738dc4 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, dpkg
 , alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
-, gnome2, gnome3, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
+, gnome2, gdk-pixbuf, gtk3, pango, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
 
 let
   version = "1.22.1";
@@ -19,9 +19,9 @@ let
     freetype
     glib
     gnome2.GConf
-    gnome2.gdk_pixbuf
-    gnome3.gtk
-    gnome2.pango
+    gdk-pixbuf
+    gtk3
+    pango
     libnotify
     libsecret
     libuuid
@@ -60,7 +60,7 @@ in stdenv.mkDerivation {
 
   inherit src;
 
-  buildInputs = [ dpkg wrapGAppsHook gnome3.gtk ];
+  buildInputs = [ dpkg wrapGAppsHook gtk3 ];
   dontUnpack = true;
 
   buildCommand = ''
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index fd1bfc7f8c7..56262d8171e 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -39,13 +39,13 @@ let
   ]));
 in stdenv.mkDerivation rec {
   pname = "ostree";
-  version = "2020.5";
+  version = "2020.7";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "1k92177hjalbdpmg45ymwwrni68vh9rs5x9zvy5fzl9lng12fgpb";
+    sha256 = "0clriq2ypz1fycd6mpjyrhzid44svzpzw0amnank593h69b216ax";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/shallot/default.nix b/pkgs/tools/misc/shallot/default.nix
index e8ab6168541..84e241b7a2c 100644
--- a/pkgs/tools/misc/shallot/default.nix
+++ b/pkgs/tools/misc/shallot/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Shallot allows you to create customized .onion addresses for your hidden service";
+    description = "Allows you to create customized .onion addresses for your hidden service";
 
     license = stdenv.lib.licenses.mit;
     homepage = "https://github.com/katmagic/Shallot";
diff --git a/pkgs/tools/misc/slurp/default.nix b/pkgs/tools/misc/slurp/default.nix
index dbec2324674..bdbea7367b8 100644
--- a/pkgs/tools/misc/slurp/default.nix
+++ b/pkgs/tools/misc/slurp/default.nix
@@ -1,27 +1,28 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig
-, cairo, wayland, wayland-protocols
+{ stdenv, fetchFromGitHub, meson, ninja, pkg-config
+, cairo, libxkbcommon, wayland, wayland-protocols
 , buildDocs ? true, scdoc
 }:
 
 stdenv.mkDerivation rec {
   pname = "slurp";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = "slurp";
     rev = "v${version}";
-    sha256 = "0580m6kaiilgsrcj608r837r37sl6a25y7w21p7d6ij20fs3gvg1";
+    sha256 = "191yjn909dax8z66ks58wjadrycpbwryirkfjcy99dhq7dijg9fh";
   };
 
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
+    pkg-config
   ] ++ stdenv.lib.optional buildDocs scdoc;
 
   buildInputs = [
     cairo
+    libxkbcommon
     wayland
     wayland-protocols
   ];
diff --git a/pkgs/tools/misc/somafm-cli/default.nix b/pkgs/tools/misc/somafm-cli/default.nix
index 312b402ae66..3ce3f62a9e2 100644
--- a/pkgs/tools/misc/somafm-cli/default.nix
+++ b/pkgs/tools/misc/somafm-cli/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     description = "Listen to SomaFM in your terminal via pure bash";
     homepage = "https://github.com/rockymadden/somafm-cli";
     license = licenses.mit;
+    platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/tools/misc/sweep-visualizer/default.nix b/pkgs/tools/misc/sweep-visualizer/default.nix
index 21e6f49df1f..fdd3c5f628d 100644
--- a/pkgs/tools/misc/sweep-visualizer/default.nix
+++ b/pkgs/tools/misc/sweep-visualizer/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, makeWrapper, fetchurl,
   alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib,
-  gnome2, gtk2-x11, nspr, nss,
+  gnome2, pango, gtk2-x11, nspr, nss,
   libX11, libxcb, libXcomposite, libXcursor, libXdamage, libXext, libXfixes,
   libXi, libXrandr, libXrender, libXScrnSaver, libXtst,
   libudev0-shim
@@ -33,7 +33,7 @@
     preFixup = let
       libPath = lib.makeLibraryPath [
         alsaLib atk cairo cups.lib dbus.lib expat fontconfig.lib freetype
-        gdk-pixbuf glib gnome2.GConf gnome2.pango gtk2-x11 nspr nss stdenv.cc.cc.lib
+        gdk-pixbuf glib gnome2.GConf pango gtk2-x11 nspr nss stdenv.cc.cc.lib
         libX11 libxcb libXcomposite libXcursor libXdamage libXext libXfixes
         libXi libXrandr libXrender libXScrnSaver libXtst
       ];
diff --git a/pkgs/tools/misc/vimv/default.nix b/pkgs/tools/misc/vimv/default.nix
new file mode 100644
index 00000000000..023d3384ed6
--- /dev/null
+++ b/pkgs/tools/misc/vimv/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, bash, fetchFromGitHub }:
+stdenv.mkDerivation {
+  pname = "vimv";
+  version = "unstable-2019-10-31";
+  src = fetchFromGitHub {
+    owner = "thameera";
+    repo = "vimv";
+    rev = "4152496c1946f68a13c648fb7e583ef23dac4eb8";
+    sha256 = "1fsrfx2gs6bqx7wk7pgcji2i2x4alqpsi66aif4kqvnpqfhcfzjd";
+  };
+  phases = [ "installPhase" ];
+  installPhase = ''
+    install -d $out/bin
+    install $src/vimv $out/bin/vimv
+    patchShebangs $out/bin/vimv
+  '';
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/thameera/vimv";
+    description = "Batch-rename files using Vim";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.kmein ];
+  };
+}
diff --git a/pkgs/tools/misc/wootility/default.nix b/pkgs/tools/misc/wootility/default.nix
index cc192951ca8..a79f414a359 100644
--- a/pkgs/tools/misc/wootility/default.nix
+++ b/pkgs/tools/misc/wootility/default.nix
@@ -35,7 +35,7 @@ appimageTools.wrapType2 rec {
 
   meta = with lib; {
     homepage = "https://wooting.io/wootility";
-    description = "Wootility is customization and management software for Wooting keyboards";
+    description = "A customization and management software for Wooting keyboards";
     platforms = [ "x86_64-linux" ];
     license = "unknown";
     maintainers = with maintainers; [ davidtwco ];
diff --git a/pkgs/tools/misc/zsh-autoenv/default.nix b/pkgs/tools/misc/zsh-autoenv/default.nix
index c44837b877d..f4295443f69 100644
--- a/pkgs/tools/misc/zsh-autoenv/default.nix
+++ b/pkgs/tools/misc/zsh-autoenv/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
     cat <<SCRIPT > $out/bin/zsh-autoenv-share
     #!${runtimeShell}
-    # Run this script to find the fzf shared folder where all the shell
+    # Run this script to find the zsh-autoenv shared folder where all the shell
     # integration scripts are living.
     echo $out/share/zsh-autoenv
     SCRIPT
diff --git a/pkgs/tools/networking/bukubrow/default.nix b/pkgs/tools/networking/bukubrow/default.nix
index b8f2d70848d..ed8a6088db0 100644
--- a/pkgs/tools/networking/bukubrow/default.nix
+++ b/pkgs/tools/networking/bukubrow/default.nix
@@ -39,7 +39,7 @@ in rustPlatform.buildRustPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Bukubrow is a WebExtension for Buku, a command-line bookmark manager";
+    description = "A WebExtension for Buku, a command-line bookmark manager";
     homepage = "https://github.com/SamHH/bukubrow-host";
     license = licenses.gpl3;
     maintainers = with maintainers; [ infinisil ];
diff --git a/pkgs/tools/networking/corerad/default.nix b/pkgs/tools/networking/corerad/default.nix
index 4ab266e5495..38331163c12 100644
--- a/pkgs/tools/networking/corerad/default.nix
+++ b/pkgs/tools/networking/corerad/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mdlayher/corerad";
-    description = "CoreRAD extensible and observable IPv6 NDP RA daemon";
+    description = "Extensible and observable IPv6 NDP RA daemon";
     license = licenses.asl20;
     maintainers = with maintainers; [ mdlayher ];
   };
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index f1137904187..36fc5583439 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, callPackage}:
 
 buildGoModule rec {
   pname = "croc";
@@ -17,6 +17,11 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
+  passthru = {
+    tests = {
+      local-relay = callPackage ./test-local-relay.nix {};
+    };
+  };
   meta = with stdenv.lib; {
     description =
       "Easily and securely send things from one computer to another";
diff --git a/pkgs/tools/networking/croc/test-local-relay.nix b/pkgs/tools/networking/croc/test-local-relay.nix
new file mode 100644
index 00000000000..bde05d6deb0
--- /dev/null
+++ b/pkgs/tools/networking/croc/test-local-relay.nix
@@ -0,0 +1,20 @@
+{ stdenv, croc }:
+
+stdenv.mkDerivation {
+  name = "croc-test-local-relay";
+  meta.timeout = 300;
+  buildCommand = ''
+          HOME=$(mktemp -d)
+          # start a local relay
+          ${croc}/bin/croc relay --ports 11111,11112 &
+          # start sender in background
+          MSG="See you later, alligator!"
+          ${croc}/bin/croc --relay localhost:11111 send --code correct-horse-battery-staple --text "$MSG" &
+          # wait for things to settle
+          sleep 1
+          # receive
+          MSG2=$(${croc}/bin/croc --relay localhost:11111 --yes correct-horse-battery-staple)
+          # compare
+          [ "$MSG" = "$MSG2" ] && touch $out
+  '';
+}
diff --git a/pkgs/tools/networking/curlie/default.nix b/pkgs/tools/networking/curlie/default.nix
index f8147cb1611..542bb888bfe 100644
--- a/pkgs/tools/networking/curlie/default.nix
+++ b/pkgs/tools/networking/curlie/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Curlie is a frontend to curl that adds the ease of use of httpie, without compromising on features and performance";
+    description = "Frontend to curl that adds the ease of use of httpie, without compromising on features and performance";
     homepage = "https://curlie.io/";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.mit;
diff --git a/pkgs/tools/networking/dnstracer/default.nix b/pkgs/tools/networking/dnstracer/default.nix
index b0369ec80bd..558e0dca903 100644
--- a/pkgs/tools/networking/dnstracer/default.nix
+++ b/pkgs/tools/networking/dnstracer/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lresolv";
 
   meta = with stdenv.lib; {
-    description = "Dnstracer determines where a given Domain Name Server (DNS) gets its information from, and follows the chain of DNS servers back to the servers which know the data";
+    description = "Determines where a given Domain Name Server (DNS) gets its information from, and follows the chain of DNS servers back to the servers which know the data";
     homepage = "http://www.mavetju.org/unix/general.php";
     license = licenses.bsd2;
     maintainers = with maintainers; [ andir ];
diff --git a/pkgs/tools/networking/driftnet/default.nix b/pkgs/tools/networking/driftnet/default.nix
index 44101910371..7a5ceda9669 100644
--- a/pkgs/tools/networking/driftnet/default.nix
+++ b/pkgs/tools/networking/driftnet/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "Driftnet watches network traffic, and picks out and displays JPEG and GIF images for display";
+    description = "Watches network traffic, and picks out and displays JPEG and GIF images for display";
     homepage = "https://github.com/deiv/driftnet";
     maintainers = with maintainers; [ offline ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/goreplay/default.nix b/pkgs/tools/networking/goreplay/default.nix
index 86548bf9959..0859472a446 100644
--- a/pkgs/tools/networking/goreplay/default.nix
+++ b/pkgs/tools/networking/goreplay/default.nix
@@ -19,7 +19,7 @@ buildGoPackage rec {
   meta = {
     homepage = "https://github.com/buger/goreplay";
     license = stdenv.lib.licenses.lgpl3Only;
-    description = "GoReplay is an open-source tool for capturing and replaying live HTTP traffic";
+    description = "Open-source tool for capturing and replaying live HTTP traffic";
     platforms = stdenv.lib.platforms.unix;
     maintainers = with stdenv.lib.maintainers; [ lovek323 ];
   };
diff --git a/pkgs/tools/networking/maxscale/default.nix b/pkgs/tools/networking/maxscale/default.nix
index 48590a9e305..9036e07e7f3 100644
--- a/pkgs/tools/networking/maxscale/default.nix
+++ b/pkgs/tools/networking/maxscale/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-     description = ''MaxScale database proxy extends MariaDB Server's high availability'';
+     description = "MaxScale database proxy extends MariaDB Server's high availability";
      homepage = "https://mariadb.com/products/technology/maxscale";
      license = licenses.bsl11;
      platforms = platforms.linux;
diff --git a/pkgs/tools/networking/ngrok-2/default.nix b/pkgs/tools/networking/ngrok-2/default.nix
index d9c1acc374c..3c1e0f498fb 100644
--- a/pkgs/tools/networking/ngrok-2/default.nix
+++ b/pkgs/tools/networking/ngrok-2/default.nix
@@ -35,10 +35,7 @@ stdenv.mkDerivation {
   passthru.updateScript = ./update.sh;
 
   meta = {
-    description = "ngrok";
-    longDescription = ''
-      Allows you to expose a web server running on your local machine to the internet.
-    '';
+    description = "Allows you to expose a web server running on your local machine to the internet";
     homepage = "https://ngrok.com/";
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
diff --git a/pkgs/tools/networking/pmacct/default.nix b/pkgs/tools/networking/pmacct/default.nix
index 2bb6f373727..4ef3cd6345e 100644
--- a/pkgs/tools/networking/pmacct/default.nix
+++ b/pkgs/tools/networking/pmacct/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     ++ optional withMysql "--enable-mysql";
 
   meta = with stdenv.lib; {
-    description = "pmacct is a small set of multi-purpose passive network monitoring tools";
+    description = "A small set of multi-purpose passive network monitoring tools";
     longDescription = ''
       pmacct is a small set of multi-purpose passive network monitoring tools
       [NetFlow IPFIX sFlow libpcap BGP BMP RPKI IGP Streaming Telemetry]
diff --git a/pkgs/tools/networking/rcon/default.nix b/pkgs/tools/networking/rcon/default.nix
new file mode 100644
index 00000000000..f7cd08e197e
--- /dev/null
+++ b/pkgs/tools/networking/rcon/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, glib, libbsd, check, pcre }:
+
+stdenv.mkDerivation rec {
+  pname = "rcon";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "n0la";
+    repo = "rcon";
+    rev = version;
+    sha256 = "1jsnmsm2qkiv8dan1yncx0qp6zfkcbyvf81c7xwpv6r499ijw1nb";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [
+    glib
+    libbsd
+    check
+    pcre
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/n0la/rcon";
+    description = "Source RCON client for command line";
+    maintainers = with maintainers; [ f4814n ];
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.bsd2;
+  };
+}
diff --git a/pkgs/tools/networking/ssldump/default.nix b/pkgs/tools/networking/ssldump/default.nix
index b492b5a226b..d7578c4adda 100644
--- a/pkgs/tools/networking/ssldump/default.nix
+++ b/pkgs/tools/networking/ssldump/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
                      "--with-openssl-lib=${openssl}/lib"
                      "--with-openssl-inc=${openssl}/include" ];
   meta = {
-    description = "ssldump is an SSLv3/TLS network protocol analyzer";
+    description = "An SSLv3/TLS network protocol analyzer";
     homepage = "http://ssldump.sourceforge.net";
     license = "BSD-style";
     maintainers = with stdenv.lib.maintainers; [ aycanirican ];
diff --git a/pkgs/tools/package-management/morph/default.nix b/pkgs/tools/package-management/morph/default.nix
index 1a75fa43d4e..61e4a897f48 100644
--- a/pkgs/tools/package-management/morph/default.nix
+++ b/pkgs/tools/package-management/morph/default.nix
@@ -35,7 +35,7 @@ buildGoPackage rec {
   outputs = [ "out" "lib" ];
 
   meta = with lib; {
-    description = "Morph is a NixOS host manager written in Golang";
+    description = "A NixOS host manager written in Golang";
     license = licenses.mit;
     homepage = "https://github.com/dbcdk/morph";
     maintainers = with maintainers; [adamt johanot];
diff --git a/pkgs/tools/security/1password-gui/default.nix b/pkgs/tools/security/1password-gui/default.nix
index 7d52311b398..c3d406ce3aa 100644
--- a/pkgs/tools/security/1password-gui/default.nix
+++ b/pkgs/tools/security/1password-gui/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://1password.com/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ danieldk timstott ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/tools/security/acsccid/default.nix b/pkgs/tools/security/acsccid/default.nix
index 3e61b124fef..53842cbb1fc 100644
--- a/pkgs/tools/security/acsccid/default.nix
+++ b/pkgs/tools/security/acsccid/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers";
+    description = "A PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers";
     longDescription = ''
       acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card
       readers. This library provides a PC/SC IFD handler implementation and
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index d10a938ea02..113c00b8888 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -17,11 +17,11 @@ let
   pname = "bitwarden";
 
   version = {
-    x86_64-linux = "1.22.1";
+    x86_64-linux = "1.22.2";
   }.${system} or "";
 
   sha256 = {
-    x86_64-linux = "1pbcrkafyjjcsd27s99g511llkz05d9qkny7g15wp6piyyv89k3n";
+    x86_64-linux = "1yx550whld0dg3b10x57r2nzizydla4i40zqqm6dzd3wic8yi365";
   }.${system} or "";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/fpm2/default.nix b/pkgs/tools/security/fpm2/default.nix
index aff4e1ee1ec..2f297ffd6b7 100644
--- a/pkgs/tools/security/fpm2/default.nix
+++ b/pkgs/tools/security/fpm2/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gnupg gtk2 libxml2 intltool ];
 
   meta = {
-    description = "FPM2 is GTK2 port from Figaro's Password Manager originally developed by John Conneely, with some new enhancements";
+    description = "GTK2 port from Figaro's Password Manager originally developed by John Conneely, with some new enhancements";
     homepage    = "https://als.regnet.cz/fpm2/";
     license     = licenses.gpl2;
     platforms   = platforms.linux;
diff --git a/pkgs/tools/security/gobuster/default.nix b/pkgs/tools/security/gobuster/default.nix
index 6e049917de2..cc436a16b58 100644
--- a/pkgs/tools/security/gobuster/default.nix
+++ b/pkgs/tools/security/gobuster/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gobuster";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "OJ";
     repo = "gobuster";
     rev = "v${version}";
-    sha256 = "0q8ighqykh8qyvidnm6az6dc9mp32bbmhkmkqzl1ybbw6paa8pym";
+    sha256 = "0nal2g5c6z46x6337yh0s6mqgnsigp91i7mp1l3sa91p5ihk71wr";
   };
 
-  vendorSha256 = "0kr9i2nm5csf3070hwaiss137pfa3088xbw2zigp7aqb2naky036";
+  vendorSha256 = "1isp2jd6k4ppns5zi9irj09090imnc0xp6vcps135ymgp8qg4163";
 
   doCheck = false;
 
diff --git a/pkgs/tools/security/notary/default.nix b/pkgs/tools/security/notary/default.nix
index 15797fc8665..020f37c836b 100644
--- a/pkgs/tools/security/notary/default.nix
+++ b/pkgs/tools/security/notary/default.nix
@@ -36,7 +36,7 @@ buildGoPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Notary is a project that allows anyone to have trust over arbitrary collections of data";
+    description = "A project that allows anyone to have trust over arbitrary collections of data";
     longDescription = ''
       The Notary project comprises a server and a client for running and
       interacting with trusted collections. See the service architecture
diff --git a/pkgs/tools/security/rustscan/default.nix b/pkgs/tools/security/rustscan/default.nix
index 773711d1f30..4d154bbc96f 100644
--- a/pkgs/tools/security/rustscan/default.nix
+++ b/pkgs/tools/security/rustscan/default.nix
@@ -1,8 +1,4 @@
-{ lib
-, fetchFromGitHub
-, rustPlatform
-, nmap
-}:
+{ stdenv, fetchFromGitHub, rustPlatform, nmap, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rustscan";
@@ -22,6 +18,8 @@ rustPlatform.buildRustPackage rec {
       --replace 'Command::new("nmap")' 'Command::new("${nmap}/bin/nmap")'
   '';
 
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
   checkFlags = [
     "--skip=infer_ulimit_lowering_no_panic"
     "--skip=google_dns_runs"
@@ -29,7 +27,7 @@ rustPlatform.buildRustPackage rec {
     "--skip=parse_hosts_file_and_incorrect_hosts"
   ];
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "Faster Nmap Scanning with Rust";
     homepage = "https://github.com/RustScan/RustScan";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/security/sequoia/default.nix b/pkgs/tools/security/sequoia/default.nix
index a54433b92c9..aa2a12fc351 100644
--- a/pkgs/tools/security/sequoia/default.nix
+++ b/pkgs/tools/security/sequoia/default.nix
@@ -23,16 +23,16 @@ assert pythonSupport -> pythonPackages != null;
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
     repo = "sequoia";
     rev = "v${version}";
-    sha256 = "1870wd03c3x0da9p3jmkvfx8am87ak0dcsvp2qkjvglbl396kd8y";
+    sha256 = "sha256-br5GRzWprQTixNrE0WpNIB7Ayj5oEfyCg5JY4MnX5rA=";
   };
 
-  cargoSha256 = "0bb51vdppdjhsxbfy3lyqvw5r5j58r3wi0qb68m2a45k3za7liss";
+  cargoSha256 = "sha256-SpCdoLCtvU9jpG/ivB/+4KhRdKZxN3/+7P/RlR6n9/c=";
 
   nativeBuildInputs = [
     pkg-config
@@ -62,6 +62,8 @@ rustPlatform.buildRustPackage rec {
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
+    # Defaults to "ginstall" from some reason, although upstream's Makefiles check uname
+    "INSTALL=install"
   ];
 
   buildFlags = [
@@ -100,6 +102,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://sequoia-pgp.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ minijackson doronbehar ];
-    broken = stdenv.targetPlatform.isDarwin;
   };
 }
diff --git a/pkgs/tools/security/ssh-audit/default.nix b/pkgs/tools/security/ssh-audit/default.nix
index 9dbb0ce5fcf..6a3dbfb615b 100644
--- a/pkgs/tools/security/ssh-audit/default.nix
+++ b/pkgs/tools/security/ssh-audit/default.nix
@@ -39,6 +39,7 @@ python3Packages.buildPythonApplication rec {
     description = "Tool for ssh server auditing";
     homepage = "https://github.com/jtesta/ssh-audit";
     license = licenses.mit;
+    platforms = platforms.all;
     maintainers = with maintainers; [ tv SuperSandro2000 ];
   };
 }
diff --git a/pkgs/tools/security/sshguard/default.nix b/pkgs/tools/security/sshguard/default.nix
index 6c2298f6729..6bae0fddc23 100644
--- a/pkgs/tools/security/sshguard/default.nix
+++ b/pkgs/tools/security/sshguard/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--sysconfdir=/etc" ];
 
   meta = with stdenv.lib; {
-    description = "SSHGuard protects hosts from brute-force attacks";
+    description = "Protects hosts from brute-force attacks";
     longDescription = ''
       SSHGuard can read log messages from various input sources. Log messages are parsed, line-by-line, for recognized patterns.
       If an attack, such as several login failures within a few seconds, is detected, the offending IP is blocked.
diff --git a/pkgs/tools/system/daemon/default.nix b/pkgs/tools/system/daemon/default.nix
index fb06247f984..6763b476f30 100644
--- a/pkgs/tools/system/daemon/default.nix
+++ b/pkgs/tools/system/daemon/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   buildInputs = [ perl ];
 
   meta = {
-    description = "Daemon turns other process into daemons";
+    description = "Turns other processes into daemons";
     longDescription = ''
       Daemon turns other process into daemons. There are many tasks that need
       to be performed to correctly set up a daemon process. This can be tedious.
diff --git a/pkgs/tools/system/jump/default.nix b/pkgs/tools/system/jump/default.nix
index d8e838dd360..d91df3232c8 100644
--- a/pkgs/tools/system/jump/default.nix
+++ b/pkgs/tools/system/jump/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "Jump helps you navigate faster by learning your habits";
+    description = "Navigate directories faster by learning your habits";
     longDescription = ''
       Jump integrates with the shell and learns about your
       navigational habits by keeping track of the directories you visit. It
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index f1bb1f9d62d..8192dfe6c14 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -15,14 +15,14 @@ with stdenv.lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.25.0";
+  version = "1.26.0";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "0wsgs0slqmj9q5prwlx7d4692lc4c42g0sv35r33vlxnfdwimfh5";
+    sha256 = "0pvl1y1qscwp1chrbmk43xf9ddjxgfm0hcslbdbljjis7ng4gacg";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/system/snooze/default.nix b/pkgs/tools/system/snooze/default.nix
index a82db1dbd42..fb1ceaf897b 100644
--- a/pkgs/tools/system/snooze/default.nix
+++ b/pkgs/tools/system/snooze/default.nix
@@ -11,8 +11,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=/" ];
 
   meta = with stdenv.lib; {
-    description =
-      "Tool for waiting until a particular time and then running a command.";
+    description = "Tool for waiting until a particular time and then running a command";
     maintainers = with maintainers; [ kaction ];
     license = licenses.cc0;
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/testdisk/default.nix b/pkgs/tools/system/testdisk/default.nix
index 223d1102e0d..bbece24bf65 100644
--- a/pkgs/tools/system/testdisk/default.nix
+++ b/pkgs/tools/system/testdisk/default.nix
@@ -46,7 +46,7 @@ assert enableQt -> qwt != null;
   meta = with stdenv.lib; {
     homepage = "https://www.cgsecurity.org/wiki/Main_Page";
     downloadPage = "https://www.cgsecurity.org/wiki/TestDisk_Download";
-    description = "Testdisk / Photorec - Data recovery utilities";
+    description = "Data recovery utilities";
     longDescription = ''
       TestDisk is a powerful free data recovery software. It was primarily
       designed to help recover lost partitions and/or make non-booting disks
diff --git a/pkgs/tools/system/thinkfan/default.nix b/pkgs/tools/system/thinkfan/default.nix
index 4edcfb63fe5..62c299cce7a 100644
--- a/pkgs/tools/system/thinkfan/default.nix
+++ b/pkgs/tools/system/thinkfan/default.nix
@@ -35,7 +35,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "A minimalist fan control program. Originally designed
+    description  = "A minimalist fan control program";
+    longDescription = "A minimalist fan control program. Originally designed
 specifically for IBM/Lenovo Thinkpads, it now supports any kind of system via
 the sysfs hwmon interface (/sys/class/hwmon).";
     license = licenses.gpl3;
diff --git a/pkgs/tools/text/jsawk/default.nix b/pkgs/tools/text/jsawk/default.nix
index 51075c2ce17..a9b9e788402 100644
--- a/pkgs/tools/text/jsawk/default.nix
+++ b/pkgs/tools/text/jsawk/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "Jsawk is like awk, but for JSON";
+    description = "Like awk, but for JSON";
     homepage = "https://github.com/micha/jsawk";
     license = stdenv.lib.licenses.publicDomain;
     maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
diff --git a/pkgs/tools/text/mdbook/default.nix b/pkgs/tools/text/mdbook/default.nix
index 0a5eae90473..8e035017742 100644
--- a/pkgs/tools/text/mdbook/default.nix
+++ b/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "1566jabmvafv6aiw5nvb6y2zcnxc7pbb9dl3s4vi6mx21kqp68ag";
+    sha256 = "0nqr5a27i91m71fhpycf60q54qplc920y1fmk9hav3pbb9wcc5dl";
   };
 
-  cargoSha256 = "0sa1h3qzdhgk2h3wrc0kg0ajq6zbkvn1ry4672gfn3j9gpgvy2bb";
+  cargoSha256 = "1p72iwl9ca7a92nf6wyjjbn0qns0xxb4xrbz2r2nmd83cxs0fplg";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
index bf082abadbc..3bacd53c713 100644
--- a/pkgs/tools/text/miller/default.nix
+++ b/pkgs/tools/text/miller/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook flex libtool ];
 
   meta = with stdenv.lib; {
-    description = "Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON";
+    description = "Like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON";
     homepage    = "http://johnkerl.org/miller/";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ mstarzyk ];
diff --git a/pkgs/tools/text/sift/default.nix b/pkgs/tools/text/sift/default.nix
index 5a36de5f720..dc025f17a78 100644
--- a/pkgs/tools/text/sift/default.nix
+++ b/pkgs/tools/text/sift/default.nix
@@ -17,7 +17,7 @@ buildGoPackage rec {
   goDeps = ./deps.nix;
 
   meta = with lib; {
-    description = "sift is a fast and powerful alternative to grep";
+    description = "A fast and powerful alternative to grep";
     homepage = "https://sift-tool.org";
     maintainers = [ maintainers.carlsverre ];
     license = licenses.gpl3;
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index e2fb6b71ead..4011df99706 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "2.4.3";
+  version = "2.5.0";
 
   subPackages = [ "." ];
   outputs = [ "out" "data" ];
@@ -11,7 +11,7 @@ buildGoModule rec {
     owner  = "errata-ai";
     repo   = "vale";
     rev    = "v${version}";
-    sha256 = "1qjsrwabqg9brr5q46dl0zrhy5m5qqp68m5v0kskwkykd3r97qwn";
+    sha256 = "0favaijdddm0lajlv0a277mg286jh12kwfndf98zdp0vfq9lv00d";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/typesetting/asciidoctorj/default.nix b/pkgs/tools/typesetting/asciidoctorj/default.nix
index c518ddeaf39..08351dd6f3e 100644
--- a/pkgs/tools/typesetting/asciidoctorj/default.nix
+++ b/pkgs/tools/typesetting/asciidoctorj/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asciidoctorj";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchzip {
     url = "http://dl.bintray.com/asciidoctor/maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "1bp26x5mhbl25s9djlq6yani1vaqrgbi5mjljhwhj97iapwsd0yb";
+    sha256 = "1m00cdg1520ampg3i2j64si8gmwph7j4189agjlimx3fjjsp3xrh";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -19,13 +19,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = ''
-      AsciidoctorJ is the official library for running Asciidoctor on the JVM.
-    '';
+    description = "Official library for running Asciidoctor on the JVM";
     longDescription = ''
-      AsciidoctorJ is the official library for running Asciidoctor on the JVM. 
-      Using AsciidoctorJ, you can convert AsciiDoc content or analyze the 
-      structure of a parsed AsciiDoc document from Java and other JVM 
+      AsciidoctorJ is the official library for running Asciidoctor on the JVM.
+      Using AsciidoctorJ, you can convert AsciiDoc content or analyze the
+      structure of a parsed AsciiDoc document from Java and other JVM
       languages.
     '';
     homepage = "https://asciidoctor.org/docs/asciidoctorj/";
@@ -33,4 +31,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ moaxcp ];
   };
-} 
+}
diff --git a/pkgs/tools/typesetting/rubber/default.nix b/pkgs/tools/typesetting/rubber/default.nix
index a9ac2690b66..f3f036ce50e 100644
--- a/pkgs/tools/typesetting/rubber/default.nix
+++ b/pkgs/tools/typesetting/rubber/default.nix
@@ -9,18 +9,18 @@ python3Packages.buildPythonApplication rec {
     sha256 = "178dmrp0mza5gqjiqgk6dqs0c10s0c517pk6k9pjbam86vf47a1p";
   };
 
-  nativeBuildInputs = [ texinfo ];
-
-  # I couldn't figure out how to pass the proper parameter to disable pdf generation, so we
-  # use sed to change the default
-  preBuild = ''
-    sed -i -r 's/pdf\s+= True/pdf = False/g' setup.py
+  # I'm sure there is a better way to pass these parameters to the build script...
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'pdf  = True' 'pdf = False' \
+      --replace '$base/man'   'share/man' \
+      --replace '$base/info'  'share/info' \
+      --replace '$base/share' 'share'
   '';
 
-  # the check scripts forces python2. If we need to use python3 at some point, we should use
-  # the correct python
+  nativeBuildInputs = [ texinfo ];
+
   checkPhase = ''
-    sed -i 's|python=python3|python=${python3Packages.python.interpreter}|' tests/run.sh
     cd tests && ${stdenv.shell} run.sh
   '';
 
diff --git a/pkgs/tools/typesetting/ted/default.nix b/pkgs/tools/typesetting/ted/default.nix
index 25e9dce242f..6d7ef334861 100644
--- a/pkgs/tools/typesetting/ted/default.nix
+++ b/pkgs/tools/typesetting/ted/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig zlib pcre xorg.xlibsWrapper xorg.libXpm libjpeg libtiff libpng gtk2 libpaper makeWrapper ];
 
   meta = with stdenv.lib; {
-    description = "Ted, an easy rich text processor";
+    description = "An easy rich text processor";
     longDescription = ''
       Ted is a text processor running under X Windows on Unix/Linux systems.
       Ted was developed as a standard easy light weight word processor, having
diff --git a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
index 19766fb5ba9..4c37054f4a0 100644
--- a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
+++ b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
@@ -2,18 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "amazon-ecs-cli";
-  version = "1.18.1";
+  version = "1.20.0";
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-v${version}";
-        sha256 = "1q0qsvxwz6mgslwzwslddxxv45v9wmlbbkxgyfz3dfkw6n6d1a2s";
+        sha256 = "11cw2hk48x66wlsg5bzay95l2pgncwnawzj4xmqmbchhhvphrvxr";
       }
     else if stdenv.hostPlatform.system == "x86_64-darwin" then
       fetchurl {
         url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-darwin-amd64-v${version}";
-        sha256 = "0hik88z5xm1pw6a3mxa6zpghdv47s6bg56srxv4azjinzdi59s3b";
+        sha256 = "1f4yq04sgwkj2p0j598a8vc54dzihmqvg9daa6mxnqj403ln0rg1";
       }
     else throw "Architecture not supported";
 
diff --git a/pkgs/tools/wayland/wshowkeys/default.nix b/pkgs/tools/wayland/wshowkeys/default.nix
new file mode 100644
index 00000000000..0db02990c03
--- /dev/null
+++ b/pkgs/tools/wayland/wshowkeys/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl
+, meson, pkg-config, wayland, ninja
+, cairo, libinput, pango, wayland-protocols, libxkbcommon
+}:
+
+let
+  version = "2020-03-29";
+  commit = "6388a49e0f431d6d5fcbd152b8ae4fa8e87884ee";
+in stdenv.mkDerivation rec {
+  pname = "wshowkeys-unstable";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://git.sr.ht/~sircmpwn/wshowkeys/archive/${commit}.tar.gz";
+    sha256 = "0iplmw13jmc8d3m307kc047zq8yqwm42kw9fpm270562i3p0qk4d";
+  };
+
+  nativeBuildInputs = [ meson pkg-config wayland ninja ];
+  buildInputs = [ cairo libinput pango wayland-protocols libxkbcommon ];
+
+  meta = with stdenv.lib; {
+    description = "Displays keys being pressed on a Wayland session";
+    longDescription = ''
+      Displays keypresses on screen on supported Wayland compositors (requires
+      wlr_layer_shell_v1 support).
+      Note: This tool requires root permissions to read input events, but these
+      permissions are dropped after startup. The NixOS module provides such a
+      setuid binary (use "programs.wshowkeys.enable = true;").
+    '';
+    homepage = "https://git.sr.ht/~sircmpwn/wshowkeys";
+    license = with licenses; [ gpl3Only mit ];
+    # Some portions of the code are taken from Sway which is MIT licensed.
+    # TODO: gpl3Only or gpl3Plus (ask upstream)?
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ primeos berbiche ];
+  };
+}