about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools')
-rw-r--r--nixpkgs/pkgs/tools/X11/go-sct/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli2/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/admin/awslogs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix8
-rw-r--r--nixpkgs/pkgs/tools/admin/clair/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/admin/oci-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi/data.nix50
-rwxr-xr-xnixpkgs/pkgs/tools/admin/pulumi/update.sh12
-rw-r--r--nixpkgs/pkgs/tools/admin/sec/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/btrbk/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix87
-rw-r--r--nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix67
-rwxr-xr-xnixpkgs/pkgs/tools/backup/discordchatexporter-cli/updater.sh44
-rw-r--r--nixpkgs/pkgs/tools/backup/partclone/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/backup/rotate-backups/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/backup/tarsnapper/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/isomd5sum/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/games/weidu/default.nix65
-rw-r--r--nixpkgs/pkgs/tools/graphics/adriconf/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/graphics/gifsicle/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/graphviz/base.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/graphviz/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/ploticus/builder.sh33
-rw-r--r--nixpkgs/pkgs/tools/graphics/ploticus/default.nix68
-rw-r--r--nixpkgs/pkgs/tools/graphics/ploticus/set-prefabs-dir.patch11
-rw-r--r--nixpkgs/pkgs/tools/graphics/ploticus/use-gd-package.patch34
-rw-r--r--nixpkgs/pkgs/tools/graphics/xcolor/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/graphics/yaxg/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix71
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/misc/apt-offline/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/barman/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/beats/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/broot/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/complete-alias/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/misc/cpufetch/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/expect/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/flashrom/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/fluent-bit/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/goaccess/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/infracost/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/kepubify/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/latex2html/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/lnav/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/macchina/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/mslink/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/ncdu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/onefetch/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/pdd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pgcenter/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/piston-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/pubs/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/qmk/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/misc/rauc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/tmuxp/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/trash-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/tvnamer/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/yajsv/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/yank/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/ytmdl/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/zellij/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/networking/amass/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/arping/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/bore/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/networking/boundary/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/getmail6/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/gobgp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/kea/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/modem-manager/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/networking/s3cmd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/stunnel/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/tcpdump/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/yggdrasil/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-release/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/fpm/Gemfile.lock32
-rw-r--r--nixpkgs/pkgs/tools/package-management/fpm/gemset.nix71
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-doc/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/nixops/azure-storage/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/age/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/cfssl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/chkrootkit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/dnsx/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/flare-floss/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gpg-tui/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/security/grype/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/keybase/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/knockpy/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/libtpms/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/lynis/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock23
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/gemset.nix34
-rw-r--r--nixpkgs/pkgs/tools/security/rbw/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/saml2aws/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/sipvicious/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/sn0int/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/sslscan/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/stegseek/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/terrascan/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/tor/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/traitor/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/vault/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/security/vault/vault-bin.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/vaultwarden/default.nix (renamed from nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix)15
-rw-r--r--nixpkgs/pkgs/tools/security/vaultwarden/vault.nix (renamed from nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix)10
-rw-r--r--nixpkgs/pkgs/tools/system/fancy-motd/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/hwinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/natscli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/ipc-socket-in-run.patch13
-rw-r--r--nixpkgs/pkgs/tools/system/rocm-smi/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/tm/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/text/chroma/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/text/hottext/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/languagetool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/text/mdcat/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/text/num-utils/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/text/sd/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock55
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix76
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/video/bento4/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/video/svt-av1/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix37
149 files changed, 1541 insertions, 721 deletions
diff --git a/nixpkgs/pkgs/tools/X11/go-sct/default.nix b/nixpkgs/pkgs/tools/X11/go-sct/default.nix
index 8744c493b71c..801ddc96c4a0 100644
--- a/nixpkgs/pkgs/tools/X11/go-sct/default.nix
+++ b/nixpkgs/pkgs/tools/X11/go-sct/default.nix
@@ -21,7 +21,7 @@ buildGoPackage rec {
   meta = with lib; {
     description = "Color temperature setting library and CLI that operates in a similar way to f.lux and Redshift";
     license = licenses.mit;
-    maintainers = with maintainers; [ rvolosatovs cstrahan ];
+    maintainers = with maintainers; [ cstrahan ];
     platforms = platforms.linux ++ platforms.windows;
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/awscli2/default.nix b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
index 0824a26855dd..1ce3cb452b8c 100644
--- a/nixpkgs/pkgs/tools/admin/awscli2/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
@@ -3,12 +3,12 @@ let
   py = python3.override {
     packageOverrides = self: super: {
       botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
-        version = "2.0.0dev112";
+        version = "2.0.0dev122";
         src = fetchFromGitHub {
           owner = "boto";
           repo = "botocore";
-          rev = "221c0aa5dbad42f096e00fed45d2e2071561b1da";
-          sha256 = "sha256-uJCP3bUK/xACQVG4kMBDIIP+zPjre+uWbqWEC/gBTD4=";
+          rev = "8dd916418c8193f56226b7772f263b2435eae27a";
+          sha256 = "sha256-iAZmqnffqrmFuxlQyOpEQzSCcL/hRAjuXKulOXoy4hY=";
         };
       });
       prompt_toolkit = super.prompt_toolkit.overridePythonAttrs (oldAttrs: rec {
@@ -18,34 +18,29 @@ let
           sha256 = "1nr990i4b04rnlw1ghd0xmgvvvhih698mb6lb6jylr76cs7zcnpi";
         };
       });
-      s3transfer = super.s3transfer.overridePythonAttrs (oldAttrs: rec {
-        version = "0.4.2";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "sha256-ywIvSxZVHt67sxo3fT8JYA262nNj2MXbeXbn9Hcy4bI=";
-        };
-      });
     };
   };
 
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.2.4"; # N.B: if you change this, change botocore to a matching version too
+  version = "2.2.14"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = version;
-    sha256 = "sha256-MctW31X012DXY16qS6AP6nLiaAt/cuA8iMwGm0oXi6M=";
+    sha256 = "sha256-LU9Tqzdi8ULZ5y3FbfSXdrip4NcxFkXRCTpVGo05LcM=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace "colorama>=0.2.5,<0.4.4" "colorama>=0.2.5"
-    substituteInPlace setup.py --replace "cryptography>=3.3.2,<3.4.0" "cryptography>=3.3.2"
-    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
-    substituteInPlace setup.py --replace "ruamel.yaml>=0.15.0,<0.16.0" "ruamel.yaml>=0.15.0"
-    substituteInPlace setup.py --replace "wcwidth<0.2.0" "wcwidth"
+    substituteInPlace setup.py \
+      --replace "awscrt==0.11.13" "awscrt" \
+      --replace "colorama>=0.2.5,<0.4.4" "colorama" \
+      --replace "cryptography>=3.3.2,<3.4.0" "cryptography" \
+      --replace "docutils>=0.10,<0.16" "docutils" \
+      --replace "ruamel.yaml>=0.15.0,<0.16.0" "ruamel.yaml" \
+      --replace "wcwidth<0.2.0" "wcwidth"
   '';
 
   checkInputs = [ jsonschema mock nose ];
diff --git a/nixpkgs/pkgs/tools/admin/awslogs/default.nix b/nixpkgs/pkgs/tools/admin/awslogs/default.nix
index d9fd55f32c92..5b61e4828ef6 100644
--- a/nixpkgs/pkgs/tools/admin/awslogs/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awslogs/default.nix
@@ -12,7 +12,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with python3Packages; [
-    boto3 termcolor dateutil docutils setuptools jmespath
+    boto3 termcolor python-dateutil docutils setuptools jmespath
   ];
 
   checkInputs = [ python3Packages.pytestCheckHook ];
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
index 228fb4503cf6..64823278d6da 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -6,7 +6,7 @@ let
     prePatch = (attrs.prePatch or "") + ''
       rm -f azure_bdist_wheel.py tox.ini
       substituteInPlace setup.py \
-        --replace "cryptography>=2.3.1,<3.0.0" "cryptography"
+        --replace "cryptography>=3.2,<3.4" "cryptography"
       sed -i "/azure-namespace-package/c\ " setup.cfg
     '';
 
@@ -119,6 +119,12 @@ let
           portalocker
         ];
 
+        # upstream doesn't update this requirement probably because they use pip
+        postPatch = ''
+          substituteInPlace setup.py \
+            --replace "portalocker~=1.6" "portalocker"
+        '';
+
         # ignore flaky test
         checkPhase = ''
           cd azure
diff --git a/nixpkgs/pkgs/tools/admin/clair/default.nix b/nixpkgs/pkgs/tools/admin/clair/default.nix
index 46989bc24fb0..0298ca29a7c4 100644
--- a/nixpkgs/pkgs/tools/admin/clair/default.nix
+++ b/nixpkgs/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "4.1.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ns02Yi0FJPOCpjr1P5c1KOkRZ8saxQzXg/Zn5vYLztU=";
+    sha256 = "sha256-E04G3EJ0JrOVjtTd3nBHZehzuDrvt6t4hfFdGO92uuk=";
   };
 
-  vendorSha256 = "sha256-aFaeRhg+aLOmS7VFbgdxaEtZcBKn9zCVINad6ahpDCo=";
+  vendorSha256 = "sha256-xgP5IhB9eyKOIBlT5jKDJkUy8lz2UrWmGqqeDhqRawY=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/eksctl/default.nix b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
index 32049fd11b65..9af721f02e56 100644
--- a/nixpkgs/pkgs/tools/admin/eksctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.54.0";
+  version = "0.55.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hWrSjkEdhb0F5lwFGwjkR2G6gQ8T8HommH2lxJE+0bk=";
+    sha256 = "sha256-5PrwOR70pSmNPHFSDHRvXNn0pksIQun5jJkcCFsYhCE=";
   };
 
-  vendorSha256 = "sha256-499c3Y9IUV8lc+O9qcEeFKQDT4QDvOPmu0rmps7M47w=";
+  vendorSha256 = "sha256-N2jdaz0lb4Ut8P+FgNNjgyUeJ731fTQ5XSQgOF8KCQs=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
index d6b264a4aa38..7136fecf433a 100644
--- a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.32.2";
+  version = "1.34.0";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-Yx+GA959AB6m62hDlZKYjsuT9Y9TJbIdzUVBMM8OgTg=";
+    sha256 = "sha256-Gu9o1aUDlhcEZPZZsfVF0FnlzT1DvbEXMXjnOxhY8tY=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
index d5e8897af9b8..5bd9c95d3a5e 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -21,18 +21,23 @@ let
   sources = name: system: {
     x86_64-darwin = {
       url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "1p8iv2axb5i8xnzm58dmmahxfwplj4r115mz63cl5q0iyy12npbh";
+      sha256 = "0viiwimnk26jfi4ypkvclqqxw8anlmch10zscjw69d8x1pyqczcd";
+    };
+
+    aarch64-darwin = {
+      url = "${baseUrl}/${name}-darwin-arm.tar.gz";
+      sha256 = "sha256-EZbJgMzEZScvaqSKay5aDuayVaIK1zZUzqAHgT0czZk=";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "0zcf9zabdg2r7d9vafxn4wf0j09im5lhycylf91g734zzh6vc267";
+      sha256 = "11113l8pyhq6vbsh79m5anh6ljss94zhnp33ghds9rn1gxa83hnb";
     };
   }.${system};
 
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "345.0.0";
+  version = "347.0.0";
 
   src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
 
@@ -109,6 +114,6 @@ in stdenv.mkDerivation rec {
     license = licenses.free;
     homepage = "https://cloud.google.com/sdk/";
     maintainers = with maintainers; [ iammrinal0 pradyuman stephenmw zimbatm ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/oci-cli/default.nix b/nixpkgs/pkgs/tools/admin/oci-cli/default.nix
index 8996ef5069f3..729f0aa8fd91 100644
--- a/nixpkgs/pkgs/tools/admin/oci-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/oci-cli/default.nix
@@ -33,7 +33,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with python3Packages; [
-    oci arrow certifi pinned_click configparser cryptography jmespath dateutil
+    oci arrow certifi pinned_click configparser cryptography jmespath python-dateutil
     pytz retrying six terminaltables pyopenssl pyyaml
   ];
 
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/data.nix b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
index e1a6d14914be..99627b930c25 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi/data.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
@@ -1,20 +1,20 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.5.1";
+  version = "3.6.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.5.1-linux-x64.tar.gz";
-        sha256 = "1wdkwifn1p0m98dmn0g2kcwnllqilfwzkyyg2sg1pfdmk3da9bi3";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.6.0-linux-x64.tar.gz";
+        sha256 = "1phj65y1l6pllq5fyrxm7hrwg44jpzq1skq6dw7x6zrs8prnlj52";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-linux-amd64.tar.gz";
         sha256 = "0d88xfi7zzmpyrnvakwxsyavdx6d5hmfrcf4jhmd53mni0m0551l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.8.0-linux-amd64.tar.gz";
-        sha256 = "14r2akgfrs512h9g6lx9scl0bph3qmw3j113shwg2nhqbmwvvh3z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.10.0-linux-amd64.tar.gz";
+        sha256 = "12fj43pcs64s0i6h05q94abbxi0r1rlh8qgycmmydr8wajsn2a54";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.2.0-linux-amd64.tar.gz";
@@ -41,8 +41,8 @@
         sha256 = "0yhdcjscdkvvai95z2v6xabvvsfvaqi38ngpqrb73ahlwqhz3nys";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.9.0-linux-amd64.tar.gz";
-        sha256 = "0w28ikwna057dbhsvidkd5sp2v0frih6n4an1cl3gx51yhqsxzap";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.11.0-linux-amd64.tar.gz";
+        sha256 = "0h0dpbdc9rcagw0wgz5l6jjc8wl1hj5ki5shi44jyf4hz7l0yl9y";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.2.0-linux-amd64.tar.gz";
@@ -53,16 +53,16 @@
         sha256 = "13rchk54wpjwci26kfa519gqagwfrp31w6a9nk1xfdxj45ha9d3x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.0.1-linux-amd64.tar.gz";
-        sha256 = "1jk3al4mnk6cblaf56yyx0anv3kp3vyr6fqglsinkzaayaswx63z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.1.0-linux-amd64.tar.gz";
+        sha256 = "0al3578g7l9rvhkswlm56wpkybj6njj39a3g56in9882lhpqixsy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.4.0-linux-amd64.tar.gz";
-        sha256 = "1dpd6m5w6fnxrspig4s2vcd4hxy720gcrdrxakn1mvz29k4s0zv3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.5.0-linux-amd64.tar.gz";
+        sha256 = "1zi6r1g7l56ra506hxkj8p9wlkgbmry7ir48v8wwdsfvplryj4sf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.1.0-linux-amd64.tar.gz";
-        sha256 = "0q1bi1a80jwgx52m9hy0vp67hdv3nbhd0gqxj3jaf5w4dnh48dca";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.2.0-linux-amd64.tar.gz";
+        sha256 = "1lvb3vs2yp0ybz2xn2za5f0nfipiisrpzwzfn0wgl9arh17v0phc";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-linux-amd64.tar.gz";
@@ -99,16 +99,16 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.5.1-darwin-x64.tar.gz";
-        sha256 = "0q2617vg53ib65vlj09z78lqqg4dz5ymcjn9kablkm5a6s1sfh5s";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.6.0-darwin-x64.tar.gz";
+        sha256 = "0yql94y78q0hfsxfsgvkxs7dv2lgrkv4ypm59qjr8l04krcknbmm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-darwin-amd64.tar.gz";
         sha256 = "12mkr0xczdnp21k0k7qn4r3swkaq3pr6v2z853p1db7ksz5kds23";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.8.0-darwin-amd64.tar.gz";
-        sha256 = "0qhpzvfv67fn2n1x3h7znqiw7wxz526iw1a41q8v8jalkahfa2rb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.10.0-darwin-amd64.tar.gz";
+        sha256 = "0zv4b7nyvz7h0h0jxndd7dxzf4risgqyl7f20cbbcsixxk90sz38";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.2.0-darwin-amd64.tar.gz";
@@ -135,8 +135,8 @@
         sha256 = "1dpsbq3b0fz86355jy7rz4kcsa1lnw4azn25vzlis89ay1ncbblc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.9.0-darwin-amd64.tar.gz";
-        sha256 = "1y4pjx260dlh7yi0skd5n2ixlqzi6b9lp5h77qaq1b9h3n4xybfh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.11.0-darwin-amd64.tar.gz";
+        sha256 = "1k7yxajx3157qdanw1y11053k74rwlcvh828xrpwkzqszmzizxp9";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.2.0-darwin-amd64.tar.gz";
@@ -147,16 +147,16 @@
         sha256 = "0qbw4b5zm6dmwdilaz4bjdg55gc5lilwagrxwrab37vq4a8and4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.0.1-darwin-amd64.tar.gz";
-        sha256 = "1ddkzwwr2vc0sp1q3r510rpjqj5dl1dn8ax938874jnflcbcwng6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.1.0-darwin-amd64.tar.gz";
+        sha256 = "1fgh7q7sivip212q2zgvrgg3lwxrzasm9vpa858168fvjv67ylbc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.4.0-darwin-amd64.tar.gz";
-        sha256 = "1x6fqa643n731cadb02288kc2z321gjjldkvi8wvjjy2dm0lfp72";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.5.0-darwin-amd64.tar.gz";
+        sha256 = "0cl8wg5g78c147pqy5q52qq9bd7hw8zgvfmdafszwzwz6xh1051b";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.1.0-darwin-amd64.tar.gz";
-        sha256 = "13rq01ylrqp48n62cp640a4mdqbrqnibb0xaw9pcpddl3a3nnck0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.2.0-darwin-amd64.tar.gz";
+        sha256 = "008jqnrl08g3gd38vg2yjwxdn288z75sbp3ghl2cbncfah2lwwja";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-darwin-amd64.tar.gz";
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/update.sh b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
index 98f382d12d20..efde5e7d6603 100755
--- a/nixpkgs/pkgs/tools/admin/pulumi/update.sh
+++ b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
@@ -3,25 +3,25 @@
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="3.5.1"
+VERSION="3.6.0"
 
 # Grab latest release ${VERSION} from
 # https://github.com/pulumi/pulumi-${NAME}/releases
 plugins=(
     "auth0=2.2.0"
-    "aws=4.8.0"
+    "aws=4.10.0"
     "cloudflare=3.2.0"
     "consul=3.2.0"
     "datadog=3.3.0"
     "digitalocean=4.4.1"
     "docker=3.0.0"
     "equinix-metal=2.0.0"
-    "gcp=5.9.0"
+    "gcp=5.11.0"
     "github=4.2.0"
     "gitlab=4.1.0"
-    "hcloud=1.0.1"
-    "kubernetes=3.4.0"
-    "linode=3.1.0"
+    "hcloud=1.1.0"
+    "kubernetes=3.5.0"
+    "linode=3.2.0"
     "mailgun=3.1.0"
     "mysql=3.0.0"
     "openstack=3.2.0"
diff --git a/nixpkgs/pkgs/tools/admin/sec/default.nix b/nixpkgs/pkgs/tools/admin/sec/default.nix
index fe3517c6196c..0afac976d09e 100644
--- a/nixpkgs/pkgs/tools/admin/sec/default.nix
+++ b/nixpkgs/pkgs/tools/admin/sec/default.nix
@@ -1,12 +1,13 @@
 { fetchFromGitHub, perl, lib, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "sec-${meta.version}";
+  pname = "sec";
+  version = "2.8.3";
 
   src = fetchFromGitHub {
     owner = "simple-evcorr";
     repo = "sec";
-    rev = meta.version;
+    rev = version;
     sha256 = "0ryic5ilj1i5l41440i0ss6j3yv796fz3gr0qij5pqyd1z21md83";
   };
 
@@ -27,6 +28,5 @@ stdenv.mkDerivation rec {
     description = "Simple Event Correlator";
     maintainers = [ lib.maintainers.tv ];
     platforms = lib.platforms.all;
-    version = "2.8.3";
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
index 6038d1586e56..16c6e0fc8a07 100644
--- a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2021.06.24";
+  version = "2021.06.27";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "sha256-FaB1QTl4xCTz/sbgptXQHtD0wadXG3UCgdZoOPCOH0U=";
+    sha256 = "sha256-tLKxs1p1CIU/2XV1fMgWrwdtePeXOBZUMjz46kgp9C0=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/backup/btrbk/default.nix b/nixpkgs/pkgs/tools/backup/btrbk/default.nix
index c619a69c1118..4b4dadd4faff 100644
--- a/nixpkgs/pkgs/tools/backup/btrbk/default.nix
+++ b/nixpkgs/pkgs/tools/backup/btrbk/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, bash, btrfs-progs, openssh, perl, perlPackages
-, util-linux, asciidoc, asciidoctor, mbuffer, makeWrapper }:
+, util-linux, asciidoc, asciidoctor, mbuffer, makeWrapper, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "btrbk";
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
       --prefix PATH ':' "${lib.makeBinPath [ btrfs-progs bash mbuffer openssh ]}"
   '';
 
+  passthru.tests.btrbk = nixosTests.btrbk;
+
   meta = with lib; {
     description = "A backup tool for btrfs subvolumes";
     homepage = "https://digint.ch/btrbk";
diff --git a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix
new file mode 100644
index 000000000000..76b7d1da59b4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix
@@ -0,0 +1,87 @@
+{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper, autoPatchelfHook
+, dotnet-sdk_5, dotnetPackages, dotnetCorePackages, cacert
+}:
+
+let
+  projectFile = "DiscordChatExporter.Cli/DiscordChatExporter.Cli.csproj";
+in
+stdenv.mkDerivation rec {
+  pname = "discordchatexporter-cli";
+  version = "2.28";
+
+  src = fetchFromGitHub {
+    owner = "tyrrrz";
+    repo = "discordchatexporter";
+    rev = version;
+    sha256 = "1bcq8mwjr8635g8mkgbxnszk20hnwf0zk672glrxjqga6f6fnykg";
+  };
+
+  nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget cacert makeWrapper autoPatchelfHook ];
+  buildInputs = [ stdenv.cc.cc.lib ];
+
+  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  });
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_NOLOGO=1
+
+    nuget sources Add -Name nixos -Source "$PWD/nixos"
+    nuget init "$nugetDeps" "$PWD/nixos"
+
+    # FIXME: https://github.com/NuGet/Home/issues/4413
+    mkdir -p $HOME/.nuget/NuGet
+    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
+
+    dotnet restore --source "$PWD/nixos" ${projectFile}
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    dotnet build ${projectFile} \
+      --no-restore \
+      --configuration Release \
+      -p:Version=${version}
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    dotnet publish ${projectFile} \
+      --no-build \
+      --configuration Release \
+      --no-self-contained \
+      --output $out/lib/${pname}
+    shopt -s extglob
+
+    makeWrapper $out/lib/${pname}/DiscordChatExporter.Cli $out/bin/discordchatexporter-cli \
+      --set DOTNET_ROOT "${dotnetCorePackages.sdk_3_1}"
+
+    runHook postInstall
+  '';
+
+  # Strip breaks the executable.
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "A tool to export Discord chat logs to a file";
+    homepage = "https://github.com/Tyrrrz/DiscordChatExporter";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.ivar ];
+    platforms = [ "x86_64-linux" ];
+  };
+  passthru.updateScript = ./updater.sh;
+}
diff --git a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix
new file mode 100644
index 000000000000..a7703f2ba2c1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix
@@ -0,0 +1,67 @@
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "CliFx";
+    version = "2.0.4";
+    sha256 = "1wwpjli4y2545yi6k17mvjqy994wl3wm6nngszk87rbdwhkbncaj";
+  })
+  (fetchNuGet {
+    name = "Gress";
+    version = "1.2.0";
+    sha256 = "0aidc9whi0718gh896j7xkyndki9x7rifd8n1n681afb2zbxw4bn";
+  })
+  (fetchNuGet {
+    name = "JsonExtensions";
+    version = "1.1.0";
+    sha256 = "1fqxb2jdbvjgg135wmy890qf63r056dq16jy7wgzkgp21m3j0lgy";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Ref";
+    version = "3.1.10";
+    sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Host.linux-x64";
+    version = "3.1.14";
+    sha256 = "11rqnascx9asfyxgxzwgxgr9gxxndm552k4dn4p1s57ciz7vkg9h";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Ref";
+    version = "3.1.0";
+    sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y";
+  })
+  (fetchNuGet {
+    name = "MiniRazor.CodeGen";
+    version = "2.1.2";
+    sha256 = "0mg4zy4zq0ccrc9wchy796ln1znkmn3k1aax0kd2gha4fwa1d1fb";
+  })
+  (fetchNuGet {
+    name = "MiniRazor.Runtime";
+    version = "2.1.2";
+    sha256 = "1a6cm7j1f5n1bfzhg8w60xwa7cps2i82418k57dm2hgqla6p3rsp";
+  })
+  (fetchNuGet {
+    name = "Polly";
+    version = "7.2.2";
+    sha256 = "0s15n5zwj44i6sw3v40ca8l6j0ijydxcakvad49j52rp49iwrmkn";
+  })
+  (fetchNuGet {
+    name = "Spectre.Console";
+    version = "0.40.0";
+    sha256 = "17bb31nsvfk7m337zwqcz4v6cvayhfx51ri4yrv5i8nbp7f4rpb1";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.0";
+    sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
+  })
+  (fetchNuGet {
+    name = "Tyrrrz.Extensions";
+    version = "1.6.5";
+    sha256 = "1yzsii1pbp6b066wxwwws310p7h809apl81bhb8ad55hqlzy1rg3";
+  })
+  (fetchNuGet {
+    name = "Wcwidth";
+    version = "0.2.0";
+    sha256 = "0p7zaisix9ql4v5nyl9gfc93xcyj74j01rwvgm7jw29js3wlj10s";
+  })
+]
diff --git a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/updater.sh b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/updater.sh
new file mode 100755
index 000000000000..ff5c44a19bcd
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/updater.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_5
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath "./deps.nix")"
+
+new_version="$(curl -s "https://api.github.com/repos/tyrrrz/DiscordChatExporter/releases?per_page=1" | jq -r '.[0].name')"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+if [[ "$new_version" == "$old_version" ]]; then
+  echo "Up to date"
+  exit 0
+fi
+
+cd ../../../..
+update-source-version discordchatexporter-cli "$new_version"
+store_src="$(nix-build . -A discordchatexporter-cli.src --no-out-link)"
+src="$(mktemp -d /tmp/discordexporter-src.XXX)"
+cp -rT "$store_src" "$src"
+chmod -R +w "$src"
+
+pushd "$src"
+
+mkdir ./nuget_tmp.packages
+dotnet restore DiscordChatExporter.Cli/DiscordChatExporter.Cli.csproj --packages ./nuget_tmp.packages
+
+echo "{ fetchNuGet }: [" >"$deps_file"
+while read pkg_spec; do
+  { read pkg_name; read pkg_version; } < <(
+    # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3`
+    sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec")
+  pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)"
+  cat >>"$deps_file" <<EOF
+  (fetchNuGet {
+    name = "$pkg_name";
+    version = "$pkg_version";
+    sha256 = "$pkg_sha256";
+  })
+EOF
+done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort)
+echo "]" >>"$deps_file"
+
+popd
+rm -r "$src"
diff --git a/nixpkgs/pkgs/tools/backup/partclone/default.nix b/nixpkgs/pkgs/tools/backup/partclone/default.nix
index 54108a0c038f..06c207471577 100644
--- a/nixpkgs/pkgs/tools/backup/partclone/default.nix
+++ b/nixpkgs/pkgs/tools/backup/partclone/default.nix
@@ -1,21 +1,21 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook
-, pkg-config, libuuid, e2fsprogs, nilfs-utils, ntfs3g
+, pkg-config, libuuid, e2fsprogs, nilfs-utils, ntfs3g, openssl
 }:
 
 stdenv.mkDerivation rec {
   pname = "partclone";
-  version = "0.3.11";
+  version = "0.3.17";
 
   src = fetchFromGitHub {
     owner = "Thomas-Tsai";
     repo = "partclone";
     rev = version;
-    sha256 = "0bv15i0gxym4dv48rgaavh8p94waryn1l6viis6qh5zm9cd08skg";
+    sha256 = "sha256-tMdBo26JvHxbVI/Y2KDMejH+YT4IVx2H/y36u9ss0C8=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [
-    e2fsprogs libuuid stdenv.cc.libc nilfs-utils ntfs3g
+    e2fsprogs libuuid stdenv.cc.libc nilfs-utils ntfs3g openssl
     (lib.getOutput "static" stdenv.cc.libc)
   ];
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with lib; {
     description = "Utilities to save and restore used blocks on a partition";
     longDescription = ''
       Partclone provides utilities to save and restore used blocks on a
@@ -43,8 +43,8 @@ stdenv.mkDerivation rec {
       ext2 partition.
     '';
     homepage = "https://partclone.org";
-    license = lib.licenses.gpl2;
-    maintainers = [lib.maintainers.marcweber];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ marcweber ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/backup/rotate-backups/default.nix b/nixpkgs/pkgs/tools/backup/rotate-backups/default.nix
index c0a06e1b9ae5..405fc6c3955d 100644
--- a/nixpkgs/pkgs/tools/backup/rotate-backups/default.nix
+++ b/nixpkgs/pkgs/tools/backup/rotate-backups/default.nix
@@ -1,17 +1,33 @@
-{ lib, buildPythonPackage, fetchFromGitHub, update-dotdee, simpleeval, dateutil }:
+{ lib
+, python3
+, fetchFromGitHub
+}:
 
-buildPythonPackage rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "rotate-backups";
-  version = "6.0";
+  version = "8.1";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-rotate-backups";
     rev = version;
-    sha256 = "0i59qfv1cfm0ss63ab2nrkn5wr4rxpqqmvfd7pf9c3pl9dbfq20c";
+    sha256 = "0r4dyd7hj403rksgp3vh1azp9n4af75r3wq3x39wxcqizpms3vkx";
   };
 
-  propagatedBuildInputs = [ update-dotdee simpleeval dateutil ];
+  propagatedBuildInputs = with python3.pkgs; [
+    python-dateutil
+    simpleeval
+    update-dotdee
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # https://github.com/xolox/python-rotate-backups/issues/33
+    "test_removal_command"
+  ];
 
   meta = with lib; {
     description = "Simple command line interface for backup rotation";
@@ -20,4 +36,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ eyjhb ];
   };
 }
