summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-01-26 22:39:25 +0000
committerAlyssa Ross <hi@alyssa.is>2020-01-26 22:39:25 +0000
commitbd2ad77e38991af0d7a3a5d82bd3f41a077ce401 (patch)
treed1e26d039eb5004eb7c836aafff259cc198626d4 /pkgs/tools
parente5d8381542a8d084371d26013fab199f52474be7 (diff)
parentad3f0d9829119b611350a9be1c226fb625f1f310 (diff)
downloadnixpkgs-bd2ad77e38991af0d7a3a5d82bd3f41a077ce401.tar
nixpkgs-bd2ad77e38991af0d7a3a5d82bd3f41a077ce401.tar.gz
nixpkgs-bd2ad77e38991af0d7a3a5d82bd3f41a077ce401.tar.bz2
nixpkgs-bd2ad77e38991af0d7a3a5d82bd3f41a077ce401.tar.lz
nixpkgs-bd2ad77e38991af0d7a3a5d82bd3f41a077ce401.tar.xz
nixpkgs-bd2ad77e38991af0d7a3a5d82bd3f41a077ce401.tar.zst
nixpkgs-bd2ad77e38991af0d7a3a5d82bd3f41a077ce401.zip
Merge remote-tracking branch 'nixpkgs/master' into master
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/jumpapp/default.nix4
-rw-r--r--pkgs/tools/X11/xcape/default.nix2
-rw-r--r--pkgs/tools/X11/xlayoutdisplay/default.nix4
-rw-r--r--pkgs/tools/X11/xsecurelock/default.nix4
-rw-r--r--pkgs/tools/admin/acme.sh/default.nix4
-rw-r--r--pkgs/tools/admin/ansible/default.nix20
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix4
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix26
-rw-r--r--pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix5
-rw-r--r--pkgs/tools/admin/nomachine-client/default.nix8
-rw-r--r--pkgs/tools/admin/procs/default.nix14
-rw-r--r--pkgs/tools/admin/sewer/default.nix5
-rw-r--r--pkgs/tools/admin/swiftclient/default.nix4
-rw-r--r--pkgs/tools/admin/vncdo/default.nix8
-rw-r--r--pkgs/tools/archivers/unrar/default.nix5
-rw-r--r--pkgs/tools/audio/video2midi/default.nix4
-rw-r--r--pkgs/tools/backup/borg/default.nix4
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/backup/duplicati/default.nix6
-rw-r--r--pkgs/tools/backup/luckybackup/default.nix45
-rw-r--r--pkgs/tools/backup/zfs-replicate/default.nix4
-rw-r--r--pkgs/tools/backup/zfsnap/default.nix42
-rw-r--r--pkgs/tools/bluetooth/obexfs/default.nix8
-rw-r--r--pkgs/tools/bluetooth/obexftp/default.nix4
-rw-r--r--pkgs/tools/compression/zopfli/default.nix17
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix20
-rw-r--r--pkgs/tools/filesystems/davfs2/0001-umount_davfs-substitute-ps-command.patch25
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix26
-rw-r--r--pkgs/tools/filesystems/fuse-overlayfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix20
-rw-r--r--pkgs/tools/filesystems/gcsfuse/go.mod.patch28
-rw-r--r--pkgs/tools/filesystems/gcsfuse/go.sum.patch38
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/blivet.nix2
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/default.nix4
-rw-r--r--pkgs/tools/filesystems/rar2fs/default.nix39
-rw-r--r--pkgs/tools/filesystems/reiser4progs/default.nix4
-rw-r--r--pkgs/tools/graphics/argyllcms/default.nix4
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--pkgs/tools/graphics/grim/default.nix4
-rw-r--r--pkgs/tools/graphics/pstoedit/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix6
-rw-r--r--pkgs/tools/misc/broot/default.nix24
-rw-r--r--pkgs/tools/misc/calamares/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix17
-rw-r--r--pkgs/tools/misc/direnv/default.nix4
-rw-r--r--pkgs/tools/misc/dust/default.nix6
-rw-r--r--pkgs/tools/misc/execline/default.nix100
-rw-r--r--pkgs/tools/misc/execline/execlineb-wrapper.c7
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--pkgs/tools/misc/fpart/default.nix7
-rw-r--r--pkgs/tools/misc/fsmon/default.nix4
-rw-r--r--pkgs/tools/misc/geekbench/default.nix4
-rw-r--r--pkgs/tools/misc/graylog/default.nix4
-rw-r--r--pkgs/tools/misc/h/default.nix28
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix94
-rw-r--r--pkgs/tools/misc/html-proofer/Gemfile.lock10
-rw-r--r--pkgs/tools/misc/html-proofer/gemset.nix20
-rw-r--r--pkgs/tools/misc/ipxe/default.nix18
-rw-r--r--pkgs/tools/misc/jdupes/default.nix13
-rw-r--r--pkgs/tools/misc/logstash/7.x.nix4
-rw-r--r--pkgs/tools/misc/lorri/default.nix10
-rw-r--r--pkgs/tools/misc/lorri/runtime.nix35
-rw-r--r--pkgs/tools/misc/mcfly/default.nix16
-rw-r--r--pkgs/tools/misc/mongodb-tools/default.nix4
-rw-r--r--pkgs/tools/misc/ms-sys/default.nix2
-rw-r--r--pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch12
-rw-r--r--pkgs/tools/misc/mutagen/default.nix24
-rw-r--r--pkgs/tools/misc/osm2pgsql/default.nix4
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/pfetch/default.nix11
-rw-r--r--pkgs/tools/misc/pg_flame/default.nix4
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/default.nix4
-rw-r--r--pkgs/tools/misc/pipreqs/default.nix4
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/powerline-rs/default.nix12
-rw-r--r--pkgs/tools/misc/pspg/default.nix10
-rw-r--r--pkgs/tools/misc/skim/default.nix8
-rw-r--r--pkgs/tools/misc/snapper/default.nix4
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/misc/termplay/default.nix9
-rw-r--r--pkgs/tools/misc/tmuxinator/default.nix12
-rw-r--r--pkgs/tools/misc/topgrade/default.nix14
-rw-r--r--pkgs/tools/misc/txr/default.nix9
-rw-r--r--pkgs/tools/misc/usbmuxd/default.nix6
-rw-r--r--pkgs/tools/misc/vmtouch/default.nix5
-rw-r--r--pkgs/tools/misc/wakatime/default.nix4
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/amass/default.nix8
-rw-r--r--pkgs/tools/networking/axel/default.nix2
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix8
-rw-r--r--pkgs/tools/networking/cassowary/default.nix23
-rw-r--r--pkgs/tools/networking/corerad/default.nix6
-rw-r--r--pkgs/tools/networking/dhcp/default.nix2
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix4
-rw-r--r--pkgs/tools/networking/dsniff/default.nix2
-rw-r--r--pkgs/tools/networking/httpie/default.nix10
-rw-r--r--pkgs/tools/networking/httpie/strip-venv.patch19
-rw-r--r--pkgs/tools/networking/httplz/cargo-lock.patch411
-rw-r--r--pkgs/tools/networking/httplz/default.nix6
-rw-r--r--pkgs/tools/networking/iperf/3.nix3
-rw-r--r--pkgs/tools/networking/lftp/default.nix4
-rw-r--r--pkgs/tools/networking/mu/default.nix2
-rw-r--r--pkgs/tools/networking/nebula/default.nix6
-rw-r--r--pkgs/tools/networking/ocserv/default.nix4
-rw-r--r--pkgs/tools/networking/pdsh/default.nix4
-rw-r--r--pkgs/tools/networking/ppp/default.nix2
-rw-r--r--pkgs/tools/networking/saldl/default.nix48
-rw-r--r--pkgs/tools/networking/shadowsocks-libev/default.nix4
-rw-r--r--pkgs/tools/networking/strongswan/default.nix4
-rw-r--r--pkgs/tools/networking/subfinder/default.nix4
-rw-r--r--pkgs/tools/networking/v2ray/default.nix12
-rw-r--r--pkgs/tools/networking/wavemon/default.nix4
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix4
-rw-r--r--pkgs/tools/package-management/cargo-about/default.nix22
-rw-r--r--pkgs/tools/package-management/cargo-deb/default.nix18
-rw-r--r--pkgs/tools/package-management/disnix/default.nix6
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/package-management/morph/default.nix4
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-bundle/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-prefetch/default.nix18
-rw-r--r--pkgs/tools/package-management/packagekit/default.nix13
-rw-r--r--pkgs/tools/package-management/pacman/default.nix4
-rw-r--r--pkgs/tools/package-management/rpm/default.nix5
-rw-r--r--pkgs/tools/security/chrome-token-signing/default.nix4
-rw-r--r--pkgs/tools/security/diceware/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix15
-rw-r--r--pkgs/tools/security/fido2luks/default.nix32
-rw-r--r--pkgs/tools/security/jd-gui/default.nix23
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix25
-rw-r--r--pkgs/tools/security/munge/default.nix4
-rw-r--r--pkgs/tools/security/nmap/default.nix43
-rw-r--r--pkgs/tools/security/nmap/qt.nix4
-rw-r--r--pkgs/tools/security/pass/default.nix6
-rw-r--r--pkgs/tools/security/pcsctools/default.nix4
-rw-r--r--pkgs/tools/security/rage/default.nix24
-rw-r--r--pkgs/tools/security/tor/default.nix6
-rw-r--r--pkgs/tools/security/vault/default.nix4
-rw-r--r--pkgs/tools/system/bfs/default.nix4
-rw-r--r--pkgs/tools/system/facter/default.nix4
-rw-r--r--pkgs/tools/system/htop/default.nix4
-rw-r--r--pkgs/tools/system/hwinfo/default.nix4
-rw-r--r--pkgs/tools/system/rsyslog/default.nix4
-rw-r--r--pkgs/tools/system/s-tui/default.nix4
-rw-r--r--pkgs/tools/text/fanficfare/default.nix6
-rw-r--r--pkgs/tools/text/languagetool/default.nix4
-rw-r--r--pkgs/tools/text/mawk/default.nix4
-rw-r--r--pkgs/tools/text/mdcat/default.nix12
-rw-r--r--pkgs/tools/text/ocrmypdf/default.nix16
-rw-r--r--pkgs/tools/text/ocrmypdf/liblept.patch13
-rw-r--r--pkgs/tools/text/shfmt/default.nix14
-rw-r--r--pkgs/tools/text/unoconv/default.nix19
-rw-r--r--pkgs/tools/text/unoconv/unoconv-python3.patch374
-rw-r--r--pkgs/tools/typesetting/asciidoctorj/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/UPGRADING.md21
159 files changed, 1336 insertions, 1203 deletions
diff --git a/pkgs/tools/X11/jumpapp/default.nix b/pkgs/tools/X11/jumpapp/default.nix
index 38de9e9f80b..23ba445b674 100644
--- a/pkgs/tools/X11/jumpapp/default.nix
+++ b/pkgs/tools/X11/jumpapp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jumpapp";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "mkropat";
     repo = "jumpapp";
     rev = "v${version}";
-    sha256 = "11ibh51q4vcjkz9fqyw5dy9qrkqxm42hpdccas1s6h2dk9z62kfb";
+    sha256 = "1jrk4mm42sz6ca2gkb6w3dad53d4im4shpgsq8s4vr6xpl3b43ry";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/tools/X11/xcape/default.nix b/pkgs/tools/X11/xcape/default.nix
index 8b0c18c8618..d1b6f9b23b6 100644
--- a/pkgs/tools/X11/xcape/default.nix
+++ b/pkgs/tools/X11/xcape/default.nix
@@ -3,7 +3,7 @@ libXi }:
 
 stdenv.mkDerivation rec {
   pname = "xcape";
-  version = "unstable-20180301";
+  version = "unstable-2018-03-01";
 
   src = fetchFromGitHub {
     owner = "alols";
diff --git a/pkgs/tools/X11/xlayoutdisplay/default.nix b/pkgs/tools/X11/xlayoutdisplay/default.nix
index 30903e44856..7f3d9cfda56 100644
--- a/pkgs/tools/X11/xlayoutdisplay/default.nix
+++ b/pkgs/tools/X11/xlayoutdisplay/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xlayoutdisplay";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "alex-courtis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wm6a48ym0wn2w0872mfq40ghajfrg1bccj1g342w899qh5x3bc4";
+    sha256 = "0ldqbwsryy7mqhxywdn2c2yi1mzlnl39sw8p3vx10w6q9drya9iv";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/X11/xsecurelock/default.nix b/pkgs/tools/X11/xsecurelock/default.nix
index 8349953f4ff..548101c34c3 100644
--- a/pkgs/tools/X11/xsecurelock/default.nix
+++ b/pkgs/tools/X11/xsecurelock/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xsecurelock";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "xsecurelock";
     rev = "v${version}";
-    sha256 = "0zdwszscdw0p7kwpqqv1dywn00bq1wak2x602lb6hdmkffspi8bg";
+    sha256 = "020y2mi4sshc5dghcz37aj5wwizbg6712rzq2a72f8z8m7mnxr5y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/admin/acme.sh/default.nix b/pkgs/tools/admin/acme.sh/default.nix
index cdf58bc0215..25a92f1117b 100644
--- a/pkgs/tools/admin/acme.sh/default.nix
+++ b/pkgs/tools/admin/acme.sh/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute, unixtools }:
 stdenv.mkDerivation rec {
   pname = "acme.sh";
-  version = "2.8.3";
+  version = "2.8.5";
 
   src = fetchFromGitHub {
     owner = "Neilpang";
     repo = "acme.sh";
     rev = version;
-    sha256 = "0j9wn61jd107fq9ww79399s7adql0vf897s0xavlvv6chq8a6ajj";
+    sha256 = "0yxhfdb0jz0wn10ka6c79qvcx07656vsaxmjls8qgcfgc472ymhs";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/admin/ansible/default.nix b/pkgs/tools/admin/ansible/default.nix
index 5b724fb0bf9..7dde0e4764c 100644
--- a/pkgs/tools/admin/ansible/default.nix
+++ b/pkgs/tools/admin/ansible/default.nix
@@ -1,11 +1,21 @@
 { python3Packages, fetchurl }:
 
-{
-  ansible = with python3Packages; toPythonApplication ansible;
+rec {
+  ansible = ansible_2_8;
 
-  ansible_2_8 = with python3Packages; toPythonApplication ansible;
+  ansible_2_9 = python3Packages.toPythonApplication python3Packages.ansible;
 
-  ansible_2_7 = with python3Packages; toPythonApplication (ansible.overridePythonAttrs(old: rec {
+  ansible_2_8 = with python3Packages; toPythonApplication (python3Packages.ansible.overrideAttrs(old: rec {
+    pname = "ansible";
+    version = "2.8.7";
+
+    src = fetchurl {
+      url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
+      sha256 = "0iy90kqxs52nspfkhj1y7z4zf017jfm5qhdb01d8d4jd5g53k0l2";
+    };
+  }));
+
+  ansible_2_7 = with python3Packages; toPythonApplication (ansible.overrideAttrs(old: rec {
     pname = "ansible";
     version = "2.7.15";
 
@@ -15,7 +25,7 @@
     };
   }));
 
-  ansible_2_6 = with python3Packages; toPythonApplication (ansible.overridePythonAttrs(old: rec {
+  ansible_2_6 = with python3Packages; toPythonApplication (ansible.overrideAttrs(old: rec {
     pname = "ansible";
     version = "2.6.20";
 
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 69eae818c3b..cc793f8300d 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, python, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.0.78";
+  version = "2.0.80";
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "095dk5jbri3ydizs0fhfw1lhamvvxwx5smw8mj1bj78b2qsl5xh3";
+    sha256 = "05j74cfxjpi3w79w0i5av3h2m81bavbsc581vvh773ixivndds1k";
   };
 
   # put packages that needs to be overriden in the py package scope
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index 01355d48d5c..290800e4226 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -111,8 +111,8 @@ let
         '';
       };
 
-      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.4.0" "zip"
-        "0zssvzdip23yzaxlac9rlzg9mlyjl97fwr0gj8y27z8j58pwj72i";
+      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.5.0" "zip"
+        "0jhq8fi3dn2cncyv2rrgr4kldd254f30zgwf6p85rdgvg2p9k4hl";
 
       azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "6.0.0" "zip"
         "08n6r6ja7p20qlhb9pp51nwwxz2mal19an98zry276i8z5x8ckp0";
@@ -126,8 +126,8 @@ let
       azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "8.0.0" "zip"
         "0akpm12xj453dp84dfdpi06phr4q0hknr5l7bz96zbc8iand78wg";
 
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.8.0" "zip"
-        "0iakxb2rr1w9171802m9syjzqas02vjah711mpagbgcj549mjysb";
+      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.11.0" "zip"
+        "05j0s2ng6ck35lw85cbjf5cm6canc71c41aagr68cmiqj1li6v1z";
 
       azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "0.2.1" "zip"
         "0mwlvy4x5nr3hsz7wdpdhpzwarzzwz4225bfpd68hr0pcjgzspky";
@@ -135,6 +135,9 @@ let
       azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "0.8.2" "zip"
         "0w3w1d156rnkwjdarv3qvycklxr3z2j7lry7a3jfgj3ykzny12rq";
 
+      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "1.0.0" "zip"
+        "1s1x0pzynz0sd0l4k1kvkph9i1y03y9qd6afbw0nafcr3znqib4s";
+
       azure-mgmt-kusto = overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
         "1pmcdgimd66h964a3d5m2j2fbydshcwhrk87wblhwhfl3xwbgf4y";
 
@@ -168,8 +171,11 @@ let
       azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.1.0" "zip"
         "1cb466722bs0ribrirb32kc299716pl0pwivz3jyn40dd78cwhhx";
 
-      azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "0.4.0" "zip"
-        "1jxmikjvyxkwr8c9kn6xw8gvj9pajlk7y8111rq8fgkivwjq8wcm";
+      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "0.15.0" "zip"
+        "0qv58xraznv2ldhd34cvznhz045x3ncfgam9c12gxyj4q0k3pyc9";
+
+      azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "0.5.0" "zip"
+        "1b9am8raa17hxnz7d5pk2ix0309wsnhnchq1mi22icd728sl5adm";
 
       azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "0.1.0" "zip"
         "1pq5rn32yvrf5kqjafnj0kc92gpfg435w2l0k7cm8gvlja4r4m77";
@@ -201,14 +207,14 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.52.0" "zip"
         "0357laxgldb7lvvws81r8xb6mrq9dwwnr1bnwdnyj4bw6p21i9hn";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "5.0.0" "zip"
-        "1gzsscfnnfb8gxs34dq9hs339hidlzas7kgivw0234v3qz4gy9yx";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "7.1.0" "zip"
+        "03yjvw1dwkwsadsv60i625mr9zpdryy7ywvh7p8fg60djszh1p5l";
 
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.2.0" "zip"
         "1bcq6fcgrsvmk6q7v8mxzn1180jm2qijdqkqbv1m117zp1wj5gxj";
 
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "1.1.0" "zip"
-        "0lj9dhb14dx4ag5pgd2zvrmn9y5ziq2qywvw38ccbv9g3bxpglkn";
+      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "1.3.0" "zip"
+        "1r7isr7hzq2dv1idwwa9xxxgk8wh0ncka45r4rdcsl1p7kd2kqam";
 
       azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
         version = "0.60.0";
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index e5fcf3933eb..3cadafc633e 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.11.1";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "197lf6cb1maam1yxy29wgp4dkakaavmwqvq2d9i4qxhscalrdra5";
+    sha256 = "1m4hcj2bi9v3ngjj2x1fifcnb450jrij06vbi3j28slsdwn1bcc8";
   };
 
-  modSha256 = "04ba3dyfwlf0m6kn7yp7qyp3h2qdwp17y1f9pa79y3c6sd2nadk2";
+  modSha256 = "1c8qyxzfazgw77rlv3yw2x39ymaq66jjd51im0jl4131a6hzj6fd";
 
   subPackages = [ "cmd/eksctl" ];
 
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index 5e02c8e3483..5bcc25ea989 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -7,7 +7,7 @@
 #   3) used by `google-cloud-sdk` only on GCE guests
 #
 
-{ stdenv, lib, fetchurl, makeWrapper, python, with-gce ? false }:
+{ stdenv, lib, fetchurl, makeWrapper, python, openssl, with-gce ? false }:
 
 let
   pythonEnv = python.withPackages (p: with p; [
@@ -56,7 +56,8 @@ in stdenv.mkDerivation rec {
         binaryPath="$out/bin/$program"
         wrapProgram "$programPath" \
             --set CLOUDSDK_PYTHON "${pythonEnv}/bin/python" \
-            --prefix PYTHONPATH : "${pythonEnv}/${python.sitePackages}"
+            --prefix PYTHONPATH : "${pythonEnv}/${python.sitePackages}" \
+            --prefix PATH : "${openssl.bin}/bin"
 
         mkdir -p $out/bin
         ln -s $programPath $binaryPath
diff --git a/pkgs/tools/admin/nomachine-client/default.nix b/pkgs/tools/admin/nomachine-client/default.nix
index e8efc7d9cfe..9e93b5f2f75 100644
--- a/pkgs/tools/admin/nomachine-client/default.nix
+++ b/pkgs/tools/admin/nomachine-client/default.nix
@@ -1,8 +1,8 @@
 { stdenv, file, fetchurl, makeWrapper,
   autoPatchelfHook, jsoncpp, libpulseaudio }:
 let
-  versionMajor = "6.8";
-  versionMinor = "1";
+  versionMajor = "6.9";
+  versionMinor = "2";
   versionBuild_x86_64 = "1";
   versionBuild_i686 = "1";
 in
@@ -14,12 +14,12 @@ in
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz";
-          sha256 = "07330sxqjmzdn8kwxn9r49j28lsbp7mmrsxcyl8r32c3g355wskl";
+          sha256 = "1z2pcfkzicjma4lxrj4qx43xyml993v7qyjd7k8xy8hw85fwnzii";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz";
-          sha256 = "03b2648nzmc2amgrqflsxihx5yjp7rz906g655az4j2hl7y0b0bs";
+          sha256 = "03421s0k91c02ga9k6bdvixw71brlgi13q82cinnfayg3fhb0rb6";
         }
       else
         throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/tools/admin/procs/default.nix b/pkgs/tools/admin/procs/default.nix
index 20e9c8b3d47..46eec85b1bf 100644
--- a/pkgs/tools/admin/procs/default.nix
+++ b/pkgs/tools/admin/procs/default.nix
@@ -4,27 +4,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.8.16";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0l4n3gr1sc7wfa21p8yh7idaii0mnfpyqp4cg7f9l4345isy94vq";
+    sha256 = "1lprxfy733rs39fg8yif3p8vz9szk7d529ahn1kn70zm8i3mqpch";
   };
 
-  cargoSha256 = "03c63dlzvag341n6la1s61ccri1avlprd91m11z9zzjhi9b46kcr";
+  cargoSha256 = "11l2dggvkk2vx4xap2q02qrr576i4mswf67plhg23azr43fpi0r5";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
-  patches = [
-    # Fix tests on darwin. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/dalance/procs/commit/bb554e247b5b339bc00fa5dd2e771b0d7cb09cd5.patch";
-      sha256 = "1szvvifa4pdbgdsmdj5f0zq6qzf1lh6wwc6ipawblfzwmg7d9wvk";
-    })
-  ];
-
   meta = with stdenv.lib; {
     description = "A modern replacement for ps written in Rust";
     homepage = "https://github.com/dalance/procs";
diff --git a/pkgs/tools/admin/sewer/default.nix b/pkgs/tools/admin/sewer/default.nix
index 59edaff5f94..776ba89e48c 100644
--- a/pkgs/tools/admin/sewer/default.nix
+++ b/pkgs/tools/admin/sewer/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sewer";
-  version = "0.7.0";
+  version = "0.7.9";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "16j4npqj3fdj3g2z7nqb0cvvxd85xk20g9c43f3q8a1k5psf1fmq";
+    sha256 = "c083223d8aa66d4fc6801452d291a98540d1ee41557ce3e1754c62e73f7c9738";
   };
 
   propagatedBuildInputs = with python3Packages; [ pyopenssl requests tldextract ];
@@ -16,6 +16,5 @@ python3Packages.buildPythonApplication rec {
     description = "ACME client";
     license = licenses.mit;
     maintainers = with maintainers; [ kevincox ];
-    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/swiftclient/default.nix b/pkgs/tools/admin/swiftclient/default.nix
index ae8e5cac68c..788a64f928a 100644
--- a/pkgs/tools/admin/swiftclient/default.nix
+++ b/pkgs/tools/admin/swiftclient/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonApplication, fetchPypi, requests, six, pbr }:
+{ lib, buildPythonApplication, fetchPypi, requests, six, pbr, setuptools }:
 
 buildPythonApplication rec {
   pname = "python-swiftclient";
@@ -9,7 +9,7 @@ buildPythonApplication rec {
     sha256 = "0sv6z72zdwzwdjng0djk3l2maryn9pz3khf69yq5ig2ycz8hh0qv";
   };
 
-  propagatedBuildInputs = [ requests six pbr ];
+  propagatedBuildInputs = [ requests six pbr setuptools ];
 
   # For the tests the following requirements are needed:
   # https://github.com/openstack/python-swiftclient/blob/master/test-requirements.txt
diff --git a/pkgs/tools/admin/vncdo/default.nix b/pkgs/tools/admin/vncdo/default.nix
index a126a430e52..3dd7a45aa2b 100644
--- a/pkgs/tools/admin/vncdo/default.nix
+++ b/pkgs/tools/admin/vncdo/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub
-, pythonPackages
+, python2Packages
 }:
-pythonPackages.buildPythonPackage {
+python2Packages.buildPythonPackage {
   pname = "vncdo";
   version = "0.11.2";
 
@@ -12,7 +12,7 @@ pythonPackages.buildPythonPackage {
     sha256 = "0k03b09ipsz8vp362x7sx7z68mxgqw9qzvkii2f8j9vx2y79rjsh";
   };
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python2Packages; [
     pillow
     twisted
     pexpect
@@ -20,6 +20,8 @@ pythonPackages.buildPythonPackage {
     ptyprocess
   ];
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = https://github.com/sibson/vncdotool;
     description = "A command line VNC client and python library";
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index 0fe8f2f5866..62fd02ac56d 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
     make lib
   '';
 
+  outputs = [ "out" "dev" ];
+
   installPhase = ''
     install -Dt "$out/bin" unrar
 
@@ -30,7 +32,8 @@ stdenv.mkDerivation rec {
         $out/share/doc/unrar
 
     install -Dm755 libunrar.so $out/lib/libunrar.so
-    install -D dll.hpp $out/include/unrar/dll.hpp
+
+    install -Dt $dev/include/unrar/ *.hpp
   '';
 
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/tools/audio/video2midi/default.nix b/pkgs/tools/audio/video2midi/default.nix
index 43539f1ee29..dca8a0610da 100644
--- a/pkgs/tools/audio/video2midi/default.nix
+++ b/pkgs/tools/audio/video2midi/default.nix
@@ -8,7 +8,7 @@ let
   });
 in pythonPackages.buildPythonApplication rec {
   pname = "video2midi";
-  version = "0.3.9.6";
+  version = "0.4.0.1";
 
   format = "other";
 
@@ -16,7 +16,7 @@ in pythonPackages.buildPythonApplication rec {
     owner = "svsdval";
     repo = pname;
     rev = version;
-    sha256 = "0x9b8hwl325gd6v9i60yh95gbn49nydpwyfqs92mbq8vvvq7x8fk";
+    sha256 = "1869w60kprjdikqk4iwx058zri2jg4aznzlg668w9myka4mp01r9";
   };
 
   propagatedBuildInputs = with pythonPackages; [ opencv3_ midiutil pygame pyopengl ];
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index 593056f403e..ed8fbbf76cd 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -17,8 +17,8 @@ python3.pkgs.buildPythonApplication rec {
     libb2 lz4 zstd openssl python3.pkgs.setuptools_scm
   ] ++ stdenv.lib.optionals stdenv.isLinux [ acl ];
   propagatedBuildInputs = with python3.pkgs; [
-    cython
-  ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ llfuse ];
+    cython llfuse
+  ];
 
   preConfigure = ''
     export BORG_OPENSSL_PREFIX="${openssl.dev}"
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index f48bfbd3d6a..5d5bff7bfa1 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.6";
+  version = "2.6.7";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "1pqdcb9dkjlf8wzpsnx4gcv9nhrm60glv4xadxnknnqlvzs6vips";
+    sha256 = "055kkxhg7sz3fbndsr4p2wp7aa2phq3pr0a9y7b1fkg52x7fbhr2";
   };
 
   buildInputs = [ zlib bzip2 openssl lzo libgcrypt gpgme xz ]
diff --git a/pkgs/tools/backup/duplicati/default.nix b/pkgs/tools/backup/duplicati/default.nix
index be039fa47c0..bb24cb35d87 100644
--- a/pkgs/tools/backup/duplicati/default.nix
+++ b/pkgs/tools/backup/duplicati/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "duplicati";
-  version = "2.0.4.5";
+  version = "2.0.4.23";
   channel = "beta";
-  build_date = "2018-11-28";
+  build_date = "2019-07-14";
 
   src = fetchzip {
     url = "https://github.com/duplicati/duplicati/releases/download/v${version}-${version}_${channel}_${build_date}/duplicati-${version}_${channel}_${build_date}.zip";
-    sha256 = "118rhzm8vk1092214vq7kxnmrnz4jl32lk8j90965a8pg05m53gn";
+    sha256 = "1m2448vgl1fc2hkxkyasvdfgl728rqv16b41niznv5rsxv5643w2";
     stripRoot = false;
   };
 
diff --git a/pkgs/tools/backup/luckybackup/default.nix b/pkgs/tools/backup/luckybackup/default.nix
new file mode 100644
index 00000000000..3e89be15391
--- /dev/null
+++ b/pkgs/tools/backup/luckybackup/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl
+, pkgconfig, libtool, qmake
+, rsync, ssh
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  pname = "luckybackup";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/luckybackup/${version}/source/${pname}-${version}.tar.gz";
+    sha256 = "0nwjsk1j33pm8882jbj8h6nxn6n5ab9dxqpqkay65pfbhcjay0g8";
+  };
+
+  buildInputs = [ rsync ssh ];
+
+  nativeBuildInputs = [ pkgconfig libtool qmake ];
+  
+  prePatch = ''
+    for File in luckybackup.pro menu/luckybackup-pkexec \
+        menu/luckybackup-su.desktop menu/luckybackup.desktop \
+        menu/net.luckybackup.su.policy src/functions.cpp \
+        src/global.cpp src/scheduleDialog.cpp; do
+      substituteInPlace $File --replace "/usr" "$out"
+    done
+  '';
+
+  meta = {
+    description = "A powerful, fast and reliable backup & sync tool";
+    longDescription = ''
+      luckyBackup is an application for data back-up and synchronization 
+      powered by the rsync tool.
+      
+      It is simple to use, fast (transfers over only changes made and not
+      all data), safe (keeps your data safe by checking all declared directories
+      before proceeding in any data manipulation), reliable and fully 
+      customizable.
+    '';
+    homepage = "http://luckybackup.sourceforge.net/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/backup/zfs-replicate/default.nix b/pkgs/tools/backup/zfs-replicate/default.nix
index 83fa76b0800..1cb7e647441 100644
--- a/pkgs/tools/backup/zfs-replicate/default.nix
+++ b/pkgs/tools/backup/zfs-replicate/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonApplication rec {
   pname = "zfs-replicate";
-  version = "1.1.11";
+  version = "1.1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0386xc6rw6bhzw2a08g90afb3snqhm1ikx65bjfh22ha69fwmga8";
+    sha256 = "0iqyk6q112ylcqrhrgvgbgqqvaikhwk0sb5kc7kg2wwqdc9rfwys";
   };
 
   checkInputs = [
diff --git a/pkgs/tools/backup/zfsnap/default.nix b/pkgs/tools/backup/zfsnap/default.nix
new file mode 100644
index 00000000000..89d7414246c
--- /dev/null
+++ b/pkgs/tools/backup/zfsnap/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, coreutils, installShellFiles }:
+
+stdenv.mkDerivation rec {
+  version = "2.0.0-beta3";
+  pname = "zfsnap";
+
+  src = fetchFromGitHub {
+    owner = "zfsnap";
+    repo = "zfsnap";
+    rev = "v${version}";
+    sha256 = "0670a5sghvqx32c9gfsird15mg9nqcvwxsrfcjrwc0sj7br9bd2g";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postPatch = ''
+    # Use zfs binaries from PATH, because often the zfs package from nixpkgs is
+    # not the one that should be used
+    substituteInPlace share/zfsnap/core.sh \
+      --replace "ZFS_CMD='/sbin/zfs'" "ZFS_CMD='zfs'" \
+      --replace "ZPOOL_CMD='/sbin/zpool'" "ZPOOL_CMD='zpool'"
+
+    substituteInPlace sbin/zfsnap.sh \
+      --replace "/bin/ls" "${coreutils}/bin/ls"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv sbin/zfsnap.sh $out/bin/zfsnap
+    mv share $out
+    installManPage man/*/*
+    installShellCompletion completion/*.{bash,zsh}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A portable, performant script to make rolling ZFS snapshots easy";
+    homepage = "https://github.com/zfsnap/zfsnap";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ woffs ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/bluetooth/obexfs/default.nix b/pkgs/tools/bluetooth/obexfs/default.nix
index 94c011152da..81d0849b408 100644
--- a/pkgs/tools/bluetooth/obexfs/default.nix
+++ b/pkgs/tools/bluetooth/obexfs/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, fuse, obexftp }:
-   
+{ stdenv, fetchurl, pkgconfig, bluez, fuse, obexftp }:
+
 stdenv.mkDerivation rec {
   name = "obexfs-0.12";
-   
+
   src = fetchurl {
     url = "mirror://sourceforge/openobex/${name}.tar.gz";
     sha256 = "1g3krpygk6swa47vbmp9j9s8ahqqcl9ra8r25ybgzv2d9pmjm9kj";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ fuse obexftp ];
+  buildInputs = [ fuse obexftp bluez ];
 
   meta = with stdenv.lib; {
     homepage = http://dev.zuckschwerdt.org/openobex/wiki/ObexFs;
diff --git a/pkgs/tools/bluetooth/obexftp/default.nix b/pkgs/tools/bluetooth/obexftp/default.nix
index 12b021d5d3b..3e40c7d8ef6 100644
--- a/pkgs/tools/bluetooth/obexftp/default.nix
+++ b/pkgs/tools/bluetooth/obexftp/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, openobex, bluez, cmake }:
    
 stdenv.mkDerivation rec {
-  name = "obexftp-0.24";
+  name = "obexftp-0.24.2";
    
   src = fetchurl {
     url = "mirror://sourceforge/openobex/${name}-Source.tar.gz";
-    sha256 = "0szy7p3y75bd5h4af0j5kf0fpzx2w560fpy4kg3603mz11b9c1xr";
+    sha256 = "18w9r78z78ri5qc8fjym4nk1jfbrkyr789sq7rxrkshf1a7b83yl";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/tools/compression/zopfli/default.nix b/pkgs/tools/compression/zopfli/default.nix
index accead9db0b..586c47de582 100644
--- a/pkgs/tools/compression/zopfli/default.nix
+++ b/pkgs/tools/compression/zopfli/default.nix
@@ -2,32 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "zopfli";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "zopfli";
     rev = "${pname}-${version}";
     name = "${pname}-${version}-src";
-    sha256 = "1l551hx2p4qi0w9lk96qklbv6ll68gxbah07fhqx1ly28rv5wy9y";
+    sha256 = "0dr8n4j5nj2h9n208jns56wglw59gg4qm3s7c6y3hs75d0nnkhm4";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "zopfli-cmake.patch";
-      url = "https://github.com/google/zopfli/commit/7554e4d34e7000b0595aa606e7d72357cf46ba86.patch";
-      sha256 = "1pvfhir2083v1l042a4dy5byqdmad7sxnd4jrprl2hzzb2avxbbn";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" ];
 
-  installPhase = ''
-    install -D -t $out/bin zopfli*
-    install -d $out/lib
-    cp -d libzopfli* $out/lib
+  postInstall = ''
     install -Dm444 -t $out/share/doc/zopfli ../README*
   '';
 
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index d0f68fac7ca..834aa7290ab 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, fuse, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "1.14.2";
+  version = "1.14.3";
   pname = "bindfs";
 
   src = fetchurl {
     url    = "https://bindfs.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0zn5fjrm9la5w1p66xhy87aasqsdky36dgc447jp2yp7nh18v339";
+    sha256 = "09csi8brp6v98gy9xcl6lkbz1wgs796wch1qviw2wa1n16wd91vw";
   };
 
   dontStrip = true;
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index 3066be27772..aa3622ed057 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -10,6 +10,7 @@
 , cunit, snappy
 , rocksdb, makeWrapper
 , leveldb, oathToolkit
+, libnl, libcap_ng
 
 # Optional Dependencies
 , yasm ? null, fcgi ? null, expat ? null
@@ -88,9 +89,11 @@ let
     ps.webob
     ps.bcrypt
     ps.six
+    ps.pyyaml
   ]);
+  sitePackages = ceph-python-env.python.sitePackages;
 
-  version = "14.2.4";
+  version = "14.2.6";
 in rec {
   ceph = stdenv.mkDerivation {
     pname = "ceph";
@@ -98,7 +101,7 @@ in rec {
 
     src = fetchurl {
       url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-      sha256 = "1y6hixh6srd5aswhzq0sf0dbygwhx0ardx3w3f7qazf5rapvd03i";
+      sha256 = "0qkyrb25r2a57n6k8ncb43x7hvhkmpi7abhfyi98mlz2lhmhzlm1";
     };
 
     patches = [
@@ -116,7 +119,7 @@ in rec {
     buildInputs = cryptoLibsMap.${cryptoStr} ++ [
       boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3
       malloc zlib openldap lttng-ust babeltrace gperf gtest cunit
-      snappy rocksdb lz4 oathToolkit leveldb
+      snappy rocksdb lz4 oathToolkit leveldb libnl libcap_ng
     ] ++ optionals stdenv.isLinux [
       linuxHeaders utillinux libuuid udev keyutils optLibaio optLibxfs optZfs
       # ceph 14
@@ -133,7 +136,8 @@ in rec {
 
       # for pybind/rgw to find internal dep
       export LD_LIBRARY_PATH="$PWD/build/lib:$LD_LIBRARY_PATH"
-      # install target needs to be in PYTHONPATH for "*.pth support" check to succeed
+      # set PYTHONPATH, so the build system doesn't silently skip installing ceph-volume and others
+      export PYTHONPATH=${ceph-python-env}/${sitePackages}:$lib/${sitePackages}:$out/${sitePackages}
 
       patchShebangs src/script src/spdk src/test src/tools
     '';
@@ -157,6 +161,10 @@ in rec {
     postFixup = ''
       wrapPythonPrograms
       wrapProgram $out/bin/ceph-mgr --prefix PYTHONPATH ":" "$(toPythonPath ${placeholder "out"}):$(toPythonPath ${ceph-python-env})"
+
+      # Test that ceph-volume exists since the build system has a tendency to
+      # silently drop it with misconfigurations.
+      test -f $out/bin/ceph-volume
     '';
 
     enableParallelBuilding = true;
@@ -185,11 +193,11 @@ in rec {
         platforms = [ "x86_64-linux" ];
       };
     } ''
-      mkdir -p $out/{bin,etc,lib/python3.7/site-packages}
+      mkdir -p $out/{bin,etc,${sitePackages}}
       cp -r ${ceph}/bin/{ceph,.ceph-wrapped,rados,rbd,rbdmap} $out/bin
       cp -r ${ceph}/bin/ceph-{authtool,conf,dencoder,rbdnamer,syn} $out/bin
       cp -r ${ceph}/bin/rbd-replay* $out/bin
-      cp -r ${ceph}/lib/python3.7/site-packages $out/lib/python3.7/
+      cp -r ${ceph}/${sitePackages} $out/${sitePackages}
       cp -r ${ceph}/etc/bash_completion.d $out/etc
       # wrapPythonPrograms modifies .ceph-wrapped, so lets just update its paths
       substituteInPlace $out/bin/ceph          --replace ${ceph} $out
diff --git a/pkgs/tools/filesystems/davfs2/0001-umount_davfs-substitute-ps-command.patch b/pkgs/tools/filesystems/davfs2/0001-umount_davfs-substitute-ps-command.patch
new file mode 100644
index 00000000000..3fbbc4c7d0f
--- /dev/null
+++ b/pkgs/tools/filesystems/davfs2/0001-umount_davfs-substitute-ps-command.patch
@@ -0,0 +1,25 @@
+From 0cb1321c4cbb2978318ddad73c9ee6f2a19c55c8 Mon Sep 17 00:00:00 2001
+From: Florian Klink <flokli@flokli.de>
+Date: Sat, 11 Jan 2020 21:06:33 +0100
+Subject: [PATCH] umount_davfs: substitute ps command
+
+---
+ src/umount_davfs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/umount_davfs.c b/src/umount_davfs.c
+index b7019c3..a278679 100644
+--- a/src/umount_davfs.c
++++ b/src/umount_davfs.c
+@@ -157,7 +157,7 @@ main(int argc, char *argv[])
+     }
+     fclose(file);
+ 
+-    char *ps_command = ne_concat("ps -p ", pid, NULL);
++    char *ps_command = ne_concat("@ps@ -p ", pid, NULL);
+     FILE *ps_in = popen(ps_command, "r");
+     if (!ps_in) {
+         error(0, 0,
+-- 
+2.24.1
+
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index 512b5ce8567..366db929f58 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -1,20 +1,36 @@
-{ stdenv, fetchurl, neon, zlib }:
+{ stdenv
+, fetchurl
+, neon
+, procps
+, substituteAll
+, zlib
+}:
 
 stdenv.mkDerivation rec {
-  name = "davfs2-1.5.5";
+  name = "davfs2-1.5.6";
 
   src = fetchurl {
     url = "mirror://savannah/davfs2/${name}.tar.gz";
-    sha256 = "0bxd62268pix7w1lg7f9y94v34f4l45fdf6clyarj43qmljnlz2q";
+    sha256 = "00fqadhmhi2bmdar5a48nicmjcagnmaj9wgsvjr6cffmrz6pcx21";
   };
 
   buildInputs = [ neon zlib ];
 
-  patches = [ ./isdir.patch ./fix-sysconfdir.patch ];
+  patches = [
+    ./isdir.patch
+    ./fix-sysconfdir.patch
+    (substituteAll {
+      src = ./0001-umount_davfs-substitute-ps-command.patch;
+      ps = "${procps}/bin/ps";
+    })
+  ];
 
   configureFlags = [ "--sysconfdir=/etc" ];
 
-  makeFlags = ["sbindir=$(out)/sbin" "ssbindir=$(out)/sbin"];
+  makeFlags = [
+    "sbindir=$(out)/sbin"
+    "ssbindir=$(out)/sbin"
+  ];
 
   meta = {
     homepage = https://savannah.nongnu.org/projects/davfs2;
diff --git a/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 0d7bcdcd0f2..fc174b12f10 100644
--- a/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fuse-overlayfs";
-  version = "0.7.2";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ybrki63ixrkraynms5i4jiil9901whwxs6p61h2c2ild8w2ir8n";
+    sha256 = "02286q4lc1paq735qmn5nyz31g1lwrkcnjkp05fdzcxf60h8paxk";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index af3e9250985..f8d955dbfc1 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -1,22 +1,24 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub }:
 
-buildGoModule rec {
+buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.28.1";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "0dh01qvsjlzji2mwznykc2nghg4f1raylvgnp6sbxv9x1kpnwx71";
+    sha256 = "11an7cxgg3x830mwlhyx50xkcv7zpa9aziz6gz1crwp8shr4hdik";
   };
 
-  modSha256 = "0i86xs3lq2mj22yv7jmhmb34k7lz348bakqz020xpyccllkkszy4";
+  goPackagePath = "github.com/googlecloudplatform/gcsfuse";
 
-  patches = [
-    ./go.mod.patch
-    ./go.sum.patch
-  ];
+  subPackages = [ "." "tools/mount_gcsfuse" ];
+
+  postInstall = ''
+    ln -s $bin/bin/mount_gcsfuse $bin/bin/mount.gcsfuse
+    ln -s $bin/bin/mount_gcsfuse $bin/bin/mount.fuse.gcsfuse
+  '';
 
   meta = with lib;{
     description = "A user-space file system for interacting with Google Cloud Storage";
diff --git a/pkgs/tools/filesystems/gcsfuse/go.mod.patch b/pkgs/tools/filesystems/gcsfuse/go.mod.patch
deleted file mode 100644
index fbda63432d7..00000000000
--- a/pkgs/tools/filesystems/gcsfuse/go.mod.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/go.mod 	2019-10-09 22:35:05.777065057 -0400
-+++ b/go.mod	2019-10-10 21:34:15.809681738 -0400
-@@ -0,0 +1,25 @@
-+module github.com/googlecloudplatform/gcsfuse
-+
-+go 1.12
-+
-+require (
-+	cloud.google.com/go v0.0.0-20170807235027-9be7f826df5c
-+	github.com/codegangsta/cli v0.0.0-20170804093415-b99aa811b4c1
-+	github.com/golang/protobuf v0.0.0-20170902000452-17ce1425424a
-+	github.com/jacobsa/daemonize v0.0.0-20160101105449-e460293e890f
-+	github.com/jacobsa/fuse v0.0.0-20170513050233-fe7f3a55dcaa
-+	github.com/jacobsa/gcloud v0.0.0-20180124212516-9291bd1e8308
-+	github.com/jacobsa/oglematchers v0.0.0-20150720000706-141901ea67cd
-+	github.com/jacobsa/oglemock v0.0.0-20150831005832-e94d794d06ff
-+	github.com/jacobsa/ogletest v0.0.0-20170503003838-80d50a735a11
-+	github.com/jacobsa/ratelimit v0.0.0-20150904001804-f5e47030f3b0
-+	github.com/jacobsa/reqtrace v0.0.0-20150505043853-245c9e0234cb
-+	github.com/jacobsa/syncutil v0.0.0-20150827001642-c39ef5c1aa0b
-+	github.com/jacobsa/timeutil v0.0.0-20170205232429-577e5acbbcf6
-+	github.com/jacobsa/util v0.0.0-20150810040848-976a6f4de67e
-+	github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1
-+	golang.org/x/net v0.0.0-20170809000501-1c05540f6879
-+	golang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95
-+	google.golang.org/api v0.0.0-20170807210121-5c4ffd5985e2
-+	google.golang.org/appengine v0.0.0-20170801183137-c5a90ac045b7
-+)
diff --git a/pkgs/tools/filesystems/gcsfuse/go.sum.patch b/pkgs/tools/filesystems/gcsfuse/go.sum.patch
deleted file mode 100644
index d537266e3c1..00000000000
--- a/pkgs/tools/filesystems/gcsfuse/go.sum.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/go.sum	2019-10-09 22:35:05.777065057 -0400
-+++ b/go.sum	2019-10-10 21:34:15.809681738 -0400
-@@ -0,0 +1,35 @@
-+cloud.google.com/go v0.0.0-20170807235027-9be7f826df5c h1:pTb3uxaVLke7AQ/KUVTHWZmzKrKYrip7FimNb3ecAbo=
-+cloud.google.com/go v0.0.0-20170807235027-9be7f826df5c/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-+github.com/codegangsta/cli v0.0.0-20170804093415-b99aa811b4c1 h1:PTPzzngHWcTI0ph/9I92RhVtRkdOCi37wySw/ojR5Eg=
-+github.com/codegangsta/cli v0.0.0-20170804093415-b99aa811b4c1/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA=
-+github.com/golang/protobuf v0.0.0-20170902000452-17ce1425424a/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-+github.com/jacobsa/daemonize v0.0.0-20160101105449-e460293e890f h1:X+tnaqoCcBgAwSTJtoYW6p0qKiuPyMfofEHEFUf2kdU=
-+github.com/jacobsa/daemonize v0.0.0-20160101105449-e460293e890f/go.mod h1:Ip4fOwzCrnDVuluHBd7FXIMb7SHOKfkt9/UDrYSZvqI=
-+github.com/jacobsa/fuse v0.0.0-20170513050233-fe7f3a55dcaa h1:3420E523ahKsI3tlbO0zeLvgzuTFdJoy6JoAVuShs8U=
-+github.com/jacobsa/fuse v0.0.0-20170513050233-fe7f3a55dcaa/go.mod h1:9Aml1MG17JVeXrN4D2mtJvYHtHklJH5bESjCKNzVjFU=
-+github.com/jacobsa/gcloud v0.0.0-20180124212516-9291bd1e8308 h1:sfc1gTCrsJQJMySgDstAhwzogqQIrTxkwwScG4p2kbM=
-+github.com/jacobsa/gcloud v0.0.0-20180124212516-9291bd1e8308/go.mod h1:3fF6sEraNZSToePaj5q+f9KSaMpuZcwccqAQmOKDv/k=
-+github.com/jacobsa/oglematchers v0.0.0-20150720000706-141901ea67cd h1:9GCSedGjMcLZCrusBZuo4tyKLpKUPenUUqi34AkuFmA=
-+github.com/jacobsa/oglematchers v0.0.0-20150720000706-141901ea67cd/go.mod h1:TlmyIZDpGmwRoTWiakdr+HA1Tukze6C6XbRVidYq02M=
-+github.com/jacobsa/oglemock v0.0.0-20150831005832-e94d794d06ff h1:2xRHTvkpJ5zJmglXLRqHiZQNjUoOkhUyhTAhEQvPAWw=
-+github.com/jacobsa/oglemock v0.0.0-20150831005832-e94d794d06ff/go.mod h1:gJWba/XXGl0UoOmBQKRWCJdHrr3nE0T65t6ioaj3mLI=
-+github.com/jacobsa/ogletest v0.0.0-20170503003838-80d50a735a11/go.mod h1:+DBdDyfoO2McrOyDemRBq0q9CMEByef7sYl7JH5Q3BI=
-+github.com/jacobsa/ratelimit v0.0.0-20150904001804-f5e47030f3b0 h1:6GaIakaFrxn738iBykUc6fyS5sIAKRg/wafwzrzRX30=
-+github.com/jacobsa/ratelimit v0.0.0-20150904001804-f5e47030f3b0/go.mod h1:5/sdn6lSZE5l3rXMkJGO7Y3MHJImklO43rZx9ouOWYQ=
-+github.com/jacobsa/reqtrace v0.0.0-20150505043853-245c9e0234cb h1:uSWBjJdMf47kQlXMwWEfmc864bA1wAC+Kl3ApryuG9Y=
-+github.com/jacobsa/reqtrace v0.0.0-20150505043853-245c9e0234cb/go.mod h1:ivcmUvxXWjb27NsPEaiYK7AidlZXS7oQ5PowUS9z3I4=
-+github.com/jacobsa/syncutil v0.0.0-20150827001642-c39ef5c1aa0b h1:HMNP0njxow/ahg3AFKzu8HnyOUSRiVqWXm+i4VefV+Y=
-+github.com/jacobsa/syncutil v0.0.0-20150827001642-c39ef5c1aa0b/go.mod h1:mPvulh9VKXvo+yOlrD4VYOOYuLdZJ36wa/5QIrtXvWs=
-+github.com/jacobsa/timeutil v0.0.0-20170205232429-577e5acbbcf6 h1:XKHJmHcgU9glxk3eLPiRZT5VFSHJitVTnMj/EgIoXC4=
-+github.com/jacobsa/timeutil v0.0.0-20170205232429-577e5acbbcf6/go.mod h1:JEWKD6V8xETMW+DEv+IQVz++f8Cn8O/X0HPeDY3qNis=
-+github.com/jacobsa/util v0.0.0-20150810040848-976a6f4de67e h1:BegecLAVSx5IW1bOImB8Lt6+4yiWP4t+PUeckWYzIeg=
-+github.com/jacobsa/util v0.0.0-20150810040848-976a6f4de67e/go.mod h1:q0HiLetNeSPHjs8ddOw9U6xahog8xR7WPp6PhzJ6wmk=
-+github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 h1:PJPDf8OUfOK1bb/NeTKd4f1QXZItOX389VN3B6qC8ro=
-+github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
-+golang.org/x/net v0.0.0-20170809000501-1c05540f6879 h1:0rFa7EaCGdQPmZVbo9F7MNF65b8dyzS6EUnXjs9Cllk=
-+golang.org/x/net v0.0.0-20170809000501-1c05540f6879/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-+golang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95 h1:RS+wSrhdVci7CsPwJaMN8exaP3UTuQU0qB34R/E/JD0=
-+golang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-+google.golang.org/api v0.0.0-20170807210121-5c4ffd5985e2 h1:wF/9eBxkxh3/00HWCFpF3583KFXGapuZ3EVpZIuLd4Q=
-+google.golang.org/api v0.0.0-20170807210121-5c4ffd5985e2/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
-+google.golang.org/appengine v0.0.0-20170801183137-c5a90ac045b7/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index b5fc12024b1..db5c469e63b 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -15,10 +15,10 @@ let
     #       The command
     #         find /nix/store/...-glusterfs-.../ -name '*.py' -executable
     #       can help with finding new Python scripts.
-    version = "7.1";
+    version = "7.2";
     name="${baseName}-${version}";
     url="https://github.com/gluster/glusterfs/archive/v${version}.tar.gz";
-    sha256 = "11v5hwijbb08xq3dd4m6bkspa3v4vjzcnw6j1qyh0gjmc7yy4ml3";
+    sha256 = "0v333q217rvgh6bnmq4bcafkjz2gq0p4xqmxd3carkyl1zyyp8q5";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index da2dff6b77a..003a0e24fb5 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
@@ -35,7 +35,7 @@ buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = [
-    pykickstart pyparted pyblock libselinux.py cryptsetup
+    pykickstart pyparted pyblock libselinux cryptsetup
   ] ++ stdenv.lib.optional useNixUdev systemd;
 
   # tests are currently _heavily_ broken upstream
diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix
index 129283e83eb..5d7a9dd14ec 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, python, buildPythonApplication
+, libselinux
 # Propagated to blivet
 , useNixUdev ? true
 # Needed by NixOps
@@ -10,10 +11,9 @@
 let
   blivet = import ./blivet.nix {
     inherit stdenv fetchurl buildPythonApplication;
-    inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
+    inherit pykickstart pyparted pyblock cryptsetup libselinux multipath_tools;
     inherit useNixUdev;
     inherit (pkgs) lsof utillinux systemd;
-    libselinux = pkgs.libselinux.override { enablePython = true; };
   };
 
   cryptsetup = import ./cryptsetup.nix {
diff --git a/pkgs/tools/filesystems/rar2fs/default.nix b/pkgs/tools/filesystems/rar2fs/default.nix
new file mode 100644
index 00000000000..996e3c52ec2
--- /dev/null
+++ b/pkgs/tools/filesystems/rar2fs/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, fuse
+, unrar
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rar2fs";
+  version = "1.28.0";
+
+  src = fetchFromGitHub {
+    owner = "hasse69";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0fmdqrs5yvn89ngc26vj5ggnalpwrdm8pdcfszw1wflh78hvd8kb";
+  };
+
+  postPatch = ''
+    substituteInPlace get-version.sh \
+      --replace "which echo" "echo"
+  '';
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ fuse unrar ];
+
+  configureFlags = [
+    "--with-unrar=${unrar.dev}/include/unrar"
+    "--disable-static-unrar"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "FUSE file system for reading RAR archives";
+    homepage = https://hasse69.github.io/rar2fs/;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ kraem ];
+    platforms = with platforms; linux ++ freebsd;
+  };
+}
diff --git a/pkgs/tools/filesystems/reiser4progs/default.nix b/pkgs/tools/filesystems/reiser4progs/default.nix
index c9af30f873b..dbc391d0082 100644
--- a/pkgs/tools/filesystems/reiser4progs/default.nix
+++ b/pkgs/tools/filesystems/reiser4progs/default.nix
@@ -1,13 +1,13 @@
 {stdenv, fetchurl, libaal}:
 
-let version = "1.2.1"; in
+let version = "2.0.0"; in
 stdenv.mkDerivation rec {
   pname = "reiser4progs";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz";
-    sha256 = "03vdqvpyd48wxrpqpb9kg76giaffw9b8k334kr4wc0zxgybknhl7";
+    sha256 = "00kx9prz3d5plp1hn4xdkkd99cw42sanlsjnjhj0fsrlmi9yfs8n";
   };
 
   buildInputs = [libaal];
diff --git a/pkgs/tools/graphics/argyllcms/default.nix b/pkgs/tools/graphics/argyllcms/default.nix
index 1326d045459..3f8bdf3ac6b 100644
--- a/pkgs/tools/graphics/argyllcms/default.nix
+++ b/pkgs/tools/graphics/argyllcms/default.nix
@@ -2,7 +2,7 @@
 , libXrender, libXext, libtiff, libjpeg, libpng, libXScrnSaver, writeText
 , libXdmcp, libXau, lib, openssl }:
 let
-  version = "2.1.1";
+  version = "2.1.2";
  in
 stdenv.mkDerivation rec {
   pname = "argyllcms";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     # Kind of flacky URL, it was reaturning 406 and inconsistent binaries for a
     # while on me. It might be good to find a mirror
     url = "https://www.argyllcms.com/Argyll_V${version}_src.zip";
-    sha256 = "0zq3fipky44xg536kdhg9bchi6s9ka7n1q73fwf9ja766s8rj99m";
+    sha256 = "1bsi795kphr1a8l2kvvm9qfkvgfpimds4ijalnmg23wnr8691md1";
 
     # The argyllcms web server doesn't like curl ...
     curlOpts = "--user-agent 'Mozilla/5.0'";
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index 31bdba26783..6246a573340 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -9,14 +9,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.61";
+  version = "2.62";
   pname = "asymptote";
 
   src = fetchFromGitHub {
     owner = "vectorgraphics";
     repo = pname;
     rev = version;
-    sha256 = "0nblcxqzaxv1286zl2fjkivgp478l0nf3m0wnk78rd99lscjlw71";
+    sha256 = "1lb3a8r2gv0437viwy25s34g05x5v81gk0nxlgx7hzwv7b9zkv5s";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/grim/default.nix b/pkgs/tools/graphics/grim/default.nix
index 667a5b38d3e..ed7ed5fdef0 100644
--- a/pkgs/tools/graphics/grim/default.nix
+++ b/pkgs/tools/graphics/grim/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "grim";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0brljl4zfbn5mh9hkfrfkvd27c5y9vdkgap9r1hrfy9r1x20sskn";
+    sha256 = "14gqilgd27c4j2wn7fla72yj8syx0542rsanh61syikrv0hxgkvy";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/pstoedit/default.nix b/pkgs/tools/graphics/pstoedit/default.nix
index 2a467854cf0..ebd265b8a80 100644
--- a/pkgs/tools/graphics/pstoedit/default.nix
+++ b/pkgs/tools/graphics/pstoedit/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "pstoedit-3.74";
+  name = "pstoedit-3.75";
 
   src = fetchurl {
     url = "mirror://sourceforge/pstoedit/${name}.tar.gz";
-    sha256 = "034rcrsi69vyh01rcqh7jy3bw4la4m6jl4niav4c6wrs9bx44cim";
+    sha256 = "1kv46g2wsvsvcngkavxl5gnw3l6g5xqnh4kmyx4b39a01d8xiddp";
   };
 
   #
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
index 5e839b354a3..b74378f0793 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table-others/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-table-others";
-  version = "1.3.9";
+  version = "1.3.11";
 
   src = fetchurl {
     url = "https://github.com/moebiuscurve/ibus-table-others/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0270a9njyzb1f8nw5w9ghwxcl3m6f13d8p8a01fjm8rnjs04mcb3";
+    sha256 = "0763wnlklcs3d8fk21nkp7dgn4qzqgxh1s24q3kl8gzgng2a88jj";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     isIbusEngine = true;
     description  = "Various table-based input methods for IBus";
-    homepage     = https://github.com/moebiuscurve/ibus-table-others;
+    homepage     = "https://github.com/moebiuscurve/ibus-table-others";
     license      = licenses.gpl3;
     platforms    = platforms.linux;
     maintainers  = with maintainers; [ mudri ];
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 63d5ff69e79..7f8a9dbde57 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -1,17 +1,33 @@
-{ stdenv, rustPlatform, fetchFromGitHub }:
+{ stdenv, rustPlatform, fetchFromGitHub, coreutils, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "0.10.2";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wisqb4cqdgsnjvmpgxbzs9zcw6npqw1kqxxs8mn33sxlikhbf2l";
+    sha256 = "0z31yizjczr59z6vxgjc3lqlcr3m21bi5ly8pxp3s3w7nbfr369q";
   };
 
-  cargoSha256 = "09gnyj97akychin1axp9kcww3c04xx7x1qnplhs2yxfki62r4y2b";
+  cargoSha256 = "0cwj63907xwy1ali9p2wnzhlcb80c6nhf684fbbsg7awiyqgdak3";
+  verifyCargoDeps = true;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postPatch = ''
+    substituteInPlace src/verb_store.rs --replace '"/bin/' '"${coreutils}/bin/'
+  '';
+
+  postInstall = ''
+    # install shell completion files
+    OUT_DIR=target/release/build/broot-*/out
+
+    installShellCompletion --bash $OUT_DIR/{br,broot}.bash
+    installShellCompletion --fish $OUT_DIR/{br,broot}.fish
+    installShellCompletion --zsh $OUT_DIR/{_br,_broot}
+  '';
 
   meta = with stdenv.lib; {
     description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index 1fd76eb4db6..8f365d023d2 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -6,12 +6,12 @@
 
 mkDerivation rec {
   pname = "calamares";
-  version = "3.2.16";
+  version = "3.2.17.1";
 
   # release including submodule
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0ygmw03n8knczq9a9whslxcpmgyz0ksqwl0k8f7hyf96b9n8inc2";
+    sha256 = "156zpjyw8w4y23aa60mvg3d3mr0kzfq5jkl7ixgahq33zpc17ms8";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index b64c527a6b9..97b4aa1db28 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -9,11 +9,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "133";
+  version = "135";
 
   src = fetchurl {
     url    = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "15hi2fwcx3sf189rmxpyah0amq1a49wgp1ynhvwij5qj13wib2q8";
+    sha256 = "1grf28mb6lyxdqbmvws4h7inalda9z7qnjx7dc859mzkf54cn3yd";
   };
 
   patches = [
@@ -35,11 +35,14 @@ python3Packages.buildPythonApplication rec {
   #
   # Still missing these tools: abootimg docx2txt dumpxsb enjarify js-beautify lipo oggDump otool procyon-decompiler Rscript wasm2wat zipnode
   # Also these libraries: python3-guestfs
-  pythonPath = with python3Packages; [ debian libarchive-c python_magic tlsh rpm pyxattr ] ++ [
-      acl binutils-unwrapped bzip2 cdrkit colordiff coreutils cpio db diffutils
+  pythonPath = [
+      binutils-unwrapped bzip2 colordiff coreutils cpio db diffutils
       dtc e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
-      libarchive libcaca lz4 pgpdump progressbar33 sng sqlite squashfsTools unzip xxd xz
-    ] ++ lib.optionals enableBloat [
+      libarchive libcaca lz4 pgpdump sng sqlite squashfsTools unzip xxd xz
+    ]
+    ++ (with python3Packages; [ debian libarchive-c python_magic tlsh rpm progressbar33 ])
+    ++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr acl cdrkit ]
+    ++ lib.optionals enableBloat [
       apktool cbfstool colord fpc ghc ghostscriptX giflib gnupg gnumeric imagemagick
       llvm jdk mono openssh pdftk poppler_utils tcpdump unoconv
       python3Packages.guestfs
@@ -69,6 +72,6 @@ python3Packages.buildPythonApplication rec {
     homepage    = https://wiki.debian.org/ReproducibleBuilds;
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg ];
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 22c0721d79d..77eca6af33c 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "direnv";
-  version = "2.20.1";
+  version = "2.21.0";
   goPackagePath = "github.com/direnv/direnv";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "0v8mqxb5g8z9kdnvbwfg39hlb9l3wpb8qwslwgln42k4bs8kg9hs";
+    sha256 = "0k0sh8pzpxix8sjhnvj2h3s6br32daj3mgac0i2bbzvmil77l2sb";
   };
 
   postConfigure = ''
diff --git a/pkgs/tools/misc/dust/default.nix b/pkgs/tools/misc/dust/default.nix
index 4239b54f18e..caa8451585e 100644
--- a/pkgs/tools/misc/dust/default.nix
+++ b/pkgs/tools/misc/dust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dust";
-  version = "0.4.2";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "bootandy";
     repo = "dust";
     rev = "v${version}";
-    sha256 = "0z1vi5agaf1gcq1bdzgfc89v6vpk9kaxxy8f3rd2h6yzdrd2dhk7";
+    sha256 = "1qbh9vgdh0xmh4c78fm0rd1sgb01n656p3cr4my7ymsy81ypx9y7";
   };
 
-  cargoSha256 = "08c428rrana0llzhkg8ngzqs6vc773jrf4wql2qxdvm4l0nsx596";
+  cargoSha256 = "07ynz6y1z3rz84662d4rfl2sw1sx46a3k48z8dckr0b3fqs2zj6a";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix
index d06798e5d6d..fb685e65a4f 100644
--- a/pkgs/tools/misc/execline/default.nix
+++ b/pkgs/tools/misc/execline/default.nix
@@ -1,85 +1,49 @@
 { lib, skawarePackages
 # for execlineb-with-builtins
 , coreutils, gnugrep, writeScriptBin, runCommand, runCommandCC
-# Whether to wrap bin/execlineb to have the execline tools on its PATH.
-, execlineb-with-builtins ? true
 }:
 
 with skawarePackages;
 
-let
-  outputs = [ "bin" "lib" "dev" "doc" "out" ];
-
-  execline =
-    buildPackage {
-      pname = "execline";
-      version = "2.5.3.0";
-      sha256 = "0czdrv9m8mnx94nf28dafij6z03k4mbhbs6hccfaardfd5l5q805";
-
-      description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
-
-      inherit outputs;
-
-      # TODO: nsss support
-      configureFlags = [
-        "--libdir=\${lib}/lib"
-        "--dynlibdir=\${lib}/lib"
-        "--bindir=\${bin}/bin"
-        "--includedir=\${dev}/include"
-        "--with-sysdeps=${skalibs.lib}/lib/skalibs/sysdeps"
-        "--with-include=${skalibs.dev}/include"
-        "--with-lib=${skalibs.lib}/lib"
-        "--with-dynlib=${skalibs.lib}/lib"
-      ];
+buildPackage {
+  pname = "execline";
+  version = "2.5.3.0";
+  sha256 = "0czdrv9m8mnx94nf28dafij6z03k4mbhbs6hccfaardfd5l5q805";
 
-      postInstall = ''
-        # remove all execline executables from build directory
-        rm $(find -type f -mindepth 1 -maxdepth 1 -executable)
-        rm libexecline.*
+  description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
 
-        mv doc $doc/share/doc/execline/html
-        mv examples $doc/share/doc/execline/examples
-      '';
-
-    };
+  outputs = [ "bin" "lib" "dev" "doc" "out" ];
 
-  # A wrapper around execlineb, which provides all execline
-  # tools on `execlineb`’s PATH.
-  # It is implemented as a C script, because on non-Linux,
-  # nested shebang lines are not supported.
-  execlineb-with-builtins-drv = runCommandCC "execlineb" {} ''
-    mkdir -p $out/bin
+  # TODO: nsss support
+  configureFlags = [
+    "--libdir=\${lib}/lib"
+    "--dynlibdir=\${lib}/lib"
+    "--bindir=\${bin}/bin"
+    "--includedir=\${dev}/include"
+    "--with-sysdeps=${skalibs.lib}/lib/skalibs/sysdeps"
+    "--with-include=${skalibs.dev}/include"
+    "--with-lib=${skalibs.lib}/lib"
+    "--with-dynlib=${skalibs.lib}/lib"
+  ];
+
+  postInstall = ''
+    # remove all execline executables from build directory
+    rm $(find -type f -mindepth 1 -maxdepth 1 -executable)
+    rm libexecline.*
+
+    mv doc $doc/share/doc/execline/html
+    mv examples $doc/share/doc/execline/examples
+
+    mv $bin/bin/execlineb $bin/bin/.execlineb-wrapped
     cc \
       -O \
       -Wall -Wpedantic \
-      -D 'EXECLINEB_PATH()="${execline}/bin/execlineb"' \
-      -D 'EXECLINE_BIN_PATH()="${execline}/bin"' \
+      -D "EXECLINEB_PATH()=\"$bin/bin/.execlineb-wrapped\"" \
+      -D "EXECLINE_BIN_PATH()=\"$bin/bin\"" \
       -I "${skalibs.dev}/include" \
       -L "${skalibs.lib}/lib" \
-      -l"skarnet" \
-      -o "$out/bin/execlineb" \
+      -lskarnet \
+      -o "$bin/bin/execlineb" \
       ${./execlineb-wrapper.c}
   '';
-
-
-  # the original execline package, with bin/execlineb overwritten
-  execline-with-builtins = runCommand "my-execline"
-    (execline.drvAttrs // {
-      preferLocalBuild = true;
-      allowSubstitutes = false;
-    })
-    # copy every output and just overwrite the execlineb binary in $bin
-    ''
-      ${lib.concatMapStringsSep "\n"
-        (output: ''
-          cp -r ${execline.${output}} "''$${output}"
-          chmod --recursive +w "''$${output}"
-        '')
-        outputs}
-      install ${execlineb-with-builtins-drv}/bin/execlineb $bin/bin/execlineb
-    '';
-
-in
-  if execlineb-with-builtins
-  then execline-with-builtins
-  else execline
+}
diff --git a/pkgs/tools/misc/execline/execlineb-wrapper.c b/pkgs/tools/misc/execline/execlineb-wrapper.c
index 09ccf990af7..d31a76ca26e 100644
--- a/pkgs/tools/misc/execline/execlineb-wrapper.c
+++ b/pkgs/tools/misc/execline/execlineb-wrapper.c
@@ -1,3 +1,10 @@
+/*
+ * A wrapper around execlineb, which provides all execline
+ * tools on execlineb’s PATH.
+ * It is implemented as a C program, because on non-Linux,
+ * nested shebang lines are not supported.
+ */
+
 #include <stdlib.h>
 #include <string.h>
 
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index 516badb7bc7..4e1a18efde4 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "0xwh8fnvahcyygz0ydi4pdzgsyvjaphwl3f2ccdas52fbirwnicn";
+    sha256 = "0gkn5axjxaa52f3w2qxwwab4m46xrxymbkcpw1v1jihil34pxw7a";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/pkgs/tools/misc/fpart/default.nix b/pkgs/tools/misc/fpart/default.nix
index 563152cc10d..e673c73d096 100644
--- a/pkgs/tools/misc/fpart/default.nix
+++ b/pkgs/tools/misc/fpart/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchFromGitHub, autoreconfHook }:
+{ stdenv, fetchFromGitHub, autoreconfHook, fts }:
 
 stdenv.mkDerivation rec {
   pname = "fpart";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "martymac";
     repo = "fpart";
     rev = "${pname}-${version}";
-    sha256 = "0h3mqc1xj5j2z8s8g3pvvpbjs6x74dj8niyh3p2ymla35kbzskf4";
+    sha256 = "17zm3cgp3f2plynqhj8a0hbma5rvawrx5kqygjqyynn7cljv458v";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ fts ];
 
   postInstall = ''
     sed "s|^FPART_BIN=.*|FPART_BIN=\"$out/bin/fpart\"|" \
diff --git a/pkgs/tools/misc/fsmon/default.nix b/pkgs/tools/misc/fsmon/default.nix
index c731094bdd6..e8e48d7879a 100644
--- a/pkgs/tools/misc/fsmon/default.nix
+++ b/pkgs/tools/misc/fsmon/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fsmon";
-  version = "1.5";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "nowsecure";
     repo = "fsmon";
     rev = version;
-    sha256 = "1b99cd5k2zh30sagp3f55jvj1r48scxibv7aqqc2sp82sci59npg";
+    sha256 = "1zpac37biy8jz8234q0krn7pjggz33k0grz590ravbjgfawm1ccy";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/geekbench/default.nix b/pkgs/tools/misc/geekbench/default.nix
index 32fe5cc5868..b18ac109382 100644
--- a/pkgs/tools/misc/geekbench/default.nix
+++ b/pkgs/tools/misc/geekbench/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geekbench";
-  version = "5.0.4";
+  version = "5.1.0";
 
   src = fetchurl {
     url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-    sha256 = "04d7ixfmzj22w9svjdj0kxsp7ycnzdzx9kd2z1vswnyybdkgyjy7";
+    sha256 = "1hqqwk5hbqgrxfqlcbgk6rv3a71k65psxcqa6hw41y9jymnm3dp3";
   };
 
   dontConfigure = true;
diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix
index d56f44aacef..46812da8954 100644
--- a/pkgs/tools/misc/graylog/default.nix
+++ b/pkgs/tools/misc/graylog/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "graylog";
-  version = "3.1.3";
+  version = "3.1.4";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "0jwfq9q10nz6fy9ac2j4fcf0liz4vj0q7jmfhy9dsa3476zccwa8";
+    sha256 = "1z7jy82dk5l2yxmcb7y0jws4p1l367fxj69pfi10ajssj66vwjfw";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/h/default.nix b/pkgs/tools/misc/h/default.nix
new file mode 100644
index 00000000000..f4897a54cb1
--- /dev/null
+++ b/pkgs/tools/misc/h/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, makeWrapper, ruby }:
+
+stdenv.mkDerivation rec {
+  pname = "h";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "zimbatm";
+    repo = "h";
+    rev = "v${version}";
+    hash = "sha256-chGrMtvLyyNtlM7PO1olVdkzkvMOk6OibHw+mqwVxIM=";
+  };
+
+  buildInputs = [ ruby ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp h $out/bin/h
+    cp up $out/bin/up
+  '';
+
+  meta = with stdenv.lib; {
+    description = "faster shell navigation of projects";
+    homepage = "https://github.com/zimbatm/h";
+    license = licenses.mit;
+    maintainers = [ maintainers.zimbatm ];
+  };
+}
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
index 8c2e7dc7451..34405ccc7be 100644
--- a/pkgs/tools/misc/hakuneko/default.nix
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -1,28 +1,84 @@
-{ stdenv, fetchurl, wxGTK30, openssl, curl }:
-
+{ atomEnv
+, autoPatchelfHook
+, dpkg
+, fetchurl
+, makeDesktopItem
+, makeWrapper
+, udev
+, stdenv
+, wrapGAppsHook
+}:
+let
+  desktopItem = makeDesktopItem {
+    desktopName = "HakuNeko Desktop";
+    genericName = "Manga & Anime Downloader";
+    categories = "Network;FileTransfer;";
+    exec = "hakuneko";
+    icon = "hakuneko-desktop";
+    name = "hakuneko-desktop";
+    type = "Application";
+  };
+in
 stdenv.mkDerivation rec {
   pname = "hakuneko";
-  version = "1.4.2";
+  version = "6.1.7";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/hakuneko/hakuneko_${version}_src.tar.gz";
-    sha256 = "76a63fa05e91b082cb5a70a8abacef005354e99978ff8b1369f7aa0af7615d52";
-  };
+  src = {
+    "x86_64-linux" = fetchurl {
+      url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_amd64.deb";
+      sha256 = "06bb17d7a06bb0601053eaaf423f9176f06ff3636cc43ffc024438e1962dcd02";
+    };
+    "i686-linux" = fetchurl {
+      url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_i386.deb";
+      sha256 = "32017d26bafffaaf0a83dd6954d3926557014af4022a972371169c56c0e3d98b";
+    };
+  }."${stdenv.hostPlatform.system}";
+
+  dontBuild = true;
+  dontConfigure = true;
+  dontPatchELF = true;
+  dontWrapGApps = true;
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = atomEnv.packages;
+
+  unpackPhase = ''
+    # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here
+    dpkg --fsys-tarfile $src | tar --extract
+  '';
 
-  preConfigure = ''
-    substituteInPlace ./configure \
-       --replace /bin/bash $shell
-    '';
+  installPhase = ''
+    cp -R usr "$out"
+    # Overwrite existing .desktop file.
+    cp "${desktopItem}/share/applications/hakuneko-desktop.desktop" \
+       "$out/share/applications/hakuneko-desktop.desktop"
+  '';
 
-  buildInputs = [ wxGTK30 openssl curl ];
+  runtimeDependencies = [
+    udev.lib
+  ];
 
-  meta = {
-    description = "Manga downloader";
-    homepage = https://sourceforge.net/projects/hakuneko/;
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.linux;
+  postFixup = ''
+    makeWrapper $out/lib/hakuneko-desktop/hakuneko $out/bin/hakuneko \
+      "''${gappsWrapperArgs[@]}"
+  '';
 
-    # This project was abandoned upstream.
-    broken = true;
+  meta = with stdenv.lib; {
+    description = "Manga & Anime Downloader";
+    homepage = "https://sourceforge.net/projects/hakuneko/";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [
+      nloomans
+    ];
+    platforms = [
+      "x86_64-linux"
+      "i686-linux"
+    ];
   };
 }
diff --git a/pkgs/tools/misc/html-proofer/Gemfile.lock b/pkgs/tools/misc/html-proofer/Gemfile.lock
index ec69f523f3b..cab69d41f93 100644
--- a/pkgs/tools/misc/html-proofer/Gemfile.lock
+++ b/pkgs/tools/misc/html-proofer/Gemfile.lock
@@ -5,8 +5,8 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.11.3)
-    html-proofer (3.15.0)
+    ffi (1.12.1)
+    html-proofer (3.15.1)
       addressable (~> 2.3)
       mercenary (~> 0.3)
       nokogumbo (~> 2.0)
@@ -14,18 +14,18 @@ GEM
       rainbow (~> 3.0)
       typhoeus (~> 1.3)
       yell (~> 2.0)
-    mercenary (0.3.6)
+    mercenary (0.4.0)
     mini_portile2 (2.4.0)
     nokogiri (1.10.7)
       mini_portile2 (~> 2.4.0)
     nokogumbo (2.0.2)
       nokogiri (~> 1.8, >= 1.8.4)
     parallel (1.19.1)
-    public_suffix (4.0.1)
+    public_suffix (4.0.3)
     rainbow (3.0.0)
     typhoeus (1.3.1)
       ethon (>= 0.9.0)
-    yell (2.2.0)
+    yell (2.2.1)
 
 PLATFORMS
   ruby
diff --git a/pkgs/tools/misc/html-proofer/gemset.nix b/pkgs/tools/misc/html-proofer/gemset.nix
index 1f561f52976..fbf65a8a0c0 100644
--- a/pkgs/tools/misc/html-proofer/gemset.nix
+++ b/pkgs/tools/misc/html-proofer/gemset.nix
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10ay35dm0lkcqprsiya6q2kwvyid884102ryipr4vrk790yfp8kd";
+      sha256 = "0i2vxj3ryvih5y06mgsa19dwy8fpyx58byh5szp7m6i702p78rni";
       type = "gem";
     };
-    version = "1.11.3";
+    version = "1.12.1";
   };
   html-proofer = {
     dependencies = ["addressable" "mercenary" "nokogumbo" "parallel" "rainbow" "typhoeus" "yell"];
@@ -37,20 +37,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nmwxmn0dxgs53g1cqn251dzmjrklw14cpa6z6wz7cdwvjq47500";
+      sha256 = "0krd80ga7qcms469l55jbm711a7ph2lmyn88l929nhbxc7sgm81g";
       type = "gem";
     };
-    version = "3.15.0";
+    version = "3.15.1";
   };
   mercenary = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+      sha256 = "0f2i827w4lmsizrxixsrv2ssa3gk1b7lmqh8brk8ijmdb551wnmj";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.0";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -99,10 +99,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+      sha256 = "1c6kq6s13idl2036b5lch8r7390f8w82cal8hcp4ml76fm2vdac7";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.0.3";
   };
   rainbow = {
     groups = ["default"];
@@ -130,9 +130,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1394pf8wsv4wx2lf1d9iqqx6lcww9bgmgh9sms3dbga804cns0n8";
+      sha256 = "1r2kygdh193qdbjjwhfghzl9czj4jr9xrw3gqyg5hmvmn7lygjwm";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.1";
   };
 }
\ No newline at end of file
diff --git a/pkgs/tools/misc/ipxe/default.nix b/pkgs/tools/misc/ipxe/default.nix
index 219c03f263c..1826bed216d 100644
--- a/pkgs/tools/misc/ipxe/default.nix
+++ b/pkgs/tools/misc/ipxe/default.nix
@@ -1,11 +1,9 @@
-{ stdenv, lib, fetchgit, perl, cdrkit, syslinux, xz, openssl, gnu-efi, mtools
+{ stdenv, lib, fetchFromGitHub, perl, cdrkit, syslinux, xz, openssl, gnu-efi, mtools
 , embedScript ? null
 , additionalTargets ? {}
 }:
 
 let
-  date = "20190318";
-  rev = "ebf2eaf515e46abd43bc798e7e4ba77bfe529218";
   targets = additionalTargets // lib.optionalAttrs stdenv.isx86_64 {
     "bin-x86_64-efi/ipxe.efi" = null;
     "bin-x86_64-efi/ipxe.efirom" = null;
@@ -19,15 +17,17 @@ let
   };
 in
 
-stdenv.mkDerivation {
-  name = "ipxe-${date}-${builtins.substring 0 7 rev}";
+stdenv.mkDerivation rec {
+  pname = "ipxe";
+  version = "1.20.1";
 
   nativeBuildInputs = [ perl cdrkit syslinux xz openssl gnu-efi mtools ];
 
-  src = fetchgit {
-    url = https://git.ipxe.org/ipxe.git;
-    sha256 = "0if3m8h1nfxy4n37cwlfbc5kand52290v80m4zvjppc81im3nr5g";
-    inherit rev;
+  src = fetchFromGitHub {
+    owner = "ipxe";
+    repo = "ipxe";
+    rev = "v${version}";
+    sha256 = "0w7h7y97gj9nqvbmsg1zp6zj5mpbbpckqbbx7bpp6k3ahy5fk8zp";
   };
 
   # not possible due to assembler code
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index bf1501155d9..109a84de631 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -2,20 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.13.2";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "1dzw1h9x9addkxf7r8lb8y09wmdkx8i61f5m96589r88jjk965xy";
+    sha256 = "18hn25f7cdz1li0vvx74al7a8z2220xhzjp9j6idhldsmjnscgq8";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
     extraPostFetch = "rm -r $out/testdir";
   };
 
-  makeFlags = [ "PREFIX=$(out)" ] ++ stdenv.lib.optional stdenv.isLinux "ENABLE_BTRFS=1";
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
+    "ENABLE_DEDUPE=1"
+    "STATIC_DEDUPE_H=1"
+  ];
 
   enableParallelBuilding = true;
 
@@ -32,7 +37,7 @@ stdenv.mkDerivation rec {
       duplicate files. This fork known as 'jdupes' is heavily modified
       from and improved over the original.
     '';
-    homepage = https://github.com/jbruchon/jdupes;
+    homepage = "https://github.com/jbruchon/jdupes";
     license = licenses.mit;
     maintainers = with maintainers; [ romildo ];
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/logstash/7.x.nix b/pkgs/tools/misc/logstash/7.x.nix
index 9eff84e67dc..1bd30733765 100644
--- a/pkgs/tools/misc/logstash/7.x.nix
+++ b/pkgs/tools/misc/logstash/7.x.nix
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
     url = "https://artifacts.elastic.co/downloads/logstash/${name}.tar.gz";
     sha256 =
       if enableUnfree
-      then "1mw053bx2zh5320p545ax8fnydzqj28r239l7a4m1d2shi89w6s8"
-      else "0d57ahak4chxmd0pmgkbmig2wacprv120pwmjlx63sxf5vw72yap";
+      then "01l6alwgsq6yf0z9d08i0hi8g708nph1vm78nl4xbpg8h964bybj"
+      else "0nlwgaw6rmhp5b68zpp1pzsjs30b0bjzdg8f7xy6rarpk338s8yb";
   };
 
   dontBuild         = true;
diff --git a/pkgs/tools/misc/lorri/default.nix b/pkgs/tools/misc/lorri/default.nix
index 8be6cf5a8a3..ea0bbe3dfe2 100644
--- a/pkgs/tools/misc/lorri/default.nix
+++ b/pkgs/tools/misc/lorri/default.nix
@@ -14,7 +14,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lorri";
-  version = "unstable-2019-10-30";
+  version = "unstable-2020-01-09";
 
   meta = with stdenv.lib; {
     description = "Your project's nix-env";
@@ -27,17 +27,17 @@ rustPlatform.buildRustPackage rec {
     owner = "target";
     repo = pname;
     # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
-    rev = "03f10395943449b1fc5026d3386ab8c94c520ee3";
-    sha256 = "0fcl79ndaziwd8d74mk1lsijz34p2inn64b4b4am3wsyk184brzq";
+    rev = "7b84837b9988d121dd72178e81afd440288106c5";
+    sha256 = "0rkga944jl6i0051vbsddfqbvzy12168cbg4ly2ng1rk0x97dbr8";
   };
 
-  cargoSha256 = "1daff4plh7hwclfp21hkx4fiflh9r80y2c7k2sd3zm4lmpy0jpfz";
+  cargoSha256 = "0k7l0zhk2vzf4nlwv4xr207irqib2dqjxfdjk1fprff84c4kblx8";
   doCheck = false;
 
   BUILD_REV_COUNT = src.revCount or 1;
   RUN_TIME_CLOSURE = pkgs.callPackage ./runtime.nix {};
 
-  nativeBuildInputs = with pkgs; [ nix direnv which ];
+  nativeBuildInputs = with pkgs; [ rustPackages.rustfmt ];
   buildInputs =
     stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
diff --git a/pkgs/tools/misc/lorri/runtime.nix b/pkgs/tools/misc/lorri/runtime.nix
index 71bc89b5af3..96b14b26e82 100644
--- a/pkgs/tools/misc/lorri/runtime.nix
+++ b/pkgs/tools/misc/lorri/runtime.nix
@@ -1,9 +1,13 @@
 {
   # Plumbing tools:
-  closureInfo, runCommand, writeText, buildEnv,
-
-  # Actual dependencies to propagate:
-  bash, coreutils }:
+  closureInfo
+, runCommand
+, writeText
+, buildEnv
+, # Actual dependencies to propagate:
+  bash
+, coreutils
+}:
 let
   tools = buildEnv {
     name = "lorri-runtime-tools";
@@ -15,19 +19,20 @@ let
   };
 
   closureToNix = runCommand "closure.nix" {}
-  ''
-    (
-      echo '{ dep, ... }: ['
-      sed -E 's/^(.*)$/    (dep \1)/' ${runtimeClosureInfo}/store-paths
-      echo ']'
-    ) > $out
-  '';
+    ''
+      (
+        echo '{ dep, ... }: ['
+        sed -E 's/^(.*)$/    (dep \1)/' ${runtimeClosureInfo}/store-paths
+        echo ']'
+      ) > $out
+    '';
 
   runtimeClosureInfoAsNix = runCommand "runtime-closure.nix" {
     runtime_closure_list = closureToNix;
     tools_build_host = tools;
   }
-  ''
-    substituteAll ${./runtime-closure.nix.template} $out
-  '';
-in runtimeClosureInfoAsNix
+    ''
+      substituteAll ${./runtime-closure.nix.template} $out
+    '';
+in
+runtimeClosureInfoAsNix
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index db697bc9d51..7d85e709f73 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -1,21 +1,20 @@
-{ stdenv, rustPlatform, fetchFromGitHub }:
+{ stdenv, rustPlatform, fetchFromGitHub, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "v0.3.1";
-  rev = version;
+  version = "0.3.6";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "cantino";
     repo = "mcfly";
-    sha256 = "0pmyw21zns4zn7pffji4yvbj63fx3g15cx81pk4bs6lzyz5zbdc2";
+    rev = "v${version}";
+    sha256 = "1g3n7ll0yg7w7hb3jgp25mlnqwsdzv0608f41z7q5gmsskdm3v1j";
   };
 
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
   preInstall = ''
-    mkdir -p $out/share/mcfly
-    cp mcfly.bash $out/share/mcfly/
-    chmod +x $out/share/mcfly/mcfly.bash
+    install -Dm644 -t $out/share/mcfly mcfly.bash
   '';
 
   cargoSha256 = "1bf65kagvhsi6lg8187ihi5j45hkq9d8v6j7rzmmfhngdzvcfr69";
@@ -24,7 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = https://github.com/cantino/mcfly;
     description = "An upgraded ctrl-r for Bash whose history results make sense for what you're working on right now.";
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = [ maintainers.melkor333 ];
   };
 }
diff --git a/pkgs/tools/misc/mongodb-tools/default.nix b/pkgs/tools/misc/mongodb-tools/default.nix
index fd95faa40e1..dbccbf9b2f6 100644
--- a/pkgs/tools/misc/mongodb-tools/default.nix
+++ b/pkgs/tools/misc/mongodb-tools/default.nix
@@ -2,7 +2,7 @@
 , lib
 , buildGoPackage
 , fetchFromGitHub
-, openssl_1_0_2
+, openssl
 , pkgconfig
 , libpcap
 }:
@@ -36,7 +36,7 @@ in buildGoPackage {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ openssl_1_0_2 libpcap ];
+  buildInputs = [ openssl libpcap ];
 
   # Mongodb incorrectly names all of their binaries main
   # Let's work around this with our own installer
diff --git a/pkgs/tools/misc/ms-sys/default.nix b/pkgs/tools/misc/ms-sys/default.nix
index 2607cf6f300..0a862834dfb 100644
--- a/pkgs/tools/misc/ms-sys/default.nix
+++ b/pkgs/tools/misc/ms-sys/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/ms-sys/${pname}-${version}.tar.gz";
     sha256 = "06xqpm2s9cg8fj7a1822wmh3p4arii0sifssazg1gr6i7xg7kbjz";
   };
+  # TODO: Remove with next release, see https://sourceforge.net/p/ms-sys/patches/8/
+  patches = [ ./manpages-without-build-timestamps.patch ];
 
   nativeBuildInputs = [ gettext ];
 
diff --git a/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch b/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch
new file mode 100644
index 00000000000..7b031cb34f1
--- /dev/null
+++ b/pkgs/tools/misc/ms-sys/manpages-without-build-timestamps.patch
@@ -0,0 +1,12 @@
+diff -u ms-sys-2.6.0/Makefile ms-sys-2.6.0-fixed/Makefile
+--- ms-sys-2.6.0/Makefile	2015-09-27 20:39:45.000000000 +0200
++++ ms-sys-2.6.0-fixed/Makefile2020-01-06 16:43:55.181477511 +0100
+@@ -121,7 +121,7 @@
+
+ $(DESTDIR)$(MANDIR)/%: $(MAN)/$(dir $(*D))/$(*F)
+ 	install -D -m 644 $(MAN)/$(dir $(*D))$(*F) $@
+-	gzip -f $@
++	gzip -n -f $@
+
+ #$(DESTDIR)$(MANDIR)/%: $(MAN)/$(*F)
+ #	echo t: $<
diff --git a/pkgs/tools/misc/mutagen/default.nix b/pkgs/tools/misc/mutagen/default.nix
new file mode 100644
index 00000000000..3c355dbddf3
--- /dev/null
+++ b/pkgs/tools/misc/mutagen/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "mutagen";
+  version = "0.10.3";
+
+  src = fetchFromGitHub {
+    owner = "mutagen-io";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "18wjzylxypvisfdmmwqc8g9vd9w7iyhs8irad1ksf7fhwz9w188m";
+  };
+
+  modSha256 = "0zb6wqfgp5v0hpm8ad6s9lc1n3wayyqindv4vfkmp3980ikb8qwx";
+
+  subPackages = [ "cmd/mutagen" "cmd/mutagen-agent" ];
+
+  meta = with lib; {
+    description = "Make remote development work with your local tools";
+    homepage = "https://mutagen.io/";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/tools/misc/osm2pgsql/default.nix b/pkgs/tools/misc/osm2pgsql/default.nix
index 54da1a16401..8905f9eb36a 100644
--- a/pkgs/tools/misc/osm2pgsql/default.nix
+++ b/pkgs/tools/misc/osm2pgsql/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osm2pgsql";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "openstreetmap";
     repo = pname;
     rev = version;
-    sha256 = "1xbzkrjv5d34dahgp9xxhasr8xzygpjbsr675rq59xzy9v7nvs9b";
+    sha256 = "1ysan01lpqzjxlq3y2kdminfjs5d9zksicpf9vvzpdk3fzq51fc9";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index e606b38775e..d1a786b3b91 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl, makeWrapper, procps }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20191122";
+  name = "parallel-20191222";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "01wmk3sf34d2lmhl37j4ga7aims2hcnzv1bydg1xs4pablar6ahq";
+    sha256 = "0xvw578440s9cc382n7z2l8npj30nwr6wwmkyxn2pj1pcszfjagy";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/pfetch/default.nix b/pkgs/tools/misc/pfetch/default.nix
index 491844f26b7..a858ad696af 100644
--- a/pkgs/tools/misc/pfetch/default.nix
+++ b/pkgs/tools/misc/pfetch/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenvNoCC, lib, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "pfetch";
   version = "0.4.0";
 
@@ -11,14 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "180vvbmvak888vs4dgzlmqk0ss4qfsz09700n4p8s68j7krkxsfq";
   };
 
-  dontbuild = true;
+  dontBuild = true;
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp pfetch $out/bin
+    install -Dm755 -t $out/bin pfetch
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pretty system information tool written in POSIX sh";
     homepage = https://github.com/dylanaraps/pfetch;
     license = licenses.mit;
diff --git a/pkgs/tools/misc/pg_flame/default.nix b/pkgs/tools/misc/pg_flame/default.nix
index a7b483a3f06..fbeba0ff1bd 100644
--- a/pkgs/tools/misc/pg_flame/default.nix
+++ b/pkgs/tools/misc/pg_flame/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "pg_flame";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "mgartner";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13r35n4sy9s4343l3vc896av629wqr7m225ih2bbrm8qq70fwhwv";
+    sha256 = "1a03vxqnga83mhjp7pkl0klhkyfaby7ncbwm45xbl8c7s6zwhnw2";
   };
 
   modSha256 = "0j7qpvji546z0cfjijdd66l0vsl0jmny6i1n9fsjqjgjpwg26naq";
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index 2436bbe4381..bdb86cbb802 100644
--- a/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "phoronix-test-suite";
-  version = "9.2.0";
+  version = "9.2.1";
 
   src = fetchurl {
     url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
-    sha256 = "04r4zm550kp44pzl5xgj8abncrd1rxcfs7hqm38an1lz7shiisfi";
+    sha256 = "00c5xgyn34psj538zrzql16z16532c9444vc5asg7qhrcylpqpk7";
   };
 
   buildInputs = [ php ];
diff --git a/pkgs/tools/misc/pipreqs/default.nix b/pkgs/tools/misc/pipreqs/default.nix
index 15c5cbc0eb1..9925021b3f6 100644
--- a/pkgs/tools/misc/pipreqs/default.nix
+++ b/pkgs/tools/misc/pipreqs/default.nix
@@ -3,11 +3,11 @@
 # Using python 2 because when packaging with python 3 pipreqs fails to parse python 2 code.
 python2Packages.buildPythonApplication rec {
   pname = "pipreqs";
-  version = "0.4.9";
+  version = "0.4.10";
 
   src = python2Packages.fetchPypi {
     inherit pname version;
-    sha256 = "cec6eecc4685967b27eb386037565a737d036045f525b9eb314631a68d60e4bc";
+    sha256 = "0fdr3mbxjpmrxr7yfc1sn9kbpcyb0qwafimhhrrqvf989dj1sdcy";
   };
 
   propagatedBuildInputs = with python2Packages; [ yarg docopt ];
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index ec56bb2b668..b42be5b548c 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2019.13";
+  version = "1.2020.0";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "0r8ahcnim7is7np68ci6ppzr07iyx417wi81gkckfyy5p4pwk8kz";
+    sha256 = "1ibhyj51wib2d8q7zyjbzp65hqm0a1jczqwqdw3834zdmrb2v7bs";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/powerline-rs/default.nix b/pkgs/tools/misc/powerline-rs/default.nix
index ff98bce39d8..309ccf8070b 100644
--- a/pkgs/tools/misc/powerline-rs/default.nix
+++ b/pkgs/tools/misc/powerline-rs/default.nix
@@ -1,20 +1,18 @@
 { stdenv, lib, rustPlatform, fetchFromGitLab, pkgconfig, file, perl, curl, cmake, openssl, libssh2, libgit2, libzip, Security }:
+
 rustPlatform.buildRustPackage rec {
   pname = "powerline-rs";
-  version = "0.1.9";
+  version = "0.2.0";
 
   src = fetchFromGitLab {
     owner = "jD91mZM2";
     repo = "powerline-rs";
-    #rev = version;
-
-    # Support for $COMPLETION_OUT:
-    rev = "44679385a95dd9f3ebd9b093f9ef8925610e9a23";
+    rev = version;
 
-    sha256 = "1mxkw6ydnqjyplbki2j9pbnlhxmkw9qqw54443a3cjmn2g08jyzp";
+    sha256 = "0rqlxxl58dpfvm2idhi0vzinraf4bgiapmawiih9wxs599fnhm3y";
   };
 
-  cargoSha256 = "1d0f1c1vp1r9r3ic921xkcr59f4a45y2xbxm4gl6grhb9z6p5k7l";
+  cargoSha256 = "1vdx5nwj4qmkb3rdgnchd9xixc5pmhvskvn6dmqgm91s41p2al1p";
 
   nativeBuildInputs = [ pkgconfig file perl cmake curl ];
   buildInputs = [ openssl libssh2 libgit2 libzip ] ++ lib.optional stdenv.isDarwin Security;
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index c42ea76ca85..4cf98ef8b48 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, gnugrep, ncurses, pkgconfig, readline }:
+{ stdenv, fetchFromGitHub, gnugrep, ncurses, pkgconfig, readline, postgresql }:
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "2.6.0";
+  version = "2.6.6";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "0cs0hsrrknl2cv39zzq4wydx5p7095hz18yly572fnniyi4ljbdg";
+    sha256 = "0l20ysr61y99zxvm8cqsgj7arv4m7h7gqq8lrq65bmh9fxncfpsd";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gnugrep ncurses readline ];
+  buildInputs = [ gnugrep ncurses readline postgresql ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/okbob/pspg";
     description = "Postgres Pager";
     license = licenses.bsd2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.jlesquembre ];
   };
 }