-
diff --git a/nixpkgs/pkgs/tools/backup/tarsnapper/default.nix b/nixpkgs/pkgs/tools/backup/tarsnapper/default.nix
index b02ce82291aa..a5ad2c3625c1 100644
--- a/nixpkgs/pkgs/tools/backup/tarsnapper/default.nix
+++ b/nixpkgs/pkgs/tools/backup/tarsnapper/default.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
     py.test .
   '';
 
-  propagatedBuildInputs = with python3Packages; [ pyyaml dateutil pexpect ];
+  propagatedBuildInputs = with python3Packages; [ pyyaml python-dateutil pexpect ];
 
   patches = [ ./remove-argparse.patch ];
 
diff --git a/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix b/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
index 9ff8394f0048..95413986e8a4 100644
--- a/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "blueberry";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-UkF50AIFKkvjUHJiemR0Hj5ECZeHQU6beIw2TGrOlbk=";
+    sha256 = "sha256-dz0uGesyuQVXI7aEONCeOsa2vVw5yuStSFPnrqv2VcM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/cd-dvd/isomd5sum/default.nix b/nixpkgs/pkgs/tools/cd-dvd/isomd5sum/default.nix
index 2ca14cc4d603..9cb033e15d13 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/isomd5sum/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/isomd5sum/default.nix
@@ -14,7 +14,9 @@ stdenv.mkDerivation rec {
     sha256 = "1wjnh2hlp1hjjm4a8wzdhdrm73jq41lmpmy3ls0rh715p3j7z4q9";
   };
 
-  buildInputs = [ python3 popt ] ;
+  strictDeps = true;
+  nativeBuildInputs = [ python3 ];
+  buildInputs = [ popt ] ;
 
   postPatch = ''
     substituteInPlace Makefile --replace "#/usr/" "#"
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
index a25bf744a91a..0ccc96ce1885 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
@@ -38,7 +38,7 @@
 
 # Linux Only Dependencies
 , linuxHeaders, util-linux, libuuid, udev, keyutils, rdma-core, rabbitmq-c
-, libaio ? null, libxfs ? null, zfs ? null
+, libaio ? null, libxfs ? null, zfs ? null, liburing ? null
 , ...
 }:
 
@@ -130,7 +130,9 @@ let
     ps.Mako
     ceph-common
     ps.cherrypy
-    ps.dateutil
+    ps.cmd2
+    ps.colorama
+    ps.python-dateutil
     ps.jsonpatch
     ps.pecan
     ps.prettytable
@@ -176,7 +178,7 @@ in rec {
       snappy lz4 oathToolkit leveldb libnl libcap_ng rdkafka
       cryptsetup sqlite lua icu bzip2
     ] ++ lib.optionals stdenv.isLinux [
-      linuxHeaders util-linux libuuid udev keyutils optLibaio optLibxfs optZfs
+      linuxHeaders util-linux libuuid udev keyutils liburing optLibaio optLibxfs optZfs
       # ceph 14
       rdma-core rabbitmq-c
     ] ++ lib.optionals hasRadosgw [
@@ -207,11 +209,12 @@ in rec {
       "-DMGR_PYTHON_VERSION=${ceph-python-env.python.pythonVersion}"
       "-DWITH_SYSTEMD=OFF"
       "-DWITH_TESTS=OFF"
+      "-DWITH_CEPHFS_SHELL=ON"
       # TODO breaks with sandbox, tries to download stuff with npm
       "-DWITH_MGR_DASHBOARD_FRONTEND=OFF"
       # WITH_XFS has been set default ON from Ceph 16, keeping it optional in nixpkgs for now
       ''-DWITH_XFS=${if optLibxfs != null then "ON" else "OFF"}''
-    ];
+    ] ++ lib.optional stdenv.isLinux "-DWITH_SYSTEM_LIBURING=ON";
 
     postFixup = ''
       wrapPythonPrograms