diff --git a/pkgs/tools/misc/skim/default.nix b/pkgs/tools/misc/skim/default.nix
index 55e6e5424d7..0c8e2da36df 100644
--- a/pkgs/tools/misc/skim/default.nix
+++ b/pkgs/tools/misc/skim/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "skim";
-  version = "0.6.9";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "lotabout";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ygnjrljar4caybh8lqfjif4vhb33aam80ffnzgqxz6s6g85ifrb";
+    sha256 = "0is6zymvy673f1g466i3ayi4jawdl7pm9l3cbdxcw32h3snbkgqp";
   };
 
   outputs = [ "out" "vim" ];
 
-  cargoSha256 = "1vcxcyhhqncjii0pad775x10j1kp62y82q1mii65jclr1karml3p";
+  cargoSha256 = "1dl530ac8i4wdw7lziskl7rhh3ak9ykcws3kpy64808kxg3b1jnz";
 
   patchPhase = ''
     sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with stdenv.lib; {
     description = "Command-line fuzzy finder written in Rust";
-    homepage = https://github.com/lotabout/skim;
+    homepage = "https://github.com/lotabout/skim";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix
index 466a5f3faf1..283503f2878 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.8.7";
+  version = "0.8.8";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "0605j4f3plb6q8lwf82y2jhply6dwj49jgxk8j16wsbf5k7lqzfq";
+    sha256 = "0wpf82xf61r9r20whhb83wk3408wac1if8awqm3bb36b9j7ni5jr";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index fa59935f561..9c9a4450ee8 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -3,13 +3,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.33.0";
+  version = "0.33.1";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wqxcfd7ams3k0swps9037dzc1qzxhpbqaz4qjw9jabgcl6jkb6v";
+    sha256 = "15z8iwig10brjxirr9nm1aibjz6qpd82v7n9c4i2q1q9qvb3j5cs";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
       --replace "/bin/echo" "echo"
   '';
 
-  cargoSha256 = "0gcca3vlwrfhw9k4r9zc1raflr1m4xws9dpdxjh1kz34f9g88ijg";
+  cargoSha256 = "16jr96ljd34x3fa2jahcqmjm1ds8519hx391wv1snk7y70fz1314";
   checkPhase = "cargo test -- --skip directory::home_directory --skip directory::directory_in_root";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/termplay/default.nix b/pkgs/tools/misc/termplay/default.nix
index f9ccec87adc..dd045f1cfac 100644
--- a/pkgs/tools/misc/termplay/default.nix
+++ b/pkgs/tools/misc/termplay/default.nix
@@ -1,18 +1,19 @@
 { rustPlatform, fetchFromGitHub, lib, makeWrapper, gst_all_1, libsixel }:
+
 rustPlatform.buildRustPackage rec {
   pname = "termplay";
-  version = "2.0.4";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "jD91mZM2";
     repo = "termplay";
-    rev = version;
+    rev = "v${version}";
 
-    sha256 = "0qgx9xmi8n3sq5n5m6gai777sllw9hyki2kwsj2k4h1ykibzq9r0";
+    sha256 = "1w7hdqgqr1jgxid3k7f2j52wz31gv8bzr9rsm6xzp7nnihp6i45p";
   };
 
   cargoBuildFlags = ["--features" "bin"];
-  cargoSha256 = "06vf2lhdsp7vsln8007zd1xcswn5akk9gnhh7582x1siiijksmn7";
+  cargoSha256 = "15i7qid91awlk74n823im1n6isqanf4vlcal90n1w9izyddzs9j0";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [
diff --git a/pkgs/tools/misc/tmuxinator/default.nix b/pkgs/tools/misc/tmuxinator/default.nix
index ab2edf7be4e..b7c9150e12d 100644
--- a/pkgs/tools/misc/tmuxinator/default.nix
+++ b/pkgs/tools/misc/tmuxinator/default.nix
@@ -8,8 +8,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "tmuxinator";
-  version = "1.1.0";
-  source.sha256 = "9f4a4fd0242c82844f9af109d2c03b6870060d7e30603e6d9bd017aee5380ec0";
+  version = "1.1.4";
+  source.sha256 = "06ajfvsmq2040b7nk2ifih3sqxgwzih5j1d25nh4ilgjlrfmha98";
 
   erubis = buildRubyGem rec {
     inherit ruby;
@@ -23,16 +23,16 @@ buildRubyGem rec {
     inherit ruby;
     name = "ruby${ruby.version}-${gemName}-${version}";
     gemName = "thor";
-    version = "0.20.0";
-    source.sha256 = "0nmqpyj642sk4g16nkbq6pj856adpv91lp4krwhqkh2iw63aszdl";
+    version = "1.0.1";
+    source.sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
   };
 
   xdg = buildRubyGem rec {
     inherit ruby;
     name = "ruby${ruby.version}-${gemName}-${version}";
     gemName = "xdg";
-    version = "2.2.3";
-    source.sha256 = "1bn47fdbwxqbdvjcfg86i32hmwm36k0xl876kb85f5da5v84lzmq";
+    version = "2.2.5";
+    source.sha256 = "04xr4cavnzxlk926pkji7b5yiqy4qsd3gdvv8mg6jliq6sczg9gk";
   };
 
   propagatedBuildInputs = [ erubis thor xdg ];
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index db25ec9d366..17d11d7e48a 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -1,23 +1,25 @@
-{ stdenv, fetchFromGitHub, rustPlatform }:
+{ stdenv, lib, fetchFromGitHub, rustPlatform, Foundation }:
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "3.6.0";
+  version = "3.7.1";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pr8bwwxp8zvn89ldsb0qy5asx59kpd7dsp7sjmgnbj2ddizl05n";
+    sha256 = "0vs0gnfs9swlmzsj7m3b88xfzcfy7n68bgm4i94csc3qsbip6m0j";
   };
 
-  cargoSha256 = "1f5s8nxl450vpfhvshiwvm49q6ph79vb40qqiz0a2i6jdrzhphq3";
+  cargoSha256 = "1y85hl7xl60vsj3ivm6pyd6bvk39wqg25bqxfx00r9myha94iqmd";
 
-  meta = with stdenv.lib; {
+  buildInputs = lib.optional stdenv.isDarwin Foundation;
+
+  meta = with lib; {
     description = "Upgrade all the things";
     homepage = "https://github.com/r-darwish/topgrade";
     license = licenses.gpl3;
     platforms = platforms.all;
-    maintainers = with maintainers; [ filalex77 ];
+    maintainers = with maintainers; [ filalex77 hugoreeves ];
   };
 }
diff --git a/pkgs/tools/misc/txr/default.nix b/pkgs/tools/misc/txr/default.nix
index 0f68ca82ece..a6b851e18ae 100644
--- a/pkgs/tools/misc/txr/default.nix
+++ b/pkgs/tools/misc/txr/default.nix
@@ -2,21 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "txr";
-  version = "230";
+  version = "231";
 
   src = fetchurl {
     url = "http://www.kylheku.com/cgit/txr/snapshot/${pname}-${version}.tar.bz2";
-    sha256 = "03ab9drdqvkfq240pkrx6197jjvvjizjwfx9psjmm6lixksw0kjx";
+    sha256 = "0mcglb84zfmrai2bcdg9j0ck8jp8h7ii2rf4m38yjggy0dvii2lc";
   };
 
   nativeBuildInputs = [ bison flex ];
   buildInputs = [ libffi ];
 
-  # fix usage of off_t without include
-  postPatch = ''
-    sed -i '1i#include <sys/types.h>' sysif.h
-  '';
-
   enableParallelBuilding = true;
 
   doCheck = true;
diff --git a/pkgs/tools/misc/usbmuxd/default.nix b/pkgs/tools/misc/usbmuxd/default.nix
index 9b94d003706..5935710164c 100644
--- a/pkgs/tools/misc/usbmuxd/default.nix
+++ b/pkgs/tools/misc/usbmuxd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "usbmuxd";
-  version = "2019-03-05";
+  version = "2019-11-11";
 
   src = fetchFromGitHub {
     owner = "libimobiledevice";
     repo = pname;
-    rev = "b1b0bf390363fa36aff1bc09443ff751943b9c34";
-    sha256 = "176hapckx98h4x0ni947qpkv2s95f8xfwz00wi2w7rgbr6cviwjq";
+    rev = "9af2b12552693a47601347e1eafc1e94132d727e";
+    sha256 = "0w8mf2wfpqijg882vhb8xarlp6zja23xf0b59z5zi774pnpjbqvj";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/misc/vmtouch/default.nix b/pkgs/tools/misc/vmtouch/default.nix
index fda442a6729..6397a093347 100644
--- a/pkgs/tools/misc/vmtouch/default.nix
+++ b/pkgs/tools/misc/vmtouch/default.nix
@@ -2,14 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vmtouch";
-  version = "1.3.0";
-  name = "${pname}-git-${version}";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "hoytech";
     repo = "vmtouch";
     rev = "v${version}";
-    sha256 = "0xpigfpwidk25k605y2m2g1952nzl5fgp0wn65hhn7hbra7srglf";
+    sha256 = "08da6apzfkfjwasn4dxrlfxqfx7arl28apdzac5nvm0fhvws0dxk";
   };
 
   buildInputs = [perl];
diff --git a/pkgs/tools/misc/wakatime/default.nix b/pkgs/tools/misc/wakatime/default.nix
index a685dc7cbde..58ad9182261 100644
--- a/pkgs/tools/misc/wakatime/default.nix
+++ b/pkgs/tools/misc/wakatime/default.nix
@@ -3,13 +3,13 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "wakatime";
-  version = "13.0.2";
+  version = "13.0.3";
 
   src = fetchFromGitHub {
     owner = "wakatime";
     repo = "wakatime";
     rev = version;
-    sha256 = "0ng7hb83gj6vb569qh58vqp4ana162r20dif086kgc3sch2z63j9";
+    sha256 = "16g23nm1x1a142rmnljdclq03c5anfzyiiazxaxyka8bggzhfmmc";
   };
 
   # needs more dependencies from https://github.com/wakatime/wakatime/blob/191b302bfb5f272ae928c6d3867d06f3dfcba4a8/dev-requirements.txt
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index d369bb4fed7..e106c3b8595 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -11,7 +11,9 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "0k93p9csyjm0w33diwl5s22kzs3g78jl3n9k8nxxpqrybfjl912f";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ lxml pyamf pycrypto requests future ffmpeg ];
+  propagatedBuildInputs = with pythonPackages; [
+    lxml pyamf pycrypto requests future ffmpeg setuptools
+  ];
   pythonPath = [ rtmpdump php ];
 
   doCheck = false; # tests require network access
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 415ec83be2f..59fd4fa70c9 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -18,11 +18,11 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2019.12.25";
+  version = "2020.01.24";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "13f7wv9v77zilhif0ndgjv4wn9glhmm14yh7axdcx5wglrgz38hf";
+    sha256 = "1zrnbjnwv315f9a83lk5c0gl4ianvp6q2kinxvqlv604sabcq78b";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
index 73f54f7dbff..06eabec0618 100644
--- a/pkgs/tools/networking/amass/default.nix
+++ b/pkgs/tools/networking/amass/default.nix
@@ -5,22 +5,22 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.0.25";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "04vsahqmbs9rysdwyjq0zgwcn6dgdvkyz8lsp1g1p9d3amrgbqjy";
+    sha256 = "0mia01cqmaa17696m73qazpbyrcng7wldca79g46xgc4z96q1i7i";
   };
 
-  modSha256 = "0kwi4pys08kszrh5kz64gs68k20y00v2zqh5hyrgpy9nivqrlj62";
+  modSha256 = "1zwm7skdhql6isffyhixqsgvcgxw2436iv8bj92cxs70ipk537v9";
 
   outputs = [ "out" "wordlists" ];
 
   postInstall = ''
     mkdir -p $wordlists
-    cp -R $src/wordlists/*.txt $wordlists
+    cp -R $src/examples/wordlists/*.txt $wordlists
     gzip $wordlists/*.txt
   '';
 
diff --git a/pkgs/tools/networking/axel/default.nix b/pkgs/tools/networking/axel/default.nix
index 1fa43e5849e..a9ddd9a8b68 100644
--- a/pkgs/tools/networking/axel/default.nix
+++ b/pkgs/tools/networking/axel/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "Console downloading program with some features for parallel connections for faster downloading";
     homepage = "https://github.com/axel-download-accelerator/axel";
     maintainers = with maintainers; [ pSub ];
-    platforms = with platforms; linux;
+    platforms = with platforms; unix;
     license = licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index f1b9a87dd5a..a399e7209af 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
-  version = "0.7.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = version;
-    sha256 = "1qrxxy6vhac1g6jzg30lqwcpjffyk2297jkd9j4rmwwf5cgip58a";
+    sha256 = "0xq2lv06dx7g00b4amk131krlsb6acsz7b228pn3iz6gy31fhz3y";
   };
 
-  cargoSha256 = "1rixpljqddwhryddzni5l6m4sjyn1krrj0ig0rzc701am7srhg3a";
+  cargoSha256 = "1sa81570cvvpqgdcpnb08b0q4c6ap8a2wxfp2z336jzbv0zgv8a6";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
     '';
     homepage = "https://github.com/imsnif/bandwhich";
     license = licenses.mit;
-    maintainers = with maintainers; [ filalex77 ];
+    maintainers = with maintainers; [ filalex77 ma27 ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/cassowary/default.nix b/pkgs/tools/networking/cassowary/default.nix
new file mode 100644
index 00000000000..bc1f9cebb42
--- /dev/null
+++ b/pkgs/tools/networking/cassowary/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses, }:
+
+buildGoModule rec {
+  pname = "cassowary";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "rogerwelin";
+    repo = pname;
+    rev = "33b7e81a5d147980f4ddc689818df2b071f6ab4e";
+    sha256 = "01cdmh2v9rz8rna08hdsddllck6zp9wcrhxdy6hs77zfsbzyfflx";
+  };
+
+  modSha256 = "1iylnnmj5slji89pkb3shp4xqar1zbpl7bzwddbzpp8y52fmsv1c";
+
+  meta = with lib; {
+    homepage = "https://github.com/rogerwelin/cassowary";
+    description = "Modern cross-platform HTTP load-testing tool written in Go ";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hugoreeves ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/corerad/default.nix b/pkgs/tools/networking/corerad/default.nix
index 6f9ea09eea1..e8f17450688 100644
--- a/pkgs/tools/networking/corerad/default.nix
+++ b/pkgs/tools/networking/corerad/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "corerad";
-  version = "0.1.4";
+  version = "0.1.9";
 
   goPackagePath = "github.com/mdlayher/corerad";
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "0qlmmgdz69gqqn6h5kb3gsjyj7lm6pcfcx9xlmrxhisj914ij76r";
+    sha256 = "1m23f318qr6b8c7hxrhihrm09pmdwab988k3bn4ygfm49z5phy4s";
   };
 
-  modSha256 = "0vim91yvw0cf9bd10hfanz8azq7q19lp2x61rs44ycx9zm3qdhcw";
+  modSha256 = "0idlpkn6krs77akn3p6gxsbc8zpj1rnjkhhwmb8ns98x82g6bln0";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mdlayher/corerad";
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index c5d650f52bb..17e2417d3a6 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
       client, and relay agent.
    '';
 
-    homepage = http://www.isc.org/products/DHCP/;
+    homepage = "https://www.isc.org/dhcp/";
     license = licenses.isc;
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix b/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix
index b9df976d3a9..5c5cb7333dd 100644
--- a/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy/2.x/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "dnscrypt-proxy2";
-  version = "2.0.25";
+  version = "2.0.36";
 
   goPackagePath = "github.com/jedisct1/dnscrypt-proxy";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "jedisct1";
     repo = "dnscrypt-proxy";
     rev = version;
-    sha256 = "1ix76nihzjbiib7n2pjx2ynziz8hrrx3idwdjnkwckxfq11g96y3";
+    sha256 = "05pk0fl4cyh69lfssvx9prd2gg0akw1l14b4q76zfhh9vc47z6x1";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/dsniff/default.nix b/pkgs/tools/networking/dsniff/default.nix
index 9ddc1a35ce3..256e59628aa 100644
--- a/pkgs/tools/networking/dsniff/default.nix
+++ b/pkgs/tools/networking/dsniff/default.nix
@@ -54,7 +54,7 @@ in stdenv.mkDerivation {
 
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ glib pcap ];
-  NIX_CFLAGS_LINK = "-lglib-2.0 -lpthread";
+  NIX_CFLAGS_LINK = "-lglib-2.0 -lpthread -ldl";
   postPatch = ''
     for patch in debian/patches/*.patch; do
       patch < $patch
diff --git a/pkgs/tools/networking/httpie/default.nix b/pkgs/tools/networking/httpie/default.nix
index 4230762d946..38fdab358c9 100644
--- a/pkgs/tools/networking/httpie/default.nix
+++ b/pkgs/tools/networking/httpie/default.nix
@@ -2,22 +2,18 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "httpie";
-  version = "1.0.3";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "jakubroztocil";
     repo = "httpie";
     rev = version;
-    sha256 = "0y30sp0x3nmgzi4dqw1rc3705hnn36ij0zlyyx7g6fqdq8bd8p5q";
+    sha256 = "0d0rsn5i973l9y0ws3xmnzaw4jwxdlryyjbasnlddph5mvkf7dq0";
   };
 
   propagatedBuildInputs = with python3Packages; [ pygments requests setuptools ];
   dontUseSetuptoolsCheck = true;
-
-  disabledTests = [
-    "test_current_version"
-    "test_error"
-  ];
+  patches = [ ./strip-venv.patch ];
 
   checkInputs = with python3Packages; [
     mock
diff --git a/pkgs/tools/networking/httpie/strip-venv.patch b/pkgs/tools/networking/httpie/strip-venv.patch
new file mode 100644
index 00000000000..99ea80a3f56
--- /dev/null
+++ b/pkgs/tools/networking/httpie/strip-venv.patch
@@ -0,0 +1,19 @@
+diff --git a/tests/test_docs.py b/tests/test_docs.py
+index 7a41822..720ecf6 100644
+--- a/tests/test_docs.py
++++ b/tests/test_docs.py
+@@ -41,12 +41,10 @@ assert filenames
+ 
+ # HACK: hardcoded paths, venv should be irrelevant, etc.
+ # TODO: replaces the process with Python code
+-VENV_BIN = Path(__file__).parent.parent / 'venv/bin'
+-VENV_PYTHON = VENV_BIN / 'python'
+-VENV_RST2PSEUDOXML = VENV_BIN / 'rst2pseudoxml.py'
++VENV_PYTHON = 'python'
++VENV_RST2PSEUDOXML = 'rst2pseudoxml.py'
+ 
+ 
+-@pytest.mark.skipif(not os.path.exists(VENV_RST2PSEUDOXML), reason='docutils not installed')
+ @pytest.mark.parametrize('filename', filenames)
+ def test_rst_file_syntax(filename):
+     p = subprocess.Popen(
diff --git a/pkgs/tools/networking/httplz/cargo-lock.patch b/pkgs/tools/networking/httplz/cargo-lock.patch
index 1d1632a0e82..5ded54799a7 100644
--- a/pkgs/tools/networking/httplz/cargo-lock.patch
+++ b/pkgs/tools/networking/httplz/cargo-lock.patch
@@ -1,14 +1,14 @@
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 0000000..fe230f5
+index 0000000..4b798fc
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,1190 @@
+@@ -0,0 +1,1263 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
 +name = "adler32"
-+version = "1.0.3"
++version = "1.0.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -16,7 +16,7 @@ index 0000000..fe230f5
 +version = "0.7.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -34,16 +34,22 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "atty"
-+version = "0.2.13"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "autocfg"
-+version = "0.1.6"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -52,7 +58,7 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "safemem 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -65,7 +71,7 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "bitflags"
-+version = "1.1.0"
++version = "1.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -73,8 +79,8 @@ index 0000000..fe230f5
 +version = "0.3.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -83,7 +89,7 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "brotli-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -97,7 +103,7 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -105,27 +111,26 @@ index 0000000..fe230f5
 +version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "c2-chacha"
-+version = "0.2.2"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.45"
++version = "1.0.50"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "cfg-if"
-+version = "0.1.9"
++version = "0.1.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -134,11 +139,11 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 + "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -147,7 +152,7 @@ index 0000000..fe230f5
 +version = "0.0.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -156,7 +161,7 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -169,7 +174,7 @@ index 0000000..fe230f5
 +version = "1.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -187,23 +192,28 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "either"
++version = "1.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "embed-resource"
-+version = "1.3.0"
++version = "1.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "vswhom 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "flate2"
-+version = "1.0.11"
++version = "1.0.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 + "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "miniz-sys 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "miniz_oxide 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -231,12 +241,20 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "getrandom"
-+version = "0.1.12"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -246,33 +264,38 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "https"
-+version = "1.6.0"
++version = "1.8.0"
 +dependencies = [
 + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "brotli2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
 + "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "embed-resource 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "flate2 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "embed-resource 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 + "hyper-native-tls 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "iron 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "lazysort 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "md6 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "mime_guess 1.8.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "os-str-generic 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rfsapi 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "serde 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)",
 + "serde_json 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tabwriter 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tabwriter 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
 + "trivial_colours 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 2.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -285,7 +308,7 @@ index 0000000..fe230f5
 + "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 + "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
 + "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -310,7 +333,7 @@ index 0000000..fe230f5
 +dependencies = [
 + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -323,13 +346,21 @@ index 0000000..fe230f5
 + "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 + "mime_guess 1.8.7 (registry+https://github.com/rust-lang/crates.io-index)",
 + "modifier 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
 + "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "itertools"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "itoa"
 +version = "0.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -351,7 +382,7 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.62"
++version = "0.2.66"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -367,7 +398,7 @@ index 0000000..fe230f5
 +version = "0.4.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -381,12 +412,12 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "memchr"
-+version = "2.2.1"
++version = "2.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -409,20 +440,11 @@ index 0000000..fe230f5
 +]
 +
 +[[package]]
-+name = "miniz-sys"
-+version = "0.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
 +name = "miniz_oxide"
-+version = "0.3.2"
++version = "0.3.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -436,14 +458,14 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "openssl 0.10.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl 0.10.26 (registry+https://github.com/rust-lang/crates.io-index)",
 + "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "openssl-sys 0.9.49 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)",
++ "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -452,10 +474,10 @@ index 0000000..fe230f5
 +version = "0.14.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -464,36 +486,37 @@ index 0000000..fe230f5
 +version = "0.1.43"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "num-traits"
-+version = "0.2.8"
++version = "0.2.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "num_cpus"
-+version = "1.10.1"
++version = "1.12.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "openssl"
-+version = "0.10.24"
++version = "0.10.26"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "openssl-sys 0.9.49 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -503,17 +526,22 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "openssl-sys"
-+version = "0.9.49"
++version = "0.9.53"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "os-str-generic"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "percent-encoding"
 +version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -560,7 +588,7 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "pkg-config"
-+version = "0.3.16"
++version = "0.3.17"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -573,7 +601,7 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "ppv-lite86"
-+version = "0.2.5"
++version = "0.2.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -586,8 +614,8 @@ index 0000000..fe230f5
 +version = "0.6.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -601,11 +629,11 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "rand"
-+version = "0.7.1"
++version = "0.7.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "getrandom 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -616,7 +644,7 @@ index 0000000..fe230f5
 +version = "0.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -625,7 +653,7 @@ index 0000000..fe230f5
 +version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -647,7 +675,7 @@ index 0000000..fe230f5
 +version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "getrandom 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -679,7 +707,7 @@ index 0000000..fe230f5
 +version = "0.1.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
@@ -691,7 +719,7 @@ index 0000000..fe230f5
 +dependencies = [
 + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -702,7 +730,7 @@ index 0000000..fe230f5
 +version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -729,18 +757,18 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "regex"
-+version = "1.3.1"
++version = "1.3.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "regex-syntax"
-+version = "0.6.12"
++version = "0.6.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -765,12 +793,20 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "safemem"
-+version = "0.3.2"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
 +name = "schannel"
-+version = "0.1.15"
++version = "0.1.16"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -779,18 +815,18 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "security-framework"
-+version = "0.3.1"
++version = "0.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
 + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "security-framework-sys"
-+version = "0.3.1"
++version = "0.3.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -837,7 +873,7 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "smallvec"
-+version = "0.6.10"
++version = "1.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -865,10 +901,10 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "tabwriter"
-+version = "1.1.0"
++version = "1.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -876,9 +912,9 @@ index 0000000..fe230f5
 +version = "3.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
 + "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -889,12 +925,12 @@ index 0000000..fe230f5
 +version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "thread_local"
-+version = "0.3.6"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -905,7 +941,7 @@ index 0000000..fe230f5
 +version = "0.1.42"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
 + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
@@ -943,10 +979,10 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "unicase"
-+version = "2.5.1"
++version = "2.6.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -959,15 +995,15 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "unicode-normalization"
-+version = "0.1.8"
++version = "0.1.12"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "unicode-width"
-+version = "0.1.6"
++version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -995,7 +1031,7 @@ index 0000000..fe230f5
 +
 +[[package]]
 +name = "vcpkg"
-+version = "0.2.7"
++version = "0.2.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -1009,6 +1045,11 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "version_check"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "void"
 +version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1018,7 +1059,7 @@ index 0000000..fe230f5
 +version = "0.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
 + "vswhom-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -1027,13 +1068,23 @@ index 0000000..fe230f5
 +version = "0.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "wasi"
-+version = "0.7.0"
++version = "0.9.0+wasi-snapshot-preview1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -1051,36 +1102,50 @@ index 0000000..fe230f5
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "winapi-util"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "winapi-x86_64-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "winreg"
-+version = "0.5.1"
++version = "0.6.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
++[[package]]
++name = "xml-rs"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
 +[metadata]
-+"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c"
++"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
 +"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
 +"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
 +"checksum antidote 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5"
-+"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
-+"checksum autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875"
++"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
 +"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
 +"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-+"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 +"checksum brotli-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4445dea95f4c2b41cde57cc9fee236ae4dbae88d8fcbdb4750fc1bb5d86aaecd"
 +"checksum brotli2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0cb036c3eade309815c15ddbacec5b22c4d1f3983a774ab2eac2e3e9ea85568e"
 +"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
 +"checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
 +"checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f"
-+"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
-+"checksum cc 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)" = "4fc9a35e1f4290eb9e5fc54ba6cf40671ed2a2514c3eeb2b2a908dda2ea5a1be"
-+"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
++"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 +"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
 +"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
 +"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
@@ -1088,53 +1153,56 @@ index 0000000..fe230f5
 +"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
 +"checksum ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c7dfd2d8b4c82121dfdff120f818e09fc4380b0b7e17a742081a89b94853e87f"
 +"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
-+"checksum embed-resource 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1419cfb011b3f11cbe865738cc2a36cc574437de4e3f2a1a57f118b230aa4f3"
-+"checksum flate2 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "2adaffba6388640136149e18ed080b77a78611c1e1d6de75aedcdf78df5d4682"
++"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++"checksum embed-resource 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bbaba4684ab0af1cbb3ef0b1f540ddc4b57b31940c920ea594efe09ab86e2a6c"
++"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
 +"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 +"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 +"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
 +"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
-+"checksum getrandom 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "473a1265acc8ff1e808cd0a1af8cee3c2ee5200916058a2ca113c29f2d903571"
++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
++"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
 +"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
 +"checksum hyper 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273"
 +"checksum hyper-native-tls 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6d375598f442742b0e66208ee12501391f1c7ac0bafb90b4fe53018f81f06068"
 +"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
 +"checksum iron 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6d308ca2d884650a8bf9ed2ff4cb13fbb2207b71f64cda11dc9b892067295e8"
++"checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
 +"checksum itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"
 +"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
 +"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 +"checksum lazysort 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e22ff43b231e0e2f87d74984e53ebc73b90ae13397e041214fb07efc64168f"
-+"checksum libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
++"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
 +"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
 +"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
 +"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
 +"checksum md6 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "54e5826684849cecd3fa05a6a5052c50a3542f163a9917ff0b91379426a2e45d"
-+"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
++"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223"
 +"checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
 +"checksum mime_guess 1.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0d977de9ee851a0b16e932979515c0f3da82403183879811bc97d50bd9cc50f7"
-+"checksum miniz-sys 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9e3ae51cea1576ceba0dde3d484d30e6e5b86dee0b2d412fe3a16a15c98202"
-+"checksum miniz_oxide 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7108aff85b876d06f22503dcce091e29f76733b2bfdd91eebce81f5e68203a10"
++"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
 +"checksum modifier 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41f5c9112cb662acd3b204077e0de5bc66305fa8df65c8019d5adb10e9ab6e58"
 +"checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e"
 +"checksum nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce"
 +"checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
-+"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
-+"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
-+"checksum openssl 0.10.24 (registry+https://github.com/rust-lang/crates.io-index)" = "8152bb5a9b5b721538462336e3bef9a539f892715e5037fda0f984577311af15"
++"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
++"checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
++"checksum openssl 0.10.26 (registry+https://github.com/rust-lang/crates.io-index)" = "3a3cc5799d98e1088141b8e01ff760112bbd9f19d850c124500566ca6901a585"
 +"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
-+"checksum openssl-sys 0.9.49 (registry+https://github.com/rust-lang/crates.io-index)" = "f4fad9e54bd23bd4cbbe48fdc08a1b8091707ac869ef8508edea2fec77dcc884"
++"checksum openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)" = "465d16ae7fc0e313318f7de5cecf57b2fbe7511fd213978b457e1c96ff46736f"
++"checksum os-str-generic 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "78f3d620827b89763f54b7f1da3029bd4e0ca7eb1ae61a5c4d3b0bc0dca5157e"
 +"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
 +"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 +"checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
 +"checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
 +"checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
 +"checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
-+"checksum pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "72d5370d90f49f70bd033c3d75e87fc529fbfff9d6f7cccef07d6170079d91ea"
++"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
 +"checksum plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a6a0dc3910bc8db877ffed8e457763b317cf880df4ae19109b9f77d277cf6e0"
-+"checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
 +"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
 +"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+"checksum rand 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "59cea0d944b32347a1863e95942fd6ebdb486afb4f038119494f2860380c1d51"
++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 +"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
 +"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
 +"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
@@ -1149,48 +1217,53 @@ index 0000000..fe230f5
 +"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
 +"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
 +"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
-+"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
++"checksum regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b5508c1941e4e7cb19965abef075d35a9a8b5cdf0846f30b4050e9b55dc55e87"
++"checksum regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e734e891f5b408a29efbf8309e656876276f49ab6a6ac208600b4419bd893d90"
 +"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
 +"checksum rfsapi 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1b6fbc119d00459f80252adb96e554766d75de071ed5d3c49f46a000d137cd49"
-+"checksum safemem 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b08423011dae9a5ca23f07cf57dac3857f5c885d352b76f6d95f4aea9434d0"
-+"checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339"
-+"checksum security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2"
-+"checksum security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56"
++"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++"checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
++"checksum security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df"
++"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895"
 +"checksum serde 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)" = "34b623917345a631dc9608d5194cc206b3fe6c3554cd1c75b937e55e285254af"
 +"checksum serde_codegen_internals 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bc888bd283bd2420b16ad0d860e35ad8acb21941180a83a189bb2046f9d00400"
 +"checksum serde_derive 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)" = "978fd866f4d4872084a81ccc35e275158351d3b9fe620074e7d7504b816b74ba"
 +"checksum serde_json 0.9.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ad8bcf487be7d2e15d3d543f04312de991d631cfe1b43ea0ade69e6a8a5b16a1"
 +"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
-+"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
++"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
 +"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 +"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
 +"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
-+"checksum tabwriter 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9128e3a9149e51494cad59712a286e149fcb74e443d2298d69bd6eaa42cc4ebb"
++"checksum tabwriter 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "36205cfc997faadcc4b0b87aaef3fbedafe20d38d4959a7ca6ff803564051111"
 +"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
 +"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
++"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
 +"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
 +"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
 +"checksum trivial_colours 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7153365ea16c5a0ce2eebc4da1b33339a6b21d90c49f670e82130639656bb458"
 +"checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
 +"checksum typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6"
 +"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
-+"checksum unicase 2.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2e2e6bd1e59e56598518beb94fd6db628ded570326f0a98c679a304bd9f00150"
++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
 +"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-+"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
-+"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
++"checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
 +"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
 +"checksum unsafe-any 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f30360d7979f5e9c6e6cea48af192ea8fab4afb3cf72597154b8f08935bc9c7f"
 +"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-+"checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
++"checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
 +"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
 +"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
++"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
 +"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
 +"checksum vswhom 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b"
 +"checksum vswhom-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc2f5402d3d0e79a069714f7b48e3ecc60be7775a2c049cb839457457a239532"
-+"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
++"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 +"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
 +"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80"
 +"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+"checksum winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a27a759395c1195c4cc5cda607ef6f8f6498f64e78f7900f5de0a127a424704a"
++"checksum winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
++"checksum xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "541b12c998c5b56aa2b4e6f18f03664eef9a4fd0a246a55594efae6cc2d964b5"
diff --git a/pkgs/tools/networking/httplz/default.nix b/pkgs/tools/networking/httplz/default.nix
index 6c84ac8da70..55630d7814c 100644
--- a/pkgs/tools/networking/httplz/default.nix
+++ b/pkgs/tools/networking/httplz/default.nix
@@ -3,13 +3,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "httplz";
-  version = "1.6.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "thecoshman";
     repo = "http";
     rev = "v${version}";
-    sha256 = "1y9mlbympb19i3iw7s7jm7lvkpcl4w0sig6jnd4w3ykhkdhzh6di";
+    sha256 = "0i41hqig8v6w1qb6498239iix1rss0lznm5lcl9m3i439c2zv7pw";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [ "--bin httplz" ];
   cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "1bxh7p2a04lpghqms8cx1f1cq5nbcx6cxh5ac7i72d5vzy4v07nl";
+  cargoSha256 = "1ajxfvj1pv6yq84zgrh7vjzghpb2y8qd5r09gzwdvww5rbj920fq";
 
   postInstall = ''
     wrapProgram $out/bin/httplz \
diff --git a/pkgs/tools/networking/iperf/3.nix b/pkgs/tools/networking/iperf/3.nix
index c59eb09f4c5..bea61b082ec 100644
--- a/pkgs/tools/networking/iperf/3.nix
+++ b/pkgs/tools/networking/iperf/3.nix
@@ -9,6 +9,9 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ openssl ];
+  configureFlags = [
+    "--with-openssl=${openssl.dev}"
+  ];
 
   outputs = [ "out" "man" ];
 
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index 9a982e53825..602ada1476a 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lftp";
-  version = "4.9.0";
+  version = "4.9.1";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://ftp.st.ryukoku.ac.jp/pub/network/ftp/lftp/${pname}-${version}.tar.xz"
       "https://lftp.yar.ru/ftp/${pname}-${version}.tar.xz"
       ];
-    sha256 = "0km267h57mlrd7gnn9gf40znvb3irwfc0qaql8kii8v936g6afqb";
+    sha256 = "0jq2g8h1bx06ya9fsja748vwb2qrca4wsfrgi3fmaa8hznpgqsar";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index 6c2a42e3a24..cdd954e1975 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
     # We install msg2pdf to bin/msg2pdf, fix its location in elisp
     substituteInPlace mu4e/mu4e-actions.el \
-      --replace "/toys/msg2pdf/msg2pdf" "/bin/msg2pdf"
+      --replace "/toys/msg2pdf/" "/bin/"
   '';
 
   # Install mug and msg2pdf
diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix
index 7f9d194e44a..3411aca5551 100644
--- a/pkgs/tools/networking/nebula/default.nix
+++ b/pkgs/tools/networking/nebula/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nebula";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "slackhq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0j7fna352z8kzx6n0hck7rp122c0v44j9syz0v30vq47xq2pwj5c";
+    sha256 = "0nwagk3q2gkirqrk27fisad2c2p2y1lsvz5phax9v5h51p1y79ia";
   };
 
-  modSha256 = "130h0gc5z0w5inpc99y6mismwg3nyzk3bqdq5v9yclkxlhkbcp6d";
+  modSha256 = "1sy5mnwn9fxjf3y41lm8gsggid2c0y08iw88m9ng8psaf4qid8ij";
 
   subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
 
diff --git a/pkgs/tools/networking/ocserv/default.nix b/pkgs/tools/networking/ocserv/default.nix
index c0535794cc6..8d4b340ea2b 100644
--- a/pkgs/tools/networking/ocserv/default.nix
+++ b/pkgs/tools/networking/ocserv/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ocserv";
-  version = "0.12.5";
+  version = "0.12.6";
 
   src = fetchFromGitLab {
     owner = "openconnect";
     repo = "ocserv";
     rev = "ocserv_${stdenv.lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "01md7r7myaxp614bm2bmbpraxjjjhs0zr5h6k3az3y3ix0r7zi69";
+    sha256 = "0k7sx9sg8akxwfdl51cvdqkdrx9qganqddgri2yhcgznc3f3pz5b";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/networking/pdsh/default.nix b/pkgs/tools/networking/pdsh/default.nix
index f5c74cfb511..68aa356261a 100644
--- a/pkgs/tools/networking/pdsh/default.nix
+++ b/pkgs/tools/networking/pdsh/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, readline, rsh, ssh }:
 
 stdenv.mkDerivation rec {
-  name = "pdsh-2.33";
+  name = "pdsh-2.34";
 
   src = fetchurl {
     url = "https://github.com/chaos/pdsh/releases/download/${name}/${name}.tar.gz";
-    sha256 = "0bwlkl9inj66iwvafg00pi3sk9n673phdi0kcc59y9nn55s0hs3k";
+    sha256 = "1s91hmhrz7rfb6h3l5k97s393rcm1ww3svp8dx5z8vkkc933wyxl";
   };
 
   buildInputs = [ perl readline ssh ];
diff --git a/pkgs/tools/networking/ppp/default.nix b/pkgs/tools/networking/ppp/default.nix
index 987960c9c50..0efef74f6c3 100644
--- a/pkgs/tools/networking/ppp/default.nix
+++ b/pkgs/tools/networking/ppp/default.nix
@@ -64,6 +64,6 @@ stdenv.mkDerivation rec {
     description = "Point-to-point implementation for Linux and Solaris";
     license = with licenses; [ bsdOriginal publicDomain gpl2 lgpl2 ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.falsifian ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/tools/networking/saldl/default.nix b/pkgs/tools/networking/saldl/default.nix
new file mode 100644
index 00000000000..d51e5515bd6
--- /dev/null
+++ b/pkgs/tools/networking/saldl/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, wafHook
+, asciidoc
+, docbook_xml_dtd_45
+, docbook_xsl
+, libxml2
+, libxslt
+, curl
+, libevent
+}:
+
+stdenv.mkDerivation rec {
+  pname = "saldl";
+  version = "40";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "19ajci5h5gdnrvwf0l7xy5s58z2di68rrvcmqpsmpp4lfr37rk2l";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    wafHook
+    asciidoc
+    docbook_xml_dtd_45
+    docbook_xsl
+    libxml2
+    libxslt
+  ];
+
+  buildInputs = [ curl libevent ];
+
+  wafConfigureFlags = [ "--saldl-version ${version}" "--no-werror" ];
+
+  outputs = [ "out" "man" ];
+
+  meta = with stdenv.lib; {
+    description = "CLI downloader optimized for speed and early preview";
+    homepage = "https://saldl.github.io";
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ zowoq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/networking/shadowsocks-libev/default.nix b/pkgs/tools/networking/shadowsocks-libev/default.nix
index b6051ef26b0..c9ff4c7f649 100644
--- a/pkgs/tools/networking/shadowsocks-libev/default.nix
+++ b/pkgs/tools/networking/shadowsocks-libev/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "shadowsocks-libev";
-  version = "3.3.3";
+  version = "3.3.4";
 
   # Git tag includes CMake build files which are much more convenient.
   src = fetchFromGitHub {
     owner = "shadowsocks";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "1i2431imbn4bhwmwyz63g5mh1g5ikhsiwv6mzcdc2kx34zjpibrj";
+    sha256 = "05f1vvd0r0wanbb61rf4p6y991jp7625l0i223v23r2ji43y3i5a";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/networking/strongswan/default.nix b/pkgs/tools/networking/strongswan/default.nix
index 27453083d59..fb7de5486fb 100644
--- a/pkgs/tools/networking/strongswan/default.nix
+++ b/pkgs/tools/networking/strongswan/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch
 , pkgconfig, autoreconfHook
-, gmp, python, iptables, ldns, unbound, openssl, pcsclite, glib
+, gmp, python3, iptables, ldns, unbound, openssl, pcsclite, glib
 , openresolv
 , systemd, pam
 , curl
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs =
-    [ curl gmp python ldns unbound openssl pcsclite ]
+    [ curl gmp python3 ldns unbound openssl pcsclite ]
     ++ optionals enableTNC [ trousers sqlite libxml2 ]
     ++ optionals stdenv.isLinux [ systemd.dev pam iptables ]
     ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ SystemConfiguration ])
diff --git a/pkgs/tools/networking/subfinder/default.nix b/pkgs/tools/networking/subfinder/default.nix
index cd5f2bf18cb..70820ea0320 100644
--- a/pkgs/tools/networking/subfinder/default.nix
+++ b/pkgs/tools/networking/subfinder/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "subfinder";
-  version = "2.2.4";
+  version = "2.3.0";
 
   goPackagePath = "github.com/projectdiscovery/subfinder";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00ni835zvgrj8gmmmpjdszrcijyd6apig8rpb4g2z3g016b6gwar";
+    sha256 = "1vjxi2h4njakyqkfzwwaacy37kqx66j2y3k5l752z9va73gv7xv1";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index ee3ca416aa4..5d1cd4540d7 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -3,20 +3,20 @@
 , ... } @ args:
 
 callPackage ./generic.nix (rec {
-  version = "4.22.0";
+  version = "4.22.1";
 
   src = fetchFromGitHub {
     owner = "v2ray";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "1gr4s96ii4dx5bcwpb82rn250pcnncxwzx147p9dbwbyiy0i9nz7";
+    sha256 = "0l4rg9galjcm6dzv7sapnim9a02z7pv354mk5mwqndznii6nkr73";
   };
 
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202001010102";
-      geoipSha256 = "16i73c3852f7zmya0q3856cc4gvhqhpln9s98qvr2dr1mpp72c1w";
+      geoipRev = "202001210102";
+      geoipSha256 = "1wxhrhrigjqzpy5w8yj7yd9ib245xwhqys2pf9prdknq71piyziz";
     in fetchurl {
       url = "https://github.com/v2ray/geoip/releases/download/${geoipRev}/geoip.dat";
       sha256 = geoipSha256;
@@ -24,8 +24,8 @@ callPackage ./generic.nix (rec {
 
     # MIT licensed
     "geosite.dat" = let
-      geositeRev = "20191226.1";
-      geositeSha256 = "0b4ji5kj5jpkwri3libxm9yl49dcy91vkl7h1rkhrrhbl17s3qiy";
+      geositeRev = "202001211332";
+      geositeSha256 = "06qlbjxk21lhyh5l3pd8l4m9rdl7sjh2jriz51zihaqx4417f0m7";
     in fetchurl {
       url = "https://github.com/v2ray/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix
index fefff857381..89177f49ecf 100644
--- a/pkgs/tools/networking/wavemon/default.nix
+++ b/pkgs/tools/networking/wavemon/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, ncurses, libnl, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.0";
+  version = "0.9.1";
   baseName = "wavemon";
   name = "${baseName}-${version}";
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = "uoaerg";
     repo = "wavemon";
     rev = "v${version}";
-    sha256 = "07cid0h3mcyr74nnrzzf8k5n1p9a4y3wij43jbiaqmkpxilcc1i6";
+    sha256 = "109ycwnjjqc2vpnd8b86njfifczlxglnyv4rh2qmbn2i5nw2wryg";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index a01b0ab2061..df2cdf6b590 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -14,11 +14,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "wireguard-tools";
-  version = "1.0.20200102";
+  version = "1.0.20200121";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${version}.tar.xz";
-    sha256 = "0ry3vbckcbkx43bz0bqinrd1hkll67jbwb72ak0b41wkxjsc8fmv";
+    sha256 = "0s82i8ibf0zj2wka625vh4rihdwmvlkv1v3bilrlcscwgfvzjfhf";
   };
 
   sourceRoot = "source/src";
diff --git a/pkgs/tools/package-management/cargo-about/default.nix b/pkgs/tools/package-management/cargo-about/default.nix
new file mode 100644
index 00000000000..2e1384693ec
--- /dev/null
+++ b/pkgs/tools/package-management/cargo-about/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-about";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "EmbarkStudios";
+    repo = "cargo-about";
+    rev = "${version}";
+    sha256 = "1n9274np1ibz1s35q1qqajnwj7w4l695js9xdbga5wim18ly622m";
+  };
+
+  cargoSha256 = "0zjvvqw68y6zmjzmd22hh246422x2kxljj73vxywkl18crkakd7k";
+
+  meta = with lib; {
+    description = "Cargo plugin to generate list of all licenses for a crate";
+    homepage = "https://github.com/EmbarkStudios/cargo-about";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = with maintainers; [ evanjs ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/package-management/cargo-deb/default.nix b/pkgs/tools/package-management/cargo-deb/default.nix
index d9e0630e6ff..1af8be3da44 100644
--- a/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/pkgs/tools/package-management/cargo-deb/default.nix
@@ -1,21 +1,25 @@
-{ stdenv, fetchurl, fetchFromGitHub, rustPlatform, Security }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
-  version = "1.23.0";
+  version = "1.23.1";
 
   src = fetchFromGitHub {
     owner = "mmstick";
-    repo = "cargo-deb";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0jjhbs48f0rprzxnfgav6mjbyvcqnr7xq1qgyjxwd61z8g3m8hx8";
+    sha256 = "0dkkbyzimnzfyrzmfn83jqg5xq53wzrknixnyh46cniqffqhd663";
   };
 
-  buildInputs = with stdenv; lib.optionals isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "03z9hq873jfsbssnd3kr5vz9lx9mvhb1navb2glm6kkw1k2zm4d2";
+  cargoSha256 = "0j64dcczxdr9zdch4a241d5adgipzz8sgbw00min9k3p8hbljd9n";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Generate Debian packages from information in Cargo.toml";
     homepage = "https://github.com/mmstick/cargo-deb";
     license = licenses.mit;
diff --git a/pkgs/tools/package-management/disnix/default.nix b/pkgs/tools/package-management/disnix/default.nix
index c9223c9af15..2c5bc41e18d 100644
--- a/pkgs/tools/package-management/disnix/default.nix
+++ b/pkgs/tools/package-management/disnix/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib, libxml2, libxslt, getopt, nixUnstable, dysnomia, libintl, libiconv }:
 
 stdenv.mkDerivation {
-  name = "disnix-0.9";
+  name = "disnix-0.9.1";
 
   src = fetchurl {
-    url = https://github.com/svanderburg/disnix/releases/download/disnix-0.9/disnix-0.9.tar.gz;
-    sha256 = "1kc4520zjc1z72mknylfvrsyda9rbmm5c9mw8w13zhdwg3zbna06";
+    url = https://github.com/svanderburg/disnix/releases/download/disnix-0.9.1/disnix-0.9.1.tar.gz;
+    sha256 = "0bidln5xw3raqkvdks9aipis8aaza8asgyapmilnxkkrxgmw7rdf";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 67829330844..bb361fd97c3 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "0.2.8";
+  version = "0.2.10";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s04hi0i1ssg9dp75f9qdglnvqmh0cxmbk8nnhd4w45v9m5sadph";
+    sha256 = "1y77cla6bgy8pjb21cawx7cb69hhri4r7gyjkhnjyiixkh945mwj";
   };
 
-  cargoSha256 = "10y7lpgj9mxrh3rmc15km4rfzspwdjr8dcdh0747rjn6dcpfhcdq";
+  cargoSha256 = "119llsc8m7qda2cjnd45ndml148z8074f76xygkz6fp3m1c2z3pw";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/package-management/morph/default.nix b/pkgs/tools/package-management/morph/default.nix
index 9462cbec9c4..b111386fea2 100644
--- a/pkgs/tools/package-management/morph/default.nix
+++ b/pkgs/tools/package-management/morph/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "morph";
-  version = "1.3.1";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "dbcdk";
     repo = "morph";
     rev = "v${version}";
-    sha256 = "0nwl9n5b0lnil96573wa3hyr3vyvfiwvmpkla3pmwkpmriac4xrg";
+    sha256 = "1y6clzi8sfnrv4an26b44r24nnxds1kj9aw3lmjbgxl9yrxxsj1k";
   };
 
   goPackagePath = "github.com/dbcdk/morph";
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index a4acdf0a341..60091742e0d 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "1.1.8";
+  version = "1.1.10";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0yy75iagyrr96y7497hbbizrm59c757mshwicl1b7ni2sn3p63fh";
+    sha256 = "0qn9hybqnhyf1xb6n0m4qq2ac8h187i2pjkkik73qly1hmyq45j7";
   };
 
-  modSha256 = "05hcn0k1zb4k4p3aaas7b276jw607cv290np9vmyqxb3khzv4vjg";
+  modSha256 = "037ihnvssgkzbg94yfw4lwqnhj02m187dfn1fm7i6yv13kf0gkpx";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/tools/package-management/nix-bundle/default.nix b/pkgs/tools/package-management/nix-bundle/default.nix
index cd90e50d70e..b78b3bf07cd 100644
--- a/pkgs/tools/package-management/nix-bundle/default.nix
+++ b/pkgs/tools/package-management/nix-bundle/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nix-bundle";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "matthewbauer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0klabmygbhzlwxja8p2w8fp8ip3xaa5ym9c15rp9qxzh03hfmdjx";
+    sha256 = "084m9hqm1nhwln2sbg8ck2v2dprvpldxxqmd1r8fcj3dmn4bysz0";
   };
 
   # coreutils, gnutar is actually needed by nix for bootstrap
diff --git a/pkgs/tools/package-management/nix-prefetch/default.nix b/pkgs/tools/package-management/nix-prefetch/default.nix
index f88820ffad9..19a40b7395f 100644
--- a/pkgs/tools/package-management/nix-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-prefetch/default.nix
@@ -2,17 +2,15 @@
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt
 , coreutils, gawk, gnugrep, gnused, jq, nix }:
 
-with stdenv.lib;
-
 stdenv.mkDerivation rec {
   pname = "nix-prefetch";
-  version = "0.1.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "msteen";
     repo = "nix-prefetch";
-    rev = "f9507a655651b51f3a3ebacde85bb40758853615";
-    sha256 = "0ykrbvbwwpz348424yy2452idgw8dffi3klh7n85n96dfflyyd4s";
+    rev = version;
+    sha256 = "0b9gdi7xzmfq0j258x724xsll8gi31m0m4pzfjkqinlm6zwr3sgm";
   };
 
   nativeBuildInputs = [
@@ -40,7 +38,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/bin
     makeWrapper $lib/main.sh $out/bin/${pname} \
-      --prefix PATH : '${makeBinPath [ coreutils gawk gnugrep gnused jq nix ]}'
+      --prefix PATH : '${stdenv.lib.makeBinPath [ coreutils gawk gnugrep gnused jq nix ]}'
 
     substitute src/tests.sh $lib/tests.sh \
       --subst-var-by bin $out/bin
@@ -55,13 +53,13 @@ stdenv.mkDerivation rec {
     install -D contrib/nix-prefetch-completion.bash $out/share/bash-completion/completions/nix-prefetch
     install -D contrib/nix-prefetch-completion.zsh $out/share/zsh/site-functions/_nix_prefetch
 
-    mkdir $out/contrib
-    cp -r contrib/hello_rs $out/contrib/
+    mkdir -p $out/share/doc/${pname}/contrib
+    cp -r contrib/hello_rs $out/share/doc/${pname}/contrib/
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Prefetch any fetcher function call, e.g. package sources";
-    homepage = https://github.com/msteen/nix-prefetch;
+    homepage = "https://github.com/msteen/nix-prefetch";
     license = licenses.mit;
     maintainers = with maintainers; [ msteen ];
     platforms = platforms.all;
diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix
index a3c3c0d40a9..dc69ae457dc 100644
--- a/pkgs/tools/package-management/packagekit/default.nix
+++ b/pkgs/tools/package-management/packagekit/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, lib
-, intltool, glib, pkgconfig, polkit, python, sqlite
+, intltool, glib, pkgconfig, polkit, python3, sqlite
 , gobject-introspection, vala, gtk-doc, autoreconfHook, autoconf-archive
 # TODO: set enableNixBackend to true, as soon as it builds
 , nix, enableNixBackend ? false, boost
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "packagekit";
-  version = "1.1.12";
+  version = "1.1.13";
 
   outputs = [ "out" "dev" ];
 
@@ -17,10 +17,10 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "PackageKit";
     rev = "PACKAGEKIT_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "02wq3jw3mkdld90irh5vdfd5bri2g1p89mhrmj56kvif1fqak46x";
+    sha256 = "0xmgac27p5z8wr56yw3cqhywnlvaf8kvyv1g0nzxnq167xj5vxam";
   };
 
-  buildInputs = [ glib polkit python gobject-introspection ]
+  buildInputs = [ glib polkit python3 gobject-introspection ]
                   ++ lib.optional enableSystemd systemd
                   ++ lib.optional enableBashCompletion bash-completion;
   propagatedBuildInputs = [ sqlite nix boost ];
@@ -40,7 +40,8 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var"
     "--sysconfdir=/etc"
     "--with-dbus-sys=${placeholder "out"}/share/dbus-1/system.d"
-    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system/"
+    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+    "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
   ]
   ++ lib.optional enableNixBackend "--enable-nix"
   ++ lib.optional (!enableBashCompletion) "--disable-bash-completion"
@@ -49,7 +50,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   installFlags = [
-    "sysconfdir=\${out}/etc"
+    "sysconfdir=${placeholder "out"}/etc"
     "localstatedir=\${TMPDIR}"
   ];
 
diff --git a/pkgs/tools/package-management/pacman/default.nix b/pkgs/tools/package-management/pacman/default.nix
index 3353704cb36..cdd0c83574a 100644
--- a/pkgs/tools/package-management/pacman/default.nix
+++ b/pkgs/tools/package-management/pacman/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, pkgconfig, perl, libarchive, openssl, zlib, bzip2,
+{ stdenv, lib, fetchurl, pkgconfig, m4, perl, libarchive, openssl, zlib, bzip2,
 lzma, curl, runtimeShell }:
 
 stdenv.mkDerivation rec {
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "sysconfdir=${placeholder "out"}/etc" ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig m4 ];
   buildInputs = [ curl perl libarchive openssl zlib bzip2 lzma ];
 
   postFixup = ''
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index ae0259e65fc..05d293b5bf1 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -50,6 +50,11 @@ stdenv.mkDerivation rec {
       sed -i $out/lib/rpm/macros -e "s/^%__$tool.*/%__$tool $tool/"
     done
 