diff --git a/nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix b/nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix
new file mode 100644
index 000000000000..88e50a2adc3a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/exfatprogs/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, file }:
+
+stdenv.mkDerivation rec {
+  pname = "exfatprogs";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "19pbybgbfnvjb3n944ihrn1r8ch4dm8dr0d44d6w7p63dcp372xy";
+  };
+
+  nativeBuildInputs = [ pkg-config autoreconfHook file ];
+
+  meta = with lib; {
+    description = "exFAT filesystem userspace utilities";
+    homepage = "https://github.com/exfatprogs/exfatprogs";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ zane ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix b/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
index d7906e5cc23b..9933498d07e5 100644
--- a/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/glusterfs/default.nix
@@ -55,13 +55,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "glusterfs";
-  version = "9.2";
+  version = "9.3";
 
   src = fetchFromGitHub {
     owner = "gluster";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00y2xs7nj4d59x4fp6gq7qql3scykq9lppdvx7y3xbgfmkrwixx9";
+    sha256 = "sha256-xV7griN453f63jwX5jTdW0KJdLi14Km7JengbNeh4iI=";
   };
   inherit buildInputs propagatedBuildInputs;
 
diff --git a/nixpkgs/pkgs/tools/games/weidu/default.nix b/nixpkgs/pkgs/tools/games/weidu/default.nix
new file mode 100644
index 000000000000..d325746dc8ca
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/weidu/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, elkhound
+, ocaml-ng
+, perl
+, which
+}:
+
+let
+  # 1. Needs ocaml >= 4.04 and <= 4.11
+  # 2. ocaml 4.10 defaults to safe (immutable) strings so we need a version with
+  #    that disabled as weidu is strongly dependent on mutable strings
+  ocaml' = ocaml-ng.ocamlPackages_4_10.ocaml.overrideAttrs (old: {
+    configureFlags = old.configureFlags ++ [
+      # https://github.com/WeiDUorg/weidu/issues/197
+      "--disable-force-safe-string"
+    ];
+  });
+
+in
+stdenv.mkDerivation rec {
+  pname = "weidu";
+  version = "247.00";
+
+  src = fetchFromGitHub {
+    owner = "WeiDUorg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-vAIIYn0urQnnL82mdfwJtahrS3uWPFferm+0F13TKcw=";
+  };
+
+  postPatch = ''
+    substitute sample.Configuration Configuration \
+      --replace /usr/bin ${lib.makeBinPath [ ocaml' ]} \
+      --replace elkhound ${elkhound}/bin/elkhound
+
+    mkdir -p obj/{.depend,x86_LINUX}
+  '';
+
+  nativeBuildInputs = [ elkhound ocaml' perl which ];
+
+  buildFlags = [ "weidu" "weinstall" "tolower" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    for b in tolower weidu weinstall; do
+      install -Dm555 $b.asm.exe $out/bin/$b
+    done
+
+    install -Dm444 -t $out/share/doc/weidu README* COPYING
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "InfinityEngine Modding Engine";
+    homepage = "https://weidu.org";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ peterhoeg ];
+    # should work fine on both Darwin and Windows
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/adriconf/default.nix b/nixpkgs/pkgs/tools/graphics/adriconf/default.nix
new file mode 100644
index 000000000000..74ff4f1ed666
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/adriconf/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, cmake
+, pkg-config
+, libdrm
+, libGL
+, atkmm
+, pcre
+, gtkmm3
+, boost
+, libxmlxx3
+, mesa
+, pciutils
+}:
+
+stdenv.mkDerivation rec {
+  pname = "adriconf";
+  version = "2.4.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "mesa";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "hZy+FpKKBKuho/fALu2O+44zzK6s/M8CTbhrO00ANgo=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libdrm libGL atkmm pcre gtkmm3 boost libxmlxx3 mesa pciutils ];
+
+  cmakeFlags = [ "-DENABLE_UNIT_TESTS=off" ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.freedesktop.org/mesa/adriconf/";
+    description = "A GUI tool used to configure open source graphics drivers";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ musfay ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/gifsicle/default.nix b/nixpkgs/pkgs/tools/graphics/gifsicle/default.nix
index c05a552f2051..b200f487b232 100644
--- a/nixpkgs/pkgs/tools/graphics/gifsicle/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gifsicle/default.nix
@@ -7,11 +7,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "gifsicle";
-  version = "1.92";
+  version = "1.93";
 
   src = fetchurl {
     url = "https://www.lcdf.org/gifsicle/${pname}-${version}.tar.gz";
-    sha256 = "0rffpzxcak19k6cngpxn73khvm3z1gswrqs90ycdzzb53p05ddas";
+    sha256 = "sha256-kvZweXMr9MHaCH5q4JBSBYRuWsd3ulyqZtEqc6qUNEc=";
   };
 
   buildInputs = optionals gifview [ xorgproto libXt libX11 ];
diff --git a/nixpkgs/pkgs/tools/graphics/graphviz/base.nix b/nixpkgs/pkgs/tools/graphics/graphviz/base.nix
index 1a387042b2d5..f225f2196cc8 100644
--- a/nixpkgs/pkgs/tools/graphics/graphviz/base.nix
+++ b/nixpkgs/pkgs/tools/graphics/graphviz/base.nix
@@ -2,7 +2,7 @@
 
 { lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, cairo, expat, flex
 , fontconfig, gd, gettext, gts, libdevil, libjpeg, libpng, libtool, pango
-, bison, fetchpatch, xorg ? null, ApplicationServices }:
+, bison, fetchpatch, xorg, ApplicationServices, python3 }:
 
 let
   inherit (lib) optional optionals optionalString;
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
     inherit sha256 rev;
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config python3 ];
 
   buildInputs = [
     libpng libjpeg expat bison libtool fontconfig gd gts libdevil flex pango
diff --git a/nixpkgs/pkgs/tools/graphics/graphviz/default.nix b/nixpkgs/pkgs/tools/graphics/graphviz/default.nix
index c79fe3aaf4d5..0662205d17e9 100644
--- a/nixpkgs/pkgs/tools/graphics/graphviz/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/graphviz/default.nix
@@ -1,5 +1,5 @@
 import ./base.nix rec {
-  rev = "da4c2ec6f24ca1b6d1752c6b5bc4389e55682147"; # use rev as tags have disappeared before
-  version = "2.42.2";
-  sha256 = "0lacl11amyvj04j78m63qifljl4c0nkyy50z4bkg8mg9j4hjdy0x";
+  rev = "a11eb938514725493324d18db1686f9a99c8569f"; # use rev as tags have disappeared before
+  version = "2.47.2";
+  sha256 = "sha256-6JFjM/2xl7KVmGhSr6RWgO23UwLDyAif3ONsBG4t/Wc=";
  }
diff --git a/nixpkgs/pkgs/tools/graphics/ploticus/builder.sh b/nixpkgs/pkgs/tools/graphics/ploticus/builder.sh
deleted file mode 100644
index 2fb16b259bdc..000000000000
--- a/nixpkgs/pkgs/tools/graphics/ploticus/builder.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-source $stdenv/setup
-
-preBuild() {
-  cd src
-}
-
-preInstall() {
-  mkdir -p $out/bin
-}
-
-postInstall() {
-  # Install the "prefabs".
-  mkdir -p $out/share/ploticus/prefabs &&		\
-  cd .. &&						\
-  cp -rv prefabs/* $out/share/ploticus/prefabs
-
-  # Create a wrapper that knows where to find them.  Debian's package
-  # does something similar by patching directly the C file that looks
-  # for `$PLOTICUS_PREFABS'.
-  cat > $out/bin/ploticus <<EOF
-#! $SHELL -e
-PLOTICUS_PREFABS="$out/share/ploticus/prefabs"
-export PLOTICUS_PREFABS
-exec "$out/bin/pl" \$@
-EOF
-  chmod +x $out/bin/ploticus
-
-  # Install the man pages.
-  cp -rv man $out
-  ln -s "$out/man/man1/pl.1" "$out/man/man1/ploticus.1"
-}
-
-genericBuild
diff --git a/nixpkgs/pkgs/tools/graphics/ploticus/default.nix b/nixpkgs/pkgs/tools/graphics/ploticus/default.nix
index 23d6919f78e0..50b7aad48a04 100644
--- a/nixpkgs/pkgs/tools/graphics/ploticus/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/ploticus/default.nix
@@ -1,34 +1,74 @@
-{lib, stdenv, fetchurl, zlib, libX11, libpng}:
+{ lib
+, stdenv
+, fetchurl
+, zlib
+, libX11
+, libpng
+, gd
+, freetype
+}:
 
-stdenv.mkDerivation {
-  name = "ploticus-2.42";
+stdenv.mkDerivation rec {
+  pname = "ploticus";
+  version = "2.42";
 
-  builder = ./builder.sh;
   src = fetchurl {
-    url = "mirror://sourceforge/ploticus/ploticus/2.41/pl241src.tar.gz";
-    sha256 = "1065r0nizjixi9sxxfxrnwg10r458i6fgsd23nrxa200rypvdk7c";
+    url = "mirror://sourceforge/ploticus/ploticus/${version}/ploticus${lib.replaceStrings [ "." ] [ "" ] version}_src.tar.gz";
+    sha256 = "PynkufQFIDqT7+yQDlgW2eG0OBghiB4kHAjKt91m4LA=";
   };
 
-  buildInputs = [ zlib libX11 libpng ];
+  patches = [
+    # Replace hardcoded FHS path with $out.
+    ./ploticus-install.patch
+
+    # Set the location of the PREFABS directory.
+    ./set-prefabs-dir.patch
+
+    # Use gd from Nixpkgs instead of the vendored one.
+    # This is required for non-ASCII fonts to work:
+    # http://ploticus.sourceforge.net/doc/fonts.html
+    ./use-gd-package.patch
+  ];
+
+  buildInputs = [
+    zlib
+    libX11
+    libpng
+    gd
+    freetype
+  ];
 
   hardeningDisable = [ "format" ];
 
-  patches = [ ./ploticus-install.patch ];
+  preBuild = ''
+    cd src
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/bin"
+  '';
+
+  postInstall = ''
+    cd ..
+
+    # Install the “prefabs”.
+    mkdir -p "$out/share/ploticus/prefabs"
+    cp -rv prefabs/* "$out/share/ploticus/prefabs"
 
-  # Make the symlink relative instead of absolute.
-  # Otherwise it breaks when auto-moved to $out/share.
-  preFixup = ''
-    ln -sf pl.1 "$out"/man/man1/ploticus.1
+    # Add aliases for backwards compatibility.
+    ln -s "pl" "$out/bin/ploticus"
   '';
 
   meta = with lib; {
     description = "A non-interactive software package for producing plots and charts";
-    longDescription = ''Ploticus is a free, GPL'd, non-interactive
+    longDescription = ''
+      Ploticus is a free, GPL'd, non-interactive
       software package for producing plots, charts, and graphics from
       data.  Ploticus is good for automated or just-in-time graph
       generation, handles date and time data nicely, and has basic
       statistical capabilities.  It allows significant user control
-      over colors, styles, options and details.'';
+      over colors, styles, options and details.
+    '';
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub ];
     homepage = "http://ploticus.sourceforge.net/";
diff --git a/nixpkgs/pkgs/tools/graphics/ploticus/set-prefabs-dir.patch b/nixpkgs/pkgs/tools/graphics/ploticus/set-prefabs-dir.patch
new file mode 100644
index 000000000000..82871654fdea
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/ploticus/set-prefabs-dir.patch
@@ -0,0 +1,11 @@
+--- a/src/pl.h
++++ b/src/pl.h
+@@ -8,7 +8,7 @@
+ #include <stdlib.h>
+ #include "plg.h"
+ 
+-#define PREFABS_DIR ""  	 /* INSTALLERS can set this to a valid pathname, so that users don't need to set PLOTICUS_PREFABS env var */
++#define PREFABS_DIR "@out@/share/ploticus/prefabs"  	 /* INSTALLERS can set this to a valid pathname, so that users don't need to set PLOTICUS_PREFABS env var */
+ 
+ #define PLVERSION "2.42-May2013" /* see also the Copyright page, and page headers and footers */
+ 
diff --git a/nixpkgs/pkgs/tools/graphics/ploticus/use-gd-package.patch b/nixpkgs/pkgs/tools/graphics/ploticus/use-gd-package.patch
new file mode 100644
index 000000000000..9a72489ddaad
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/ploticus/use-gd-package.patch
@@ -0,0 +1,34 @@
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -91,10 +91,10 @@
+ 
+ 
+ ########### Option 1: use bundled GD16 (PNG only).  Requires libpng and zlib.
+-exetarget: plpng 
+-GD16LIBS = -lpng -lz
+-GD16H =  -I/usr/local/include
+-ZFLAG = -DWZ
++# exetarget: plpng 
++# GD16LIBS = -lpng -lz
++# GD16H =  -I/usr/local/include
++# ZFLAG = -DWZ
+ ### These should remain commented unless your libs are not in usual places, then alter to suit...
+ ### GD16LIBS = /home/scg/lib/libpng.a /home/scg/lib/libz.a
+ ### GD16H = -I/home/scg/lib
+@@ -111,11 +111,11 @@
+ 
+ ########### Option 4: use your own GD resource with FreeType2 (ttf) fonts enabled.  
+ ###########           Requires GD 1.84+, libpng, zlib, libjpeg and libfreetype
+-# exetarget: plgd18 
+-# GD18LIBS = -lgd -lpng -lz -ljpeg -lfreetype
+-# GD18H = 
+-# GDFREETYPE = -DGDFREETYPE
+-# ZFLAG = -DWZ
++exetarget: plgd18 
++GD18LIBS = -lgd -lpng -lz -ljpeg -lfreetype
++GD18H = 
++GDFREETYPE = -DGDFREETYPE
++ZFLAG = -DWZ
+ 
+ ########### Option 5: don't use GD at all.
+ # exetarget: plnogd 
diff --git a/nixpkgs/pkgs/tools/graphics/xcolor/default.nix b/nixpkgs/pkgs/tools/graphics/xcolor/default.nix
index f19a80357f35..1e8f3fd78d72 100644
--- a/nixpkgs/pkgs/tools/graphics/xcolor/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/xcolor/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub, pkg-config, libX11, libXcursor, libxcb, python3 }:
+{ lib, rustPlatform, fetchFromGitHub, fetchpatch, pkg-config, libX11, libXcursor, libxcb, python3 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "xcolor";
@@ -11,7 +11,15 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-rHqK05dN5lrvDNbRCWGghI7KJwWzNCuRDEThEeMzmio=";
   };
 
-  cargoSha256 = "sha256-lHOT/P1Sh1b53EkPIQM3l9Tozdqh60qlUDdjthj32jM=";
+  cargoPatches = [
+    # Update Cargo.lock, lexical_core doesn't build on Rust 1.52.1
+    (fetchpatch {
+      url = "https://github.com/Soft/xcolor/commit/324d80a18a39a11f2f7141b226f492e2a862d2ce.patch";
+      sha256 = "sha256-5VzXitpl/gMef40UQBh1EoHezXPyB08aflqp0mSMAVI=";
+    })
+  ];
+
+  cargoSha256 = "sha256-yD4pX+dCJvbDecsdB8tNt1VsEcyAJxNrB5WsZUhPGII=";
 
   nativeBuildInputs = [ pkg-config python3 ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/yaxg/default.nix b/nixpkgs/pkgs/tools/graphics/yaxg/default.nix
index 349303346f42..9d83ae71d333 100644
--- a/nixpkgs/pkgs/tools/graphics/yaxg/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/yaxg/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper,
-  maim, slop, ffmpeg_3, byzanz, libnotify, xdpyinfo }:
+  maim, slop, ffmpeg, byzanz, libnotify, xdpyinfo }:
 
 stdenv.mkDerivation rec {
   pname = "yaxg";
@@ -13,13 +13,13 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ maim slop ffmpeg_3 byzanz libnotify xdpyinfo ];
+  buildInputs = [ maim slop ffmpeg byzanz libnotify xdpyinfo ];
 
   installPhase = ''
     mkdir -p $out/bin/
     mv yaxg $out/bin/
     chmod +x $out/bin/yaxg
-    wrapProgram $out/bin/yaxg --prefix PATH : ${ lib.makeBinPath [ maim slop ffmpeg_3 byzanz libnotify xdpyinfo ]}
+    wrapProgram $out/bin/yaxg --prefix PATH : ${ lib.makeBinPath [ maim slop ffmpeg byzanz libnotify xdpyinfo ]}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
index ea82ccaf96b7..44a44b3af2bf 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
@@ -1,70 +1,64 @@
 { lib, stdenv, fetchFromGitHub, which, ninja, pkg-config, protobuf
 , ibus, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese, python3Packages }:
 
-let
-  japanese_usage_dictionary = fetchFromGitHub {
-    owner  = "hiroyuki-komatsu";
-    repo   = "japanese-usage-dictionary";
-    rev    = "e5b3425575734c323e1d947009dd74709437b684";
-    sha256 = "0pyrpz9c8nxccwpgyr36w314mi8h132cis8ijvlqmmhqxwsi30hm";
-  };
-in stdenv.mkDerivation rec {
-  name = "ibus-mozc-${version}";
-  version = "2.23.4206.102";
-
-  meta = with lib; {
-    isIbusEngine = true;
-    description  = "Japanese input method from Google";
-    homepage     = "https://github.com/google/mozc";
-    license      = licenses.free;
-    platforms    = platforms.linux;
-    maintainers  = with maintainers; [ gebner ericsagnes ];
-  };
-
-  nativeBuildInputs = [ which ninja python3Packages.python python3Packages.six
-                        python3Packages.gyp pkg-config qt5.wrapQtAppsHook ];
-  buildInputs = [ protobuf ibus gtk2 zinnia qt5.qtbase libxcb ];
+stdenv.mkDerivation rec {
+  pname = "ibus-mozc";
+  version = "2.26.4423.100";
 
   src = fetchFromGitHub {
-    owner  = "google";
-    repo   = "mozc";
-    rev    = "91cc1e19ef34aeb12888b697fefa52907f1a834d";
-    sha256 = "1fyy9g1pnaq6s5nkf56aqmp5mgyibbmp1ylc64fqc6g1plg90zk2";
+    owner = "google";
+    repo = "mozc";
+    rev = "7654223979067e3c5ae52ea238d43880c5508f85";
+    sha256 = "aZVuhj4I9ZCsVR9dOplOd9zinYMgYw5SF5wG3IxBTO0=";
     fetchSubmodules = true;
   };
 
-  postUnpack = ''
-    rm -rf $sourceRoot/src/third_party/japanese_usage_dictionary/
-    ln -s ${japanese_usage_dictionary} $sourceRoot/src/third_party/japanese_usage_dictionary
-  '' + lib.optionalString stdenv.isLinux ''
+  nativeBuildInputs = [
+    which ninja python3Packages.python python3Packages.six
+    python3Packages.gyp pkg-config qt5.wrapQtAppsHook
+  ];
+
+  buildInputs = [ protobuf ibus gtk2 zinnia qt5.qtbase libxcb ];
+
+  postUnpack = lib.optionalString stdenv.isLinux ''
     sed -i 's/-lc++/-lstdc++/g' $sourceRoot/src/gyp/common.gypi
   '';
 
   configurePhase = ''
+    runHook preConfigure
+
     export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model"
     cd src && python build_mozc.py gyp --gypdir=${python3Packages.gyp}/bin --server_dir=$out/lib/mozc
+
+    runHook postConfigure
   '';
 
   buildPhase = ''
+    runHook preBuild
+
     PYTHONPATH="$PWD:$PYTHONPATH" python build_mozc.py build -c Release \
       unix/ibus/ibus.gyp:ibus_mozc \
       unix/emacs/emacs.gyp:mozc_emacs_helper \
       server/server.gyp:mozc_server \
       gui/gui.gyp:mozc_tool \
       renderer/renderer.gyp:mozc_renderer
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     install -d        $out/share/licenses/mozc
     head -n 29 server/mozc_server.cc > $out/share/licenses/mozc/LICENSE
-    install -m 644    data/installer/*.html     $out/share/licenses/mozc/
+    install -m 644    data/installer/*.html $out/share/licenses/mozc/
 
     install -D -m 755 out_linux/Release/mozc_server $out/lib/mozc/mozc_server
     install    -m 755 out_linux/Release/mozc_tool   $out/lib/mozc/mozc_tool
     wrapQtApp $out/lib/mozc/mozc_tool
 
     install -d        $out/share/doc/mozc
-    install -m 644    data/installer/*.html         $out/share/doc/mozc/
+    install -m 644    data/installer/*.html $out/share/doc/mozc/
 
     install -D -m 755 out_linux/Release/ibus_mozc           $out/lib/ibus-mozc/ibus-engine-mozc
     install -D -m 644 out_linux/Release/gen/unix/ibus/mozc.xml $out/share/ibus/component/mozc.xml
@@ -79,5 +73,16 @@ in stdenv.mkDerivation rec {
     install    -m 644 data/images/unix/ui-alpha_half.png    $out/share/ibus-mozc/alpha_half.png
     install    -m 644 data/images/unix/ui-alpha_full.png    $out/share/ibus-mozc/alpha_full.png
     install -D -m 755 out_linux/Release/mozc_renderer       $out/lib/mozc/mozc_renderer
+
+    runHook postInstall
   '';
+
+  meta = with lib; {
+    isIbusEngine = true;
+    description = "Japanese input method from Google";
+    homepage = "https://github.com/google/mozc";
+    license = licenses.free;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ gebner ericsagnes ];
+  };
 }
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
index d444d44f2337..af3fcbe4e2cc 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
@@ -1,36 +1,36 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gdk-pixbuf, glib, ibus, libnotify
-, librime, brise }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gdk-pixbuf
+, glib
+, ibus
+, libnotify
+, librime
+, pkg-config
+, rime-data
+}:
 
 stdenv.mkDerivation rec {
   pname = "ibus-rime";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "rime";
     repo = "ibus-rime";
     rev = version;
-    sha256 = "0zbajz7i18vrqwdyclzywvsjg6qzaih64jhi3pkxp7mbw8jc5vhy";
+    sha256 = "0gdxg6ia0i31jn3cvh1nrsjga1j31hf8a2zfgg8rzn25chrfr319";
   };
 
-  buildInputs = [ gdk-pixbuf glib ibus libnotify librime brise ];
+  buildInputs = [ gdk-pixbuf glib ibus libnotify librime rime-data ];
   nativeBuildInputs = [ cmake pkg-config ];
 
-  makeFlags = [ "PREFIX=$(out)" ];
-  dontUseCmakeConfigure = true;
+  cmakeFlags = [ "-DRIME_DATA_DIR=${rime-data}/share/rime-data" ];
 
   prePatch = ''
-    substituteInPlace Makefile \
-       --replace 'cmake' 'cmake -DRIME_DATA_DIR=${brise}/share/rime-data'
-
-    substituteInPlace rime_config.h \
-       --replace '/usr' $out
-
-    substituteInPlace rime_config.h \
-       --replace 'IBUS_RIME_SHARED_DATA_DIR IBUS_RIME_INSTALL_PREFIX' \
-                 'IBUS_RIME_SHARED_DATA_DIR "${brise}"'
-
-    substituteInPlace rime.xml \
-       --replace '/usr' $out
+    substituteInPlace CMakeLists.txt \
+       --replace 'DESTINATION "''${RIME_DATA_DIR}"' \
+                 'DESTINATION "''${CMAKE_INSTALL_DATADIR}/rime-data"'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/apt-offline/default.nix b/nixpkgs/pkgs/tools/misc/apt-offline/default.nix
index 9c952cc7c302..3dc3fa1bbe24 100644
--- a/nixpkgs/pkgs/tools/misc/apt-offline/default.nix
+++ b/nixpkgs/pkgs/tools/misc/apt-offline/default.nix
@@ -1,22 +1,39 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, python3Packages, unstableGitUpdater, gnupg }:
 
 python3Packages.buildPythonApplication rec {
-  version = "1.8.1";
   pname = "apt-offline";
+  version = "unstable-2021-04-11";
 
   src = fetchFromGitHub {
     owner = "rickysarraf";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "0k79d1d8jiwg1s684r05njmk1dz8gsb8a9bl4agz7m31snc11j84";
+    rev = "4e4b3281d004d1ece4833b7680e2b5b091402a03";
+    sha256 = "1lk4186h2wc8fphd592rhq7yj4kgc7jjawx4pjrs6pg4n0q32pl6";
   };
 
+  postPatch = ''
+    substituteInPlace org.debian.apt.aptoffline.policy \
+      --replace /usr/bin/ "$out/bin"
+
+    substituteInPlace apt_offline_core/AptOfflineCoreLib.py \
+      --replace /usr/bin/gpgv "${gnupg}/bin/gpgv"
+  '';
+
+  preFixup = ''
+    rm "$out/bin/apt-offline-gui"
+    rm "$out/bin/apt-offline-gui-pkexec"
+  '';
+
   doCheck = false;
 
-  # Requires python-qt4 (feel free to get it working).
-  preFixup = ''rm "$out/bin/apt-offline-gui"'';
+  pythonimportsCheck = [ "apt-offline" ];
+
+  passthru.updateScript = unstableGitUpdater {
+    url = "https://github.com/rickysarraf/apt-offline.git";
+  };
 
   meta = with lib; {
+    homepage = "https://github.com/rickysarraf/apt-offline";
     description = "Offline APT package manager";
     license = licenses.gpl3;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/tools/misc/barman/default.nix b/nixpkgs/pkgs/tools/misc/barman/default.nix
index da79110f9a82..ef84981a9d95 100644
--- a/nixpkgs/pkgs/tools/misc/barman/default.nix
+++ b/nixpkgs/pkgs/tools/misc/barman/default.nix
@@ -1,5 +1,5 @@
 { buildPythonApplication, fetchurl, lib
-, dateutil, argcomplete, argh, psycopg2, boto3
+, python-dateutil, argcomplete, argh, psycopg2, boto3
 }:
 
 buildPythonApplication rec {
@@ -12,7 +12,7 @@ buildPythonApplication rec {
     sha256 = "Ts8I6tlP2GRp90OIIKXy+cRWWvUO3Sm86zq2dtVP5YE=";
   };
 
-  propagatedBuildInputs = [ dateutil argh psycopg2 boto3 argcomplete ];
+  propagatedBuildInputs = [ python-dateutil argh psycopg2 boto3 argcomplete ];
 
   # Tests are not present in tarball
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/beats/default.nix b/nixpkgs/pkgs/tools/misc/beats/default.nix
index 1e6f155f3506..3e471c76fdfe 100644
--- a/nixpkgs/pkgs/tools/misc/beats/default.nix
+++ b/nixpkgs/pkgs/tools/misc/beats/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "beats";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "j0hax";
     repo = "beats";
     rev = "v${version}";
-    sha256 = "0qs5cmbncqhs11m4whqmrh2gvv3p3b37qz57xh78x2ma8jbhskqz";
+    sha256 = "1rdvsqrjpily74y8vwch711401585xckb4p41cfwrmj6vf44jhif";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/tools/misc/broot/default.nix b/nixpkgs/pkgs/tools/misc/broot/default.nix
index d1f9ca80f705..a5c456c00501 100644
--- a/nixpkgs/pkgs/tools/misc/broot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -75,7 +75,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
     homepage = "https://dystroy.org/broot/";
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     license = with licenses; [ mit ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
index 4d69f237a08c..5d9790ec2be0 100644
--- a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.0.15";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-PUcsDyszFT4DzTwvbcCO8FQErvmotmY7gREZ2sgpcw8=";
+    sha256 = "sha256-TEY3oEAWnS+iuLgAgR9mp1TaEb+wzlAgN41dgLRdUs4=";
   };
 
-  vendorSha256 = "sha256-7SfqBxCfOYwePK/6SsWS5StuVr0png6WjQXIDuQW0EE=";
+  vendorSha256 = "sha256-pr6bMO1klq/V9zkBftLleSRTg3zjl24EuA283M88HY4=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/complete-alias/default.nix b/nixpkgs/pkgs/tools/misc/complete-alias/default.nix
new file mode 100644
index 000000000000..721e99427bb6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/complete-alias/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, fetchFromGitHub
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "complete-alias";
+  version = "1.10.0";
+
+  src = fetchFromGitHub {
+    owner = "cykerway";
+    repo = pname;
+    rev = version;
+    sha256 = "1s0prdnmb2qnzc8d7ddldzqa53yc10qq0lbgx2l9dzmz8pdwylyc";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    # required for the patchShebangs setup hook
+    chmod +x complete_alias
+
+    patchShebangs complete_alias
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp -r complete_alias "$out"/bin
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Automagical shell alias completion";
+    homepage = "https://github.com/cykerway/complete-alias";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ tuxinaut ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/cpufetch/default.nix b/nixpkgs/pkgs/tools/misc/cpufetch/default.nix
index 37a6dfdc9dd5..4473738ac76c 100644
--- a/nixpkgs/pkgs/tools/misc/cpufetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cpufetch/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpufetch";
-  version = "0.94";
+  version = "0.98";
 
   src = fetchFromGitHub {
     owner  = "Dr-Noob";
     repo   = "cpufetch";
     rev    = "v${version}";
-    sha256 = "1gncgkhqd8bnz254qa30yyl10qm28dwx6aif0dwrj38z5ql40ck9";
+    sha256 = "060hmkwmb5ybcrj9jfx9681zk92489kq71nl6nacn8nfqrcn3qdb";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     mkdir $out
     install -Dm755 cpufetch   $out/bin/cpufetch
     install -Dm644 LICENSE    $out/share/licenses/cpufetch/LICENSE
-    installManPage cpufetch.8
+    installManPage cpufetch.1
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix b/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix
index 09c0e0d25c60..da87d048b709 100644
--- a/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -14,6 +14,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ glib libintl ];
 
+  postPatch = ''
+    substituteInPlace src/install.c \
+      --replace \"update-desktop-database\" \"$out/bin/update-desktop-database\"
+  '';
+
   setupHook = ./setup-hook.sh;
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/misc/expect/default.nix b/nixpkgs/pkgs/tools/misc/expect/default.nix
index 03e8e260ac6b..5a792c040b39 100644
--- a/nixpkgs/pkgs/tools/misc/expect/default.nix
+++ b/nixpkgs/pkgs/tools/misc/expect/default.nix
@@ -25,10 +25,9 @@ tcl.mkTclDerivation rec {
   strictDeps = true;
   hardeningDisable = [ "format" ];
 
-  postInstall = lib.optionalString stdenv.isDarwin ''
-    for i in $out/bin/*; do
-      wrapProgram $i --prefix DYLD_LIBRARY_PATH : $out/lib/expect${version}
-    done
+  postInstall = ''
+    tclWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ tcl ]})
+    ${lib.optionalString stdenv.isDarwin "tclWrapperArgs+=(--prefix DYLD_LIBRARY_PATH : $out/lib/expect${version})"}
   '';
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/tools/misc/flashrom/default.nix b/nixpkgs/pkgs/tools/misc/flashrom/default.nix
index 66a8b213403c..e4e4868e4d9f 100644
--- a/nixpkgs/pkgs/tools/misc/flashrom/default.nix
+++ b/nixpkgs/pkgs/tools/misc/flashrom/default.nix
@@ -19,11 +19,17 @@ stdenv.mkDerivation rec {
     sha256 = "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71";
   };
 
+  postPatch = ''
+    substituteInPlace util/z60_flashrom.rules \
+      --replace "plugdev" "flashrom"
+  '';
+
   # Meson build doesn't build and install manpage. Only Makefile can.
   # Build manpage from source directory. Here we're inside the ./build subdirectory
   postInstall = ''
     make flashrom.8 -C ..
     installManPage ../flashrom.8
+    install -Dm644 ../util/z60_flashrom.rules $out/etc/udev/rules.d/flashrom.rules
   '';
 
   mesonFlags = lib.optionals stdenv.isAarch64 [ "-Dpciutils=false" ];
@@ -34,7 +40,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.flashrom.org";
     description = "Utility for reading, writing, erasing and verifying flash ROM chips";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ funfunctor fpletz ];
+    maintainers = with maintainers; [ funfunctor fpletz felixsinger ];
     platforms = platforms.all;
     broken = stdenv.isDarwin; # requires DirectHW
   };
diff --git a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
index 5a5ad121b391..fe7599ac815c 100644
--- a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, flex, bison }:
+{ lib, stdenv, fetchFromGitHub, cmake, flex, bison, systemd }:
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
@@ -13,11 +13,17 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake flex bison ];
 
+  buildInputs = lib.optionals stdenv.isLinux [ systemd ];
+
+  cmakeFlags = [ "-DFLB_METRICS=ON" "-DFLB_HTTP_SERVER=ON" ];
+
   patches = lib.optionals stdenv.isDarwin [ ./fix-luajit-darwin.patch ];
 
   # _FORTIFY_SOURCE requires compiling with optimization (-O)
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-O";
 
+  outputs = [ "out" "dev" ];
+
   postPatch = ''
     substituteInPlace src/CMakeLists.txt \
       --replace /lib/systemd $out/lib/systemd
@@ -26,9 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Log forwarder and processor, part of Fluentd ecosystem";
     homepage = "https://fluentbit.io";
-    maintainers = with maintainers; [
-      samrose
-    ];
+    maintainers = with maintainers; [ samrose fpletz ];
     license = licenses.asl20;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/misc/goaccess/default.nix b/nixpkgs/pkgs/tools/misc/goaccess/default.nix
index 6f0c90517da4..051e61e7af81 100644
--- a/nixpkgs/pkgs/tools/misc/goaccess/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goaccess/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, ncurses, gettext, openssl, withGeolocation ? true, libmaxminddb }:
 
 stdenv.mkDerivation rec {
-  version = "1.5";
+  version = "1.5.1";
   pname = "goaccess";
 
   src = fetchurl {
     url = "https://tar.goaccess.io/goaccess-${version}.tar.gz";
-    sha256 = "sha256-liJtXfiXAyg+NBCcF+G07v4kBKWefHaitu76EPOqwWE=";
+    sha256 = "sha256-iEF+eOYrcN45gLdiKRHk/NcZw2YPADyIeWjnGWw5lw8=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/misc/goreleaser/default.nix b/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
index f5ed58f84fd2..34195c2fffe0 100644
--- a/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goreleaser/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "0.172.0";
+  version = "0.173.1";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QHtxrdmtmvnyMmtpvbEw5VjGz2XN1iqHu+5dHS9yiNo=";
+    sha256 = "sha256-v3Sln1qtYDdWCWJSKErxUoPAUzwWrTYM0j5X+mz+1xo=";
   };
 
-  vendorSha256 = "sha256-Zd48I7e5zCbSXz5RVckMXQMpqvf6gAoajx5yLk2ODmU=";
+  vendorSha256 = "sha256-yX8Ffdzq22JHA2owtHurH8AEgqPgPjz+N06oD5ZiZmM=";
 
   buildFlagsArray = [
     "-ldflags="
diff --git a/nixpkgs/pkgs/tools/misc/infracost/default.nix b/nixpkgs/pkgs/tools/misc/infracost/default.nix
index 286bc4cbca28..abe1872c67fd 100644
--- a/nixpkgs/pkgs/tools/misc/infracost/default.nix
+++ b/nixpkgs/pkgs/tools/misc/infracost/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "infracost";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "infracost";
     rev = "v${version}";
     repo = "infracost";
-    sha256 = "sha256-3dR4NZ1PiMuHNO+xl3zxeBLPOZTLAbJ0VtYJNYpJuXI=";
+    sha256 = "sha256-TM+7Am5hoiRk/StAwCh5yAN1GKv3oPun38pvhArBoJg=";
   };
 
-  vendorSha256 = "sha256-YHewZsIiDPsgJVYwQX/FovlD+UzJflXy/0oglk8ZkKk=";
+  vendorSha256 = "sha256-6sMtM7MTFTDXwH8AKr5Dxq8rPqE92xzcWqBTixcPi+8=";
 
   checkInputs = [ terraform ];
   checkPhase = "make test";
diff --git a/nixpkgs/pkgs/tools/misc/kepubify/default.nix b/nixpkgs/pkgs/tools/misc/kepubify/default.nix
index 546dcb112a86..b1ece43154fe 100644
--- a/nixpkgs/pkgs/tools/misc/kepubify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kepubify/default.nix
@@ -2,18 +2,21 @@
 
 buildGoModule rec {
   pname = "kepubify";
-  version = "3.1.6";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "pgaskin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "129izxgvhcybipfgcwzzwsir9zhi7axxadnw822zy5rk2ky4zjpk";
+    sha256 = "sha256-Mxe43U0kxkSdAzs+lSJ0x/VspbJPam59DpTpFEJVMl4=";
   };
 
-  vendorSha256 = "0vwzm1c4kada7mqdkr444gj8c2vkvz7av9wkpgdpjrq0v2h0hpcc";
+  vendorSha256 = "sha256-bLQH7ZY2hE8fBTcW7DNoUQxe4N3m9Mv3JjjKO4cG7DY=";
 
-  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+  # remove when built with >= go 1.17
+  buildFlags = [ "-tags" "zip117" ];
+
+  ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   excludedPackages = [ "kobotest" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/latex2html/default.nix b/nixpkgs/pkgs/tools/misc/latex2html/default.nix
index 5bb4f41a5de8..126d5bd4c49b 100644
--- a/nixpkgs/pkgs/tools/misc/latex2html/default.nix
+++ b/nixpkgs/pkgs/tools/misc/latex2html/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "latex2html";
-  version = "2021";
+  version = "2021.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-n7VbK/S9EkWxb4fbIXp3tIfX7N+9bvZ/odBylqTuzUU=";
+    sha256 = "sha256-WxMB70TeN53S6PNYDUVZ7lBKw7DvKnJDiHek9/GUYcA=";
   };
 
   buildInputs = [ ghostscript netpbm perl ];
diff --git a/nixpkgs/pkgs/tools/misc/lnav/default.nix b/nixpkgs/pkgs/tools/misc/lnav/default.nix
index 4d9364ff23e4..373687fafdf1 100644
--- a/nixpkgs/pkgs/tools/misc/lnav/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lnav/default.nix
@@ -2,15 +2,14 @@
 , readline, zlib, bzip2, autoconf, automake, curl }:
 
 stdenv.mkDerivation rec {
-
-  name = "lnav-${meta.version}";
+  pname = "lnav";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "tstack";
     repo = "lnav";
-    rev = "v${meta.version}";
+    rev = "v${version}";
     sha256 = "1frdrr3yjlk2fns3ny0qbr30rpswhwlvv3kyhdl3l6a0q5cqaqsg";
-    inherit name;
   };
 
   buildInputs = [
@@ -47,7 +46,6 @@ stdenv.mkDerivation rec {
     '';
     downloadPage = "https://github.com/tstack/lnav/releases";
     license = licenses.bsd2;
-    version = "0.9.0";
     maintainers = with maintainers; [ dochang ma27 ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/misc/macchina/default.nix b/nixpkgs/pkgs/tools/misc/macchina/default.nix
index 4558b88a2d47..053240e21190 100644
--- a/nixpkgs/pkgs/tools/misc/macchina/default.nix
+++ b/nixpkgs/pkgs/tools/misc/macchina/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "macchina";
-  version = "0.8.21";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "Macchina-CLI";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-cwQCqKC/onEZ4i533NSHrnNAl8/sRivK/ItX8oqB86Q=";
+    sha256 = "sha256:0d6nqjn2828kk91430yjl6xlwx1j10xhp2i0vv2slm3wv0a4w24x";
   };
 
-  cargoSha256 = "sha256-W29k2eLcYTqVn0v1dJrvFLRcWuVMsoHD+vPDL7YkiWE=";
+  cargoSha256 = "sha256:0mjqqd43jj6hxicgjkvmdf966vj5xf0ndibszzwp38zdb5kzshqi";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
diff --git a/nixpkgs/pkgs/tools/misc/mslink/default.nix b/nixpkgs/pkgs/tools/misc/mslink/default.nix
index 56354ff25275..6db1ae3275c5 100644
--- a/nixpkgs/pkgs/tools/misc/mslink/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mslink/default.nix
@@ -1,9 +1,9 @@
-{ stdenv
+{ gccStdenv
 , lib
 , fetchurl
 }:
 
-stdenv.mkDerivation rec {
+gccStdenv.mkDerivation rec {
   pname = "mslink";
   version = "1.3";
 
@@ -17,6 +17,9 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    if [[ "$(uname)" == "Darwin" ]]; then
+      mv mslink.exe mslink
+    fi
     install -D mslink $out/bin/mslink
   '';
 
diff --git a/nixpkgs/pkgs/tools/misc/ncdu/default.nix b/nixpkgs/pkgs/tools/misc/ncdu/default.nix
index 1237645ebaec..66429f338ac1 100644
--- a/nixpkgs/pkgs/tools/misc/ncdu/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ncdu/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ncdu";
-  version = "1.15.1";
+  version = "1.16";
 
   src = fetchurl {
     url = "https://dev.yorhel.nl/download/${pname}-${version}.tar.gz";
-    sha256 = "1c1zxalm5asyhn4p1hd51h7khw17515gbqmvdz63kc8xpx6xqbdh";
+    sha256 = "1m0gk09jaz114piidiw8fkg0id5l6nhz1cg5nlaf1yl3l595g49b";
   };
 
   buildInputs = [ ncurses ];
diff --git a/nixpkgs/pkgs/tools/misc/onefetch/default.nix b/nixpkgs/pkgs/tools/misc/onefetch/default.nix
index a80fdd568643..6e7484a7e40d 100644
--- a/nixpkgs/pkgs/tools/misc/onefetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/onefetch/default.nix
@@ -1,18 +1,26 @@
-{ fetchFromGitHub, rustPlatform, lib, stdenv, fetchpatch
-, CoreFoundation, libiconv, libresolv, Security }:
+{ fetchFromGitHub
+, rustPlatform
+, lib
+, stdenv
+, fetchpatch
+, CoreFoundation
+, libiconv
+, libresolv
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "onefetch";
-  version = "2.9.1";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
     owner = "o2sh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-owa+HmzMXpLR7H1FssW4gQiVAQGJRXhcitgJj6pxJRc=";
+    sha256 = "sha256-lrRp01ZeK9bGn7L7SqAxJAU9qugpHnC06CWChhVPGGQ=";
   };
 
-  cargoSha256 = "sha256-Bn2FlRESuW83ouGPiBwvGkIB0uCDDG0hdhRfRBks/0Q=";
+  cargoSha256 = "sha256-vNa1OF1x/MCTo9B4DTDZNWyHTsOl7Za3EgjnpsL/gWg=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation libiconv libresolv Security ];
 
@@ -20,6 +28,6 @@ rustPlatform.buildRustPackage rec {
     description = "Git repository summary on your terminal";
     homepage = "https://github.com/o2sh/onefetch";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne kloenk ];
+    maintainers = with maintainers; [ Br1ght0ne kloenk SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/pdd/default.nix b/nixpkgs/pkgs/tools/misc/pdd/default.nix
index 916f15c94c6e..8403a6c25752 100644
--- a/nixpkgs/pkgs/tools/misc/pdd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pdd/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildPythonApplication, dateutil }:
+{ lib, fetchFromGitHub, buildPythonApplication, python-dateutil }:
 
 buildPythonApplication rec {
   pname = "pdd";
@@ -13,7 +13,7 @@ buildPythonApplication rec {
 
   format = "other";
 
-  propagatedBuildInputs = [ dateutil ];
+  propagatedBuildInputs = [ python-dateutil ];
 
   installFlags = [ "PREFIX=$(out)" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/pgcenter/default.nix b/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
index c27252cc7069..e1fed81b2db6 100644
--- a/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "pgcenter";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner  = "lesovsky";
     repo   = "pgcenter";
     rev    = "v${version}";
-    sha256 = "0l3da7migx1gprhlwc98x30qh6lmrn8hizanxgs3hxl0arbrn710";
+    sha256 = "18s102hv6qqlx0nra91srdlb5fyv6x3hwism6c2r6zbxh68pgsag";
   };
 
   vendorSha256 = "0mgq9zl56wlr37dxxa1sh53wfkhrl9ybjvxj5y9djspqkp4j45pn";
diff --git a/nixpkgs/pkgs/tools/misc/piston-cli/default.nix b/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
index ec77007804b9..5e1ca0242bc6 100644
--- a/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/piston-cli/default.nix
@@ -9,7 +9,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "qvDGVJcaMXUajdUQWl4W1dost8k0PsS9XX/o8uQrtfY=";
   };
 
-  propagatedBuildInputs = with python3Packages; [ rich prompt_toolkit requests pygments pyyaml ];
+  propagatedBuildInputs = with python3Packages; [ rich prompt_toolkit requests pygments pyyaml more-itertools ];
 
   checkPhase = ''
     $out/bin/piston --help > /dev/null
diff --git a/nixpkgs/pkgs/tools/misc/pubs/default.nix b/nixpkgs/pkgs/tools/misc/pubs/default.nix
index 3b6df828fda0..36afc1d4cbb0 100644
--- a/nixpkgs/pkgs/tools/misc/pubs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pubs/default.nix
@@ -12,7 +12,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with python3Packages; [
-    argcomplete dateutil configobj feedparser bibtexparser pyyaml requests six
+    argcomplete python-dateutil configobj feedparser bibtexparser pyyaml requests six
     beautifulsoup4
   ];
 
diff --git a/nixpkgs/pkgs/tools/misc/qmk/default.nix b/nixpkgs/pkgs/tools/misc/qmk/default.nix
index 40e5d4d23aea..3fa088d8e2b4 100644
--- a/nixpkgs/pkgs/tools/misc/qmk/default.nix
+++ b/nixpkgs/pkgs/tools/misc/qmk/default.nix
@@ -3,38 +3,59 @@
 , fetchpatch
 }:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  inherit (python3.pkgs) buildPythonApplication fetchPypi;
+in
+buildPythonApplication rec {
   pname = "qmk";
-  version = "0.0.45";
+  version = "0.0.52";
 
-  src = python3.pkgs.fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "43f297f36b21d68c34c5efa0ce1449dddb2e28753f80939cadf761ee7a2a0901";
+    sha256 = "sha256-mNF+bRhaL6JhNbROmjYDHkKKokRIALd5FZbRt9Kg5XQ=";
   };
 
-  patches = [
-    # https://github.com/qmk/qmk_cli/pull/48
-    (fetchpatch {
-      name = "remove-unused-install-requires.patch";
-      url = "https://github.com/qmk/qmk_cli/commit/75b6ada1feccfa5a9bc2bb07a4cc749ef40d02dd.patch";
-      sha256 = "0lwi1dz35p07vha5gwq2jxm5q49vm99ix4jyhd6g6ypqbq1qiwc8";
-    })
-  ];
-
   nativeBuildInputs = with python3.pkgs; [
+    flake8
+    nose2
+    pep8-naming
     setuptools-scm
+    yapf
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
+    appdirs
+    argcomplete
+    colorama
+    dotty-dict
+    hid
+    hjson
+    jsonschema
     milc
+    pygments
+    pyusb
   ];
 
   # no tests implemented
   doCheck = false;
 
   meta = with lib; {
-    description = "A program to help users work with QMK Firmware";
     homepage = "https://github.com/qmk/qmk_cli";
+    description = "A program to help users work with QMK Firmware";
+    longDescription = ''
+      qmk_cli is a companion tool to QMK firmware. With it, you can:
+
+      - Interact with your qmk_firmware tree from any location
+      - Use qmk clone to pull down anyone's qmk_firmware fork
+      - Setup and work with your build environment:
+        - qmk setup
+        - qmk doctor
+        - qmk compile
+        - qmk console
+        - qmk flash
+        - qmk lint
+      - ... and many more!
+    '';
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/rauc/default.nix b/nixpkgs/pkgs/tools/misc/rauc/default.nix
index 663768c1507c..41183a2f6e1e 100644
--- a/nixpkgs/pkgs/tools/misc/rauc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rauc/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ curl dbus glib json-glib openssl ];
 
   configureFlags = [
+    "--with-systemdunitdir=${placeholder "out"}/lib/systemd/system"
     "--with-dbusinterfacesdir=${placeholder "out"}/share/dbus-1/interfaces"
     "--with-dbuspolicydir=${placeholder "out"}/share/dbus-1/systemd.d"
     "--with-dbussystemservicedir=${placeholder "out"}/share/dbus-1/system-services"
diff --git a/nixpkgs/pkgs/tools/misc/tmuxp/default.nix b/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
index 9e97f0d892bf..5820cbbba2c0 100644
--- a/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
@@ -1,36 +1,32 @@
-{ lib, python }:
+{ lib, python3Packages }:
 
-with python.pkgs;
+let
+  pypkgs = python3Packages;
 
-buildPythonApplication rec {
+in
+pypkgs.buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.7.2";
+  version = "1.9.2";
 
-  src = fetchPypi {
+  src = pypkgs.fetchPypi {
     inherit pname version;
-    sha256 = "14296b62db260420d4600dcd805408ea908b3a78d4ea0a6a403d092fdbf6d075";
+    sha256 = "sha256-3RlTbIq7UGvEESMvncq97bhjJw8O4m+0aFVZgBQOwkM=";
   };
 
-  postPatch = ''
-    sed -i 's/==.*$//' requirements/base.txt requirements/test.txt
-  '';
-
-  checkInputs = [
-    pytest
-    pytest-rerunfailures
-  ];
-
   # No tests in archive
   doCheck = false;
 
-  propagatedBuildInputs = [
-    click colorama kaptan libtmux
+  propagatedBuildInputs = with pypkgs; [
+    click
+    colorama
+    kaptan
+    libtmux
   ];
 
   meta = with lib; {
     description = "Manage tmux workspaces from JSON and YAML";
     homepage = "https://tmuxp.git-pull.com/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/topgrade/default.nix b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
index 7677a756737e..0c1cea4beed7 100644
--- a/nixpkgs/pkgs/tools/misc/topgrade/default.nix
+++ b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "7.0.1";
+  version = "7.1.0";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-86lBEtwybHrcm7G0ZIbfOHSZPBzNERHGqrTR4YbpDnE=";
+    sha256 = "sha256-MGu0rQhNEaToPY4o9fz9E3RlvcLKjDq76Mqoq4UeL08=";
   };
 
-  cargoSha256 = "sha256-yZIh01A1yC1ZeDDyXeh1C3abPfbW2JuJ7TIsVO1weZk=";
+  cargoSha256 = "sha256-Nx0Mw+V8Hgtioi77sk7p/lq6KGJQ3zRXWMNEIzT4Xn8=";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/nixpkgs/pkgs/tools/misc/trash-cli/default.nix b/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
index ff218eb10844..dbc00e13e1ae 100644
--- a/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/trash-cli/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.21.6.10.1";
+  version = "0.21.6.30";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    sha256 = "0mhpzf3vmd876aldl5gazmk4si0zvrh0v1rwsz2hbrn0571zmzy9";
+    sha256 = "09vwg4jpx7pl7rd5ybq5ldgwky8zzf59msmzvmim9vipnmjgkxv7";
   };
 
   propagatedBuildInputs = [ python3Packages.psutil ];
diff --git a/nixpkgs/pkgs/tools/misc/tvnamer/default.nix b/nixpkgs/pkgs/tools/misc/tvnamer/default.nix
new file mode 100644
index 000000000000..204914c280c6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/tvnamer/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, python3
+}:
+
+let
+  python' = python3.override {
+    packageOverrides = self: super: rec {
+      # tvdb_api v3.1.0 has a hard requirement on requests-cache < 0.6
+      requests-cache = super.requests-cache.overridePythonAttrs (super: rec {
+        version = "0.5.2";
+        src = self.fetchPypi {
+          inherit (super) pname;
+          inherit version;
+          sha256 = "sha256-gTAjJpaGBF+OAeIonMHn6a5asi3dHihJqQk6s6tycOs=";
+        };
+
+        # too many changes have been made to requests-cache based on version 0.6 so
+        # simply disable tests
+        doCheck = false;
+      });
+    };
+  };
+
+  pypkgs = python'.pkgs;
+
+in
+pypkgs.buildPythonApplication rec {
+  pname = "tvnamer";
+  version = "3.0.4";
+
+  src = pypkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "dc2ea8188df6ac56439343630466b874c57756dd0b2538dd8e7905048f425f04";
+  };
+
+  propagatedBuildInputs = with pypkgs; [ tvdb_api ];
+
+  # no tests from pypi
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automatic TV episode file renamer, uses data from thetvdb.com via tvdb_api.";
+    homepage = "https://github.com/dbr/tvnamer";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix b/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
index b2d3883176c6..209a38cdcc10 100644
--- a/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/uutils-coreutils/default.nix
@@ -5,6 +5,7 @@
 , cargo
 , sphinx
 , Security
+, libiconv
 , prefix ? "uutils-"
 , buildMulticallBinary ? true
 }:
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ rustPlatform.cargoSetupHook sphinx ];
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
 
   makeFlags = [
     "CARGO=${cargo}/bin/cargo"
diff --git a/nixpkgs/pkgs/tools/misc/yajsv/default.nix b/nixpkgs/pkgs/tools/misc/yajsv/default.nix
new file mode 100644
index 000000000000..6e5f20bfbd2b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/yajsv/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+let version = "1.4.0";
+in buildGoModule {
+  pname = "yajsv";
+  version = version;
+
+  src = fetchFromGitHub {
+    owner = "neilpa";
+    repo = "yajsv";
+    rev = "v${version}";
+    sha256 = "0smaij3905fqgcjmnfs58r6silhp3hyv7ccshk7n13fmllmsm7v7";
+  };
+
+  vendorSha256 = "0rmc31i5jra2qcqhw1azflmhawxasrq0d6qwd6qp250sj1jr6ahq";
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/yajsv -v > /dev/null
+  '';
+
+  meta = {
+    description = "Yet Another JSON Schema Validator";
+    homepage = "https://github.com/neilpa/yajsv";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/yank/default.nix b/nixpkgs/pkgs/tools/misc/yank/default.nix
index 19a4ba986ff2..dbbe14cf3864 100644
--- a/nixpkgs/pkgs/tools/misc/yank/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yank/default.nix
@@ -1,15 +1,14 @@
 { lib, stdenv, fetchFromGitHub, xsel }:
 
 stdenv.mkDerivation rec {
-
-  name = "yank-${meta.version}";
+  pname = "yank";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "mptre";
     repo = "yank";
-    rev = "v${meta.version}";
+    rev = "v${version}";
     sha256 = "1izygx7f1z35li74i2cwca0p28c3v8fbr7w72dwpiqdaiwywa8xc";
-    inherit name;
   };
 
   installFlags = [ "PREFIX=$(out)" ];
@@ -27,7 +26,6 @@ stdenv.mkDerivation rec {
     '';
     downloadPage = "https://github.com/mptre/yank/releases";
     license = licenses.mit;
-    version = "1.2.0";
     maintainers = [ maintainers.dochang ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/misc/ytmdl/default.nix b/nixpkgs/pkgs/tools/misc/ytmdl/default.nix
index 694ee44d5fa6..43f46bc05231 100644
--- a/nixpkgs/pkgs/tools/misc/ytmdl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ytmdl/default.nix
@@ -1,9 +1,11 @@
-{ lib, fetchFromGitHub, buildPythonApplication, ffmpeg, ffmpeg-python, musicbrainzngs, rich, simber
-, pydes, youtube-search, unidecode, pyxdg, downloader-cli, beautifulsoup4, itunespy, mutagen, pysocks
-, youtube-dl, ytmusicapi
+{ lib
+, fetchFromGitHub
+, python3
+, fetchpatch
+, ffmpeg
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "ytmdl";
   version = "2021.06.26";
 
@@ -14,14 +16,23 @@ buildPythonApplication rec {
     sha256 = "1jpd5zhqg2m9vjjjw4mgzb594q1v1pq1yl65py6kw42bq9w5yl5p";
   };
 
+  patches = [
+    # Fixes https://github.com/deepjyoti30/ytmdl/issues/188
+    # Only needed until the next major release after 2021.06.26
+    (fetchpatch {
+      url = "https://github.com/deepjyoti30/ytmdl/commit/37ba821d9692249c1fa563505cf60bd11b8e209e.patch";
+      includes = [ "bin/ytmdl" ];
+      sha256 = "sha256-VqtthpUL0Oub3DK7tSvAnemOzPPTcLvXXeebZIGOgdc=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace "bs4" "beautifulsoup4"
   '';
 
 
-  propagatedBuildInputs = [
-    ffmpeg
+  propagatedBuildInputs = with python3.pkgs; [
     ffmpeg-python
     musicbrainzngs
     rich
@@ -39,6 +50,10 @@ buildPythonApplication rec {
     ytmusicapi
   ];
 
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" (lib.makeBinPath [ ffmpeg ])
+  ];
+
   # This application has no tests
   doCheck = false;
 
@@ -46,7 +61,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/deepjyoti30/ytmdl";
     description = "YouTube Music Downloader";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ j0hax ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/zellij/default.nix b/nixpkgs/pkgs/tools/misc/zellij/default.nix
index e4fb7411a4a4..d55353682fdd 100644
--- a/nixpkgs/pkgs/tools/misc/zellij/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zellij/default.nix
@@ -1,21 +1,29 @@
-{ lib, fetchFromGitHub, rustPlatform, stdenv, installShellFiles, libiconv }:
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, stdenv
+, installShellFiles
+, pkg-config
+, libiconv
+, openssl
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "zellij";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "zellij-org";
-    repo = pname;
+    repo = "zellij";
     rev = "v${version}";
-    sha256 = "sha256-m7rAlFMhkX6+l+OceZ/RnusdhGew+Rjp7AmZ7vo2wr0=";
+    sha256 = "sha256-1GG3Bvw3P77dLhvJKwq48TUWMwg+bDgzWmtrw2JixLg=";
   };
 
-  cargoSha256 = "sha256-iTPOlbS3gWlJ8E2VB7z/kOsOJcngPGof7R5cH3Z0xk0=";
+  cargoSha256 = "sha256-cqm4QCGy6eTKtEBlE2ihmh93eO7d47zlCrLY8Gp0dxM=";
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/tools/networking/amass/default.nix b/nixpkgs/pkgs/tools/networking/amass/default.nix
index 67dce4c2e8b7..bf8a1b8e4f83 100644
--- a/nixpkgs/pkgs/tools/networking/amass/default.nix
+++ b/nixpkgs/pkgs/tools/networking/amass/default.nix
@@ -5,7 +5,7 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.11.2";
+  version = "3.13.2";
 
   src = fetchFromGitHub {
     owner = "OWASP";
@@ -14,7 +14,7 @@ buildGoModule rec {
     sha256 = "sha256-3J4yT7GTuVzkxMb+fCD3S9u0XBHa4Y0W+BnkDJ4PhWI=";
   };
 
-  vendorSha256 = "sha256-8GzzihKhrf71lLKgb2i3NnmSctvKb95V5pOGoWAgclk=";
+  vendorSha256 = "0nbj41ha31lkwraxwvyavdr94y9nnxl6z85jjkszxbd12a5g6v7h";
 
   outputs = [ "out" "wordlists" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/arping/default.nix b/nixpkgs/pkgs/tools/networking/arping/default.nix
index 4a5cae9bd3c4..54ea08ceaef5 100644
--- a/nixpkgs/pkgs/tools/networking/arping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/arping/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, libnet, libpcap }:
 
 stdenv.mkDerivation rec {
-  version = "2.21";
+  version = "2.22";
   pname = "arping";
 
   buildInputs = [ libnet libpcap ];
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "ThomasHabets";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1i7rjn863bnq51ahbvypm1bkzhyshlm5b32yzdd9iaqyz7sa7pa7";
+    sha256 = "sha256-yFSLhhyz6i7xyJR8Ax8FnHFGNe/HE40YirkkeefBqC4=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/networking/bore/default.nix b/nixpkgs/pkgs/tools/networking/bore/default.nix
new file mode 100644
index 000000000000..b22cdb0c2ae4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/bore/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, rustPlatform, fetchFromBitbucket, llvmPackages, Libsystem, SystemConfiguration, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bore";
+  version = "0.3.3";
+
+  src = fetchFromBitbucket {
+    owner = "delan";
+    repo = "nonymous";
+    rev = version;
+    sha256 = "0gws1f625izrb3armh6bay1k8l9p9csl37jx03yss1r720k4vn2x";
+  };
+
+  cargoSha256 = "1n09gcp1y885lz6g2f73zw3fd0fmv7nwlvaqba2yl0kylzk7naa6";
+  cargoBuildFlags = "-p ${pname}";
+
+  # FIXME can’t test --all-targets and --doc in a single invocation
+  cargoTestFlags = "--features std --all-targets --workspace";
+
+  nativeBuildInputs = [ installShellFiles ]
+    ++ lib.optional stdenv.isDarwin llvmPackages.libclang;
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    Libsystem
+    SystemConfiguration
+  ];
+
+  LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib";
+
+  postInstall = ''
+    installManPage $src/bore/doc/bore.1
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    printf '\0\0\0\0\0\0\0\0\0\0\0\0' \
+    | $out/bin/bore --decode \
+    | grep -q ';; NoError #0 Query 0 0 0 0 flags'
+  '';
+
+  meta = with lib; {
+    description = "DNS query tool";
+    homepage = "https://crates.io/crates/bore";
+    license = licenses.isc;
+    maintainers = [ maintainers.delan ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/boundary/default.nix b/nixpkgs/pkgs/tools/networking/boundary/default.nix
index ab26a39035ea..5c9abf578924 100644
--- a/nixpkgs/pkgs/tools/networking/boundary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src =
     let
@@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
         x86_64-darwin = "darwin_amd64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-vBXNDd9p9g1joBMcwt87uI/EIAeKa+QrndCh1kTwZyM=";
-        aarch64-linux = "sha256-Xompe1Q8Q3gAqpQQT04CWDx/f0Yc8HbnkZQbN+faB0g=";
-        x86_64-darwin = "sha256-cE4YrZPNAldCR31O3gI4W/y4RgV7+64yL15obb5uRcY=";
+        x86_64-linux = "sha256-xHvg2Kdm7hoJ7Dwh4pLXJE+EPcl9Zta/00IN3wRnOzU=";
+        aarch64-linux = "sha256-Kbr7tZjVcYiejy1CB9r10mqG+0serRx+mjPXds2/TJQ=";
+        x86_64-darwin = "sha256-a8e3gKTTsK5QRAYrB4/DtrFFGM2In73wKEcEMcbeUTI=";
       };
     in
     fetchzip {
diff --git a/nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix b/nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix
index a57d9f13d785..c5e1f7527dac 100644
--- a/nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix
@@ -3,7 +3,7 @@
 , boto3
 , botocore
 , certifi
-, dateutil
+, python-dateutil
 , jsonpatch
 , jsonschema
 , pyyaml
@@ -26,7 +26,7 @@ buildPythonApplication rec {
     boto3
     botocore
     certifi
-    dateutil
+    python-dateutil
     jsonpatch
     jsonschema
     pyyaml
diff --git a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
index 093863f21c15..c28e94a8218c 100644
--- a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.38.0";
+  version = "0.38.1";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dltCZ6g5Ta/M2N95TRkdLRr3T0YeKdkY88zE306AtDg=";
+    sha256 = "sha256-H0K38SX/mKsVjdQEa6vzx5TNRhqqomYk28+5Wl5H0sA=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/getmail6/default.nix b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
index ceec2bab490e..910758fcf207 100644
--- a/nixpkgs/pkgs/tools/networking/getmail6/default.nix
+++ b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "getmail6";
-  version = "6.17";
+  version = "6.18";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pPf+98zoS1t59RoqbmS4V0OsTLMR37Wcsl9BSWuvc0k=";
+    sha256 = "sha256-n2ADzxkd7bO6cO8UioCdRdCqUu03G9jxs9biEZACSus=";
   };
 
   # needs a Docker setup
diff --git a/nixpkgs/pkgs/tools/networking/gobgp/default.nix b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
index 96f806aad39f..98925489e548 100644
--- a/nixpkgs/pkgs/tools/networking/gobgp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "2.28.0";
+  version = "2.29.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-AlAfs1wi3hS7cqAtGqfUgv5CIonu7TmXWgxL1zSBh54=";
+    sha256 = "sha256-DhSIf8fAG2Zf0mwJ/iMgQU5sugHK2jJ6WJPbFbA/mhM=";
   };
 
   vendorSha256 = "sha256-PWm7XnO6LPaU8g8ymmqRkQv2KSX9kLv9RVaa000mrTY=";
diff --git a/nixpkgs/pkgs/tools/networking/kea/default.nix b/nixpkgs/pkgs/tools/networking/kea/default.nix
index 8daa2f10d7e1..e852fdb1c2d4 100644
--- a/nixpkgs/pkgs/tools/networking/kea/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kea/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "1.9.8";
+  version = "1.9.9";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-EAi1Ic3YEF0or37At48saKwmAczTwf5GtbEsQNopbl0=";
+    sha256 = "sha256-iVSWBR1+SkXlkwMii2PXpcxFSXYigz4lfNnMZBvS2kM=";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/nixpkgs/pkgs/tools/networking/modem-manager/default.nix b/nixpkgs/pkgs/tools/networking/modem-manager/default.nix
index 71ea50ea1726..2a99c127acbc 100644
--- a/nixpkgs/pkgs/tools/networking/modem-manager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/modem-manager/default.nix
@@ -1,20 +1,34 @@
-{ lib, stdenv, fetchurl, glib, udev, libgudev, polkit, ppp, gettext, pkg-config
-, libmbim, libqmi, systemd, vala, gobject-introspection, dbus }:
+{ lib, stdenv, fetchurl, fetchpatch
+, glib, udev, libgudev, polkit, ppp, gettext, pkg-config, python3
+, libmbim, libqmi, systemd, vala, gobject-introspection, dbus
+}:
 
 stdenv.mkDerivation rec {
   pname = "modem-manager";
-  version = "1.14.12";
+  version = "1.16.6";
 
-  package = "ModemManager";
   src = fetchurl {
-    url = "https://www.freedesktop.org/software/${package}/${package}-${version}.tar.xz";
-    sha256 = "sha256-0QqXEZndwl3N8VbFasCOkWEsCVOdVlIueu1G1G5IO7E=";
+    url = "https://www.freedesktop.org/software/ModemManager/ModemManager-${version}.tar.xz";
+    sha256 = "05wn94x71qr36avxjzvyf56nj5illynnf9nn15b17lv61wkbd41a";
   };
 
+  patches = [
+    # Fix a broken test.
+    # https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/556
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/commit/a324667386f35df0c3b3bbf615fa0560d215485d.patch";
+      sha256 = "1xj9gfl6spbp4xdp6gn76k8zvzam5m6lgmbiwdn6ixffzhlfwi5l";
+    })
+  ];
+
   nativeBuildInputs = [ vala gobject-introspection gettext pkg-config ];
 
   buildInputs = [ glib udev libgudev polkit ppp libmbim libqmi systemd ];
 
+  installCheckInputs = [
+    python3 python3.pkgs.dbus-python python3.pkgs.pygobject3
+  ];
+
   configureFlags = [
     "--with-polkit"
     "--with-udev-base-dir=${placeholder "out"}/lib/udev"
@@ -26,19 +40,29 @@ stdenv.mkDerivation rec {
     "--with-systemd-journal"
   ];
 
-  preCheck = ''
+  postPatch = ''
+    patchShebangs tools/test-modemmanager-service.py
+  '';
+
+  # In Nixpkgs g-ir-scanner is patched to produce absolute paths, and
+  # that interferes with ModemManager's tests, causing them to try to
+  # load libraries from the install path, which doesn't usually exist
+  # when `make check' is run.  So to work around that, we run it as an
+  # install check instead, when those paths will have been created.
+  doInstallCheck = true;
+  preInstallCheck = ''
     export G_TEST_DBUS_DAEMON="${dbus.daemon}/bin/dbus-daemon"
+    patchShebangs tools/tests/test-wrapper.sh
   '';
+  installCheckTarget = "check";
 
   enableParallelBuilding = true;
 
-  doCheck = true;
-
   meta = with lib; {
     description = "WWAN modem manager, part of NetworkManager";
     homepage = "https://www.freedesktop.org/wiki/Software/ModemManager/";
     license = licenses.gpl2Plus;
-    maintainers = [ ];
+    maintainers = teams.freedesktop.members;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/s3cmd/default.nix b/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
index 15f6ff3dfa0c..888d6a05c67d 100644
--- a/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonApplication, fetchFromGitHub, python_magic, dateutil }:
+{ lib, buildPythonApplication, fetchFromGitHub, python_magic, python-dateutil }:
 
 buildPythonApplication rec {
   pname = "s3cmd";
@@ -11,7 +11,7 @@ buildPythonApplication rec {
     sha256 = "0p6mbgai7f0c12pkw4s7d649gj1f8hywj60pscxvj9jsna3iifhs";
   };
 
-  propagatedBuildInputs = [ python_magic dateutil ];
+  propagatedBuildInputs = [ python_magic python-dateutil ];
 
   dontUseSetuptoolsCheck = true;
 
diff --git a/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix b/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix
index 2a907dcf1280..ebbaaa73fce1 100644
--- a/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix
+++ b/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 let
-  version = "3.7.10";
+  version = "3.7.13";
 in
 fetchFromGitHub {
   name = "stevenblack-blocklist-${version}";
@@ -9,7 +9,7 @@ fetchFromGitHub {
   owner = "StevenBlack";
   repo = "hosts";
   rev = version;
-  sha256 = "sha256-22k52aW7Uu41414tGOHViBM8zxAwoZYY5Mi/TJH9mtE=";
+  sha256 = "sha256-nSajiRDpcFp3MwnQPnoBVB/OWnhVqkeSmS7OBrfhMnw=";
 
   meta = with lib; {
     description = "Unified hosts file with base extensions";
diff --git a/nixpkgs/pkgs/tools/networking/stunnel/default.nix b/nixpkgs/pkgs/tools/networking/stunnel/default.nix
index f8b6c845a52e..befc1c3c3eef 100644
--- a/nixpkgs/pkgs/tools/networking/stunnel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/stunnel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stunnel";
-  version = "5.58";
+  version = "5.59";
 
   src = fetchurl {
     url    = "https://www.stunnel.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "d4c14cc096577edca3f6a2a59c2f51869e35350b3988018ddf808c88e5973b79";
+    sha256 = "sha256-E3d232vo8XAfHNWQt3eZMuEjR5+5HlGSFxwWeYgVzp8=";
     # please use the contents of "https://www.stunnel.org/downloads/${name}.tar.gz.sha256",
     # not the output of `nix-prefetch-url`
   };
diff --git a/nixpkgs/pkgs/tools/networking/tcpdump/default.nix b/nixpkgs/pkgs/tools/networking/tcpdump/default.nix
index f1fe05276396..6726e5b751ab 100644
--- a/nixpkgs/pkgs/tools/networking/tcpdump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcpdump/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tcpdump";
-  version = "4.99.0";
+  version = "4.99.1";
 
   src = fetchurl {
     url = "http://www.tcpdump.org/release/${pname}-${version}.tar.gz";
-    sha256 = "0hmqh2fx8rgs9v1mk3vpywj61xvkifz260q685xllxr8jmxg3wlc";
+    sha256 = "sha256-ebNphfsnAxRmGNh8Ss3j4Gi5HFU/uT8CGjN/F1/RDr4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
index 8228132b5c84..506869238e57 100644
--- a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
+++ b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yggdrasil";
-  version = "0.3.16";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "yggdrasil-network";
     repo = "yggdrasil-go";
     rev = "v${version}";
-    sha256 = "sha256-uUF0zkgtzdMZB/GKOtawjn7AQBkRoiAEj9nUUmpQSVQ=";
+    sha256 = "sha256-sMcbOTLdmAXp3U2XeNM0hrwOTjzr+9B6IvAaVbjhuFY=";
   };
 
-  vendorSha256 = "sha256-619PSqd7pl3Akj/kzLQhDIp1adumBGhLrzQsZvMzC7w=";
+  vendorSha256 = "sha256-QQN8ePOQ7DT9KeuY4ohFuPtocuinh3Y3us6QMnCQ4gc=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
index 6fa0dd38127c..00b3a65be0d4 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
@@ -1,19 +1,36 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, openssl, pkg-config, Security, libiconv }:
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, openssl
+, pkg-config
+, Security
+, libiconv
+}:
+
 rustPlatform.buildRustPackage rec {
   pname = "cargo-audit";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "RustSec";
-    repo = "cargo-audit";
-    rev = "v${version}";
-    sha256 = "sha256-apIhTgS7xzDGq2OE1o46bEQxGwkV7bTmzSxy85wHwyo=";
+    repo = "rustsec";
+    rev = "cargo-audit%2Fv${version}";
+    sha256 = "0pvb1m9277ysjzydjvx7viybi6bd23ch7sbjyx1wnz45ahrmia1j";
   };
 
-  cargoSha256 = "sha256-b4x5IxoT5KZnY6Pw3VEs/DuCPen6MlgQ2lSIxRDU+5U=";
+  cargoSha256 = "0cf8kg8vhfqbrkm227rzyl3394n7fsqhqgq13qks7374h5d04haw";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
 
-  buildInputs = [ openssl libiconv ] ++ lib.optionals stdenv.isDarwin [ Security ];
-  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    openssl
+    libiconv
+  ] ++ lib.optionals stdenv.isDarwin [
+    Security
+  ];
 
   # enables `cargo audit fix`
   cargoBuildFlags = [ "--features fix" ];
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
index fe8f743c71cc..beb04041861e 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.9.15";
+  version = "0.9.17";
 
   src = fetchFromGitHub {
     owner = "kbknapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Cd0QWFeAAHSkeCVQvb+Fsg5nBoutV1k1kQpMkWpci2E=";
+    sha256 = "sha256-Ian/vXGoPHecguQUp2IUgdLW6Ll8OdCA2W0WmoYPDrI=";
   };
 
-  cargoSha256 = "sha256-VngJMDVKIV8+ODHia2U2gKKPKskyKiuKhSnO6NJsJHI=";
+  cargoSha256 = "sha256-eDu1dAs543AryUEsCY9COHrvuamQocCk0nBXDIdFmYs=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
index bfe003c4890a..aeb18f2efdef 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "sunng87";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "sha256-hEpPRAUPHz9lDTJLyDMUAS+dH6hlppvi3Bb3ahnYW9U=";
+    sha256 = "sha256-+vQXaI6v8HXzsfXZFxmBJe+1u9nmW0z3SBjo38orJYA=";
   };
 
-  cargoSha256 = "sha256-tOiralZWA21HBTxYWVB1LZH2ArfgY7HB45dVqHoXe/Q=";
+  cargoSha256 = "sha256-Zcg1MAAESD6qrh7domslisT2wG4ZaYyZtPCQ5IQrLVo=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/tools/package-management/fpm/Gemfile.lock b/nixpkgs/pkgs/tools/package-management/fpm/Gemfile.lock
index c8bb7d364132..b3e8b9d221a5 100644
--- a/nixpkgs/pkgs/tools/package-management/fpm/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/package-management/fpm/Gemfile.lock
@@ -1,40 +1,36 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    arr-pm (0.0.10)
+    arr-pm (0.0.11)
       cabin (> 0)
-    backports (3.14.0)
+    backports (3.21.0)
     cabin (0.9.0)
-    childprocess (0.9.0)
-      ffi (~> 1.0, >= 1.0.11)
     clamp (1.0.1)
-    dotenv (2.7.2)
-    ffi (1.10.0)
-    fpm (1.11.0)
-      arr-pm (~> 0.0.10)
+    dotenv (2.7.6)
+    fpm (1.13.0)
+      arr-pm (~> 0.0.11)
       backports (>= 2.6.2)
       cabin (>= 0.6.0)
-      childprocess (= 0.9.0)
       clamp (~> 1.0.0)
-      ffi
-      json (>= 1.7.7, < 2.0)
+      git (>= 1.3.0, < 2.0)
+      json (>= 1.7.7, < 3.0)
       pleaserun (~> 0.0.29)
-      ruby-xz (~> 0.2.3)
+      rexml
       stud
+    git (1.8.1)
+      rchardet (~> 1.8)
     insist (1.0.0)
-    io-like (0.3.0)
-    json (1.8.6)
+    json (2.5.1)
     mustache (0.99.8)
-    pleaserun (0.0.30)
+    pleaserun (0.0.32)
       cabin (> 0)
       clamp
       dotenv
       insist
       mustache (= 0.99.8)
       stud
-    ruby-xz (0.2.3)
-      ffi (~> 1.9)
-      io-like (~> 0.3)
+    rchardet (1.8.0)
+    rexml (3.2.5)
     stud (0.0.23)
 
 PLATFORMS
diff --git a/nixpkgs/pkgs/tools/package-management/fpm/gemset.nix b/nixpkgs/pkgs/tools/package-management/fpm/gemset.nix
index 654a640c6ec2..dca13598e8cc 100644
--- a/nixpkgs/pkgs/tools/package-management/fpm/gemset.nix
+++ b/nixpkgs/pkgs/tools/package-management/fpm/gemset.nix
@@ -5,20 +5,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07yx1g1nh4zdy38i2id1xyp42fvj4vl6i196jn7szvjfm0jx98hg";
+      sha256 = "17qssricshzs2ml1jvn4bs2h85gxvrqm074pl5nl8vr74620iazi";
       type = "gem";
     };
-    version = "0.0.10";
+    version = "0.0.11";
   };
   backports = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17j5pf0b69bkn043wi4xd530ky53jbbnljr4bsjzlm4k8bzlknfn";
+      sha256 = "0xqvwj3mm28g1z4npya51zjcvxaniyyzn3fwgcdwmm8xrdbl8fgr";
       type = "gem";
     };
-    version = "3.14.0";
+    version = "3.21.0";
   };
   cabin = {
     groups = ["default"];
@@ -30,17 +30,6 @@
     };
     version = "0.9.0";
   };
-  childprocess = {
-    dependencies = ["ffi"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
-      type = "gem";
-    };
-    version = "0.9.0";
-  };
   clamp = {
     groups = ["default"];
     platforms = [];
@@ -56,31 +45,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13cis6bf06hmz744xrsl163p6gb78xcm8g8q4pcabsy5ywyv6kag";
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
       type = "gem";
     };
-    version = "2.7.2";
+    version = "2.7.6";
   };
-  ffi = {
+  fpm = {
+    dependencies = ["arr-pm" "backports" "cabin" "clamp" "git" "json" "pleaserun" "rexml" "stud"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+      sha256 = "03ss7yh628f0m6by23q3sniq660gm07mkz6wqjpvr118gc0h53sa";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.13.0";
   };
-  fpm = {
-    dependencies = ["arr-pm" "backports" "cabin" "childprocess" "clamp" "ffi" "json" "pleaserun" "ruby-xz" "stud"];
+  git = {
+    dependencies = ["rchardet"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0khzsiqzswxpql6w2ws9dawb27zgv4nmgrjszydmm0xpv6h21jrm";
+      sha256 = "0vdcv93s33d9914a9nxrn2y2qv15xk7jx94007cmalp159l08cnl";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.8.1";
   };
   insist = {
     groups = ["default"];
@@ -92,57 +82,56 @@
     };
     version = "1.0.0";
   };
-  io-like = {
+  json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04nn0s2wmgxij3k760h3r8m1dgih5dmd9h4v1nn085yi824i5z6k";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "2.5.1";
   };
-  json = {
+  mustache = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+      sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
       type = "gem";
     };
-    version = "1.8.6";
+    version = "0.99.8";
   };
-  mustache = {
+  pleaserun = {
+    dependencies = ["cabin" "clamp" "dotenv" "insist" "mustache" "stud"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
+      sha256 = "1aykf0l8327bqkkf5xd9jcglsib973zpy37cfnlf4j0vp0cdpn2d";
       type = "gem";
     };
-    version = "0.99.8";
+    version = "0.0.32";
   };
-  pleaserun = {
-    dependencies = ["cabin" "clamp" "dotenv" "insist" "mustache" "stud"];
+  rchardet = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hgnrl67zkqaxmfkwbyscawj4wqjm7h8khpbj58s6iw54wp3408p";
+      sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
       type = "gem";
     };
-    version = "0.0.30";
+    version = "1.8.0";
   };
-  ruby-xz = {
-    dependencies = ["ffi" "io-like"];
+  rexml = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11bgpvvk0098ghvlxr4i713jmi2izychalgikwvdwmpb452r3ndw";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "3.2.5";
   };
   stud = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
index ae01601dde4f..af83d04e8110 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-doc";
-  version = "0.3.3";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "lf-";
     repo = "nix-doc";
-    sha256 = "0vd7159y5w8jjgaw51kfr3z3r50299gvw7vjchpqx3nwmdink8bh";
+    sha256 = "1s0nlbn5fcgqfns8gpx3i87k5qivd8ar59rklvd7fbn6ckrmzi6m";
   };
 
   doCheck = true;
@@ -16,11 +16,11 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "0xsy13yxm8vblab73gynb781ya168w66c32i1lyv0ns1lnz61dmh";
+  cargoSha256 = "0xmw3fyic0fcg7a6z8dr3lv367bxqdhdrlrl2hhlz59xg5kq8b3f";
 
   meta = with lib; {
     description = "An interactive Nix documentation tool";
-    longDescription = "An interactive Nix documentation tool providing a CLI for function search and a Nix plugin for docs in the REPL";
+    longDescription = "An interactive Nix documentation tool providing a CLI for function search, a Nix plugin for docs in the REPL, and a ctags implementation for Nix script";
     homepage = "https://github.com/lf-/nix-doc";
     license = licenses.lgpl3;
     maintainers = [ maintainers.lf- ];
diff --git a/nixpkgs/pkgs/tools/package-management/nixops/azure-storage/default.nix b/nixpkgs/pkgs/tools/package-management/nixops/azure-storage/default.nix
index 6693a7464d43..c6f3d71e98ea 100644
--- a/nixpkgs/pkgs/tools/package-management/nixops/azure-storage/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nixops/azure-storage/default.nix
@@ -4,7 +4,7 @@
 , python
 , azure-common
 , futures
-, dateutil
+, python-dateutil
 , requests
 , isPy3k
 }:
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     sha256 = "06bmw6k2000kln5jwk5r9bgcalqbyvqirmdh9gq4s6nb4fv3c0jb";
   };
 
-  propagatedBuildInputs = [ azure-common dateutil requests ]
+  propagatedBuildInputs = [ azure-common python-dateutil requests ]
                             ++ pkgs.lib.optionals (!isPy3k) [ futures ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/security/age/default.nix b/nixpkgs/pkgs/tools/security/age/default.nix
index e15618da3f18..20735c6e5782 100644
--- a/nixpkgs/pkgs/tools/security/age/default.nix
+++ b/nixpkgs/pkgs/tools/security/age/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "age";
-  version = "1.0.0-rc.1";
-  vendorSha256 = "1qx6pkhq00y0lsi6f82g8hxxh65zk1c0ls91ap6hdlj7ch79bhl2";
+  version = "1.0.0-rc.3";
+  vendorSha256 = "sha256-sXUbfxhPmJXO+KgV/dmWmsyV49Pb6CoJLbt50yVgEvI=";
 
   src = fetchFromGitHub {
     owner = "FiloSottile";
     repo = "age";
     rev = "v${version}";
-    sha256 = "1n25wip4qnd3v9ial1apc2ybx10b9z6lwz7flyss6kvj3x5g9jd1";
+    sha256 = "sha256-YXdCTK9/eMvcHWg7gQQiPlLWYx2OjbOJDDNdSYO09HU=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/bitwarden/default.nix b/nixpkgs/pkgs/tools/security/bitwarden/default.nix
index daddf9a71b6a..39756c9e9a78 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden/default.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden/default.nix
@@ -17,11 +17,11 @@ let
   pname = "bitwarden";
 
   version = {
-    x86_64-linux = "1.26.4";
+    x86_64-linux = "1.27.0";
   }.${system} or "";
 
   sha256 = {
-    x86_64-linux = "sha256-PYqLf1Y3SwPFjq8JJMxHrKWKuCqbVpmzugi3DjRNWUg=";
+    x86_64-linux = "sha256-Ik+g7jkTBHRbGwDhbiJGQorMmt6GhCXVUd82Sug9a28=";
   }.${system} or "";
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/cfssl/default.nix b/nixpkgs/pkgs/tools/security/cfssl/default.nix
index e92fe7b951f6..6ef07c2c355b 100644
--- a/nixpkgs/pkgs/tools/security/cfssl/default.nix
+++ b/nixpkgs/pkgs/tools/security/cfssl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cfssl";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cfssl";
     rev = "v${version}";
-    sha256 = "1yzxz2l7h2d3f8j6l9xlm7g9659gsa17zf4q0883s0jh3l3xgs5n";
+    sha256 = "sha256-29HEaW5LCoHcuJrfVUN2hnsRtaSTrvIBo8ok2UJbfuQ=";
   };
 
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/security/chkrootkit/default.nix b/nixpkgs/pkgs/tools/security/chkrootkit/default.nix
index 338df2c2d1cc..b365fa62f953 100644
--- a/nixpkgs/pkgs/tools/security/chkrootkit/default.nix
+++ b/nixpkgs/pkgs/tools/security/chkrootkit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "chkrootkit";
-  version = "0.54";
+  version = "0.55";
 
   src = fetchurl {
     url = "ftp://ftp.pangeia.com.br/pub/seg/pac/${pname}-${version}.tar.gz";
-    sha256 = "01snj54hhgiqzs72hzabq6abcn46m1yckjx7503vcggm45lr4k0m";
+    sha256 = "sha256-qBwChuxEkxP5U3ASAqAOgbIE/Cz0PieFhaEcEqXgJYs=";
   };
 
   # TODO: a lazy work-around for linux build failure ...
diff --git a/nixpkgs/pkgs/tools/security/dnsx/default.nix b/nixpkgs/pkgs/tools/security/dnsx/default.nix
index 33f40ce59d48..75c85deb1cce 100644
--- a/nixpkgs/pkgs/tools/security/dnsx/default.nix
+++ b/nixpkgs/pkgs/tools/security/dnsx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dnsx";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "dnsx";
     rev = "v${version}";
-    sha256 = "sha256-dfjchsmGqyWLxO2sP+TlBEeKz9Fd4bHWG2r4FJPGNMs=";
+    sha256 = "sha256-w+FQp5pvySM36UHFxBH5WRZvnGi43NZeI2tLr6HAF3Q=";
   };
 
-  vendorSha256 = "sha256-KJyWb+coWSdvZGwDw/JSLtPeynndnaevwyYIzyEH4Kc=";
+  vendorSha256 = "sha256-gsoeAau3klOFTu+ZEYEMdIuXw/5IVsfFJ2maxPaZKjA=";
 
   meta = with lib; {
     description = "Fast and multi-purpose DNS toolkit";
diff --git a/nixpkgs/pkgs/tools/security/exploitdb/default.nix b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
index d5d9138a15a4..2c096d100e27 100644
--- a/nixpkgs/pkgs/tools/security/exploitdb/default.nix
+++ b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2021-06-25";
+  version = "2021-07-06";
 
   src = fetchFromGitHub {
     owner = "offensive-security";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xaRk/H2jITtU+93+7KxrYTTl0cCObvqcd+F9NNhjMjo=";
+    sha256 = "sha256-tRdA3GwU+jko+N+LOCHOA6RqFp3rkhyARwSTXRXoDww=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/security/flare-floss/default.nix b/nixpkgs/pkgs/tools/security/flare-floss/default.nix
index 954dd07d6ab8..fbf065dc3b15 100644
--- a/nixpkgs/pkgs/tools/security/flare-floss/default.nix
+++ b/nixpkgs/pkgs/tools/security/flare-floss/default.nix
@@ -1,8 +1,9 @@
 { lib
-, python2
+, python3
 , fetchFromGitHub
 }:
-python2.pkgs.buildPythonPackage rec {
+
+python3.pkgs.buildPythonPackage rec {
   pname = "flare-floss";
   version = "1.7.0";
 
@@ -13,18 +14,17 @@ python2.pkgs.buildPythonPackage rec {
     sha256 = "GMOA1+qM2A/Qw33kOTIINEvjsfqjWQWBXHNemh3IK8w=";
   };
 
-  propagatedBuildInputs = with python2.pkgs; [
+  propagatedBuildInputs = with python3.pkgs; [
     pyyaml
     simplejson
     tabulate
     vivisect
     plugnplay
     viv-utils
-    enum34
   ];
 
-  checkInputs = [
-    python2.pkgs.pytestCheckHook
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
   ];
 
   disabledTests = [
diff --git a/nixpkgs/pkgs/tools/security/gopass/default.nix b/nixpkgs/pkgs/tools/security/gopass/default.nix
index dea65ca7164c..358acf376b48 100644
--- a/nixpkgs/pkgs/tools/security/gopass/default.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/default.nix
@@ -13,7 +13,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.12.6";
+  version = "1.12.7";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17y9indpgqqx261bqvckfqq1q2zciahssaalaa5c5hb6bnw5ls52";
+    sha256 = "08mzm03vhc8pqyl17y8dkrcpgy3ckmb84x84b6ap3cja3y8gmj5x";
   };
 
-  vendorSha256 = "106rn0bkvzf2fw21f6wpiya88ysj8sfc2zkkm47iqr23d2202i4b";
+  vendorSha256 = "0ym6f1h51bj3qlzxs936fz3p47l63nad4xckl16m13iy0k7z5flg";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gpg-tui/default.nix b/nixpkgs/pkgs/tools/security/gpg-tui/default.nix
index f329fe1013b7..063265e51d81 100644
--- a/nixpkgs/pkgs/tools/security/gpg-tui/default.nix
+++ b/nixpkgs/pkgs/tools/security/gpg-tui/default.nix
@@ -1,24 +1,30 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
 , gpgme
 , libgpgerror
 , libxcb
 , python3
+, AppKit
+, Foundation
+, libiconv
+, libobjc
+, libresolv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "gpg-tui";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "gpg-tui";
     rev = "v${version}";
-    sha256 = "sha256-ajzx54uQFNZraDwqEKG9sdlMquJnluiaCqsR+JT79jw=";
+    sha256 = "sha256-Iv5A+o4TNSHJeTZgZ2e0SCHclz1mGMVRJDdBAWilyT8=";
   };
 
-  cargoSha256 = "sha256-UjrX+Z8slMBAiKhiFjxSoX74vIiFW9bMww49oPa18ag=";
+  cargoSha256 = "sha256-ISG/0WtgWwZoQd8PsvaQ9L8UKwerzEhY/84DxkdZV2g=";
 
   nativeBuildInputs = [
     gpgme # for gpgme-config
@@ -30,6 +36,12 @@ rustPlatform.buildRustPackage rec {
     gpgme
     libgpgerror
     libxcb
+  ] ++ lib.optionals stdenv.isDarwin [
+    AppKit
+    Foundation
+    libiconv
+    libobjc
+    libresolv
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/grype/default.nix b/nixpkgs/pkgs/tools/security/grype/default.nix
index 613d93747ed1..7df1090b2b0c 100644
--- a/nixpkgs/pkgs/tools/security/grype/default.nix
+++ b/nixpkgs/pkgs/tools/security/grype/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nHSnDrvz0EwDnmYch/bDJOZkf1b1Vrf1960d637ZmBs=";
+    sha256 = "sha256-fYeZFNtftG46/QHdV5UhCNCdP7ErOgwWfEB4V14ei5k=";
   };
 
-  vendorSha256 = "sha256-+1XJTr/WJIz/gvvl9KNp68OVEkjHk+KunAd4trd2T/Y=";
+  vendorSha256 = "sha256-mW3e4WFa9pKSpyTZYmPA2j8nZz+94G2PqdqI0BDo3wc=";
 
   propagatedBuildInputs = [ docker ];
 
diff --git a/nixpkgs/pkgs/tools/security/keybase/default.nix b/nixpkgs/pkgs/tools/security/keybase/default.nix
index f1268717a917..ec240a7c7156 100644
--- a/nixpkgs/pkgs/tools/security/keybase/default.nix
+++ b/nixpkgs/pkgs/tools/security/keybase/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "keybase";
-  version = "5.6.1";
+  version = "5.7.1";
 
   goPackagePath = "github.com/keybase/client";
   subPackages = [ "go/kbnm" "go/keybase" ];
@@ -17,7 +17,7 @@ buildGoPackage rec {
     owner = "keybase";
     repo = "client";
     rev = "v${version}";
-    sha256 = "12b0jdwhnvxb51x3pq0g0f23grv9yjbxmpsz36n8ab3j0fvmfg0g";
+    sha256 = "sha256-72rVk8pYIQFESQqBu4bmFBPpAOB0oG2Iu36TbAdecBw=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/security/knockpy/default.nix b/nixpkgs/pkgs/tools/security/knockpy/default.nix
index 89eda45322c7..8189145846b3 100644
--- a/nixpkgs/pkgs/tools/security/knockpy/default.nix
+++ b/nixpkgs/pkgs/tools/security/knockpy/default.nix
@@ -5,30 +5,28 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "knockpy";
-  version = "5.0.0";
+  version = "5.1.0";
   disabled = python3.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "guelfoweb";
     repo = "knock";
     rev = version;
-    sha256 = "1h7sibdxx8y53xm1wydyng418n4j6baiys257msq03cs04jlm7h9";
+    sha256 = "sha256-4W6/omGPmQFuZ/2AVNgCs2q0ti/P8OY4o7b4/g9q+Rc=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
     beautifulsoup4
     colorama
+    matplotlib
+    networkx
+    pyqt5
     requests
   ];
 
-  postPatch = ''
-    # https://github.com/guelfoweb/knock/pull/95
-    substituteInPlace setup.py \
-      --replace "bs4" "beautifulsoup4"
-  '';
-
   # Project has no tests
   doCheck = false;
+
   pythonImportsCheck = [ "knockpy" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/libtpms/default.nix b/nixpkgs/pkgs/tools/security/libtpms/default.nix
index 71ae5c969a0e..baca0ed8b771 100644
--- a/nixpkgs/pkgs/tools/security/libtpms/default.nix
+++ b/nixpkgs/pkgs/tools/security/libtpms/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libtpms";
-  version = "0.8.3";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
     owner = "stefanberger";
     repo = "libtpms";
     rev = "v${version}";
-    sha256 = "sha256-D6lYOVlgtBY6C07YqbG6TPnDKrUoEj82Ra6GK/HB7X8=";
+    sha256 = "sha256-9e7O9SE7e8D6ULXhICabNCrL+QTH55jQm0AI7DVteE0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/lynis/default.nix b/nixpkgs/pkgs/tools/security/lynis/default.nix
index b2ef8d8354b4..094aab1e86d3 100644
--- a/nixpkgs/pkgs/tools/security/lynis/default.nix
+++ b/nixpkgs/pkgs/tools/security/lynis/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lynis";
-  version = "3.0.4";
+  version = "3.0.5";
 
   src = fetchFromGitHub {
     owner = "CISOfy";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/pF1V8ZsylQOCW7K/O0R3HYYDdsdNDVmmUar21EzpcQ=";
+    sha256 = "sha256-IJCLj3iSPkfkYOqTu7adtU26jTgKfRmiwIfKvSApdIY=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
index 9f0af308cfb9..79f85f2b3750 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.49"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.51"
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
index ce054a6a480d..8248f6e8181b 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 2e07122e80d8ae23e6aa53ae0fcb9dfca6639c59
-  ref: refs/tags/6.0.49
+  revision: d9aeac3fea255c475f553be4c55f3ae7cefc8542
+  ref: refs/tags/6.0.51
   specs:
-    metasploit-framework (6.0.49)
+    metasploit-framework (6.0.51)
       actionpack (~> 5.2.2)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
@@ -55,6 +55,7 @@ GIT
       rb-readline
       recog
       redcarpet
+      reline (= 0.2.5)
       rex-arch
       rex-bin_tools
       rex-core
@@ -125,13 +126,13 @@ GEM
     arel-helpers (2.12.0)
       activerecord (>= 3.1.0, < 7)
     aws-eventstream (1.1.1)
-    aws-partitions (1.469.0)
-    aws-sdk-core (3.114.3)
+    aws-partitions (1.473.0)
+    aws-sdk-core (3.115.0)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.244.0)
+    aws-sdk-ec2 (1.246.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-iam (1.55.0)
@@ -155,7 +156,7 @@ GEM
     cookiejar (0.3.3)
     crass (1.0.6)
     daemons (1.4.0)
-    dnsruby (1.61.5)
+    dnsruby (1.61.7)
       simpleidn (~> 0.1)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
@@ -172,7 +173,7 @@ GEM
     eventmachine (1.2.7)
     faker (2.18.0)
       i18n (>= 1.6, < 2)
-    faraday (1.4.2)
+    faraday (1.4.3)
       faraday-em_http (~> 1.0)
       faraday-em_synchrony (~> 1.0)
       faraday-excon (~> 1.1)
@@ -198,8 +199,8 @@ GEM
     i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     io-console (0.5.9)
-    irb (1.3.5)
-      reline (>= 0.1.5)
+    irb (1.3.6)
+      reline (>= 0.2.5)
     jmespath (1.4.0)
     jsobfu (0.4.2)
       rkelly-remix
@@ -344,7 +345,7 @@ GEM
       rex-socket
       rex-text
     rex-struct2 (0.1.3)
-    rex-text (0.2.34)
+    rex-text (0.2.35)
     rex-zip (0.1.4)
       rex-text
     rexml (3.2.5)
diff --git a/nixpkgs/pkgs/tools/security/metasploit/default.nix b/nixpkgs/pkgs/tools/security/metasploit/default.nix
index b8ad99b91788..c48c5e1690ef 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/default.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/default.nix
@@ -8,13 +8,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.0.50";
+  version = "6.0.51";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-ZtIpkUt3jIhe4st8JlxE0rvLe6P+QBGdjyTL13Avwj0=";
+    sha256 = "sha256-ICVF4GVOyCq7dUAvzUUzhG+NuEiHSFvVWbQ8tAqUFFg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
index 7f43161b5beb..b52bff8aa8bb 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
@@ -114,30 +114,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xh65jmz3s12kfi7ij0j89d638nzdvq4z6dq9amzgmiw09ycvdbr";
+      sha256 = "1dw05k0l63lm631lwg5b1bx1nhkirds4rbc1v98bliwfjk5wf71a";
       type = "gem";
     };
-    version = "1.469.0";
+    version = "1.473.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10wk5y4flc04cc42cmcfgr9sj67mz4582d45xmll56mpz4cw5cfc";
+      sha256 = "06cs5wj4njb2ivhv06v5d7rgy1i2g67a93c0kxly8h7fkkxh315q";
       type = "gem";
     };
-    version = "3.114.3";
+    version = "3.115.0";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnpxgcmacmqs98swlv3qkg7svpwydb1kqsngqciyg3jddzxrzp6";
+      sha256 = "0n3m2a8jnk64ai4wb1wh1a77i8c561ncjklvp650w8723avbj5bq";
       type = "gem";
     };
-    version = "1.244.0";
+    version = "1.246.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
@@ -274,10 +274,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q7k7wn8flcdr0kzgknq40cjddd0zn3g3n4gwwwdz0kq30pinzxx";
+      sha256 = "1pbhj4xmj4262in6c1nwl5ssw0qypg8ysjrrkwn2akkzbxzy9rfq";
       type = "gem";
     };
-    version = "1.61.5";
+    version = "1.61.7";
   };
   domain_name = {
     groups = ["default"];
@@ -354,10 +354,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07mhk70gv453pg38md346470hknyhipdqppnplq706ll3k3lzb7v";
+      sha256 = "0zmdsl6n05khwwq8gjssmfca0ifz6q82wwghf1qyzbxxjdna5mly";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.4.3";
   };
   faraday-em_http = {
     groups = ["default"];
@@ -494,10 +494,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06i0izb1jm4ijydwk9w2jqyvz72aznaa1b386769yfi8284cnwj6";
+      sha256 = "0s4yjh5p1n05cm3pglh3g4ssrgy67x2bn3bsl0sydbm8mlf3xivr";
       type = "gem";
     };
-    version = "1.3.5";
+    version = "1.3.6";
   };
   jmespath = {
     groups = ["default"];
@@ -574,12 +574,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "2e07122e80d8ae23e6aa53ae0fcb9dfca6639c59";
-      sha256 = "0zxyr1r88qslw6ypjqxx188vhmikl94fmkcdg3phm8r71qa375da";
+      rev = "d9aeac3fea255c475f553be4c55f3ae7cefc8542";
+      sha256 = "0n0ljh5b8g5lb7amnj4792w8svw46d2wsbs0fnxjmj2fcph4a990";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.0.49";
+    version = "6.0.51";
   };
   metasploit-model = {
     groups = ["default"];
@@ -1156,10 +1156,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01g6jr73c3hbqhmzlc80jlqz2cwn9bq1j3cc19fpkq3hdg89drjp";
+      sha256 = "0idgw5z813h5dp82n07g5ldpyfnk7mhvnzl87d9fpy6invixnnbq";
       type = "gem";
     };
-    version = "0.2.34";
+    version = "0.2.35";
   };
   rex-zip = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/security/rbw/default.nix b/nixpkgs/pkgs/tools/security/rbw/default.nix
index 96616987510d..17ecdee6d309 100644
--- a/nixpkgs/pkgs/tools/security/rbw/default.nix
+++ b/nixpkgs/pkgs/tools/security/rbw/default.nix
@@ -21,15 +21,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rbw";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchCrate {
     inherit version;
     crateName = pname;
-    sha256 = "14cnqc5cf6qm2g9ypv2pbqbvymawyrqn3fc778labgqg24khqcyq";
+    sha256 = "17x4q29rsljbalc70r3ks4r6g5zc6jl4si75i33fcicxsvx6f39q";
   };
 
-  cargoSha256 = "0izn5bcvk1rx69sjwyfc49nmvw7k0jysqb0bpdpwdliaa06ggl86";
+  cargoSha256 = "14095ds8f5knrqcriphjlbvasc29n9rf8h5vlkmhpxyk7wh9azzc";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/security/saml2aws/default.nix b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
index e2f1ab7cdb6c..567d3727a16a 100644
--- a/nixpkgs/pkgs/tools/security/saml2aws/default.nix
+++ b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.28.0";
+  version = "2.31.0";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "sha256-2t1MytLjAxhVVsWyMYcQZ9c+ox+X2OszG5mLAv8c7xE=";
+    sha256 = "sha256-Qe7+INWS9b6lw7QbaaQwIkRwvfx5dRKsZqun3z/U/QA=";
   };
 
   runVend = true;
-  vendorSha256 = "sha256-8Kox01iyWhv/Fp7jHPeNXxc/K2TT1WPyWFieHZkqLho=";
+  vendorSha256 = "sha256-TieQVPSWtIteU0wTqX7si6GrPdYd4WD2eK4ZlLz0VJ8=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/security/sipvicious/default.nix b/nixpkgs/pkgs/tools/security/sipvicious/default.nix
index 8403019a341e..1167d40e4327 100644
--- a/nixpkgs/pkgs/tools/security/sipvicious/default.nix
+++ b/nixpkgs/pkgs/tools/security/sipvicious/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonApplication rec {
   pname = "sipvicious";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "EnableSecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17f6w7qh33zvlhqwf22y9y7skha0xjs46yk66q8xm4brsv4lfxxa";
+    sha256 = "sha256-O8/9Vz/u8BoF1dfGceOJdzPPYLfkdBp2DkwA5WQ3dgo=";
   };
 
   # Project has no tests
diff --git a/nixpkgs/pkgs/tools/security/sn0int/default.nix b/nixpkgs/pkgs/tools/security/sn0int/default.nix
index 5d1244e86196..43a390104413 100644
--- a/nixpkgs/pkgs/tools/security/sn0int/default.nix
+++ b/nixpkgs/pkgs/tools/security/sn0int/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sn0int";
-  version = "0.21.1";
+  version = "0.21.2";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LjNOaqYGlhF0U+YxoLLmmXgxPa8f+t9BSm+qO23waaI=";
+    sha256 = "sha256-BKdi/o/A0fJBlcKTDTCX7uGkK6QR0S9hIn0DI3CN5Gg=";
   };
 
-  cargoSha256 = "sha256-ruK+qDIqrltNcErBnrcHdPfVKmwPwiPfq42A/el206c=";
+  cargoSha256 = "sha256-MeMTXwb5v4iUJQSViOraXAck7n6VlIW2Qa0qNUZWu1g=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/security/sslscan/default.nix b/nixpkgs/pkgs/tools/security/sslscan/default.nix
index 29762fc527c3..4bd7a3ff2214 100644
--- a/nixpkgs/pkgs/tools/security/sslscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/sslscan/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sslscan";
-  version = "2.0.9";
+  version = "2.0.10";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = version;
-    sha256 = "0594svwz4pya0syibar0ahmi5zdjbwd5kg6hrlhfpmmslrsyli6m";
+    sha256 = "sha256-L6cNmvR6zy2tkMHh+LBsQ3VZDUr0tD5AlOEj+dTLV5k=";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/tools/security/stegseek/default.nix b/nixpkgs/pkgs/tools/security/stegseek/default.nix
index d2fb825b5296..f898b5eab0e6 100644
--- a/nixpkgs/pkgs/tools/security/stegseek/default.nix
+++ b/nixpkgs/pkgs/tools/security/stegseek/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "stegseek";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "RickdeJager";
     repo = pname;
     rev = "v${version}";
-    sha256 = "19hzr5533b607ihmjj71x682qjr45s75cqxh9zap21z16346ahqn";
+    sha256 = "sha256-B5oJffYOYfsH0YRq/Bq0ciIlCsCONyScFBjP7a1lIzo=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/security/terrascan/default.nix b/nixpkgs/pkgs/tools/security/terrascan/default.nix
index 8fa8ded7b664..5fd0578bc877 100644
--- a/nixpkgs/pkgs/tools/security/terrascan/default.nix
+++ b/nixpkgs/pkgs/tools/security/terrascan/default.nix
@@ -1,22 +1,22 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "terrascan";
-  version = "1.6.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "accurics";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-AIHfG5Z5I91zcogHxGRP7pLauYHICX6NL0bJTp982sQ=";
+    sha256 = "sha256-eCkinYJtZNf5Fo+LXu01cHRInA9CfDONvt1OIs3XJSk=";
   };
 
-  vendorSha256 = "sha256-XzZ3RudyD6YKyc3e3HvUrkXToXs2aFSSCScQgmCfxgQ=";
+  vendorSha256 = "sha256-eez/g0Np/vnSO6uvUA8vtqR3DEaKlBo6lyd9t25LE7s=";
 
-  # tests want to download a vulnerable Terraform project
+  # Tests want to download a vulnerable Terraform project
   doCheck = false;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/security/tor/default.nix b/nixpkgs/pkgs/tools/security/tor/default.nix
index 2e1e1ae2a67b..b3c98ac013e4 100644
--- a/nixpkgs/pkgs/tools/security/tor/default.nix
+++ b/nixpkgs/pkgs/tools/security/tor/default.nix
@@ -30,11 +30,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.5.7";
+  version = "0.4.6.6";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "0x7hhl0svfc4yh9xvq7kkzgmwjcw1ak9i0794wjg4biy2fmclzs4";
+    sha256 = "04ifi18cj4cw5lhfzgfrrc42j7qqdmbvxq24xlhj0dsmljdih8rl";
   };
 
   outputs = [ "out" "geoip" ];
diff --git a/nixpkgs/pkgs/tools/security/traitor/default.nix b/nixpkgs/pkgs/tools/security/traitor/default.nix
index 8718c92cd3d7..e056b556aadf 100644
--- a/nixpkgs/pkgs/tools/security/traitor/default.nix
+++ b/nixpkgs/pkgs/tools/security/traitor/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "traitor";
-  version = "0.0.3";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "liamg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mffh4k87ybl0mpglgi2yfwksygrh62mcmkcmfcbszlh5pagsch1";
+    sha256 = "sha256-eUeKkjSpKel6XH3/VVw/WPCG/Nq8BcZwMNFG9z9FUuU=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/security/vault/default.nix b/nixpkgs/pkgs/tools/security/vault/default.nix
index 45bd76b90917..66a6d5e63e85 100644
--- a/nixpkgs/pkgs/tools/security/vault/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchFromGitHub, buildGoPackage, installShellFiles, nixosTests }:
+{ stdenv, lib, fetchFromGitHub, buildGoPackage, installShellFiles, nixosTests
+, makeWrapper
+, gawk
+, glibc
+}:
 
 buildGoPackage rec {
   pname = "vault";
@@ -15,13 +19,16 @@ buildGoPackage rec {
 
   subPackages = [ "." ];
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   buildFlagsArray = [ "-tags=vault" "-ldflags=-s -w -X ${goPackagePath}/sdk/version.GitCommit=${src.rev}" ];
 
   postInstall = ''
     echo "complete -C $out/bin/vault vault" > vault.bash
     installShellCompletion vault.bash
+  '' + lib.optionalString stdenv.isLinux ''
+    wrapProgram $out/bin/vault \
+      --prefix PATH ${lib.makeBinPath [ gawk glibc ]}
   '';
 
   passthru.tests.vault = nixosTests.vault;
diff --git a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
index 11175c3c889f..68df6e557f61 100644
--- a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
+++ b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchurl, unzip, makeWrapper, gawk, glibc }:
 
 let
   version = "1.7.3";
@@ -30,7 +30,7 @@ in stdenv.mkDerivation {
 
   src = sources.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
 
-  nativeBuildInputs = [ unzip ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   sourceRoot = ".";
 
@@ -40,7 +40,10 @@ in stdenv.mkDerivation {
     mkdir -p $out/bin $out/share/bash-completion/completions
     mv vault $out/bin
     echo "complete -C $out/bin/vault vault" > $out/share/bash-completion/completions/vault
-
+  '' + lib.optionalString stdenv.isLinux ''
+    wrapProgram $out/bin/vault \
+      --prefix PATH ${lib.makeBinPath [ gawk glibc ]}
+  '' + ''
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix b/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
index 2790a6434999..4342c8f3ac95 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
+++ b/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, nixosTests
+{ lib, stdenv, rustPlatform, fetchFromGitHub, fetchurl, nixosTests
 , pkg-config, openssl
 , libiconv, Security, CoreServices
 , dbBackend ? "sqlite", libmysqlclient, postgresql }:
@@ -7,16 +7,18 @@ let
   featuresFlag = "--features ${dbBackend}";
 
 in rustPlatform.buildRustPackage rec {
-  pname = "bitwarden_rs";
-  version = "1.20.0";
+  pname = "vaultwarden";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "1ncy4iwmdzdp8rv1gc5i4s1rp97d94n4l4bh08v6w4zdpx0zn8b9";
+    sha256 = "sha256-aXbnNO3mTAgE1yNx7YVDo1vPpO8ACZpBGHQ633fNZ3k=";
   };
 
+  cargoSha256 = "sha256-SFzq3OU0a0s3zlEzUkqGdZb/knYafqDamLy4ghH4i8I=";
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = with lib; [ openssl ]
     ++ optionals stdenv.isDarwin [ libiconv Security CoreServices ]
@@ -25,7 +27,6 @@ in rustPlatform.buildRustPackage rec {
 
   RUSTC_BOOTSTRAP = 1;
 
-  cargoSha256 = "0vdi792bzqxj8g215r9r5anzs4qhqsm6sjzwpj1l9861bn7j4xsz";
   cargoBuildFlags = [ featuresFlag ];
 
   checkPhase = ''
@@ -35,11 +36,11 @@ in rustPlatform.buildRustPackage rec {
     runHook postCheck
   '';
 
-  passthru.tests = nixosTests.bitwarden;
+  passthru.tests = nixosTests.vaultwarden;
 
   meta = with lib; {
     description = "Unofficial Bitwarden compatible server written in Rust";
-    homepage = "https://github.com/dani-garcia/bitwarden_rs";
+    homepage = "https://github.com/dani-garcia/vaultwarden";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ msteen ];
   };
diff --git a/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix b/nixpkgs/pkgs/tools/security/vaultwarden/vault.nix
index 2b0855b821d6..49e7cc4f3ba1 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix
+++ b/nixpkgs/pkgs/tools/security/vaultwarden/vault.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
-  pname = "bitwarden_rs-vault";
+  pname = "vaultwarden-vault";
   version = "2.19.0";
 
   src = fetchurl {
@@ -10,16 +10,16 @@ stdenv.mkDerivation rec {
   };
 
   buildCommand = ''
-    mkdir -p $out/share/bitwarden_rs/
-    cd $out/share/bitwarden_rs/
+    mkdir -p $out/share/vaultwarden/
+    cd $out/share/vaultwarden/
     tar xf $src
     mv web-vault vault
   '';
 
-  passthru.tests = nixosTests.bitwarden;
+  passthru.tests = nixosTests.vaultwarden;
 
   meta = with lib; {
-    description = "Integrates the web vault into bitwarden_rs";
+    description = "Integrates the web vault into vaultwarden";
     homepage = "https://github.com/dani-garcia/bw_web_builds";
     platforms = platforms.all;
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/tools/system/fancy-motd/default.nix b/nixpkgs/pkgs/tools/system/fancy-motd/default.nix
index a009fe1423bf..2c30e7e93485 100644
--- a/nixpkgs/pkgs/tools/system/fancy-motd/default.nix
+++ b/nixpkgs/pkgs/tools/system/fancy-motd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fancy-motd";
-  version = "unstable-2021-06-27";
+  version = "unstable-2021-07-04";
 
   src = fetchFromGitHub {
     owner = "bcyran";
     repo = pname;
-    rev = "839320ab261612c9ba5b13fc8d1445d094ea0ab3";
-    sha256 = "00wv7nk2f3q186z2qfks5salf97s04vk7ilk8jnbimxg4fl7hcda";
+    rev = "2cc3c3c164ef695c9dd465beca61716a364db32c";
+    sha256 = "003p5rsyl216xwldrk8slpnzw6wdrcm8hpfdgy9a0mja5g1xdqzr";
   };
 
   buildInputs = [ bc curl figlet fortune gawk iproute2 ];
diff --git a/nixpkgs/pkgs/tools/system/hwinfo/default.nix b/nixpkgs/pkgs/tools/system/hwinfo/default.nix
index 1739d5a6314f..9ee77bfc6d3d 100644
--- a/nixpkgs/pkgs/tools/system/hwinfo/default.nix
+++ b/nixpkgs/pkgs/tools/system/hwinfo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hwinfo";
-  version = "21.74";
+  version = "21.75";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = version;
-    sha256 = "sha256-pPL/RYL8eVPuX71kT64p/ZkUE4uVFALMVj8mWZM3NuU=";
+    sha256 = "sha256-w2Lb+4FvPXw2uFqwsmzVdKIXY8IXV/TAb8FHFPl/K40=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/natscli/default.nix b/nixpkgs/pkgs/tools/system/natscli/default.nix
index dbf85f9b7329..1b4a173d504a 100644
--- a/nixpkgs/pkgs/tools/system/natscli/default.nix
+++ b/nixpkgs/pkgs/tools/system/natscli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "natscli";
-  version = "0.0.22";
+  version = "0.0.24";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = version;
-    sha256 = "1qc6lpgl878kc316z10x59px6jyfzdwsj7fdr8k4ayln0lplvbq3";
+    sha256 = "11rpgvcnd2m4g0jnv6g0zdvnhs37jwn1c4hc86xgnk2vipvy0nw2";
   };
 
-  vendorSha256 = "1a9d7hqj43qdh0h7pc5wckqshi8lacf6m2107wymzzz62j1msy26";
+  vendorSha256 = "0nrgbwc10pp7adj0w1jjj6677y2dpqq969ij7i0pmvr08ni95sxw";
 
   meta = with lib; {
     description = "NATS Command Line Interface";
diff --git a/nixpkgs/pkgs/tools/system/netdata/default.nix b/nixpkgs/pkgs/tools/system/netdata/default.nix
index 673d29d61aa1..25d0366ef715 100644
--- a/nixpkgs/pkgs/tools/system/netdata/default.nix
+++ b/nixpkgs/pkgs/tools/system/netdata/default.nix
@@ -42,6 +42,11 @@ in stdenv.mkDerivation rec {
     # required to prevent plugins from relying on /etc
     # and /var
     ./no-files-in-etc-and-var.patch
+    # The current IPC location is unsafe as it writes
+    # a fixed path in /tmp, which is world-writable.
+    # Therefore we put it into `/run/netdata`, which is owned
+    # by netdata only.
+    ./ipc-socket-in-run.patch
   ];
 
   NIX_CFLAGS_COMPILE = optionalString withDebug "-O1 -ggdb -DNETDATA_INTERNAL_CHECKS=1";
diff --git a/nixpkgs/pkgs/tools/system/netdata/ipc-socket-in-run.patch b/nixpkgs/pkgs/tools/system/netdata/ipc-socket-in-run.patch
new file mode 100644
index 000000000000..a117955af095
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/netdata/ipc-socket-in-run.patch
@@ -0,0 +1,13 @@
+diff --git a/daemon/commands.h b/daemon/commands.h
+index bd4aabfe1cbe4..ce7eb3c730228 100644
+--- a/daemon/commands.h
++++ b/daemon/commands.h
+@@ -6,7 +6,7 @@
+ #ifdef _WIN32
+ # define PIPENAME "\\\\?\\pipe\\netdata-cli"
+ #else
+-# define PIPENAME "/tmp/netdata-ipc"
++# define PIPENAME "/run/netdata/ipc"
+ #endif
+ 
+ #define MAX_COMMAND_LENGTH 4096
diff --git a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
index ac980e6c36cd..de9afdae2940 100644
--- a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
+++ b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     description = "System management interface for AMD GPUs supported by ROCm";
     homepage = "https://github.com/RadeonOpenCompute/ROC-smi";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/stress-ng/default.nix b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
index 2e1c4e3a1fa4..8065355383a8 100644
--- a/nixpkgs/pkgs/tools/system/stress-ng/default.nix
+++ b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.12.04";
+  version = "0.12.11";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-tONL2o207TfjO3qGG8Bq13y70jTWMjbaLLWPAuPzIY4=";
+    sha256 = "sha256-lxOTB1Mhwkw9V2ms+rtwWRHR9BHO1ZN7fP6lhSjBtOY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/tm/default.nix b/nixpkgs/pkgs/tools/system/tm/default.nix
index aa946c72ffc6..19ade9b929cb 100644
--- a/nixpkgs/pkgs/tools/system/tm/default.nix
+++ b/nixpkgs/pkgs/tools/system/tm/default.nix
@@ -1,26 +1,28 @@
-{lib, stdenv, fetchurl}:
+{ lib
+, stdenv
+, fetchurl
+}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
+  pname = "tm";
+  version = "0.4.1";
 
-  name = "tm-0.4.1";
+  src = fetchurl {
+    url = "https://vicerveza.homeunix.net/~viric/soft/tm/tm-${version}.tar.gz";
+    sha256 = "3b389bc03b6964ad5ffa57a344b891fdbcf7c9b2604adda723a863f83657c4a0";
+  };
 
-  installPhase=''make install "PREFIX=$out"'';
+  makeFlags = [ "PREFIX=$(out)" ];
 
-  patchPhase = ''
+  postPatch = ''
     sed -i 's@/usr/bin/install@install@g ; s/gcc/cc/g' Makefile
   '';
 
-  src = fetchurl {
-    url = "http://vicerveza.homeunix.net/~viric/soft/tm/tm-0.4.1.tar.gz";
-    sha256 = "3b389bc03b6964ad5ffa57a344b891fdbcf7c9b2604adda723a863f83657c4a0";
-  };
-
   meta = with lib; {
-    homepage = "http://vicerveza.homeunix.net/~viric/soft/tm";
     description = "Terminal mixer - multiplexer for the i/o of terminal applications";
-    license = licenses.gpl2;
+    homepage = "http://vicerveza.homeunix.net/~viric/soft/tm";
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ viric ];
     platforms = platforms.all;
   };
-
 }
diff --git a/nixpkgs/pkgs/tools/text/chroma/default.nix b/nixpkgs/pkgs/tools/text/chroma/default.nix
index 6511d2dcdbb3..1b9cbcd3727a 100644
--- a/nixpkgs/pkgs/tools/text/chroma/default.nix
+++ b/nixpkgs/pkgs/tools/text/chroma/default.nix
@@ -1,30 +1,33 @@
-{ lib, buildGoModule, fetchFromGitHub, git }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "chroma";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner  = "alecthomas";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-+4UaQrJh3PBf68rlW1lOEyEVw3vWxfc+Casa5+H8F9A=";
+    sha256 = "19d7yr6q8kwrm91yyglmw9n7wa861sgi6dbwn8sl6dp55czfwvaq";
+    # populate values otherwise taken care of by goreleaser,
+    # unfortunately these require us to use git. By doing
+    # this in postFetch we can delete .git afterwards and
+    # maintain better reproducibility of the src.
     leaveDotGit = true;
-  };
+    postFetch = ''
+      cd "$out"
 
-  nativeBuildInputs = [ git ];
+      commit="$(git rev-parse HEAD)"
+      date=$(git show -s --format=%aI "$commit")
 
-  # populate values otherwise taken care of by goreleaser
-  # https://github.com/alecthomas/chroma/issues/435
-  postPatch = ''
-    commit="$(git rev-parse HEAD)"
-    date=$(git show -s --format=%aI "$commit")
+      substituteInPlace "$out/cmd/chroma/main.go" \
+        --replace 'version = "?"' 'version = "${version}"' \
+        --replace 'commit  = "?"' "commit = \"$commit\"" \
+        --replace 'date    = "?"' "date = \"$date\""
 
-    substituteInPlace cmd/chroma/main.go \
-      --replace 'version = "?"' 'version = "${version}"' \
-      --replace 'commit  = "?"' "commit = \"$commit\"" \
-      --replace 'date    = "?"' "date = \"$date\""
-  '';
+      find "$out" -name .git -print0 | xargs -0 rm -rf
+    '';
+  };
 
   vendorSha256 = "0y8mp08zccn9qxrsj9j7vambz8dwzsxbbgrlppzam53rg8rpxhrg";
 
diff --git a/nixpkgs/pkgs/tools/text/hottext/default.nix b/nixpkgs/pkgs/tools/text/hottext/default.nix
index 6d361f50f35a..2e9d0a909a2a 100644
--- a/nixpkgs/pkgs/tools/text/hottext/default.nix
+++ b/nixpkgs/pkgs/tools/text/hottext/default.nix
@@ -67,7 +67,7 @@ in stdenv.mkDerivation rec {
 
   nimFlags = [ "-d:release" ] ++ map (lib: "--path:${lib}/src") nimLibs;
 
-  HOTTEXT_FONT_PATH = "${gentium}/share/fonts/truetype/GentiumPlus-R.ttf";
+  HOTTEXT_FONT_PATH = "${gentium}/share/fonts/truetype/GentiumPlus-Regular.ttf";
 
   buildPhase = ''
     runHook preBuild
diff --git a/nixpkgs/pkgs/tools/text/languagetool/default.nix b/nixpkgs/pkgs/tools/text/languagetool/default.nix
index 810e3feaa228..791d779bf833 100644
--- a/nixpkgs/pkgs/tools/text/languagetool/default.nix
+++ b/nixpkgs/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "5.3";
+  version = "5.4";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "1km20ajqb65vkhkrf94zy5srcss66ix8padp7ng59pa8pj11wmi2";
+    sha256 = "sha256-2khadADfzwkW+J0uafPWJ6xUQRSQDm8seiBHueQGmKI=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook/default.nix b/nixpkgs/pkgs/tools/text/mdbook/default.nix
index a8c5efb0a493..29007dd1282d 100644
--- a/nixpkgs/pkgs/tools/text/mdbook/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices, darwin }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.9";
+  version = "0.4.10";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "sha256-wc3poiLnIHbbl0j2sWQkEbxccpohPnvjLPdNuKfsDSY=";
+    sha256 = "sha256-1Ddy/kb2Q7P+tzyEr3EC3qWm6MGSsDL3/vnPJLAm/J0=";
   };
 
-  cargoSha256 = "sha256-2DNfacPp9IMke2j8WYxpGmMxityaFGyXrc0jOyqPl3c=";
+  cargoSha256 = "sha256-x2BwnvEwTqz378aDE7OHWuEwNEsUnRudLq7sUJjHRpA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/nixpkgs/pkgs/tools/text/mdcat/default.nix b/nixpkgs/pkgs/tools/text/mdcat/default.nix
index 6f6750b1b02c..e298a56c58c2 100644
--- a/nixpkgs/pkgs/tools/text/mdcat/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdcat/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , rustPlatform
 , pkg-config
@@ -11,19 +12,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.22.2";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    hash = "sha256-i36MYTMkbSuWxxlWUDsyYMay/4Mg7M5jEFhHM60UrkM=";
+    hash = "sha256-bGXuYGQyrXa9gUEQfB7BF9K04z88r1UoM8R5gpL2nRM=";
   };
 
   nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
-  buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
+  buildInputs = [ openssl ]
+    ++ lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "sha256-y9yg4EQDL+RcD6NI7n6W/Hi6Tw4Wr1Kf6hbcIuidIf4=";
+  cargoSha256 = "sha256-hmv4LNk7NEYjT/5XXUpMd+xGS19KHOW+HIgsiFEWeig=";
 
   checkInputs = [ ansi2html ];
   # Skip tests that use the network and that include files.
@@ -32,6 +34,7 @@ rustPlatform.buildRustPackage rec {
     "--skip magic::tests::detect_mimetype_of_magic_param_bytes_max_length"
     "--skip magic::tests::detect_mimetype_of_png_image"
     "--skip magic::tests::detect_mimetype_of_svg_image"
+    "--skip resources::tests::read_url_with_http_url_fails_when_size_limit_is_exceeded"
     "--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"
     "--skip iterm2_tests_render_md_samples_images_md"
@@ -48,6 +51,6 @@ rustPlatform.buildRustPackage rec {
     description = "cat for markdown";
     homepage = "https://github.com/lunaryorn/mdcat";
     license = with licenses; [ asl20 ];
-    maintainers = with maintainers; [ davidtwco ];
+    maintainers = with maintainers; [ davidtwco SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/num-utils/default.nix b/nixpkgs/pkgs/tools/text/num-utils/default.nix
new file mode 100644
index 000000000000..14784a4e8cfc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/num-utils/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "num-utils";
+  version = "0.5";
+
+  src = fetchurl {
+    url = "https://suso.suso.org/programs/num-utils/downloads/num-utils-${version}.tar.gz";
+    sha256 = "0kn6yskjww2agcqvas5l2xp55mp4njdxqkdicchlji3qzih2fn83";
+  };
+
+  buildInputs = [ perl ];
+
+  patchPhase = ''
+    substituteInPlace Makefile --replace "-o 0 -g 0" "" --replace "\$(RPMDIR)" ""
+  '';
+  makeFlags = [
+    "TOPDIR=${placeholder "out"}"
+    "PERL=${perl}/bin/perl"
+  ];
+
+  meta = with lib; {
+    description = "Programs for dealing with numbers from the command line";
+    homepage = "https://suso.suso.org/xulu/Num-utils";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.catern ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/sd/default.nix b/nixpkgs/pkgs/tools/text/sd/default.nix
index 1536e72ad29e..009150062db2 100644
--- a/nixpkgs/pkgs/tools/text/sd/default.nix
+++ b/nixpkgs/pkgs/tools/text/sd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security
+{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -14,8 +14,17 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1iwgy9zzdxay6hb9pz47jchy03jrsy5csxijlq4i228qhqnvq1lr";
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
+  preFixup = ''
+    installManPage $releaseDir/build/sd-*/out/sd.1
+
+    installShellCompletion $releaseDir/build/sd-*/out/sd.{bash,fish}
+    installShellCompletion --zsh $releaseDir/build/sd-*/out/_sd
+  '';
+
   meta = with lib; {
     description = "Intuitive find & replace CLI (sed alternative)";
     homepage = "https://github.com/chmln/sd";
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
index 4e321311f28c..3240f65167e1 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
@@ -5,15 +5,15 @@ GEM
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
-    asciidoctor (2.0.12)
-    asciidoctor-diagram (2.1.0)
+    asciidoctor (2.0.15)
+    asciidoctor-diagram (2.1.2)
       asciidoctor (>= 1.5.7, < 3.x)
-      asciidoctor-diagram-ditaamini (~> 0.13)
+      asciidoctor-diagram-ditaamini (~> 1.0.0)
       asciidoctor-diagram-plantuml (~> 1.2021)
       rexml
-    asciidoctor-diagram-ditaamini (0.13.1)
-    asciidoctor-diagram-plantuml (1.2021.0)
-    asciidoctor-epub3 (1.5.0.alpha.19)
+    asciidoctor-diagram-ditaamini (1.0.0)
+    asciidoctor-diagram-plantuml (1.2021.7)
+    asciidoctor-epub3 (1.5.1)
       asciidoctor (>= 1.5.6, < 3.0.0)
       gepub (~> 1.0.0)
       mime-types (~> 3.0)
@@ -21,67 +21,66 @@ GEM
       asciidoctor (~> 2.0)
       asciimath (~> 2.0)
       mathematical (~> 1.6.0)
-    asciidoctor-pdf (1.5.4)
-      asciidoctor (>= 1.5.3, < 3.0.0)
-      concurrent-ruby (~> 1.1.0)
-      prawn (~> 2.2.0)
-      prawn-icon (~> 2.5.0)
-      prawn-svg (~> 0.31.0)
+    asciidoctor-pdf (1.6.0)
+      asciidoctor (~> 2.0)
+      concurrent-ruby (~> 1.1)
+      prawn (~> 2.4.0)
+      prawn-icon (~> 3.0.0)
+      prawn-svg (~> 0.32.0)
       prawn-table (~> 0.2.0)
       prawn-templates (~> 0.1.0)
       safe_yaml (~> 1.0.0)
-      thread_safe (~> 0.3.0)
       treetop (~> 1.6.0)
-      ttfunk (~> 1.5.0, >= 1.5.1)
     asciidoctor-revealjs (4.1.0)
       asciidoctor (>= 2.0.0, < 3.0.0)
       concurrent-ruby (~> 1.0)
       thread_safe (~> 0.3.5)
     asciimath (2.0.2)
     coderay (1.1.3)
-    concurrent-ruby (1.1.8)
+    concurrent-ruby (1.1.9)
     css_parser (1.9.0)
       addressable
     gepub (1.0.13)
       nokogiri (>= 1.8.2, < 1.12)
       rubyzip (> 1.1.1, < 2.4)
     hashery (2.1.2)
-    i18n (1.8.9)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     mathematical (1.6.14)
       ruby-enum (~> 0.4)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2021.0225)
-    mini_portile2 (2.5.0)
-    nokogiri (1.11.1)
+    mini_portile2 (2.5.3)
+    nokogiri (1.11.7)
       mini_portile2 (~> 2.5.0)
       racc (~> 1.4)
-    pdf-core (0.7.0)
-    pdf-reader (2.4.2)
+    pdf-core (0.9.0)
+    pdf-reader (2.5.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
       ruby-rc4
       ttfunk
     polyglot (0.3.5)
-    prawn (2.2.2)
-      pdf-core (~> 0.7.0)
-      ttfunk (~> 1.5)
-    prawn-icon (2.5.0)
+    prawn (2.4.0)
+      pdf-core (~> 0.9.0)
+      ttfunk (~> 1.7)
+    prawn-icon (3.0.0)
       prawn (>= 1.1.0, < 3.0.0)
-    prawn-svg (0.31.0)
+    prawn-svg (0.32.0)
       css_parser (~> 1.6)
       prawn (>= 0.11.1, < 3)
+      rexml (~> 3.2)
     prawn-table (0.2.2)
       prawn (>= 1.3.0, < 3.0.0)
     prawn-templates (0.1.2)
       pdf-reader (~> 2.0)
       prawn (~> 2.2)
     public_suffix (4.0.6)
-    pygments.rb (2.1.0)
+    pygments.rb (2.2.0)
     racc (1.5.2)
-    rexml (3.2.4)
+    rexml (3.2.5)
     rouge (3.26.0)
     ruby-enum (0.9.0)
       i18n
@@ -91,7 +90,7 @@ GEM
     thread_safe (0.3.6)
     treetop (1.6.11)
       polyglot (~> 0.3)
-    ttfunk (1.5.1)
+    ttfunk (1.7.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
index 19106214c263..6fe57ff48565 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
@@ -35,10 +35,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gjk9v83vw0pz4x0xqqnw231z9sgscm6vnacjw7hy5njkw8fskj9";
+      sha256 = "0k3lijm4dmiz977bfmpclk5glj5jwv7bidamwwwywm60ywb0n4n4";
       type = "gem";
     };
-    version = "2.0.12";
+    version = "2.0.15";
   };
   asciidoctor-diagram = {
     dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
@@ -46,30 +46,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fh73k306q1x4rzsly2fy1rdq1kpkdvs3r1084hgk0sh516ksc0s";
+      sha256 = "09ci775f7y7d6spn0fl5wfmfyxianjp4z0p3fwcrzajy63f381v9";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.1.2";
   };
   asciidoctor-diagram-ditaamini = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08jwpyklcplmfcxs4z9z0b0la6xdwrnf9bk6c02y54502228bg6b";
+      sha256 = "1frnjz0j00v5hqp5macgnn6jq77jcpjy2l6hqmn5jn5ds7bmi2rl";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "1.0.0";
   };
   asciidoctor-diagram-plantuml = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bxlkq3k775lhhnbs85cx8cbixhw7p70hnxrqnnig470h6jhmj0b";
+      sha256 = "1kcxwbaancxfq08fr7syg8mxsi97jiczxyp4an2x0ymq3mkss0k8";
       type = "gem";
     };
-    version = "1.2021.0";
+    version = "1.2021.7";
   };
   asciidoctor-epub3 = {
     dependencies = ["asciidoctor" "gepub" "mime-types"];
@@ -77,10 +77,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fgi0rb8026k0a43wnanan6nzc8386azygmfl4zv7c9vram4nr6h";
+      sha256 = "05lylv2k18vcnf3647n47zdqxpa70bg16znzn252ymp8say25zzg";
       type = "gem";
     };
-    version = "1.5.0.alpha.19";
+    version = "1.5.1";
   };
   asciidoctor-mathematical = {
     dependencies = ["asciidoctor" "asciimath" "mathematical"];
@@ -94,15 +94,15 @@
     version = "0.3.5";
   };
   asciidoctor-pdf = {
-    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "thread_safe" "treetop" "ttfunk"];
+    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "treetop"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k8hn9lrvr08grqx17x2vrllw5qmfh0j08wp56464w2pj279ka67";
+      sha256 = "0sxfz3qp2j76jlab7fb1d1ylbf0h2nnbkhg019qqch5wkd4k1iw9";
       type = "gem";
     };