+    # Avoid helper scripts pointing to absolute paths
+    for tool in find-provides find-requires; do
+      sed -i $out/lib/rpm/$tool -e "s#/usr/lib/rpm/#$out/lib/rpm/#"
+    done
+
     # symlinks produced by build are incorrect
     ln -sf $out/bin/{rpm,rpmquery}
     ln -sf $out/bin/{rpm,rpmverify}
diff --git a/pkgs/tools/security/chrome-token-signing/default.nix b/pkgs/tools/security/chrome-token-signing/default.nix
index 5e304f86b4e..76c845e7a99 100644
--- a/pkgs/tools/security/chrome-token-signing/default.nix
+++ b/pkgs/tools/security/chrome-token-signing/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qmake, pcsclite, pkgconfig, opensc }:
+{ mkDerivation, fetchFromGitHub, qmake, pcsclite, pkgconfig, opensc }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "chrome-token-signing";
   version = "1.0.7";
 
diff --git a/pkgs/tools/security/diceware/default.nix b/pkgs/tools/security/diceware/default.nix
index 07682eb22c5..dcd7e853564 100644
--- a/pkgs/tools/security/diceware/default.nix
+++ b/pkgs/tools/security/diceware/default.nix
@@ -1,8 +1,8 @@
 { lib
-, pythonPackages
+, python3Packages
 }:
 
-with pythonPackages;
+with python3Packages;
 
 buildPythonApplication rec {
   pname = "diceware";
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 5ea91854282..4ec84353e4e 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, fetchpatch, python3, gamin }:
+{ stdenv, fetchFromGitHub, python3, gamin }:
 
-let version = "0.10.4"; in
+let version = "0.10.5"; in
 
 python3.pkgs.buildPythonApplication {
   pname = "fail2ban";
@@ -10,18 +10,9 @@ python3.pkgs.buildPythonApplication {
     owner  = "fail2ban";
     repo   = "fail2ban";
     rev    = version;
-    sha256 = "07ik6rm856q0ic2r7vbg6j3hsdcdgkv44hh5ck0c2y21fqwrck3l";
+    sha256 = "1s8g46vkwhqnagj69v4wvcasypzkmq7awhfbxahffrypcpad5ach";
   };
 
-  patches = [
-    # 0.10.3 supports Python 3 but somehow this got into the way
-    # https://github.com/fail2ban/fail2ban/issues/2255
-    (fetchpatch {
-      url = "https://github.com/fail2ban/fail2ban/commit/657b147c0d7830f3600f3dc7feaa4815a7e19fde.patch";
-      sha256 = "1hrk2x7ssrfhab1wrjk5xw1sxhiv2735glfcp6qcj8x4dss3q7f7";
-    })
-  ];
-
   pythonPath = with python3.pkgs;
     stdenv.lib.optionals stdenv.isLinux [
       systemd
diff --git a/pkgs/tools/security/fido2luks/default.nix b/pkgs/tools/security/fido2luks/default.nix
new file mode 100644
index 00000000000..0bb5a91a81a
--- /dev/null
+++ b/pkgs/tools/security/fido2luks/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, cryptsetup
+, pkg-config
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fido2luks";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "shimunn";
+    repo = pname;
+    rev = version;
+    sha256 = "018qzbgmgm0f0d0c7i54nqqjbr4k5mzy1xfavi6hpifjll971wci";
+  };
+
+  buildInputs = [ cryptsetup ];
+  nativeBuildInputs = [ pkg-config ];
+
+  cargoSha256 = "1kf757wxxk5h8dfbz588qw1pnyjbg5qzr7rz14i7x8rhmn5xwb74";
+  verifyCargoDeps = true;
+
+  meta = with stdenv.lib; {
+    description = "Decrypt your LUKS partition using a FIDO2 compatible authenticator";
+    homepage = "https://github.com/shimunn/fido2luks";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ prusnak mmahut ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/security/jd-gui/default.nix b/pkgs/tools/security/jd-gui/default.nix
index 86b88638bd7..af88fd6270f 100644
--- a/pkgs/tools/security/jd-gui/default.nix
+++ b/pkgs/tools/security/jd-gui/default.nix
@@ -1,27 +1,25 @@
-{ stdenv, fetchFromGitHub, jre, jdk, makeDesktopItem, perl, writeText, runtimeShell }:
+{ stdenv, fetchFromGitHub, jre, jdk, gradle, makeDesktopItem, perl, writeText, runtimeShell }:
 
 let
   pname = "jd-gui";
-  version = "1.6.5";
+  version = "1.6.6";
 
   src = fetchFromGitHub {
     owner = "java-decompiler";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0yn2xcwznig941pw2f3wi8ixz1wprxcn9wl0g2ggdzx51rfwgzzi";
+    sha256 = "010bd3q2m4jy4qz5ahdx86b5f558s068gbjlbpdhq3bhh4yrjy20";
   };
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps";
     inherit src;
 
-    nativeBuildInputs = [ jdk perl ];
-
-    patchPhase = "patchShebangs gradlew";
+    nativeBuildInputs = [ jdk perl gradle ];
 
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d);
-      ./gradlew --no-daemon jar
+      gradle --no-daemon jar
     '';
 
     # Mavenize dependency paths
@@ -30,12 +28,11 @@ let
       find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
         | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
         | sh
-      cp -r $GRADLE_USER_HOME/wrapper $out
     '';
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "1s4p91iiyikrsgvpzkhw3jm5lsm0jpzp7iw7afdhhl9jm18igs70";
+    outputHash = "1qil12s0daxpxj5xj5dj6s2k89is0kiir2vcafkm3lasc41acmk3";
   };
 
   # Point to our local deps repo