-    version = "1.5.4";
+    version = "1.6.0";
   };
   asciidoctor-revealjs = {
     dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
@@ -140,10 +140,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
       type = "gem";
     };
-    version = "1.1.8";
+    version = "1.1.9";
   };
   css_parser = {
     dependencies = ["addressable"];
@@ -183,10 +183,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.9";
+    version = "1.8.10";
   };
   mathematical = {
     dependencies = ["ruby-enum"];
@@ -225,10 +225,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
+      sha256 = "1ad0mli9rc0f17zw4ibp24dbj1y39zkykijsjmnzl4gwpg5s0j6k";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.5.3";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -236,20 +236,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
+      sha256 = "1vrn31385ix5k9b0yalnlzv360isv6dincbcvi8psllnwz4sjxj9";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.11.7";
   };
   pdf-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19llwch2wfg51glb0kff0drfp3n6nb9vim4zlvzckxysksvxpby1";
+      sha256 = "1fz0yj4zrlii2j08kaw11j769s373ayz8jrdhxwwjzmm28pqndjg";
       type = "gem";
     };
-    version = "0.7.0";
+    version = "0.9.0";
   };
   pdf-reader = {
     dependencies = ["Ascii85" "afm" "hashery" "ruby-rc4" "ttfunk"];
@@ -257,10 +257,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cxladxy18dhk4a3b263crq8hyxb3q0c7ifxrb5nr1bs6y0pk8i6";
+      sha256 = "14cxj3ra9nnn334qpm2vsx9s0zk3095s8ih6cwcp47h3hv03c73y";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.0";
   };
   polyglot = {
     groups = ["default"];
@@ -278,10 +278,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qdjf1v6sfl44g3rqxlg8k4jrzkwaxgvh2l4xws97a8f3xv4na4m";
+      sha256 = "1g9avv2rprsjisdk137s9ljr05r7ajhm78hxa1vjsv0jyx22f1l2";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.4.0";
   };
   prawn-icon = {
     dependencies = ["prawn"];
@@ -289,21 +289,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ivkdf8rdf92hhy97vbmc2a4w97vcvqd58jcj4z9hz3hfsb1526w";
+      sha256 = "1xdnjik5zinnkjavmybbh2s52wzcpb8hzaqckiv0mxp0vs0x9j6s";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "3.0.0";
   };
   prawn-svg = {
-    dependencies = ["css_parser" "prawn"];
+    dependencies = ["css_parser" "prawn" "rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rb5hmjqc4hvy6liw9y51y6glbw66f09r09w0nvdfxhfi2kka16l";
+      sha256 = "0mbxzw7r7hv43db9422flc24ib9d8bdy1nasbni2h998jc5a5lb6";
       type = "gem";
     };
-    version = "0.31.0";
+    version = "0.32.0";
   };
   prawn-table = {
     dependencies = ["prawn"];
@@ -342,10 +342,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1736rbjgin97p3vjknz60p6dl66c936djwsk7wnwvwmav8r1nx0y";
+      sha256 = "1mshqjh8v0v8k29f8annqfr4qlgkp39nbwx3sgm69aymv4skfddb";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.2.0";
   };
   racc = {
     groups = ["default"];
@@ -362,10 +362,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "3.2.4";
+    version = "3.2.5";
   };
   rouge = {
     groups = ["default"];
@@ -444,9 +444,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mgrnqla5n51v4ivn844albsajkck7k6lviphfqa8470r46c58cd";
+      sha256 = "15iaxz9iak5643bq2bc0jkbjv8w2zn649lxgvh5wg48q9d4blw13";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "1.7.0";
   };
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
index c21a5dda994a..c26b944522c9 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -160,35 +160,12 @@ let
         "https://texlive.info/tlnet-archive/${snapshot.year}/${snapshot.month}/${snapshot.day}/tlnet/archive"
       ];
 
-      src = fetchurl { inherit urls sha512; };
-
-      passthru = {
-        inherit pname tlType version;
-      } // lib.optionalAttrs (sha512 != "") { inherit src; };
-      unpackCmd = file: ''
-        tar -xf ${file} \
-          '--strip-components=${toString stripPrefix}' \
-          -C "$out" --anchored --exclude=tlpkg --keep-old-files
-      '' + postUnpack;
-
-    in if sha512 == "" then
-      # hash stripped from pkgs.nix to save space -> fetch&unpack in a single step
-      # currently unused as we prefer to keep the sha512 hashes for reproducibility
-      fetchurl {
-        inherit urls;
-        sha1 = if fixedHash == null then throw "TeX Live package ${tlName} is missing hash!"
-          else fixedHash;
-        name = tlName;
-        recursiveHash = true;
-        downloadToTemp = true;
-        postFetch = ''mkdir "$out";'' + unpackCmd "$downloadedFile";
-        # TODO: perhaps override preferHashedMirrors and allowSubstitutes
-     }
-        // passthru
-
-    else runCommand "texlive-${tlName}"
+    in runCommand "texlive-${tlName}"
       ( {
-          inherit passthru;
+          src = fetchurl { inherit urls sha512; };
+          inherit stripPrefix;
+          # metadata for texlive.combine
+          passthru = { inherit pname tlType version; };
         } // lib.optionalAttrs (fixedHash != null) {
           outputHash = fixedHash;
           outputHashAlgo = "sha1";
@@ -197,7 +174,10 @@ let
       )
       ( ''
           mkdir "$out"
-        '' + unpackCmd "'${src}'"
+          tar -xf "$src" \
+          --strip-components="$stripPrefix" \
+          -C "$out" --anchored --exclude=tlpkg --keep-old-files
+        '' + postUnpack
       );
 
   # combine a set of TL packages into a single TL meta-package