@@ -74,15 +71,11 @@ in stdenv.mkDerivation rec {
   inherit pname version src;
   name = "${pname}-${version}";
 
-  nativeBuildInputs = [ jdk ];
-
-  patchPhase = "patchShebangs gradlew";
+  nativeBuildInputs = [ jdk gradle ];
 
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
-    cp -r ${deps}/wrapper $GRADLE_USER_HOME
-    chmod u+w $GRADLE_USER_HOME/wrapper/dists/gradle*/*/*.lck
-    ./gradlew --offline --no-daemon --info --init-script ${gradleInit} jar
+    gradle --offline --no-daemon --info --init-script ${gradleInit} jar
   '';
 
   installPhase = let
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
new file mode 100644
index 00000000000..83b630a4f4f
--- /dev/null
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "jwt-cli";
+  version = "2.5.1";
+
+  src = fetchFromGitHub {
+    owner = "mike-engel";
+    repo = pname;
+    rev = version;
+    sha256 = "1p0c4398kwczwvl4krvfdhg1ixp1gj9nmvzqqv2xlmvrw1qsin8w";
+  };
+
+  cargoSha256 = "005y92acsn5j490jkp23ny7bsjd9ql1glybmbh4cyc8b15hmy618";
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+  meta = with stdenv.lib; {
+    description = "Super fast CLI tool to decode and encode JWTs";
+    homepage = "https://github.com/mike-engel/jwt-cli";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ rycee ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/security/munge/default.nix b/pkgs/tools/security/munge/default.nix
index 2d758aa2aec..ee1858ad284 100644
--- a/pkgs/tools/security/munge/default.nix
+++ b/pkgs/tools/security/munge/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, autoreconfHook, gawk, gnused, libgcrypt, zlib, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "munge-0.5.13";
+  name = "munge-0.5.14";
 
   src = fetchFromGitHub {
     owner = "dun";
     repo = "munge";
     rev = name;
-    sha256 = "1c4ff3d8ad3inbliszr4slym3b4cn19bn6mxm13mzy20jyi2rm70";
+    sha256 = "15h805rwcb9f89dyrkxfclzs41n3ff8x7cc1dbvs8mb0ds682c4j";
   };
 
   nativeBuildInputs = [ autoreconfHook gawk gnused ];
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix
index 1b66dab35c8..f88c533d71d 100644
--- a/pkgs/tools/security/nmap/default.nix
+++ b/pkgs/tools/security/nmap/default.nix
@@ -1,24 +1,16 @@
 { stdenv, fetchurl, fetchpatch, libpcap, pkgconfig, openssl, lua5_3
+, pcre, liblinear, libssh2
 , graphicalSupport ? false
 , libX11 ? null
 , gtk2 ? null
-, withPython ? false # required for the `ndiff` binary
-, python2Packages ? null
+, python2 ? null
 , makeWrapper ? null
 , withLua ? true
 }:
 
-assert withPython -> python2Packages != null;
-
 with stdenv.lib;
 
-let
-
-  # Zenmap (the graphical program) also requires Python,
-  # so automatically enable pythonSupport if graphicalSupport is requested.
-  pythonSupport = withPython || graphicalSupport;
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "nmap${optionalString graphicalSupport "-graphical"}-${version}";
   version = "7.80";
 
@@ -48,10 +40,7 @@ in stdenv.mkDerivation rec {
 
   configureFlags = [
     (if withLua then "--with-liblua=${lua5_3}" else "--without-liblua")
-  ]
-    ++ optional (!pythonSupport) "--without-ndiff"
-    ++ optional (!graphicalSupport) "--without-zenmap"
-    ;
+  ] ++ optionals (!graphicalSupport) [ "--without-ndiff" "--without-zenmap" ];
 
   makeFlags = optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "AR=${stdenv.cc.bintools.targetPrefix}ar"
@@ -59,18 +48,22 @@ in stdenv.mkDerivation rec {
     "CC=${stdenv.cc.targetPrefix}gcc"
   ];
 
-  postInstall = optionalString pythonSupport ''
-      wrapProgram $out/bin/ndiff --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH"
-  '' + optionalString graphicalSupport ''
-      wrapProgram $out/bin/zenmap --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" --prefix PYTHONPATH : $(toPythonPath $pygtk)/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath $pygobject)/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath $pycairo)/gtk-2.0
+  pythonPath = with python2.pkgs; optionals graphicalSupport  [
+    pygtk pysqlite pygobject2 pycairo
+  ];
+
+  nativeBuildInputs = [ pkgconfig ] ++ optionals graphicalSupport [ python2.pkgs.wrapPython ];
+  buildInputs = [ pcre liblinear libssh2 libpcap openssl ] ++ optionals graphicalSupport (with python2.pkgs; [
+    python2 libX11 gtk2
+  ]);
+
+  postInstall = optionalString graphicalSupport ''
+    buildPythonPath "$out $pythonPath"
+    patchPythonScript $out/bin/ndiff
+    patchPythonScript $out/bin/zenmap
   '';
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = with python2Packages; [ libpcap openssl ]
-    ++ optionals pythonSupport [ makeWrapper python ]
-    ++ optionals graphicalSupport [
-      libX11 gtk2 pygtk pysqlite pygobject2 pycairo
-    ];
+  enableParallelBuilding = true;
 
   doCheck = false; # fails 3 tests, probably needs the net
 
diff --git a/pkgs/tools/security/nmap/qt.nix b/pkgs/tools/security/nmap/qt.nix
index f873c475bbf..2dcd7fed0c4 100644
--- a/pkgs/tools/security/nmap/qt.nix
+++ b/pkgs/tools/security/nmap/qt.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, makeWrapper
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
 , dnsutils, nmap
 , qtbase, qtscript, qtwebengine }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "10wqyrjzmad1g7lqa65rymbkna028xbp4xcpj442skw8gyrs3994";
   };
 
-  nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
 
   buildInputs = [ qtbase qtscript qtwebengine ];
 
diff --git a/pkgs/tools/security/pass/default.nix b/pkgs/tools/security/pass/default.nix
index 5d0e94bc803..54a8f4de7d7 100644
--- a/pkgs/tools/security/pass/default.nix
+++ b/pkgs/tools/security/pass/default.nix
@@ -111,6 +111,12 @@ let
     '' + stdenv.lib.optionalString stdenv.isDarwin ''
       # 'pass edit' uses hdid, which is not available from the sandbox.
       rm -f tests/t0200-edit-tests.sh
+      rm -f tests/t0010-generate-tests.sh
+      rm -f tests/t0020-show-tests.sh
+      rm -f tests/t0050-mv-tests.sh
+      rm -f tests/t0100-insert-tests.sh
+      rm -f tests/t0300-reencryption.sh
+      rm -f tests/t0400-grep.sh
     '';
 
     doCheck = false;
diff --git a/pkgs/tools/security/pcsctools/default.nix b/pkgs/tools/security/pcsctools/default.nix
index 24519654e9a..fa53b91a02f 100644
--- a/pkgs/tools/security/pcsctools/default.nix
+++ b/pkgs/tools/security/pcsctools/default.nix
@@ -5,11 +5,11 @@
 let deps = lib.makeBinPath [ wget coreutils ];
 
 in stdenv.mkDerivation rec {
-  name = "pcsc-tools-1.5.4";
+  name = "pcsc-tools-1.5.5";
 
   src = fetchurl {
     url = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/${name}.tar.bz2";
-    sha256 = "14vw6ya8gzyw3lzyrsvfcxx7qm7ry39fbxcdqqh552c1lyxnm7n3";
+    sha256 = "01251m8hf7by8rw8fayhjxmcqvi6dp150680fpf89bqycha2vgqv";
   };
 
   buildInputs = [ udev dbus perlPackages.perl pcsclite ];
diff --git a/pkgs/tools/security/rage/default.nix b/pkgs/tools/security/rage/default.nix
new file mode 100644
index 00000000000..63cc2972a58
--- /dev/null
+++ b/pkgs/tools/security/rage/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rage";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "str4d";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ri4rfhy1wl0cppi2cp97kkiz08x2f072yfahn2kv9r4v1i9f4a7";
+  };
+
+  cargoSha256 = "02adwvcvha83zcvc5n7p88l7wmkg52j2xhznmhabc0zn328as2yd";
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with stdenv.lib; {
+    description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability";
+    homepage = "https://github.com/str4d/rage";
+    license = licenses.asl20;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 527c8064bac..819b9688924 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.1.6";
+  version = "0.4.2.5";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "0wgdid8w7srd218hh4rwslzdx2ickxw1pg18p2wry1r6wi65521a";
+    sha256 = "1hnqg6psf7shcmlvfk44mkpaz7v66mify3cnx7mzl23q5s37anad";
   };
 
   outputs = [ "out" "geoip" ];
@@ -34,6 +34,8 @@ stdenv.mkDerivation rec {
     substituteInPlace contrib/client-tools/torify \
       --replace 'pathfind torsocks' true          \
       --replace 'exec torsocks' 'exec ${torsocks}/bin/torsocks'
+
+    patchShebangs ./scripts/maint/checkShellScripts.sh
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 11b0b067ccb..3b209d5c068 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "vault";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "052aj79gwmydc7ph1g567cbssqf8dsmqxad47k5hc5sc58bx7c93";
+    sha256 = "17zymmm1r4yxwazn2qx2l01i7g91rn40h7hzgwf0pr6pwmdxvkzg";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
diff --git a/pkgs/tools/system/bfs/default.nix b/pkgs/tools/system/bfs/default.nix
index a304fce352f..1387a6c6ed1 100644
--- a/pkgs/tools/system/bfs/default.nix
+++ b/pkgs/tools/system/bfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bfs";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     repo = "bfs";
     owner = "tavianator";
     rev = version;
-    sha256 = "1yp8zaj2rqd1df20wxym1x7q5d3lxqwalazbvmfnwqn5y4m368y3";
+    sha256 = "04jgah6yvz3i2bwrv1ki2nmj1yinba7djbfq8n8ism4gffsza9dz";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ libcap acl ];
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index 86aa5adb6f8..acc3990378f 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "facter";
-  version = "3.14.6";
+  version = "3.14.7";
 
   src = fetchFromGitHub {
-    sha256 = "1zfff1mpdwnlnm8dmmlvysw2zdsnglgk5nvhhzx8zyk0zyz0nj54";
+    sha256 = "1x71ynnp8l5bf6m1a56rwcjya2swrhpxmd0cg9ndjplam6zys2v7";
     rev = version;
     repo = pname;
     owner = "puppetlabs";
diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix
index 12e54b1b22e..1b68273a570 100644
--- a/pkgs/tools/system/htop/default.nix
+++ b/pkgs/tools/system/htop/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchurl, stdenv, ncurses,
-IOKit, python }:
+IOKit, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "htop";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr";
   };
 
-  nativeBuildInputs = [ python ];
+  nativeBuildInputs = [ python3 ];
   buildInputs =
     [ ncurses ] ++
     lib.optionals stdenv.isDarwin [ IOKit ];
diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix
index d323f048ba0..048af14efb1 100644
--- a/pkgs/tools/system/hwinfo/default.nix
+++ b/pkgs/tools/system/hwinfo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hwinfo";
-  version = "21.67";
+  version = "21.68";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = version;
-    sha256 = "1fvlrqx1wgl79a9j3xhhhdihj4lkpbrchfsc27il0p52fynn4dji";
+    sha256 = "0x63rkyl16918l8yf0azy2lyxaqy8nc6iafid89acvxn32j146rg";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix
index 7c5b9a18966..9d3cbbf79eb 100644
--- a/pkgs/tools/system/rsyslog/default.nix
+++ b/pkgs/tools/system/rsyslog/default.nix
@@ -4,6 +4,7 @@
 , libgcrypt ? null, liblognorm ? null, openssl ? null, librelp ? null, libksi ? null
 , liblogging ? null, libnet ? null, hadoop ? null, rdkafka ? null
 , libmongo-client ? null, czmq ? null, rabbitmq-c ? null, hiredis ? null, mongoc ? null
+, libmaxminddb ? null
 }:
 
 with stdenv.lib;
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
     fastJson libestr json_c zlib pythonPackages.docutils libkrb5 jemalloc
     postgresql libdbi net-snmp libuuid curl gnutls libgcrypt liblognorm openssl
     librelp libksi liblogging libnet hadoop rdkafka libmongo-client czmq
-    rabbitmq-c hiredis mongoc
+    rabbitmq-c hiredis mongoc libmaxminddb
   ] ++ stdenv.lib.optional (libmysqlclient != null) libmysqlclient
     ++ stdenv.lib.optional stdenv.isLinux systemd;
 
@@ -61,6 +62,7 @@ stdenv.mkDerivation rec {
     (mkFlag true                      "rsyslogd")
     (mkFlag true                      "mail")
     (mkFlag (liblognorm != null)      "mmnormalize")
+    (mkFlag (libmaxminddb != null)    "mmdblookup")
     (mkFlag true                      "mmjsonparse")
     (mkFlag true                      "mmaudit")
     (mkFlag true                      "mmanon")
diff --git a/pkgs/tools/system/s-tui/default.nix b/pkgs/tools/system/s-tui/default.nix
index 063a338f6e8..924269b6637 100644
--- a/pkgs/tools/system/s-tui/default.nix
+++ b/pkgs/tools/system/s-tui/default.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonPackage rec {
   pname = "s-tui";
-  version = "0.8.3";
+  version = "1.0.0";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "00lsh2v4i8rwfyjyxx5lijd6rnk9smcfffhzg5sv94ijpcnh216m";
+    sha256 = "0r5yhlsi5xiy7ii1w4kqkaxz9069v5bbfwi3x3xnxhk51yjfgr8n";
   };
 
   propagatedBuildInputs = with pythonPackages; [
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index b01317a532f..105a2d3308f 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "3.13.0";
+  version = "3.15.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "01mrqqz2rv6abdsk80nxizsm5h68m12bqkdsjyqfzyxl0kn7zs0v";
+    sha256 = "12nsrl8nvg52mi136m7ayvaivwjapn7ry95137ynj1njy2w990hm";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
     homepage = https://github.com/JimmXinu/FanFicFare;
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ lucas8 ];
+    maintainers = with maintainers; [ dwarfmaster ];
     inherit version;
   };
 }
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index f6ca3a7d760..8d9e44f1b86 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "4.7";
+  version = "4.8";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "08200f9vk157jv27lmm89rsf9r05sb6jxcmnphrpz1hxykixd294";
+    sha256 = "0xhzrrw52mqsv3n1rr98p8zi84i63gpcd104ahkkhhyzwvy9kprc";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/pkgs/tools/text/mawk/default.nix b/pkgs/tools/text/mawk/default.nix
index fbfc032445b..81d11e2aae7 100644
--- a/pkgs/tools/text/mawk/default.nix
+++ b/pkgs/tools/text/mawk/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "mawk-1.3.4-20190203";
+  name = "mawk-1.3.4-20200106";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/mawk/${name}.tgz"
       "https://invisible-mirror.net/archives/mawk/${name}.tgz"
     ];
-    sha256 = "0h5qlslaj5czz4v25hqg8a6kg4c5mlkmdpxhhvpvp1ci08ab7b6s";
+    sha256 = "1dhmn0l1c122a4bb07a1lwzrzpjdhsbdbllb1a9gwvv2lw5j9qgi";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix
index 626963bc601..6b19251acf8 100644
--- a/pkgs/tools/text/mdcat/default.nix
+++ b/pkgs/tools/text/mdcat/default.nix
@@ -2,26 +2,28 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    sha256 = "1q8h6pc1i89j1zl4s234inl9v95vsdrry1fzlis89sl2mnbv8ywy";
+    sha256 = "1x9c3cj3y8wvwr74kbz6nrdh61rinr98gcp3hnjpi6c3vg3xx4wh";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "1hxsfls6fpllc9yg5ib3qz6pa62j1y1va8a6356j6812csk4ifnn";
+  cargoSha256 = "1kc434pa72n9xll2r4ddmd9xdwv3ls36cwsmdry392j41zmics51";
 
   checkInputs = [ ansi2html ];
   checkPhase = ''
     # Skip tests that use the network and that include files.
-    cargo test -- --skip terminal::iterm2 --skip terminal::resources::tests::remote \
+    cargo test -- --skip terminal::iterm2 \
       --skip magic::tests::detect_mimetype_of_svg_image \
-      --skip magic::tests::detect_mimetype_of_png_image
+      --skip magic::tests::detect_mimetype_of_png_image \
+      --skip resources::tests::read_url_with_http_url_fails_when_status_404 \
+      --skip resources::tests::read_url_with_http_url_returns_content_when_status_200
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/text/ocrmypdf/default.nix b/pkgs/tools/text/ocrmypdf/default.nix
index 13353daa171..cdc6878bb5a 100644
--- a/pkgs/tools/text/ocrmypdf/default.nix
+++ b/pkgs/tools/text/ocrmypdf/default.nix
@@ -10,6 +10,7 @@
 , stdenv
 , tesseract4
 , unpaper
+, substituteAll
 }:
 
 let
@@ -28,14 +29,14 @@ let
 
 in buildPythonApplication rec {
   pname = "ocrmypdf";
-  version = "9.2.0";
+  version = "9.5.0";
   disabled = ! python3Packages.isPy3k;
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
     repo = "OCRmyPDF";
     rev = "v${version}";
-    sha256 = "1mvc6x5nn242z65pxv39ch71vaikgi89bb0sjbfy2jbw91vk41xa";
+    sha256 = "0rvwxykyscpcvfgm8zzyvjgzl9x9ddi9cxmqyxrc031mxpc0lzyy";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -68,11 +69,12 @@ in buildPythonApplication rec {
     setuptools
   ] ++ runtimeDeps;
 
-  postPatch = ''
-    substituteInPlace src/ocrmypdf/leptonica.py \
-      --replace "lept = ffi.dlopen(_libpath)" \
-      'lept = ffi.dlopen("${stdenv.lib.makeLibraryPath [leptonica]}/liblept${stdenv.hostPlatform.extensions.sharedLibrary}")'
-  '';
+  patches = [
+    (substituteAll {
+      src = ./liblept.patch;
+      liblept = "${stdenv.lib.getLib leptonica}/lib/liblept${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
 
   # The tests take potentially 20+ minutes, depending on machine
   doCheck = false;
diff --git a/pkgs/tools/text/ocrmypdf/liblept.patch b/pkgs/tools/text/ocrmypdf/liblept.patch
new file mode 100644
index 00000000000..ed413a8b37b
--- /dev/null
+++ b/pkgs/tools/text/ocrmypdf/liblept.patch
@@ -0,0 +1,13 @@
+diff --git a/src/ocrmypdf/leptonica.py b/src/ocrmypdf/leptonica.py
+index 328b063..b993cc9 100644
+--- a/src/ocrmypdf/leptonica.py
++++ b/src/ocrmypdf/leptonica.py
+@@ -46,7 +46,7 @@ if os.name == 'nt':
+     os.environ['PATH'] = shim_paths_with_program_files()
+ else:
+     libname = 'lept'
+-_libpath = find_library(libname)
++_libpath = '@liblept@'
+ if not _libpath:
+     raise MissingDependencyError(
+         """
diff --git a/pkgs/tools/text/shfmt/default.nix b/pkgs/tools/text/shfmt/default.nix
index 6f29cbc18f2..0bcd663ae5a 100644
--- a/pkgs/tools/text/shfmt/default.nix
+++ b/pkgs/tools/text/shfmt/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "shfmt";
-  version = "2.6.4";
-
-  goPackagePath = "mvdan.cc/sh";
-  subPackages = ["cmd/shfmt"];
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "1jifac0fi0sz6wzdgvk6s9xwpkdng2hj63ldbaral8n2j9km17hh";
+    sha256 = "1y6n2xi8m579xksnnsdzb4zvcvij48kywjfqzp7qm43ni8g7w9a8";
   };
 
+  modSha256 = "1ll2cxhgf8hh19wzdykgc81c4yfcp8bzmfaif08nvvb63rhjdb5y";
+  subPackages = ["cmd/shfmt"];
+
   meta = with stdenv.lib; {
     homepage = https://github.com/mvdan/sh;
     description = "A shell parser and formatter";
diff --git a/pkgs/tools/text/unoconv/default.nix b/pkgs/tools/text/unoconv/default.nix
index 879f903ade9..aed7554e170 100644
--- a/pkgs/tools/text/unoconv/default.nix
+++ b/pkgs/tools/text/unoconv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python3, libreoffice-unwrapped, asciidoc, makeWrapper
+{ stdenv, fetchFromGitHub, python3, libreoffice-unwrapped, asciidoc, makeWrapper
 # whether to install odt2pdf/odt2doc/... symlinks to unoconv
 , installSymlinks ? true
 }:
@@ -7,19 +7,18 @@
 # will not be able to load the pyuno module from libreoffice).
 
 stdenv.mkDerivation rec {
-  name = "unoconv-0.6";
-
-  src = fetchurl {
-    url = "http://dag.wieers.com/home-made/unoconv/${name}.tar.gz";
-    sha256 = "1m3kv942zf5rzyrbkil0nhmyq9mm3007y64bb3s7w88mhr5n23kr";
+  pname = "unoconv";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "unoconv";
+    repo = "unoconv";
+    rev = version;
+    sha256 = "0mxrzzg9bl42lsiw8hcq624qbq8jrhcgmnal7ys68dj0l901snk3";
   };
 
   buildInputs = [ asciidoc makeWrapper ];
 
-  # We need to use python3 because libreoffice 4.x uses it. This patch comes
-  # from unoconv.git, so it will be a part of the next release.
-  patches = [ ./unoconv-python3.patch ];
-
   preBuild = ''
     makeFlags=prefix="$out"
   '';
diff --git a/pkgs/tools/text/unoconv/unoconv-python3.patch b/pkgs/tools/text/unoconv/unoconv-python3.patch
deleted file mode 100644
index 2c6e9c71941..00000000000
--- a/pkgs/tools/text/unoconv/unoconv-python3.patch
+++ /dev/null
@@ -1,374 +0,0 @@
-commit fc59dd90f03cf88f4cf16c07204809f2239284ee
-Author: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
-Date:   Thu Dec 20 00:02:53 2012 +0100
-
-    Add support for python3
-    
-    Libreoffice 4.0 will switch its internal python version to 3.3.0
-    so it's to support that.
-    
-    Porting done automatically 2to3 plus print_function import added
-    manually. Tested on both libreoffice master with internal python
-    and with libreoffince 3.6.4 on debian with system python 2.7.
-    
-    This bumps the minimal python version to 2.6 since 2.5 does not
-    have the print function.
-
-diff --git a/unoconv b/unoconv
-index 30e6706..f72cf08 100755
---- a/unoconv
-+++ b/unoconv
-@@ -14,6 +14,8 @@
- ### Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- ### Copyright 2007-2010 Dag Wieers <dag@wieers.com>
- 
-+from __future__ import print_function
-+
- from distutils.version import LooseVersion
- import getopt
- import glob
-@@ -77,11 +79,11 @@ def find_offices():
-     else:
- 
-         if os.name in ( 'nt', 'os2' ):
--            if 'PROGRAMFILES' in os.environ.keys():
-+            if 'PROGRAMFILES' in list(os.environ.keys()):
-                 extrapaths += glob.glob(os.environ['PROGRAMFILES']+'\\LibreOffice*') + \
-                               glob.glob(os.environ['PROGRAMFILES']+'\\OpenOffice.org*')
- 
--            if 'PROGRAMFILES(X86)' in os.environ.keys():
-+            if 'PROGRAMFILES(X86)' in list(os.environ.keys()):
-                 extrapaths += glob.glob(os.environ['PROGRAMFILES(X86)']+'\\LibreOffice*') + \
-                               glob.glob(os.environ['PROGRAMFILES(X86)']+'\\OpenOffice.org*')
- 
-@@ -233,18 +235,18 @@ def office_environ(office):
- 
- def debug_office():
-     if 'URE_BOOTSTRAP' in os.environ:
--        print >>sys.stderr, 'URE_BOOTSTRAP=%s' % os.environ['URE_BOOTSTRAP']
-+        print('URE_BOOTSTRAP=%s' % os.environ['URE_BOOTSTRAP'], file=sys.stderr)
-     if 'UNO_PATH' in os.environ:
--        print >>sys.stderr, 'UNO_PATH=%s' % os.environ['UNO_PATH']
-+        print('UNO_PATH=%s' % os.environ['UNO_PATH'], file=sys.stderr)
-     if 'UNO_TYPES' in os.environ:
--        print >>sys.stderr, 'UNO_TYPES=%s' % os.environ['UNO_TYPES']
--    print 'PATH=%s' % os.environ['PATH']
-+        print('UNO_TYPES=%s' % os.environ['UNO_TYPES'], file=sys.stderr)
-+    print('PATH=%s' % os.environ['PATH'])
-     if 'PYTHONHOME' in os.environ:
--        print >>sys.stderr, 'PYTHONHOME=%s' % os.environ['PYTHONHOME']
-+        print('PYTHONHOME=%s' % os.environ['PYTHONHOME'], file=sys.stderr)
-     if 'PYTHONPATH' in os.environ:
--        print >>sys.stderr, 'PYTHONPATH=%s' % os.environ['PYTHONPATH']
-+        print('PYTHONPATH=%s' % os.environ['PYTHONPATH'], file=sys.stderr)
-     if 'LD_LIBRARY_PATH' in os.environ:
--        print >>sys.stderr, 'LD_LIBRARY_PATH=%s' % os.environ['LD_LIBRARY_PATH']
-+        print('LD_LIBRARY_PATH=%s' % os.environ['LD_LIBRARY_PATH'], file=sys.stderr)
- 
- def python_switch(office):
-     if office.pythonhome:
-@@ -335,11 +337,11 @@ class FmtList:
-         return ret
- 
-     def display(self, doctype):
--        print >>sys.stderr, "The following list of %s formats are currently available:\n" % doctype
-+        print("The following list of %s formats are currently available:\n" % doctype, file=sys.stderr)
-         for fmt in self.list:
-             if fmt.doctype == doctype:
--                print >>sys.stderr, "  %-8s - %s" % (fmt.name, fmt)
--        print >>sys.stderr
-+                print("  %-8s - %s" % (fmt.name, fmt), file=sys.stderr)
-+        print(file=sys.stderr)
- 
- fmts = FmtList()
- 
-@@ -530,14 +532,14 @@ class Options:
-                  'outputpath', 'password=', 'pipe=', 'port=', 'server=',
-                  'timeout=', 'show', 'stdout', 'template', 'verbose',
-                  'version'] )
--        except getopt.error, exc:
--            print 'unoconv: %s, try unoconv -h for a list of all the options' % str(exc)
-+        except getopt.error as exc:
-+            print('unoconv: %s, try unoconv -h for a list of all the options' % str(exc))
-             sys.exit(255)
- 
-         for opt, arg in opts:
-             if opt in ['-h', '--help']:
-                 self.usage()
--                print
-+                print()
-                 self.help()
-                 sys.exit(1)
-             elif opt in ['-c', '--connection']:
-@@ -562,7 +564,7 @@ class Options:
-                         except ValueError:
-                             self.exportfilter.append( PropertyValue( name, 0, value, 0 ) )
-                 else:
--                    print >>sys.stderr, 'Warning: Option %s cannot be parsed, ignoring.' % arg
-+                    print('Warning: Option %s cannot be parsed, ignoring.' % arg, file=sys.stderr)
-             elif opt in ['-f', '--format']:
-                 self.format = arg
-             elif opt in ['-i', '--import']:
-@@ -581,7 +583,7 @@ class Options:
-                         except ValueError:
-                             self.importfilter.append( PropertyValue( name, 0, value, 0 ) )
-                 else:
--                    print >>sys.stderr, 'Warning: Option %s cannot be parsed, ignoring.' % arg
-+                    print('Warning: Option %s cannot be parsed, ignoring.' % arg, file=sys.stderr)
-             elif opt in ['-l', '--listener']:
-                 self.listener = True
-             elif opt in ['-n', '--no-launch']:
-@@ -589,7 +591,7 @@ class Options:
-             elif opt in ['-o', '--output']:
-                 self.output = arg
-             elif opt in ['--outputpath']:
--                print >>sys.stderr, 'Warning: This option is deprecated by --output.'
-+                print('Warning: This option is deprecated by --output.', file=sys.stderr)
-                 self.output = arg
-             elif opt in ['--password']:
-                 self.password = arg
-@@ -615,13 +617,13 @@ class Options:
- 
-         ### Enable verbosity
-         if self.verbose >= 2:
--            print >>sys.stderr, 'Verbosity set to level %d' % self.verbose
-+            print('Verbosity set to level %d' % self.verbose, file=sys.stderr)
- 
-         self.filenames = args
- 
-         if not self.listener and not self.showlist and self.doctype != 'list' and not self.filenames:
--            print >>sys.stderr, 'unoconv: you have to provide a filename as argument'
--            print >>sys.stderr, 'Try `unoconv -h\' for more information.'
-+            print('unoconv: you have to provide a filename as argument', file=sys.stderr)
-+            print('Try `unoconv -h\' for more information.', file=sys.stderr)
-             sys.exit(255)
- 
-         ### Set connection string
-@@ -659,21 +661,21 @@ class Options:
-         ### Get office product information
-         product = uno.getComponentContext().ServiceManager.createInstance("com.sun.star.configuration.ConfigurationProvider").createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", UnoProps(nodepath="/org.openoffice.Setup/Product"))
- 
--        print 'unoconv %s' % VERSION
--        print 'Written by Dag Wieers <dag@wieers.com>'
--        print 'Homepage at http://dag.wieers.com/home-made/unoconv/'
--        print
--        print 'platform %s/%s' % (os.name, sys.platform)
--        print 'python %s' % sys.version
--        print product.ooName, product.ooSetupVersion
-+        print('unoconv %s' % VERSION)
-+        print('Written by Dag Wieers <dag@wieers.com>')
-+        print('Homepage at http://dag.wieers.com/home-made/unoconv/')
-+        print()
-+        print('platform %s/%s' % (os.name, sys.platform))
-+        print('python %s' % sys.version)
-+        print(product.ooName, product.ooSetupVersion)
- #        print
- #        print 'build revision $Rev$'
- 
-     def usage(self):
--        print >>sys.stderr, 'usage: unoconv [options] file [file2 ..]'
-+        print('usage: unoconv [options] file [file2 ..]', file=sys.stderr)
- 
-     def help(self):
--        print >>sys.stderr, '''Convert from and to any format supported by LibreOffice
-+        print('''Convert from and to any format supported by LibreOffice
- 
- unoconv options:
-   -c, --connection=string  use a custom connection string
-@@ -698,7 +700,7 @@ unoconv options:
-   -t, --template=file      import the styles from template (.ott)
-   -T, --timeout=secs       timeout after secs if connection to listener fails
-   -v, --verbose            be more and more verbose (-vvv for debugging)
--'''
-+''', file=sys.stderr)
- 
- class Convertor:
-     def __init__(self):
-@@ -714,7 +716,7 @@ class Convertor:
-         info(3, 'Connection type: %s' % op.connection)
-         try:
-             unocontext = resolver.resolve("uno:%s" % op.connection)
--        except NoConnectException, e:
-+        except NoConnectException as e:
- #            info(3, "Existing listener not found.\n%s" % e)
-             info(3, "Existing listener not found.")
- 
-@@ -749,7 +751,7 @@ class Convertor:
-                         raise
-                 else:
-                     error("Failed to connect to %s (pid=%s) in %d seconds.\n%s" % (office.binary, ooproc.pid, op.timeout, e))
--            except Exception, e:
-+            except Exception as e:
-                 raise
-                 error("Launch of %s failed.\n%s" % (office.binary, e))
- 
-@@ -799,9 +801,9 @@ class Convertor:
-         ### No format found, throw error
-         if not outputfmt:
-             if doctype:
--                print >>sys.stderr, 'unoconv: format [%s/%s] is not known to unoconv.' % (op.doctype, op.format)
-+                print('unoconv: format [%s/%s] is not known to unoconv.' % (op.doctype, op.format), file=sys.stderr)
-             else:
--                print >>sys.stderr, 'unoconv: format [%s] is not known to unoconv.' % op.format
-+                print('unoconv: format [%s] is not known to unoconv.' % op.format, file=sys.stderr)
-             die(1)
- 
-         return outputfmt
-@@ -813,10 +815,10 @@ class Convertor:
-         outputfmt = self.getformat(inputfn)
- 
-         if op.verbose > 0:
--            print >>sys.stderr, 'Input file:', inputfn
-+            print('Input file:', inputfn, file=sys.stderr)
- 
-         if not os.path.exists(inputfn):
--            print >>sys.stderr, 'unoconv: file `%s\' does not exist.' % inputfn
-+            print('unoconv: file `%s\' does not exist.' % inputfn, file=sys.stderr)
-             exitcode = 1
- 
-         try:
-@@ -854,7 +856,7 @@ class Convertor:
-                     templateurl = unohelper.absolutize(self.cwd, unohelper.systemPathToFileUrl(op.template))
-                     document.StyleFamilies.loadStylesFromURL(templateurl, templateprops)
-                 else:
--                    print >>sys.stderr, 'unoconv: template file `%s\' does not exist.' % op.template
-+                    print('unoconv: template file `%s\' does not exist.' % op.template, file=sys.stderr)
-                     exitcode = 1
- 
-             ### Update document links
-@@ -924,40 +926,40 @@ class Convertor:
- 
-             try:
-                 document.storeToURL(outputurl, tuple(outputprops) )
--            except IOException, e:
-+            except IOException as e:
-                 raise UnoException("Unable to store document to %s (ErrCode %d)\n\nProperties: %s" % (outputurl, e.ErrCode, outputprops), None)
- 
-             phase = "dispose"
-             document.dispose()
-             document.close(True)
- 
--        except SystemError, e:
-+        except SystemError as e:
-             error("unoconv: SystemError during %s phase:\n%s" % (phase, e))
-             exitcode = 1
- 
--        except RuntimeException, e:
-+        except RuntimeException as e:
-             error("unoconv: RuntimeException during %s phase:\nOffice probably died. %s" % (phase, e))
-             exitcode = 6
- 
--        except DisposedException, e:
-+        except DisposedException as e:
-             error("unoconv: DisposedException during %s phase:\nOffice probably died. %s" % (phase, e))
-             exitcode = 7
- 
--        except IllegalArgumentException, e:
-+        except IllegalArgumentException as e:
-             error("UNO IllegalArgument during %s phase:\nSource file cannot be read. %s" % (phase, e))
-             exitcode = 8
- 
--        except IOException, e:
-+        except IOException as e:
- #            for attr in dir(e): print '%s: %s', (attr, getattr(e, attr))
-             error("unoconv: IOException during %s phase:\n%s" % (phase, e.Message))
-             exitcode = 3
- 
--        except CannotConvertException, e:
-+        except CannotConvertException as e:
- #            for attr in dir(e): print '%s: %s', (attr, getattr(e, attr))
-             error("unoconv: CannotConvertException during %s phase:\n%s" % (phase, e.Message))
-             exitcode = 4
- 
--        except UnoException, e:
-+        except UnoException as e:
-             if hasattr(e, 'ErrCode'):
-                 error("unoconv: UnoException during %s phase in %s (ErrCode %d)" % (phase, repr(e.__class__), e.ErrCode))
-                 exitcode = e.ErrCode
-@@ -982,7 +984,7 @@ class Listener:
-             product = self.svcmgr.createInstance("com.sun.star.configuration.ConfigurationProvider").createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", UnoProps(nodepath="/org.openoffice.Setup/Product"))
-             try:
-                 unocontext = resolver.resolve("uno:%s" % op.connection)
--            except NoConnectException, e:
-+            except NoConnectException as e:
-                 pass
-             else:
-                 info(1, "Existing %s listener found, nothing to do." % product.ooName)
-@@ -991,25 +993,25 @@ class Listener:
-                 subprocess.call([office.binary, "-headless", "-invisible", "-nocrashreport", "-nodefault", "-nologo", "-nofirststartwizard", "-norestore", "-accept=%s" % op.connection], env=os.environ)
-             else:
-                 subprocess.call([office.binary, "--headless", "--invisible", "--nocrashreport", "--nodefault", "--nologo", "--nofirststartwizard", "--norestore", "--accept=%s" % op.connection], env=os.environ)
--        except Exception, e:
-+        except Exception as e:
-             error("Launch of %s failed.\n%s" % (office.binary, e))
-         else:
-             info(1, "Existing %s listener found, nothing to do." % product.ooName)
- 
- def error(msg):
-     "Output error message"
--    print >>sys.stderr, msg
-+    print(msg, file=sys.stderr)
- 
- def info(level, msg):
-     "Output info message"
-     if 'op' not in globals():
-         pass
-     elif op.verbose >= 3 and level >= 3:
--        print >>sys.stderr, "DEBUG:", msg
-+        print("DEBUG:", msg, file=sys.stderr)
-     elif not op.stdout and level <= op.verbose:
--        print >>sys.stdout, msg
-+        print(msg, file=sys.stdout)
-     elif level <= op.verbose:
--        print >>sys.stderr, msg
-+        print(msg, file=sys.stderr)
- 
- def die(ret, msg=None):
-     "Print optional error and exit with errorcode"
-@@ -1031,7 +1033,7 @@ def die(ret, msg=None):
-                     subprocess.Popen([office.binary, "--headless", "--invisible", "--nocrashreport", "--nodefault", "--nofirststartwizard", "--nologo", "--norestore", "--unaccept=%s" % op.connection], env=os.environ)
-                 ooproc.wait()
-                 info(2, '%s listener successfully disabled.' % product.ooName)
--            except Exception, e:
-+            except Exception as e:
-                 error("Terminate using %s failed.\n%s" % (office.binary, e))
- 
-         ### If there is no GUI attached to the instance, terminate instance
-@@ -1080,7 +1082,7 @@ def main():
-             for inputfn in op.filenames:
-                 convertor.convert(inputfn)
- 
--    except NoConnectException, e:
-+    except NoConnectException as e:
-         error("unoconv: could not find an existing connection to LibreOffice at %s:%s." % (op.server, op.port))
-         if op.connection:
-             info(0, "Please start an LibreOffice instance on server '%s' by doing:\n\n    unoconv --listener --server %s --port %s\n\nor alternatively:\n\n    soffice -nologo -nodefault -accept=\"%s\"" % (op.server, op.server, op.port, op.connection))
-@@ -1110,14 +1112,14 @@ if __name__ == '__main__':
-             break
-         except:
- #            debug_office()
--            print >>sys.stderr, "unoconv: Cannot find a suitable pyuno library and python binary combination in %s" % of
--            print >>sys.stderr, "ERROR:", sys.exc_info()[1]
--            print >>sys.stderr
-+            print("unoconv: Cannot find a suitable pyuno library and python binary combination in %s" % of, file=sys.stderr)
-+            print("ERROR:", sys.exc_info()[1], file=sys.stderr)
-+            print(file=sys.stderr)
-     else:
- #        debug_office()
--        print >>sys.stderr, "unoconv: Cannot find a suitable office installation on your system."
--        print >>sys.stderr, "ERROR: Please locate your office installation and send your feedback to:"
--        print >>sys.stderr, "       http://github.com/dagwieers/unoconv/issues"
-+        print("unoconv: Cannot find a suitable office installation on your system.", file=sys.stderr)
-+        print("ERROR: Please locate your office installation and send your feedback to:", file=sys.stderr)
-+        print("       https://github.com/dagwieers/unoconv/issues", file=sys.stderr)
-         sys.exit(1)
- 
-     ### Now that we have found a working pyuno library, let's import some classes
-@@ -1160,6 +1162,6 @@ if __name__ == '__main__':
- 
-     try:
-         main()
--    except KeyboardInterrupt, e:
-+    except KeyboardInterrupt as e:
-         die(6, 'Exiting on user request')
-     die(exitcode)
diff --git a/pkgs/tools/typesetting/asciidoctorj/default.nix b/pkgs/tools/typesetting/asciidoctorj/default.nix
index 8eaee977d28..39e7eab34ab 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.1.0";
+  version = "2.2.0";
 
   src = fetchzip {
     url = "http://dl.bintray.com/asciidoctor/maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "19fl4y3xlkmmgf5vyyb3k9p6nyglck9l53r6x12zil01q49g0zba";
+    sha256 = "0akxzfibfa8msnardvyy9hkj2z6sqn7pnwphz6avixdcclg6yxa5";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/typesetting/tex/texlive/UPGRADING.md b/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
index 6c0380fac49..3f37184e5d3 100644
--- a/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
+++ b/pkgs/tools/typesetting/tex/texlive/UPGRADING.md
@@ -28,15 +28,15 @@ To upgrade the package snapshot, follow this process:
 ### Snapshot sources and texlive package database
 
 Mirror the current CTAN archive to our mirror(s) and IPFS (URLs in `default.nix`).
-See <https://tug.org/texlive/acquire-mirror.html> for instructions.
+See https://tug.org/texlive/acquire-mirror.html for instructions.
 
 
 ### Upgrade package information from texlive package database
 
 
-```
-$ curl -L http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz \
-           | xzcat | uniq -u | sed -rn -f ./tl2nix.sed > ./pkgs.nix
+```bash
+curl -L http://mirror.ctan.org/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz \
+         | xzcat | uniq -u | sed -rn -f ./tl2nix.sed > ./pkgs.nix
 ```
 
 This will download a current snapshot of the CTAN package database `texlive.tlpdb.xz`
@@ -52,17 +52,18 @@ Updating the list of fixed hashes requires a local build of *all* packages,
 which is a resource-intensive process:
 
 
-```
+```bash
 # move fixedHashes away, otherwise build will fail on updated packages
-$ mv fixedHashes.nix fixedHashes-old.nix
+mv fixedHashes.nix fixedHashes-old.nix
 # start with empty fixedHashes
-$ echo '{}' > fixedHashes.nix
-$ nix-build ../../../../.. -Q --no-out-link -A texlive.scheme-full.pkgs | ./fixHashes.sh > ./fixedHashes-new.nix
+echo '{}' > fixedHashes.nix
+
+nix-build ../../../../.. -Q --no-out-link -A texlive.scheme-full.pkgs | ./fixHashes.sh > ./fixedHashes-new.nix
+
 # The script wrongly includes the nix store path to `biber`, which is a separate nixpkgs package
-$ grep -v -F '/nix/store/' fixedHashes-new.nix > fixedHashes.nix 
+grep -v -F '/nix/store/' fixedHashes-new.nix > fixedHashes.nix
 ```
 
 ### Commit changes
 
 Commit the updated `pkgs.nix` and `fixedHashes.nix` to the repository.
-