diff --git a/nixpkgs/pkgs/tools/video/bento4/default.nix b/nixpkgs/pkgs/tools/video/bento4/default.nix
index 6ee7c844994e..00180078d9d9 100644
--- a/nixpkgs/pkgs/tools/video/bento4/default.nix
+++ b/nixpkgs/pkgs/tools/video/bento4/default.nix
@@ -3,25 +3,29 @@
 }:
 stdenv.mkDerivation rec {
   pname = "bento4";
-  version = "1.6.0-637";
+  version = "1.6.0-638";
 
   src = fetchFromGitHub {
     owner = "axiomatic-systems";
     repo = "Bento4";
     rev = "v${version}";
-    sha256 = "0iwqi71nj0iczffvpxmz0prvmmnyiqypfwvzivkh38wl0br82bkp";
+    sha256 = "1hxr4lds4dl46advshk7azg28fcpcjaa5pzk2zzpsc9l69s0bnxk";
   };
 
-  patches = [ ./libap4.patch ];
+  patches = [
+    ./libap4.patch # include all libraries as shared, not static
+  ];
 
   nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/{lib,bin}
     find -iname '*.so' -exec mv --target-directory="$out/lib" {} \;
     find -maxdepth 1 -executable -type f -exec mv --target-directory="$out/bin" {} \;
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/video/svt-av1/default.nix b/nixpkgs/pkgs/tools/video/svt-av1/default.nix
index 69ded2307de4..fd572fabae3e 100644
--- a/nixpkgs/pkgs/tools/video/svt-av1/default.nix
+++ b/nixpkgs/pkgs/tools/video/svt-av1/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, cmake, nasm }:
+{ lib, stdenv, fetchFromGitLab, cmake, nasm }:
 
 stdenv.mkDerivation rec {
   pname = "svt-av1";
-  version = "0.8.6";
+  version = "0.8.7";
 
-  src = fetchFromGitHub {
+  src = fetchFromGitLab {
     owner = "AOMediaCodec";
     repo = "SVT-AV1";
     rev = "v${version}";
-    sha256 = "1wzamg89azi1f93wxvdy7silsgklckc754ca066k33drvyacicyw";
+    sha256 = "1xlxb6kn6hqz9dxz0nd905m4i2mwjwq1330rbabwzmg4b66cdslg";
   };
 
   nativeBuildInputs = [ cmake nasm ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
       activities.
     '';
     inherit (src.meta) homepage;
-    changelog = "https://github.com/AOMediaCodec/SVT-AV1/blob/v${version}/CHANGELOG.md";
+    changelog = "https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/v${version}/CHANGELOG.md";
     license = with licenses; [
       bsd2
       {
diff --git a/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix b/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
index dfd3321b6b62..1a0188127aa9 100644
--- a/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonApplication rec {
   pname = "cloud-init";
-  version = "20.3";
+  version = "21.2";
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "cloud-init";
     rev = version;
-    sha256 = "1fmckxf4q4sxjqs758vw7ca0rnhl9hyq67cqpqzz2v3s1gqzjhm4";
+    sha256 = "0vhjkgs49ixfa3kkj5s3v3gcxvypm3cdvfk6adrk2bx3wv2cbhvz";
   };
 
   patches = [ ./0001-add-nixos-support.patch ];
@@ -59,9 +59,7 @@ buildPythonApplication rec {
   ];
 
   makeWrapperArgs = [
-    "--prefix PATH : ${lib.makeBinPath [
-      dmidecode cloud-utils.guest
-    ]}/bin"
+    "--prefix PATH : ${lib.makeBinPath [ dmidecode cloud-utils.guest ]}/bin"
   ];
 
   disabledTests = [
@@ -71,6 +69,27 @@ buildPythonApplication rec {
     "test_path_env_gets_set_from_main"
     # tries to read from /etc/ca-certificates.conf while inside the sandbox
     "test_handler_ca_certs"
+    # Doesn't work in the sandbox
+    "TestEphemeralDhcpNoNetworkSetup"
+    "TestHasURLConnectivity"
+    "TestReadFileOrUrl"
+    "TestConsumeUserDataHttp"
+    # Chef Omnibus
+    "TestInstallChefOmnibus"
+  ];
+
+  disabledTestPaths = [
+    # Oracle tests are not passing
+    "cloudinit/sources/tests/test_oracle.py"
+    # Disable the integration tests. pycloudlib would be required
+    "tests/unittests/test_datasource/test_aliyun.py"
+    "tests/unittests/test_datasource/test_azure.py"
+    "tests/unittests/test_datasource/test_ec2.py"
+    "tests/unittests/test_datasource/test_exoscale.py"
+    "tests/unittests/test_datasource/test_gce.py"
+    "tests/unittests/test_datasource/test_openstack.py"
+    "tests/unittests/test_datasource/test_scaleway.py"
+    "tests/unittests/test_ec2_util.py"
   ];
 
   preCheck = ''
@@ -78,6 +97,8 @@ buildPythonApplication rec {
     export TMPDIR=/tmp
   '';
 
+  pythonImportsCheck = [ "cloudinit" ];
+
   meta = with lib; {
     homepage = "https://cloudinit.readthedocs.org";
     description = "Provides configuration and customization of cloud instance";
diff --git a/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix b/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
new file mode 100644
index 000000000000..8673200172e4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, ocamlPackages
+}:
+
+ocamlPackages.buildDunePackage rec {
+  pname = "wayland-proxy-virtwl";
+  version = "unstable-2021-04-15";
+
+  src = fetchFromGitHub {
+    owner = "talex5";
+    repo = pname;
+    rev = "09321a28f3d4c0fa7e41ebb3014106b62090b649";
+    sha256 = "03rc2jp5d2y9y7mfis6kk9gchd49gvq0jg6fq5gi9r21ckb4k5v4";
+  };
+
+  postPatch = ''
+    # no need to vendor
+    rm -r ocaml-wayland
+  '';
+
+  useDune2 = true;
+  minimumOCamlVersion = "4.08";
+
+  buildInputs = with ocamlPackages; [
+    wayland
+    cmdliner
+    logs
+  ];
+
+  meta = {
+    homepage = "https://github.com/talex5/wayland-virtwl-proxy";
+    description = "Proxy Wayland connections across a VM boundary";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.sternenseemann ];
+  };
+}