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/xdotool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi/data.nix304
-rwxr-xr-xnixpkgs/pkgs/tools/admin/pulumi/update.sh69
-rw-r--r--nixpkgs/pkgs/tools/admin/swiftclient/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/archivers/cabextract/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/archivers/unp/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/plugins/extrafiles.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/tts/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/backup/zfs-autobackup/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix95
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch118
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/filesystems/rdfind/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/graphics/gnuplot/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/textplots/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/graphics/texture-synthesis/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/bandwidth/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/calamares/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/chafa/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/clpeak/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/dupd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/envsubst/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/etcher/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/exa/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/fbcat/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fclones/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/fluentd/Gemfile1
-rw-r--r--nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock5
-rw-r--r--nixpkgs/pkgs/tools/misc/fluentd/gemset.nix21
-rw-r--r--nixpkgs/pkgs/tools/misc/grub/trusted.nix15
-rw-r--r--nixpkgs/pkgs/tools/misc/kak-lsp/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/macchina/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/nncp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/qmk/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/quich/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/tfk8s/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/yad/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/youtube-dl/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/zellij/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/boundary/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/checkip/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/networking/flannel/plugin.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/hurl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/ipv6calc/default.nix48
-rw-r--r--nixpkgs/pkgs/tools/networking/kapp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/kea/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/linux-router/default.nix81
-rw-r--r--nixpkgs/pkgs/tools/networking/mu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/oha/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/networking/sniffglue/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/spoof-mac/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/networking/sstp/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/networking/stuntman/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/networking/v2ray/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/default.nix121
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/dhclient.patch120
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/fix-app-icon.patch19
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/fix-curses.patch15
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/fix-gtk-issues.patch47
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/no-optimization.patch21
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/no-var-install.patch17
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/pygtk.patch15
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/urwid-api-update.patch21
-rw-r--r--nixpkgs/pkgs/tools/networking/wicd/wpa2-ttls20
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/protontricks/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch120
-rw-r--r--nixpkgs/pkgs/tools/security/age/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock4
-rw-r--r--nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/cfssl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/cowpatty/default.nix50
-rw-r--r--nixpkgs/pkgs/tools/security/credential-detector/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/dorkscout/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/gitleaks/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/kubescape/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/security/nuclei/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/quill/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/scilla/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/sn0int/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/step-ca/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/system/acpica-tools/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/system/cm-rgb/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/consul-template/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/foreman/Gemfile.lock8
-rw-r--r--nixpkgs/pkgs/tools/system/foreman/gemset.nix16
-rw-r--r--nixpkgs/pkgs/tools/system/gdu/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/natscli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/rocm-smi/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/text/csview/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/text/difftastic/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/text/hck/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/text/reckon/Gemfile.lock4
-rw-r--r--nixpkgs/pkgs/tools/text/reckon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/reckon/gemset.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/sad/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/text/tv/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/typesetting/sile/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/virtualization/shipyard/default.nix6
114 files changed, 1545 insertions, 900 deletions
diff --git a/nixpkgs/pkgs/tools/X11/xdotool/default.nix b/nixpkgs/pkgs/tools/X11/xdotool/default.nix
index d917e54ec3fb..b9eca0d893a5 100644
--- a/nixpkgs/pkgs/tools/X11/xdotool/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xdotool/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xdotool";
-  version = "3.20210804.2";
+  version = "3.20210903.1";
 
   src = fetchFromGitHub {
     owner = "jordansissel";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7N5f/BFtq/m5MsXe7ZCTUTc1yp+JDJNRF1P9qB2l554=";
+    sha256 = "sha256-fmz/CJm1GgNOYjOfC6uNwDa8jV+GczPw8m6Qb2jw3rE=";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
index 7e4316bf52e6..b4dfcd17aeb3 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -125,5 +125,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://cloud.google.com/sdk/";
     maintainers = with maintainers; [ iammrinal0 pradyuman stephenmw zimbatm ];
     platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
+    mainProgram = "gcloud";
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/lxd/default.nix b/nixpkgs/pkgs/tools/admin/lxd/default.nix
index 722e3b947738..523f8165802e 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/default.nix
@@ -1,5 +1,5 @@
 { lib, hwdata, pkg-config, lxc, buildGoPackage, fetchurl
-, makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq
+, makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq, attr
 , squashfsTools, iproute2, iptables, ebtables, iptables-nftables-compat, libcap
 , dqlite, raft-canonical, sqlite-replication, udev
 , writeShellScriptBin, apparmor-profiles, apparmor-parser
@@ -19,13 +19,13 @@ let
 in
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.17";
+  version = "4.18";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz";
-    sha256 = "1kzmgyg5kw3zw9qa6jabld6rmb53b6yy69h7y9znsdlf74jllljl";
+    sha256 = "19gkllahfd2fgz6vng5lrqx3bdrzaf9s874gzznvzvj9sgj0j3mn";
   };
 
   postPatch = ''
@@ -34,12 +34,6 @@ buildGoPackage rec {
   '';
 
   preBuild = ''
-    # unpack vendor
-    pushd go/src/github.com/lxc/lxd
-    rm _dist/src/github.com/lxc/lxd
-    cp -r _dist/src/* ../../..
-    popd
-
     # required for go-dqlite. See: https://github.com/lxc/lxd/pull/8939
     export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
 
@@ -52,7 +46,7 @@ buildGoPackage rec {
 
     wrapProgram $out/bin/lxd --prefix PATH : ${lib.makeBinPath (
       networkPkgs
-      ++ [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute2 bash criu ]
+      ++ [ acl rsync gnutar xz btrfs-progs gzip dnsmasq squashfsTools iproute2 bash criu attr ]
       ++ [ (writeShellScriptBin "apparmor_parser" ''
              exec '${apparmor-parser}/bin/apparmor_parser' -I '${apparmor-profiles}/etc/apparmor.d' "$@"
            '') ]
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/data.nix b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
index 9f1239923ec4..0bf1359bc272 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi/data.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
@@ -1,68 +1,68 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.10.0";
+  version = "3.12.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.10.0-linux-x64.tar.gz";
-        sha256 = "0rhsdxiz5lz4hlw6a1pkjfblsh42vnk9bw8xg7wbjl9wpld3rys1";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.12.0-linux-x64.tar.gz";
+        sha256 = "19b8yndff9ziilrw1lrwjjcxl1lpn9q52z5swjc41rr0j751v8b0";
       }
       {
         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.15.0-linux-amd64.tar.gz";
-        sha256 = "1s8w5kh9nfdv1vcdrpa2m76r2470k0j4frc3j3ijmqq1i0vv5yhk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.19.0-linux-amd64.tar.gz";
+        sha256 = "10hgsnab1472dzdb2qrx90mx1xaq8zifcnrsgqqvilzfjnfrd9ka";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.4.0-linux-amd64.tar.gz";
-        sha256 = "0scisiswjs3jx0wm6q8i7pgpr2js3kiilq7wc29afyjck6xa14rh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.5.0-linux-amd64.tar.gz";
+        sha256 = "0rk1irqnmlxzdwx1jnls30xmsrkdn7qin561waqwxq9qrm5012i5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.2.0-linux-amd64.tar.gz";
-        sha256 = "14s6jyackhp324gdlvvqnyi8s7hj0fb92ilrpd460p05p653zb4x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-linux-amd64.tar.gz";
+        sha256 = "1f995sg2p1hpqagygsvyfq97gcmy4a925274p96vhy517568d5jg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "1ppwha1zk73w39msp6jym9in7jsrxzc530qgj4lj0961mb9rdkra";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.1.0-linux-amd64.tar.gz";
+        sha256 = "1hz4w44c31wyi3vbr9sbph1007rj65vwwbhwrrzyhxy0i75r3igq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.6.0-linux-amd64.tar.gz";
-        sha256 = "1a62af80czj9sahb52fiz25p59nbzjlr1h7ycdxpjl9m1bxhvlfr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.6.1-linux-amd64.tar.gz";
+        sha256 = "1divf2nga5kc60mf0cjmyzyghpkkbw44jakfwc7fjiq6j4j0g2ia";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.0.0-linux-amd64.tar.gz";
-        sha256 = "06j5k599i8giy5v6scggw8zx1pyfm6w20biwcizv81zk0zkg3fzp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0ffqah4anhdacmfb8n3hdq17jhqq0qclc0l0cq77hvhvgn39yy4r";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v2.0.0-linux-amd64.tar.gz";
         sha256 = "0yhdcjscdkvvai95z2v6xabvvsfvaqi38ngpqrb73ahlwqhz3nys";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.15.0-linux-amd64.tar.gz";
-        sha256 = "11m1f80i33m4dh13z96yh655pfiwvk46sjspwql7s80kapl93pq9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.18.0-linux-amd64.tar.gz";
+        sha256 = "1vryq0ki5iimqwxpnvc53m15641p1a1cdbf1xzn0ps4xdsg4xz7j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.2.0-linux-amd64.tar.gz";
-        sha256 = "159lk4iv9zi2ggcjwjsg9an4rfjc0lbyn8d3kbv10p6cx109ljzg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.3.0-linux-amd64.tar.gz";
+        sha256 = "1k7zd2cir6844awf1kpj7pifwvw74yfnrk78j0pall2jwmnf2zaa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.1.0-linux-amd64.tar.gz";
-        sha256 = "13rchk54wpjwci26kfa519gqagwfrp31w6a9nk1xfdxj45ha9d3x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-linux-amd64.tar.gz";
+        sha256 = "1h5159y7xlslnijs8lpi4vqgvj2px6whxk9m17p9n7wiyqbmd5na";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.2.0-linux-amd64.tar.gz";
-        sha256 = "0inx40vasjlxfvzr0pxbzm6rki50h5x5qkzx2wc51vv3gjln104q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.4.0-linux-amd64.tar.gz";
+        sha256 = "0g6h9j64aqj64slp8707kn6dwg32nyqy06xgwycz8ywcw5b2llqp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.6.0-linux-amd64.tar.gz";
-        sha256 = "19zvqxf13lr98sp3p1ry3q1fvzx0rpxwz5wbk331n5jn0ljzr783";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.7.0-linux-amd64.tar.gz";
+        sha256 = "0n7vlja8s854nba209sq2pwkd8jnmnmzya65ncqpb0aa9kn9lc2j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "0vyqzphk75h1mk9p6wblgsw2cypycv32glzrnk4fildj48dakm5y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.3.2-linux-amd64.tar.gz";
+        sha256 = "07zmx5gdwqsrhzm50fj3y9q435ygwmb2j1r2pvpv0i1s66g92kij";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-linux-amd64.tar.gz";
@@ -81,16 +81,16 @@
         sha256 = "0glbjhgrb2hiyhd6kwmy7v384j8zw641pw9737g1fczv3x16a3s3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.1.0-linux-amd64.tar.gz";
-        sha256 = "0s1fkj1s5qni84lz0gr1d10xyxp87877jana67lxbarskvzpys8r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.2.0-linux-amd64.tar.gz";
+        sha256 = "1lmy0dmpspzflc9z8p4w1cz47lbqnbkq8dng3v40lpbs75pnprvs";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-linux-amd64.tar.gz";
         sha256 = "02g59jaifyjfcx185ir79d8lqic38dgaa9cb8dpi3xhvv32z0b0q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.3.0-linux-amd64.tar.gz";
-        sha256 = "0rmk55qivand0wa82mxgvyzgg16nz1r3q99k0n9zdlvh9dbffnc8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.4.0-linux-amd64.tar.gz";
+        sha256 = "1lmhsvzhryj9sl3v51dgq6rby3q5m169mc3dg1jbx1fvgwglmhqb";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-linux-amd64.tar.gz";
@@ -99,64 +99,64 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.10.0-darwin-x64.tar.gz";
-        sha256 = "18q1v1n3a497wbbzzjngpl90wpjnffn9wnpdp171r47k6xvbcsyq";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.12.0-darwin-x64.tar.gz";
+        sha256 = "1dlgcap861a5fljbadqikn0lm9gz6f1rdn0qhf1f9vyrj1jmwcqf";
       }
       {
         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.15.0-darwin-amd64.tar.gz";
-        sha256 = "1jnwlhfyyxz7196igi3gas3459k4nq1f4m1i4vdnxhkskp5838l0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.19.0-darwin-amd64.tar.gz";
+        sha256 = "18n729y5r827ahaybz01q61r3cv5grxpnfqb0m8fzh2bd41izg4s";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.4.0-darwin-amd64.tar.gz";
-        sha256 = "0wy4ayrfqizf8izz5dgwv8xi5hvjh03jrg5lvglfph6549d4lpwc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.5.0-darwin-amd64.tar.gz";
+        sha256 = "05z8zkbhpj0xsi7ffzd51j83sxx92k10r28gpznn43plnv1v5cjs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.2.0-darwin-amd64.tar.gz";
-        sha256 = "1bb78g8k6gnhyxxvcjspnhbw2fig58flr14zi5i1cbd89xkz0m3i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-darwin-amd64.tar.gz";
+        sha256 = "12nba4xjcrh4g9iy3mqalk56bga4l3izqm9rj0fg3cyivr9fffvr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "1wwldhy6r6985rwx9vv73jb1nsna387sk6mba81lyc55ar67nsp9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.1.0-darwin-amd64.tar.gz";
+        sha256 = "0xknmx3d6083qvp3v2v8qwjlfihj35r8gzhmhbh759ccjf1d6h4h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.6.0-darwin-amd64.tar.gz";
-        sha256 = "062xzx7408xqlppw1nixs205i83436n0cbjngzc65wm03bzzj7mh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.6.1-darwin-amd64.tar.gz";
+        sha256 = "00m9nn0mrjdqg0ijkv86376df9kpfd9alk8h2ynk53s6nbz9ff4b";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.0.0-darwin-amd64.tar.gz";
-        sha256 = "0ffic6mqr1zyskrv60q9wg7jc0hq23l5g0pdh3clpnn2m1xnxnxm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "0j8ysk4wh78xhk3nv6c1dvvyw5ihs7amwlyqicch52yc6jq3v5a6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v2.0.0-darwin-amd64.tar.gz";
         sha256 = "1dpsbq3b0fz86355jy7rz4kcsa1lnw4azn25vzlis89ay1ncbblc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.15.0-darwin-amd64.tar.gz";
-        sha256 = "01vrivbdhsl50kiv092j2a5jvikhrw1kzpa5ags701l721zslycq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.18.0-darwin-amd64.tar.gz";
+        sha256 = "1cfxnshmc7b1ax819bvic4ih0gc1mi6rij1pp52nklzgby4zad6y";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.2.0-darwin-amd64.tar.gz";
-        sha256 = "1iwx80r9kmlrf961zck3qz2jb9shpmywdm5nkflvz6mhwrfsbz72";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.3.0-darwin-amd64.tar.gz";
+        sha256 = "0fabb3zi5p24xfgsc0jn8ynavd1g0qrlm1yqifxv12zr5id4vcvk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.1.0-darwin-amd64.tar.gz";
-        sha256 = "0qbw4b5zm6dmwdilaz4bjdg55gc5lilwagrxwrab37vq4a8and4c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-darwin-amd64.tar.gz";
+        sha256 = "0r2ykjwam5m2mfiibhq993s8n5pzmks837cwb57jwgwx8lc3ra4x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.2.0-darwin-amd64.tar.gz";
-        sha256 = "0bj7ir7dpkfsb75bjl45irwi692zxnys0125kmwdn8gnamlij5fx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.4.0-darwin-amd64.tar.gz";
+        sha256 = "03r5jxgjyrrpx082z785x2yxz3l4ja4al9yh2zhkvdcnjip88r35";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.6.0-darwin-amd64.tar.gz";
-        sha256 = "0i06q1hrxi84r8ss3ck7jgk3g4lblkjvgm3wx35v551l0ynmmqqw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.7.0-darwin-amd64.tar.gz";
+        sha256 = "0l1wxnkik28y9y257jdxiq3m3njmfq1awxajp152k11izddxs05i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "0fwbh02n7cjmv6d9jbqpjnmvvdp1cnsyhy7gxd2863j4w5f17q48";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.3.2-darwin-amd64.tar.gz";
+        sha256 = "0s8aaac55kdsid0ay2dm0if9irc55pslmy6lhf7v5bfpcb17i36w";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-darwin-amd64.tar.gz";
@@ -175,21 +175,203 @@
         sha256 = "0621njipng32x43lw8n49mapq10lnvibg8vlvgciqsfvrbpz1yp5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.1.0-darwin-amd64.tar.gz";
-        sha256 = "1x5fm72v9h3lrqcyyq2xm14bc14rsqhjmc4mwa2wgbk4pvjgawyv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.2.0-darwin-amd64.tar.gz";
+        sha256 = "1j7z5dbqzsdq1q8ks9g5pwzyc3ml6avhhp6xj94dzdhskl6pd8w5";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-darwin-amd64.tar.gz";
         sha256 = "0gd3xnl31892qp8ilz9lc1zdps77nf07jgvh0k37mink8f0ppy2z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.3.0-darwin-amd64.tar.gz";
-        sha256 = "0ay8d84fc1hr1n4fpy1a4nj7bmhxzp86p0x68gz4rr9iwrd7xfgl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.4.0-darwin-amd64.tar.gz";
+        sha256 = "01rrmj95lhvwxi8f338f50l2zspnin41j8hi2j9pjsjwfayhpq93";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-darwin-amd64.tar.gz";
         sha256 = "1qb2gaiinclmbswyn5aakwjmm3gaggscckb1q2syx69k42hvp3s3";
       }
     ];
+    aarch64-linux = [
+      {
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.12.0-linux-arm64.tar.gz";
+        sha256 = "1hzm80ajndaqchxrxdpg0fvc5rqqagbhd5zs8msw166xyanavl9p";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-linux-arm64.tar.gz";
+        sha256 = "1l7zpvacq6kyzj8n82drs9gdfa16k4j945w8nsd0z33byrswxr3w";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.19.0-linux-arm64.tar.gz";
+        sha256 = "1d67npimg49lx1g9adds32gfpwwv0ikk52qz1kyzfbz10hz62xyx";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.5.0-linux-arm64.tar.gz";
+        sha256 = "0fh4zrpmgg16jhzdmqihwq8k39bjlchd54mbkd50fphw1w2xw2jz";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-linux-arm64.tar.gz";
+        sha256 = "1pjvrhmci1fbakx74yndjhkvxxy4yfnwrwbk12dyb3mxc07iycfj";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.1.0-linux-arm64.tar.gz";
+        sha256 = "07c34x3g31f0bvwfwgxnnikqp5wzyn97hxzwlidvr6g1w7srj0qn";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.6.1-linux-arm64.tar.gz";
+        sha256 = "1l1p5gqnxd3rb9107m9wi76k8d57ak9w86dniiwys3dqbwxjn1ix";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-arm64.tar.gz";
+        sha256 = "1lh1g90ab4blqmvx0yfp516hfsd6n1y751ab7fzhv7hcajf3klvi";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v2.0.0-linux-arm64.tar.gz";
+        sha256 = "0xibm242vjv1jr2c2v5a1ndlafybq66iqfdmdghys3fa4csb5d4s";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.18.0-linux-arm64.tar.gz";
+        sha256 = "18as1qkqz0b4cminqf9czd5lx04nr8da7w3g0dbp6bpr7biakra0";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.3.0-linux-arm64.tar.gz";
+        sha256 = "0pwcn2hlfj5nh5fyql8nk4rzfpsrp6ph5kd3r62872z6kz4fr1f8";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-linux-arm64.tar.gz";
+        sha256 = "1sc8rf930cz6nkyhqn6p0h7450iqzdsrlw2smhp8yyjjvcjmsksf";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.4.0-linux-arm64.tar.gz";
+        sha256 = "0bz4i7bga2vy4pki9k93f7q6zfcy9yg17xz0j4wfyqmlaanfz8r0";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.7.0-linux-arm64.tar.gz";
+        sha256 = "1vkfrgk6lk3v7fgs10ygaw3x3srp3mncr0wna1xdzf7s1gsz8m09";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.3.2-linux-arm64.tar.gz";
+        sha256 = "1nyy1is8i9jx9ig1v01l5sbhp4xal1vklmfjnqhr8v8h5kjwkm4v";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-linux-arm64.tar.gz";
+        sha256 = "1hicy131pj6z4ni074f34qhvjyycjxl0024iir5021g1scm3hp7w";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-linux-arm64.tar.gz";
+        sha256 = "1slrl020xl092hjfr92zjf8i2ys8vzr3nxqh65fhnl0fzfsllvn0";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.3.0-linux-arm64.tar.gz";
+        sha256 = "1cpr53shxap4s25pw3xd9vnbwh4jbmp1x0qfqz46i9af0isa10i8";
+      }
+      # pulumi-resource-packet skipped (does not exist on remote)
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.2.0-linux-arm64.tar.gz";
+        sha256 = "0mddv37k87wiygh6x9bnxpcr721qbmbqf6l5zk3xl61n56j8qyb1";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-linux-arm64.tar.gz";
+        sha256 = "0y7wysd4j1dp73hrbydzj2bfvpgv8vxiza5m6dbg7nl66w9ng0rc";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.4.0-linux-arm64.tar.gz";
+        sha256 = "0fa295br09w7392mb62qw31ia2116dqs15f4r634zcachb0ad93g";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-linux-arm64.tar.gz";
+        sha256 = "03z7b32l2jp1si13qy2rjvkjw789sqaypza7q2k4vhwaxyiw715z";
+      }
+    ];
+    aarch64-darwin = [
+      {
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.12.0-darwin-arm64.tar.gz";
+        sha256 = "1sasxi57ga7gazjmni4sksyih5dw1qx0bhcmh5f5xyznsb9flk4v";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-darwin-arm64.tar.gz";
+        sha256 = "1rmvc2kgjmb978sfmlga6xy4i0f629lk1l95i30wg0rmj1hx3dag";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.19.0-darwin-arm64.tar.gz";
+        sha256 = "0hw0x8bxj0rdkxchlsa30phkglgcln14xv2capx67vpdp9qg8iyi";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.5.0-darwin-arm64.tar.gz";
+        sha256 = "125mb2qmxb5cwnvqwckiaih9gq84azfb0qbrw2vmz338967sfz2c";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-darwin-arm64.tar.gz";
+        sha256 = "0p7hmdax7bzn93mv6l79g3g38fh1axnryyq8sg3h16wj8gcc8kq5";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.1.0-darwin-arm64.tar.gz";
+        sha256 = "1aijk67byw9nwlsdvmw7fiks6ih6wlcbvqpmijchzn86qxikppcq";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.6.1-darwin-arm64.tar.gz";
+        sha256 = "1smg4r1aijl42hv28v2gjvbmlrhmcs5p4w4pzngv7wsgsm5y6lzm";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-arm64.tar.gz";
+        sha256 = "1z0gd0fagv55dl3ki340h0ljw7dqj8818w4072pc5xxy5id90gb0";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v2.0.0-darwin-arm64.tar.gz";
+        sha256 = "1170s85p6d850czb0amzk06d3bcyzyp14p49sgqvpa099jyvs4mm";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.18.0-darwin-arm64.tar.gz";
+        sha256 = "0hvsprzznj0incv60lhxxh4jsx67h7l49v65288ic0x0nsgibn4x";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.3.0-darwin-arm64.tar.gz";
+        sha256 = "0qjpay735gff28xdvippm11lh8gk2xsvh2mcil679ybgpk6kypw2";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-darwin-arm64.tar.gz";
+        sha256 = "1c3pchbnk6dsnxsl02ypq7s4mmkxdgxszdhql1klpx5js7i1lv8k";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.4.0-darwin-arm64.tar.gz";
+        sha256 = "1fcxgbqw6fpn202hza4yyq370r9vbfy8pw220g7yihg8vy9wb1dk";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.7.0-darwin-arm64.tar.gz";
+        sha256 = "0h35d4j6s22sxgf579b6f0v14qp49z5rqzcb30pi4grsk8zkqrrr";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.3.2-darwin-arm64.tar.gz";
+        sha256 = "0sg73w6h94w0mj9q45av9k2sw251k2a7lnh52ndkbc2phqx3rshh";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.1.0-darwin-arm64.tar.gz";
+        sha256 = "118kszs5y3ajh702dyy4wivwdima30s3spbr3cdm9g7aabqhl5l6";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-darwin-arm64.tar.gz";
+        sha256 = "10a2f5kdgk3jcd1441zbfcfnrl5zj6ks832jjmbyym33by7scvgc";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.3.0-darwin-arm64.tar.gz";
+        sha256 = "17imdik9gb3bhqh71b82h12sx6rn13iann9dlbdxy3zj3g59k3ri";
+      }
+      # pulumi-resource-packet skipped (does not exist on remote)
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.2.0-darwin-arm64.tar.gz";
+        sha256 = "0fj1ai1kv8xgmsvfbmy5gsinxag70rx9a9gkifqgcpn3r9mj48ks";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-darwin-arm64.tar.gz";
+        sha256 = "0waf4apw5bzn276s34yaxvm3xyk5333l3zcz2j52c56wkadzxvpg";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.4.0-darwin-arm64.tar.gz";
+        sha256 = "1ywy4zv96k5x85j0fw36q331p11ka1fpg9x18d9ijwl424c7669j";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-darwin-arm64.tar.gz";
+        sha256 = "0ci3xnxnwrk6dds21yifis1mrz24z2nxqdbya0qpqprkq6syvx41";
+      }
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/update.sh b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
index b65ea5e34968..756dce6b8eea 100755
--- a/nixpkgs/pkgs/tools/admin/pulumi/update.sh
+++ b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
@@ -3,37 +3,37 @@
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="3.10.0"
+VERSION="3.12.0"
 
 # Grab latest release ${VERSION} from
 # https://github.com/pulumi/pulumi-${NAME}/releases
 plugins=(
     "auth0=2.2.0"
-    "aws=4.15.0"
-    "cloudflare=3.4.0"
-    "consul=3.2.0"
-    "datadog=3.3.0"
-    "digitalocean=4.6.0"
-    "docker=3.0.0"
+    "aws=4.19.0"
+    "cloudflare=3.5.0"
+    "consul=3.3.0"
+    "datadog=4.1.0"
+    "digitalocean=4.6.1"
+    "docker=3.1.0"
     "equinix-metal=2.0.0"
-    "gcp=5.15.0"
-    "github=4.2.0"
-    "gitlab=4.1.0"
-    "hcloud=1.2.0"
-    "kubernetes=3.6.0"
-    "linode=3.3.0"
+    "gcp=5.18.0"
+    "github=4.3.0"
+    "gitlab=4.2.0"
+    "hcloud=1.4.0"
+    "kubernetes=3.7.0"
+    "linode=3.3.2"
     "mailgun=3.1.0"
     "mysql=3.0.0"
     "openstack=3.3.0"
     "packet=3.2.2"
-    "postgresql=3.1.0"
+    "postgresql=3.2.0"
     "random=4.2.0"
-    "vault=4.3.0"
+    "vault=4.4.0"
     "vsphere=4.0.1"
 )
 
 function genMainSrc() {
-    local url="https://get.pulumi.com/releases/sdk/pulumi-v${VERSION}-$1-x64.tar.gz"
+    local url="https://get.pulumi.com/releases/sdk/pulumi-v${VERSION}-${1}-${2}.tar.gz"
     local sha256
     sha256=$(nix-prefetch-url "$url")
     echo "      {"
@@ -48,13 +48,17 @@ function genSrcs() {
         local version=${plugVers#*=}
         # url as defined here
         # https://github.com/pulumi/pulumi/blob/06d4dde8898b2a0de2c3c7ff8e45f97495b89d82/pkg/workspace/plugins.go#L197
-        local url="https://api.pulumi.com/releases/plugins/pulumi-resource-${plug}-v${version}-$1-amd64.tar.gz"
+        local url="https://api.pulumi.com/releases/plugins/pulumi-resource-${plug}-v${version}-${1}-${2}.tar.gz"
         local sha256
         sha256=$(nix-prefetch-url "$url")
-        echo "      {"
-        echo "        url = \"${url}\";"
-        echo "        sha256 = \"$sha256\";"
-        echo "      }"
+        if [ "$sha256" ]; then  # file exists
+            echo "      {"
+            echo "        url = \"${url}\";"
+            echo "        sha256 = \"$sha256\";"
+            echo "      }"
+        else
+            echo "      # pulumi-resource-${plug} skipped (does not exist on remote)"
+        fi
     done
 }
 
@@ -65,16 +69,29 @@ function genSrcs() {
 {
   version = "${VERSION}";
   pulumiPkgs = {
-    x86_64-linux = [
 EOF
-  genMainSrc "linux"
-  genSrcs "linux"
+
+  echo "    x86_64-linux = ["
+  genMainSrc "linux" "x64"
+  genSrcs "linux" "amd64"
   echo "    ];"
+
   echo "    x86_64-darwin = ["
+  genMainSrc "darwin" "x64"
+  genSrcs "darwin" "amd64"
+  echo "    ];"
 
-  genMainSrc "darwin"
-  genSrcs "darwin"
+  echo "    aarch64-linux = ["
+  genMainSrc "linux" "arm64"
+  genSrcs "linux" "arm64"
   echo "    ];"
+
+  echo "    aarch64-darwin = ["
+  genMainSrc "darwin" "arm64"
+  genSrcs "darwin" "arm64"
+  echo "    ];"
+
   echo "  };"
   echo "}"
+
 } > data.nix
diff --git a/nixpkgs/pkgs/tools/admin/swiftclient/default.nix b/nixpkgs/pkgs/tools/admin/swiftclient/default.nix
deleted file mode 100644
index 512a7f620923..000000000000
--- a/nixpkgs/pkgs/tools/admin/swiftclient/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, buildPythonApplication, fetchPypi, requests, six, pbr, setuptools }:
-
-buildPythonApplication rec {
-  pname = "python-swiftclient";
-  version = "3.11.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "3972f8b1986e60ea786ad01697e6882f331209ae947ef8b795531940f1e0732b";
-  };
-
-  propagatedBuildInputs = [ requests six pbr setuptools ];
-
-  # For the tests the following requirements are needed:
-  # https://github.com/openstack/python-swiftclient/blob/master/test-requirements.txt
-  #
-  # The ones missing in nixpkgs (currently) are:
-  # - hacking
-  # - keystoneauth
-  # - oslosphinx
-  # - stestr
-  # - reno
-  # - openstackdocstheme
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://github.com/openstack/python-swiftclient";
-    description = "Python bindings to the OpenStack Object Storage API";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ c0deaddict ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/archivers/cabextract/default.nix b/nixpkgs/pkgs/tools/archivers/cabextract/default.nix
index 4dddc4a5a6ae..c0c60aa1cde8 100644
--- a/nixpkgs/pkgs/tools/archivers/cabextract/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/cabextract/default.nix
@@ -9,6 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "19qwhl2r8ip95q4vxzxg2kp4p125hjmc9762sns1dwwf7ikm7hmg";
   };
 
+  # Let's assume that fnmatch works for cross-compilation, otherwise it gives an error:
+  # undefined reference to `rpl_fnmatch'.
+  configureFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "ac_cv_func_fnmatch_works=yes"
+  ];
+
   meta = with lib; {
     homepage = "https://www.cabextract.org.uk/";
     description = "Free Software for extracting Microsoft cabinet files";
diff --git a/nixpkgs/pkgs/tools/archivers/unp/default.nix b/nixpkgs/pkgs/tools/archivers/unp/default.nix
index c63ec008d678..aeb0fb91c989 100644
--- a/nixpkgs/pkgs/tools/archivers/unp/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/unp/default.nix
@@ -9,15 +9,14 @@ let
 
 in stdenv.mkDerivation {
   pname = "unp";
-  version = "2.0-pre7";
+  version = "2.0-pre9";
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ perl ];
 
   src = fetchurl {
-    # url = "http://http.debian.net/debian/pool/main/u/unp/unp_2.0~pre7+nmu1.tar.bz2";
-    url = "mirror://debian/pool/main/u/unp/unp_2.0~pre7+nmu1.tar.bz2";
-    sha256 = "09w2sy7ivmylxf8blf0ywxicvb4pbl0xhrlbb3i9x9d56ll6ybbw";
-    name = "unp_2.0_pre7+nmu1.tar.bz2";
+    url = "mirror://debian/pool/main/u/unp/unp_2.0~pre9.tar.xz";
+    sha256 = "1lp5vi9x1qi3b21nzv0yqqacj6p74qkl5zryzwq30rjkyvahjya1";
+    name = "unp_2.0_pre9.tar.xz";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/tools/audio/beets/plugins/extrafiles.nix b/nixpkgs/pkgs/tools/audio/beets/plugins/extrafiles.nix
index 9118765cc1be..0d3ccc0d7a71 100644
--- a/nixpkgs/pkgs/tools/audio/beets/plugins/extrafiles.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/plugins/extrafiles.nix
@@ -14,6 +14,7 @@ pythonPackages.buildPythonApplication rec {
   postPatch = ''
     sed -i -e '/install_requires/,/\]/{/beets/d}' setup.py
     sed -i -e '/namespace_packages/d' setup.py
+    sed -i -e 's/mediafile~=0.6.0/mediafile>=0.6.0/' setup.py
   '';
 
   nativeBuildInputs = [ beets ];
diff --git a/nixpkgs/pkgs/tools/audio/tts/default.nix b/nixpkgs/pkgs/tools/audio/tts/default.nix
index eb1ea2aa5923..2f8a9ac82a67 100644
--- a/nixpkgs/pkgs/tools/audio/tts/default.nix
+++ b/nixpkgs/pkgs/tools/audio/tts/default.nix
@@ -16,13 +16,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "tts";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "coqui-ai";
     repo = "TTS";
     rev = "v${version}";
-    sha256 = "sha256-7YMNxZ15qQowEE0tE6x/LbtirNGp7h9OLyS1JSl9x2A=";
+    sha256 = "sha256-hhL6/hBs2umR8/VEumr2LzuCAOkroK8vBfDuNVY0ygw=";
   };
 
   postPatch = ''
@@ -55,6 +55,7 @@ python3.pkgs.buildPythonApplication rec {
     pypinyin
     pysbd
     pytorch
+    pyworld
     scipy
     soundfile
     tensorboardx
diff --git a/nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix b/nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix
new file mode 100644
index 000000000000..8572efe6107f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, jre
+}:
+
+stdenv.mkDerivation rec {
+  pname = "android-backup-extractor";
+  version = "20210909062443-4c55371";
+
+  src = fetchurl {
+    url = "https://github.com/nelenkov/android-backup-extractor/releases/download/${version}/abe.jar";
+    sha256 = "0ms241kb4h9y9apr637sb4kw5mml40c1ac0q4jcxhnwr3dr05w1q";
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ jre ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D $src $out/lib/android-backup-extractor/abe.jar
+    makeWrapper ${jre}/bin/java $out/bin/abe --add-flags "-cp $out/lib/android-backup-extractor/abe.jar org.nick.abe.Main"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Utility to extract and repack Android backups created with adb backup";
+    homepage = "https://github.com/nelenkov/android-backup-extractor";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix
index 9cf489c4db5d..fe7b041b1533 100644
--- a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix
+++ b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "discordchatexporter-cli";
-  version = "2.30";
+  version = "2.30.1";
 
   src = fetchFromGitHub {
     owner = "tyrrrz";
     repo = "discordchatexporter";
     rev = version;
-    sha256 = "uTOeRsEab4vaAwtfysUTM3xFP5UMxpUQnuuU8hv3nk8=";
+    sha256 = "JSYIhd+DNVOKseHtWNNChECR5hKr+ntu1Yyqtnlg8rM=";
   };
 
   nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget cacert makeWrapper autoPatchelfHook ];
diff --git a/nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix b/nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix
new file mode 100644
index 000000000000..6c87fca05672
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchurl
+, perlPackages
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mylvmbackup";
+  version = "0.16";
+
+  src = fetchurl {
+    url = "https://www.lenzg.net/mylvmbackup/${pname}-${version}.tar.gz";
+    sha256 = "sha256-vb7M3EPIrxIz6jUwm241fzaEz2czqdCObrFgSOSgJRU=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perlPackages.perl ];
+
+  dontConfigure = true;
+
+  postPatch = ''
+    patchShebangs mylvmbackup
+    substituteInPlace Makefile \
+      --replace "prefix = /usr/local" "prefix = ${builtins.placeholder "out"}" \
+      --replace "sysconfdir = /etc" "sysconfdir = ${builtins.placeholder "out"}/etc" \
+      --replace "/usr/bin/install" "install"
+  '';
+
+  postInstall = ''
+    wrapProgram "$out/bin/mylvmbackup" \
+      --prefix PERL5LIB : "${perlPackages.makePerlPath (
+    with perlPackages; [
+      ConfigIniFiles
+      DBDmysql
+      DBI
+      TimeDate
+      FileCopyRecursive
+    ]
+  )}"
+  '';
+
+  meta = {
+    homepage = "https://www.lenzg.net/mylvmbackup/";
+    description = "a tool for quickly creating full physical backups of a MySQL server's data files";
+    license = lib.licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ ryantm ];
+    platforms = with lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/zfs-autobackup/default.nix b/nixpkgs/pkgs/tools/backup/zfs-autobackup/default.nix
new file mode 100644
index 000000000000..f6a684084661
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/zfs-autobackup/default.nix
@@ -0,0 +1,33 @@
+{ lib, python3Packages }:
+
+let
+  pythonPackages = python3Packages;
+
+in
+pythonPackages.buildPythonApplication rec {
+  pname = "zfs_autobackup";
+  version = "3.1";
+
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
+    sha256 = "42c22001717b3d7cfdae6297fedc11b2dd1eb2a4bd25b6bb1c9232dd3b70ad67";
+  };
+
+  # argparse is part of the standardlib
+  prePatch = ''
+    substituteInPlace setup.py --replace "argparse" ""
+  '';
+
+  propagatedBuildInputs = with pythonPackages; [ colorama ];
+
+  # tests need zfs filesystem
+  doCheck = false;
+  pythonImportsCheck = [ "colorama" "argparse" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/psy0rz/zfs_autobackup";
+    description = "ZFS backup, replicationand snapshot tool";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ mschneider ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix b/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix
new file mode 100644
index 000000000000..334b3abdfc95
--- /dev/null
+++ b/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/default.nix
@@ -0,0 +1,95 @@
+{ lib, stdenv, fetchurl, fetchpatch
+, autoPatchelfHook, makeWrapper
+, hexdump, exfat, dosfstools, e2fsprogs, xz, util-linux, bash, parted
+}:
+
+let arch = {
+  x86_64-linux = "x86_64";
+  i686-linux = "i386";
+  aarch64-linux = "aarch64";
+  mipsel-linux = "mips64el";
+}.${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
+in stdenv.mkDerivation rec {
+  pname = "ventoy-bin";
+  version = "1.0.51";
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  buildInputs = [ hexdump exfat dosfstools e2fsprogs xz util-linux bash parted ];
+
+  src = fetchurl {
+    url = "https://github.com/ventoy/Ventoy/releases/download/v${version}/ventoy-${version}-linux.tar.gz";
+    sha256 = "81ae02a06b132b5965dd09c9b64e000a6dafa1d57e03d8564feefda14ef1ee02";
+  };
+  patches = [
+    (fetchpatch {
+      name = "sanitize.patch";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/sanitize.patch?h=ventoy-bin&id=ce4c26c67a1de4b761f9448bf92e94ffae1c8148";
+      sha256 = "c00f9f9cd5b4f81c566267b7b2480fa94d28dda43a71b1e47d6fa86f764e7038";
+    })
+    ./fix-for-read-only-file-system.patch
+  ];
+  patchFlags = [ "-p0" ];
+  postPatch = ''
+    # Fix permissions.
+    find -type f -name \*.sh -exec chmod a+x '{}' \;
+
+    # Fix path to log.
+    sed -i 's:[lL]og\.txt:/var/log/ventoy\.log:g' WebUI/static/js/languages.js
+  '';
+  installPhase = ''
+    # Setup variables.
+    local VENTOY_PATH="$out"/share/ventoy
+    local ARCH='${arch}'
+
+    # Prepare.
+    cd tool/"$ARCH"
+    rm ash* hexdump* mkexfatfs* mount.exfat-fuse* xzcat*
+    for archive in *.xz; do
+        xzcat "$archive" > "''${archive%.xz}"
+        rm "$archive"
+    done
+    chmod a+x *
+    cd -
+
+    # Cleanup.
+    case "$ARCH" in
+        x86_64) rm -r tool/{i386,aarch64,mips64el};;
+        i386) rm -r tool/{x86_64,aarch64,mips64el};;
+        aarch64) rm -r tool/{x86_64,i386,mips64el};;
+        mips64el) rm -r tool/{x86_64,i386,aarch64};;
+    esac
+    rm README
+
+    # Copy from "$src" to "$out".
+    mkdir -p "$out"/bin "$VENTOY_PATH"
+    cp -r . "$VENTOY_PATH"
+
+    # Fill bin dir.
+    for f in Ventoy2Disk.sh_ventoy VentoyWeb.sh_ventoy-web \
+             CreatePersistentImg.sh_ventoy-persistent \
+             ExtendPersistentImg.sh_ventoy-extend-persistent; do
+        makeWrapper "$VENTOY_PATH/''${f%_*}" "$out/bin/''${f#*_}" \
+                    --prefix PATH : "${lib.makeBinPath buildInputs}" \
+                    --run "cd '$VENTOY_PATH' || exit 1"
+    done
+  '';
+
+  meta = with lib; {
+    description = "An open source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files";
+    longDescription = ''
+      An open source tool to create bootable USB drive for
+      ISO/WIM/IMG/VHD(x)/EFI files.  With ventoy, you don't need to format the
+      disk over and over, you just need to copy the ISO/WIM/IMG/VHD(x)/EFI
+      files to the USB drive and boot them directly.  You can copy many files
+      at a time and ventoy will give you a boot menu to select them
+      (screenshot).  x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and
+      MIPS64EL UEFI are supported in the same way.  Most type of OS supported
+      (Windows/WinPE/Linux/Unix/VMware/Xen...).
+    '';
+    homepage = "https://www.ventoy.net";
+    changelog = "https://www.ventoy.net/doc_news.html";
+    license = licenses.gpl3Plus;
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "mipsel-linux" ];
+    maintainers = with maintainers; [ k4leg ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch b/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch
new file mode 100644
index 000000000000..fa3eb7c38b34
--- /dev/null
+++ b/nixpkgs/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch
@@ -0,0 +1,118 @@
+diff -Naurp0 old/CreatePersistentImg.sh new/CreatePersistentImg.sh
+--- CreatePersistentImg.sh	2021-07-17 13:13:51.000000000 +0300
++++ CreatePersistentImg.sh	2021-07-20 17:37:53.605911754 +0300
+@@ -94,7 +94,3 @@ if [ -n "$config" ]; then
+-    if [ -d ./persist_tmp_mnt ]; then
+-        rm -rf ./persist_tmp_mnt
+-    fi
+-    
+-    mkdir ./persist_tmp_mnt
+-    if mount $freeloop ./persist_tmp_mnt; then
+-        echo '/ union' > ./persist_tmp_mnt/$config
++    path_to_persist_mnt="$(mktemp -d)"
++    if mount $freeloop "$path_to_persist_mnt"; then
++        echo '/ union' > "$path_to_persist_mnt"/$config
+@@ -102 +98 @@ if [ -n "$config" ]; then
+-        umount ./persist_tmp_mnt
++        umount "$path_to_persist_mnt"
+@@ -104 +100 @@ if [ -n "$config" ]; then
+-    rm -rf ./persist_tmp_mnt
++    rm -rf "$path_to_persist_mnt"
+diff -Naurp0 old/tool/VentoyWorker.sh new/tool/VentoyWorker.sh
+--- tool/VentoyWorker.sh	2021-07-17 13:13:51.000000000 +0300
++++ tool/VentoyWorker.sh	2021-07-20 17:27:10.885452119 +0300
+@@ -153,12 +152,0 @@ fi
+-#check tmp_mnt directory
+-if [ -d ./tmp_mnt ]; then
+-    vtdebug "There is a tmp_mnt directory, now delete it."
+-    umount ./tmp_mnt >/dev/null 2>&1
+-    rm -rf ./tmp_mnt
+-    if [ -d ./tmp_mnt ]; then
+-        vterr "tmp_mnt directory exits, please delete it first."
+-        exit 1
+-    fi
+-fi
+-
+-
+@@ -322 +310 @@ if [ "$MODE" = "install" ]; then
+-        mkdir ./tmp_mnt
++        path_to_mnt="$(mktemp -d)"
+@@ -326 +314 @@ if [ "$MODE" = "install" ]; then
+-            if mount ${PART2} ./tmp_mnt > /dev/null 2>&1; then
++            if mount ${PART2} "$path_to_mnt" > /dev/null 2>&1; then
+@@ -335,9 +323,9 @@ if [ "$MODE" = "install" ]; then
+-        rm -f ./tmp_mnt/EFI/BOOT/BOOTX64.EFI
+-        rm -f ./tmp_mnt/EFI/BOOT/grubx64.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/BOOTIA32.EFI
+-        rm -f ./tmp_mnt/EFI/BOOT/grubia32.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/MokManager.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/mmia32.efi
+-        rm -f ./tmp_mnt/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
+-        mv ./tmp_mnt/EFI/BOOT/grubx64_real.efi  ./tmp_mnt/EFI/BOOT/BOOTX64.EFI
+-        mv ./tmp_mnt/EFI/BOOT/grubia32_real.efi  ./tmp_mnt/EFI/BOOT/BOOTIA32.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/BOOTX64.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/grubx64.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/BOOTIA32.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/grubia32.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/MokManager.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/mmia32.efi
++        rm -f "$path_to_mnt"/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
++        mv "$path_to_mnt"/EFI/BOOT/grubx64_real.efi  "$path_to_mnt"/EFI/BOOT/BOOTX64.EFI
++        mv "$path_to_mnt"/EFI/BOOT/grubia32_real.efi  "$path_to_mnt"/EFI/BOOT/BOOTIA32.EFI
+@@ -348 +336 @@ if [ "$MODE" = "install" ]; then
+-            if umount ./tmp_mnt; then
++            if umount "$path_to_mnt"; then
+@@ -350 +338 @@ if [ "$MODE" = "install" ]; then
+-                rm -rf ./tmp_mnt
++                rm -rf "$path_to_mnt"
+@@ -407,2 +395,2 @@ else
+-    rm -f ./diskuuid.bin
+-    dd status=none conv=fsync if=${DISK} skip=384 bs=1 count=16 of=./diskuuid.bin
++    path_to_diskuuid="$(mktemp)"
++    dd status=none conv=fsync if=${DISK} skip=384 bs=1 count=16 of="$path_to_diskuuid"
+@@ -411,2 +399,2 @@ else
+-    dd status=none conv=fsync if=./diskuuid.bin of=$DISK bs=1 count=16 seek=384
+-    rm -f ./diskuuid.bin
++    dd status=none conv=fsync if="$path_to_diskuuid" of=$DISK bs=1 count=16 seek=384
++    rm -f "$path_to_diskuuid"
+@@ -415,2 +403,2 @@ else
+-    rm -f ./rsvdata.bin
+-    dd status=none conv=fsync if=${DISK} skip=2040 bs=512 count=8 of=./rsvdata.bin
++    path_to_rsvdata="$(mktemp)"
++    dd status=none conv=fsync if=${DISK} skip=2040 bs=512 count=8 of="$path_to_rsvdata"
+@@ -438,2 +426,2 @@ else
+-    dd status=none conv=fsync if=./rsvdata.bin seek=2040 bs=512 count=8 of=${DISK}
+-    rm -f ./rsvdata.bin
++    dd status=none conv=fsync if="$path_to_rsvdata" seek=2040 bs=512 count=8 of=${DISK}
++    rm -f "$path_to_rsvdata"
+@@ -448 +436 @@ else
+-        mkdir ./tmp_mnt
++        path_to_mnt="$(mktemp -d)"
+@@ -454 +442 @@ else
+-            if mount ${PART2} ./tmp_mnt > /dev/null 2>&1; then
++            if mount ${PART2} "$path_to_mnt" > /dev/null 2>&1; then
+@@ -463,9 +451,9 @@ else
+-        rm -f ./tmp_mnt/EFI/BOOT/BOOTX64.EFI
+-        rm -f ./tmp_mnt/EFI/BOOT/grubx64.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/BOOTIA32.EFI
+-        rm -f ./tmp_mnt/EFI/BOOT/grubia32.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/MokManager.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/mmia32.efi
+-        rm -f ./tmp_mnt/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
+-        mv ./tmp_mnt/EFI/BOOT/grubx64_real.efi  ./tmp_mnt/EFI/BOOT/BOOTX64.EFI
+-        mv ./tmp_mnt/EFI/BOOT/grubia32_real.efi  ./tmp_mnt/EFI/BOOT/BOOTIA32.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/BOOTX64.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/grubx64.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/BOOTIA32.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/grubia32.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/MokManager.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/mmia32.efi
++        rm -f "$path_to_mnt"/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
++        mv "$path_to_mnt"/EFI/BOOT/grubx64_real.efi  "$path_to_mnt"/EFI/BOOT/BOOTX64.EFI
++        mv "$path_to_mnt"/EFI/BOOT/grubia32_real.efi  "$path_to_mnt"/EFI/BOOT/BOOTIA32.EFI
+@@ -476 +464 @@ else
+-            if umount ./tmp_mnt > /dev/null 2>&1; then
++            if umount "$path_to_mnt" > /dev/null 2>&1; then
+@@ -478 +466 @@ else
+-                rm -rf ./tmp_mnt
++                rm -rf "$path_to_mnt"
diff --git a/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix b/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
index 29750531db20..59b65d4e72ed 100644
--- a/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
@@ -8,12 +8,6 @@
 , libfido2
 }:
 
-let
-  # pandoc is currently broken on aarch64-darwin
-  # because of missing ghc
-  brokenPandoc = stdenv.isDarwin && stdenv.isAarch64;
-in
-
 buildGoModule rec {
   pname = "gocryptfs";
   version = "2.1";
@@ -29,7 +23,6 @@ buildGoModule rec {
 
   nativeBuildInputs = [
     pkg-config
-  ] ++ lib.optionals (!brokenPandoc) [
     pandoc
   ];
 
@@ -45,7 +38,7 @@ buildGoModule rec {
 
   subPackages = [ "." "gocryptfs-xray" "contrib/statfs" ];
 
-  postBuild = lib.optionalString (!brokenPandoc) ''
+  postBuild = ''
     pushd Documentation/
     mkdir -p $out/share/man/man1
     # taken from Documentation/MANPAGE-render.bash
diff --git a/nixpkgs/pkgs/tools/filesystems/rdfind/default.nix b/nixpkgs/pkgs/tools/filesystems/rdfind/default.nix
index 08562aed3635..912456154744 100644
--- a/nixpkgs/pkgs/tools/filesystems/rdfind/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/rdfind/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rdfind";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://rdfind.pauldreik.se/${pname}-${version}.tar.gz";
-    sha256 = "132y3wwgnbpdx6f90q0yahd3nkr4cjzcy815ilc8p97b4vn17iih";
+    sha256 = "103hfqzgr6izmj57fcy4jsa2nmb1ax43q4b5ij92pcgpaq9fsl21";
   };
 
   buildInputs = [ nettle ];
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://rdfind.pauldreik.se/";
     description = "Removes or hardlinks duplicate files very swiftly";
-    license = lib.licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.wmertens ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix b/nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix
index b14dc620e421..238223c4981e 100644
--- a/nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/sasquatch/default.nix
@@ -48,7 +48,12 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "INSTALL_DIR=\${out}/bin" ];
 
-  makeFlags = [ "XZ_SUPPORT=1" ]
+  makeFlags = [
+    "XZ_SUPPORT=1"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+    "AR=${stdenv.cc.targetPrefix}ar"
+  ]
     ++ lib.optional lz4Support "LZ4_SUPPORT=1";
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix b/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
index b46fd88ab99d..741468dfd994 100644
--- a/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
@@ -2,6 +2,7 @@
 , cairo, gd, libcerf, pango, readline, zlib
 , withTeXLive ? false, texlive
 , withLua ? false, lua
+, withCaca ? false, libcaca
 , libX11 ? null
 , libXt ? null
 , libXpm ? null
@@ -33,6 +34,7 @@ in
     [ cairo gd libcerf pango readline zlib ]
     ++ lib.optional withTeXLive (texlive.combine { inherit (texlive) scheme-small; })
     ++ lib.optional withLua lua
+    ++ lib.optional withCaca libcaca
     ++ lib.optionals withX [ libX11 libXpm libXt libXaw ]
     ++ lib.optionals withQt [ qtbase qtsvg ]
     ++ lib.optional withWxGTK wxGTK;
@@ -46,7 +48,7 @@ in
     (if withX then "--with-x" else "--without-x")
     (if withQt then "--with-qt=qt5" else "--without-qt")
     (if aquaterm then "--with-aquaterm" else "--without-aquaterm")
-  ];
+  ] ++ lib.optional withCaca "--with-caca";
 
   CXXFLAGS = lib.optionalString (stdenv.isDarwin && withQt) "-std=c++11";
 
diff --git a/nixpkgs/pkgs/tools/graphics/textplots/default.nix b/nixpkgs/pkgs/tools/graphics/textplots/default.nix
new file mode 100644
index 000000000000..a0c5e72ac23c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/textplots/default.nix
@@ -0,0 +1,20 @@
+{ fetchCrate, lib, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "textplots";
+  version = "0.8.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "07lxnvg8g24r1j6h07w91j5lp0azngmb76lagk55y28br0y70qr4";
+  };
+
+  cargoSha256 = "19xb1ann3bqx26nhjjvcwqdsvzg7lflg9fdrnlx05ndd2ip44flz";
+
+  meta = with lib; {
+    description = "Terminal plotting written in Rust";
+    homepage = "https://github.com/loony-bean/textplots-rs";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/texture-synthesis/default.nix b/nixpkgs/pkgs/tools/graphics/texture-synthesis/default.nix
new file mode 100644
index 000000000000..c541f874adc0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/texture-synthesis/default.nix
@@ -0,0 +1,22 @@
+{ fetchFromGitHub, lib, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "texture-synthesis";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "embarkstudios";
+    repo = pname;
+    rev = version;
+    sha256 = "0n1wbxcnxb7x5xwakxdzq7kg1fn0c48i520j03p7wvm5x97vm5h4";
+  };
+
+  cargoSha256 = "1xszis3ip1hymzbhdili2hvdwd862cycwvsxxyjqmz3g2rlg5b64";
+
+  meta = with lib; {
+    description = "Example-based texture synthesis written in Rust";
+    homepage = "https://github.com/embarkstudios/texture-synthesis";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/bandwidth/default.nix b/nixpkgs/pkgs/tools/misc/bandwidth/default.nix
index 677a9ddef514..710382fe8267 100644
--- a/nixpkgs/pkgs/tools/misc/bandwidth/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bandwidth/default.nix
@@ -6,21 +6,35 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "bandwidth";
-  version = "1.9.4";
+  version = "1.10.1";
 
   src = fetchurl {
     url = "https://zsmith.co/archives/${pname}-${version}.tar.gz";
-    sha256 = "0x798xj3vhiwq2hal0vmf92sq4h7yalp3i6ylqwhnnpv99m2zws4";
+    sha256 = "sha256-trya+/cBNIittQAc5tcykZbImeISqIolO/Y8uOI0jGk=";
   };
 
   postPatch = ''
-    sed -i 's,^CC=gcc .*,,' OOC/Makefile Makefile*
     sed -i 's,ar ,$(AR) ,g' OOC/Makefile
+    # Remove unnecessary -m32 for 32-bit targets
+    sed -i 's,-m32,,g' OOC/Makefile
+    # Fix wrong comment character
+    sed -i 's,# 32,; 32,g' routines-x86-32bit.asm
+    # Fix missing symbol exports for macOS clang
+    echo global _VectorToVector128 >> routines-x86-64bit.asm
+    echo global _VectorToVector256 >> routines-x86-64bit.asm
   '';
 
   nativeBuildInputs = [ nasm ];
 
-  buildFlags = [ arch ];
+  buildFlags = [
+    "AR=${stdenv.cc.targetPrefix}ar"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "ARM_AS=${stdenv.cc.targetPrefix}as"
+    "ARM_CC=$(CC)"
+    "UNAMEPROC=${stdenv.hostPlatform.parsed.cpu.name}"
+    "UNAMEMACHINE=${stdenv.hostPlatform.parsed.cpu.name}"
+    arch
+  ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -31,7 +45,7 @@ stdenv.mkDerivation rec {
     homepage = "https://zsmith.co/bandwidth.html";
     description = "Artificial benchmark for identifying weaknesses in the memory subsystem";
     license = licenses.gpl2Plus;
-    platforms = platforms.x86;
+    platforms = platforms.x86 ++ platforms.arm ++ platforms.aarch64;
     maintainers = with maintainers; [ r-burns ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/calamares/default.nix b/nixpkgs/pkgs/tools/misc/calamares/default.nix
index d65d31d44c4e..fd08f09b9607 100644
--- a/nixpkgs/pkgs/tools/misc/calamares/default.nix
+++ b/nixpkgs/pkgs/tools/misc/calamares/default.nix
@@ -6,12 +6,12 @@
 
 mkDerivation rec {
   pname = "calamares";
-  version = "3.2.39";
+  version = "3.2.42";
 
   # release including submodule
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-QGdy49RndRIBR3B+Z7iXbFyx5gxXO2GHNYc+iv0z47w=";
+    sha256 = "sha256-NbtgtbhauEo7EGvNUNltUQRBpLlzBjAR0GLL9CadgsQ=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/nixpkgs/pkgs/tools/misc/chafa/default.nix b/nixpkgs/pkgs/tools/misc/chafa/default.nix
index 041d799307ec..7a0178eea735 100644
--- a/nixpkgs/pkgs/tools/misc/chafa/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chafa/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.1";
+  version = "1.8.0";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "sha256-isQxeb7OQh4W8RvtKWXbKVYJ8LlfLiOkMJoPjsGFouM=";
+    sha256 = "sha256-8ENPmcl0KVxoBu8FGOGk+y8XsONWW0YW32MHAKBUiPE=";
   };
 
   nativeBuildInputs = [ autoconf
diff --git a/nixpkgs/pkgs/tools/misc/clpeak/default.nix b/nixpkgs/pkgs/tools/misc/clpeak/default.nix
index e8b2ab68f316..c87729d81ae0 100644
--- a/nixpkgs/pkgs/tools/misc/clpeak/default.nix
+++ b/nixpkgs/pkgs/tools/misc/clpeak/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     description = "A tool which profiles OpenCL devices to find their peak capacities";
     homepage = "https://github.com/krrishnarraj/clpeak/";
     license = licenses.unlicense;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
index 09f27a0c22cb..bf5d4601475a 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
@@ -9,11 +9,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "182";
+  version = "183";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-atWyVMewm+I/SDdE9+z1JYLLVOFDsgps2BL9WgZLlVA=";
+    sha256 = "sha256-XFFrRmCpE2UvZRCELfPaotLklyjLiCDWkyFWkISOHZM=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/tools/misc/dupd/default.nix b/nixpkgs/pkgs/tools/misc/dupd/default.nix
index 87b39b3b7040..2d601b20a765 100644
--- a/nixpkgs/pkgs/tools/misc/dupd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dupd/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dupd";
-  version = "1.7";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "jvirkki";
     repo  = "dupd";
     rev   = version;
-    sha256 = "0vg4vbiwjc5p22cisj8970mym4y2r29fcm08ibik92786vsbxcqk";
+    sha256 = "sha256-jDFPvJqIUEu0/8bvq2PaaA1NnWakApegW8bxn+NKffs=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/envsubst/default.nix b/nixpkgs/pkgs/tools/misc/envsubst/default.nix
index be563345b2c2..5ecae8dbcbe9 100644
--- a/nixpkgs/pkgs/tools/misc/envsubst/default.nix
+++ b/nixpkgs/pkgs/tools/misc/envsubst/default.nix
@@ -1,10 +1,9 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib, fetchFromGitHub, buildGoModule }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "envsubst";
   version = "1.2.0";
 
-  goPackagePath = "github.com/a8m/envsubst";
   src = fetchFromGitHub {
     owner = "a8m";
     repo = "envsubst";
@@ -12,6 +11,12 @@ buildGoPackage rec {
     sha256 = "0zkgjdlw3d5xh7g45bzxqspxr61ljdli8ng4a1k1gk0dls4sva8n";
   };
 
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  postInstall = ''
+    install -Dm444 -t $out/share/doc/${pname} LICENSE *.md
+  '';
+
   meta = with lib; {
     description = "Environment variables substitution for Go";
     homepage = "https://github.com/a8m/envsubst";
diff --git a/nixpkgs/pkgs/tools/misc/etcher/default.nix b/nixpkgs/pkgs/tools/misc/etcher/default.nix
index 6834179cfe9a..1e5fefaf6451 100644
--- a/nixpkgs/pkgs/tools/misc/etcher/default.nix
+++ b/nixpkgs/pkgs/tools/misc/etcher/default.nix
@@ -10,7 +10,7 @@
 
 let
   sha256 = {
-    "x86_64-linux" = "sha256-FRZTUOlOK1bIbrHdR9yQv45zMhby3tWbMPpaPPq3L9s=";
+    "x86_64-linux" = "sha256-Tasynkzyy8UIalQn6qhIuPWDflf4pL76D2czgEijrPw=";
     "i686-linux" = "0z6y45sz086njpywg7f0jn6n02qynb1qbi889g2kcgwbfjvmcpm1";
   }."${stdenv.system}";
 
@@ -25,7 +25,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "etcher";
-  version = "1.5.121";
+  version = "1.5.122";
 
   src = fetchurl {
     url = "https://github.com/balena-io/etcher/releases/download/v${version}/balena-etcher-electron_${version}_${arch}.deb";
diff --git a/nixpkgs/pkgs/tools/misc/exa/default.nix b/nixpkgs/pkgs/tools/misc/exa/default.nix
index 9cabff9a9bef..632eb4590586 100644
--- a/nixpkgs/pkgs/tools/misc/exa/default.nix
+++ b/nixpkgs/pkgs/tools/misc/exa/default.nix
@@ -18,21 +18,16 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-ah8IjShmivS6IWL3ku/4/j+WNr/LdUnh1YJnPdaFdcM=";
 
-  nativeBuildInputs = [
-    cmake pkg-config installShellFiles
-    # ghc is not supported on aarch64-darwin yet.
-  ] ++ lib.optional (stdenv.hostPlatform.system != "aarch64-darwin") pandoc;
-
+  nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
   buildInputs = [ zlib ]
     ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
-  outputs = [ "out" ] ++ lib.optional (stdenv.hostPlatform.system != "aarch64-darwin") "man";
+  outputs = [ "out" "man" ];
 
-  postInstall = lib.optionalString (stdenv.hostPlatform.system != "aarch64-darwin") ''
+  postInstall = ''
     pandoc --standalone -f markdown -t man man/exa.1.md > man/exa.1
     pandoc --standalone -f markdown -t man man/exa_colors.5.md > man/exa_colors.5
     installManPage man/exa.1 man/exa_colors.5
-  '' + ''
     installShellCompletion \
       --name exa completions/completions.bash \
       --name exa.fish completions/completions.fish \
diff --git a/nixpkgs/pkgs/tools/misc/fbcat/default.nix b/nixpkgs/pkgs/tools/misc/fbcat/default.nix
index 8769f65f68c4..532d87de669f 100644
--- a/nixpkgs/pkgs/tools/misc/fbcat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fbcat/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fbcat";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "jwilk";
     repo = pname;
     rev = version;
-    sha256 = "08y79br4a4cgkjnslw0hw57441ybsapaw7wjdbak19mv9lnl5ll9";
+    sha256 = "sha256-ORzcd8XGy2BfwuPK5UX+K5Z+FYkb+tdg/gHl3zHjvbk=";
   };
 
   # hardcoded because makefile target "install" depends on libxslt dependencies from network
diff --git a/nixpkgs/pkgs/tools/misc/fclones/default.nix b/nixpkgs/pkgs/tools/misc/fclones/default.nix
new file mode 100644
index 000000000000..1072bbcc5da3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fclones/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, udev }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fclones";
+  version = "0.14.0";
+
+  src = fetchFromGitHub {
+    owner = "pkolaczk";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ni5amy903cy822yhw070bcrrixrw2m1vr66q1h32bc98pyv4w05";
+  };
+
+  cargoSha256 = "1gcb46k7bwdfsf6hyvmi6dna1nf6myzy63bhjfp0wy7c8g4m2mg8";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ udev ];
+
+  # tests in dedupe.rs fail due to
+  # "creation time is not available for the filesystem"
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Efficient Duplicate File Finder and Remover";
+    homepage = "https://github.com/pkolaczk/fclones";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cyounkins ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/fluentd/Gemfile b/nixpkgs/pkgs/tools/misc/fluentd/Gemfile
index 8cbed0ebac40..0b9993c1f197 100644
--- a/nixpkgs/pkgs/tools/misc/fluentd/Gemfile
+++ b/nixpkgs/pkgs/tools/misc/fluentd/Gemfile
@@ -6,7 +6,6 @@ gem 'fluent-plugin-s3'
 gem 'fluent-plugin-kinesis'
 gem 'fluent-plugin-kafka'
 gem 'fluent-plugin-elasticsearch'
-gem 'fluent-plugin-scribe'
 gem 'fluent-plugin-mongo'
 gem 'fluent-plugin-webhdfs'
 gem 'fluent-plugin-rewrite-tag-filter'
diff --git a/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock b/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock
index 1b1f6cec622e..6b3c8dd459ec 100644
--- a/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/misc/fluentd/Gemfile.lock
@@ -77,9 +77,6 @@ GEM
       aws-sdk-s3 (~> 1.0)
       aws-sdk-sqs (~> 1.0)
       fluentd (>= 0.14.22, < 2)
-    fluent-plugin-scribe (1.0.0)
-      fluentd
-      thrift (~> 0.8.0)
     fluent-plugin-webhdfs (1.2.4)
       fluentd (>= 0.14.22)
       webhdfs (>= 0.6.0)
@@ -110,7 +107,6 @@ GEM
       sigdump (~> 0.2.2)
     sigdump (0.2.4)
     strptime (0.2.3)
-    thrift (0.8.0)
     tzinfo (2.0.0)
       concurrent-ruby (~> 1.0)
     tzinfo-data (1.2019.2)
@@ -131,7 +127,6 @@ DEPENDENCIES
   fluent-plugin-record-reformer
   fluent-plugin-rewrite-tag-filter
   fluent-plugin-s3
-  fluent-plugin-scribe
   fluent-plugin-webhdfs
   fluentd
 
diff --git a/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix b/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix
index 67b72d634bcf..ef063663c1a6 100644
--- a/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix
+++ b/nixpkgs/pkgs/tools/misc/fluentd/gemset.nix
@@ -321,17 +321,6 @@
     };
     version = "1.1.11";
   };
-  fluent-plugin-scribe = {
-    dependencies = ["fluentd" "thrift"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "19m37d0saknifjg8kva96pgsc7zsmdlwvwiy9gvhi2d6c7bq3q30";
-      type = "gem";
-    };
-    version = "1.0.0";
-  };
   fluent-plugin-webhdfs = {
     dependencies = ["fluentd" "webhdfs"];
     groups = ["default"];
@@ -487,16 +476,6 @@
     };
     version = "0.2.3";
   };
-  thrift = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0aj23ndh5n5yqcvp4c12y7vl5wvxpl66zncf6n6ax2zvb6ig44cv";
-      type = "gem";
-    };
-    version = "0.8.0";
-  };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/misc/grub/trusted.nix b/nixpkgs/pkgs/tools/misc/grub/trusted.nix
index b0a8c9e10338..edb94891fbe9 100644
--- a/nixpkgs/pkgs/tools/misc/grub/trusted.nix
+++ b/nixpkgs/pkgs/tools/misc/grub/trusted.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchgit, autogen, flex, bison, python, autoconf, automake
+{ lib, stdenv, fetchurl, fetchgit, fetchpatch, autogen, flex, bison, python, autoconf, automake
 , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2
 , for_HP_laptop ? false
 }:
@@ -81,7 +81,14 @@ stdenv.mkDerivation rec {
            -e "s|/usr/src/unifont.bdf|$PWD/unifont.bdf|g"
     '';
 
-  patches = [ ./fix-bash-completion.patch ];
+  patches = [
+    ./fix-bash-completion.patch
+    (fetchpatch {
+      # glibc-2.26 and above needs '<sys/sysmacros.h>'
+      url = "https://github.com/Rohde-Schwarz/TrustedGRUB2/commit/7a5b301e3adb8e054288518a325135a1883c1c6c.patch";
+      sha256 = "1jfrrmcrd9a8w7n419kszxgbpshx7888wc05smg5q4jvc1ag3xm7";
+    })
+  ];
 
   # save target that grub is compiled for
   grubTarget = if inPCSystems
@@ -89,7 +96,9 @@ stdenv.mkDerivation rec {
                else "";
 
   doCheck = false;
-  enableParallelBuilding = true;
+  # On -j16 races with early header creation:
+  #  config.h:38:10: fatal error: ./config-util.h: No such file or directory
+  enableParallelBuilding = false;
 
   meta = with lib; {
     description = "GRUB 2.0 extended with TCG (TPM) support for integrity measured boot process (trusted boot)";
diff --git a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
index 86d858153746..bd955b8136ec 100644
--- a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kak-lsp";
-  version = "10.0.0";
+  version = "11.0.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SmK4G9AoKGqKGbXucn5AO5DTOeVNq3gCBGvDTIJQgRU=";
+    sha256 = "198y2k3vi8dh9kfqgl7vpgkxvjlfvryi9c8hmb43m0lpwsja0010";
   };
 
-  cargoSha256 = "sha256-iY5xT8e/gRN/mBT9v5LhMcl9g1/SyrH/glPBP+toZ9o=";
+  cargoSha256 = "0sv1a2k5rcf4hl1w50mh041r3w3nir6avyl6xa3rlcc7cy19q21y";
 
   buildInputs = lib.optional stdenv.isDarwin [ Security ];
 
   meta = with lib; {
     description = "Kakoune Language Server Protocol Client";
-    homepage = "https://github.com/ul/kak-lsp";
+    homepage = "https://github.com/kak-lsp/kak-lsp";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = [ maintainers.spacekookie ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/macchina/default.nix b/nixpkgs/pkgs/tools/misc/macchina/default.nix
index 8b4b897526da..91f23e1bc1d5 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 = "1.0.0";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "Macchina-CLI";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZuQ0FZM77ENAQ57B0oFqFmGqQnFblCP2wJETb47yo1E=";
+    sha256 = "sha256:0afsv8n12z98z3dxdb4nflc6z8ss6n2prfqmjzy655ly9rrhkcrw";
   };
 
-  cargoSha256 = "sha256-YwhhOHiQcN8VS1DFTtZGvD2QvNAfPngPm/ZeOxzuDnw=";
+  cargoSha256 = "sha256:0jc2030217xz5v5h3ry2pb7rkakn9zmrcap55bv2r8p7hi5gvh60";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
diff --git a/nixpkgs/pkgs/tools/misc/nncp/default.nix b/nixpkgs/pkgs/tools/misc/nncp/default.nix
index fc02431c768a..1a20c412edba 100644
--- a/nixpkgs/pkgs/tools/misc/nncp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nncp/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nncp";
-  version = "6.5.0";
+  version = "7.7.0";
 
   src = fetchurl {
     url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
-    sha256 = "16hbcwwf65h2avgdyya2bk42bmmqnfl1m5v7y23cyp174ykjl794";
+    sha256 = "ppKi/JY8sKRb/Vt/SXom0L1zhjBPn6PNUm3Gn8o5Ke4=";
   };
 
   nativeBuildInputs = [ go redo-apenwarr ];
diff --git a/nixpkgs/pkgs/tools/misc/qmk/default.nix b/nixpkgs/pkgs/tools/misc/qmk/default.nix
index 3fa088d8e2b4..ef25a7361c26 100644
--- a/nixpkgs/pkgs/tools/misc/qmk/default.nix
+++ b/nixpkgs/pkgs/tools/misc/qmk/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, python3
-, fetchpatch
-}:
+{ lib, python3, fetchpatch, writeText }:
 
 let
   inherit (python3.pkgs) buildPythonApplication fetchPypi;
-in
-buildPythonApplication rec {
+  setuppy = writeText "setup.py" ''
+    from setuptools import setup
+    setup()
+  '';
+in buildPythonApplication rec {
   pname = "qmk";
-  version = "0.0.52";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-mNF+bRhaL6JhNbROmjYDHkKKokRIALd5FZbRt9Kg5XQ=";
+    sha256 = "sha256-2mLuxzxFSMw3sLm+OTcgLcOjAdwvJmNhDsynUaYQ+co=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -27,7 +27,7 @@ buildPythonApplication rec {
     appdirs
     argcomplete
     colorama
-    dotty-dict
+    qmk-dotty-dict
     hid
     hjson
     jsonschema
@@ -36,6 +36,10 @@ buildPythonApplication rec {
     pyusb
   ];
 
+  postConfigure = ''
+    cp ${setuppy} setup.py
+  '';
+
   # no tests implemented
   doCheck = false;
 
@@ -57,6 +61,6 @@ buildPythonApplication rec {
       - ... and many more!
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ bhipple ];
+    maintainers = with maintainers; [ bhipple babariviere ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/quich/default.nix b/nixpkgs/pkgs/tools/misc/quich/default.nix
index ea4fbc7eead4..1b54eb01112c 100644
--- a/nixpkgs/pkgs/tools/misc/quich/default.nix
+++ b/nixpkgs/pkgs/tools/misc/quich/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "quich";
-  version = "3.1.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "Usbac";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n9c01q2v6g9wnmxp248yclhp8cxclnj0yyn1qrvjsn6srcpr22c";
+    sha256 = "sha256-4gsSjLZ7Z4ErNqe86Fy5IrzLMfvDyY18sE0yBnj9bvM=";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix b/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
index 157b0fe63764..37462910dcfe 100644
--- a/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
@@ -4,23 +4,24 @@
 let
 
   inherit (python3Packages)
-    python pytest nose cryptography pyyaml requests mock python-dateutil setuptools;
+    python pytest nose cryptography pyyaml requests mock requests-mock
+    python-dateutil setuptools;
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "4.2";
+  version = "4.3";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "1bsinf2r07g8c03mcw4gprl92wmysyaa81s8wyck0c6wdq3hcsnp";
+    sha256 = "04gmiqg6mq96fw4v1v6947i216fsf0vcnjp3ya8bbii5na91y1aa";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
-  buildInputs = [ python perl mock python-dateutil setuptools ] ++ pythonPaths;
+  buildInputs = [ python perl python-dateutil setuptools ] ++ pythonPaths;
   nativeBuildInputs = [ gitMinimal zip makeWrapper ];
-  checkInputs = [ nose pytest ];
+  checkInputs = [ nose pytest mock requests-mock ];
 
   postPatch = ''
     substituteInPlace scripts/run-tests.sh \
diff --git a/nixpkgs/pkgs/tools/misc/tfk8s/default.nix b/nixpkgs/pkgs/tools/misc/tfk8s/default.nix
index 8ca102444a9d..71c6129b0ef9 100644
--- a/nixpkgs/pkgs/tools/misc/tfk8s/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tfk8s/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "tfk8s";
-  version = "0.1.6";
+  version = "0.1.7";
   tag = "v${version}";
 
   src = fetchFromGitHub {
     owner = "jrhouston";
     repo = "tfk8s";
     rev = tag;
-    sha256 = "sha256-pjgacKyOAlaFqHCKcLmjTl/uWpjMzkHH0UcaIEb+IZI=";
+    sha256 = "0mkfggwjrsp0rzh7ll6nmp9kqcw4fl8q81vk67z5mbd276dkyxrb";
   };
 
   vendorSha256 = "sha256-eLPmghs05pMMtys97Ja7YGdVMZmMmiaFeMwzaWNxW0I=";
diff --git a/nixpkgs/pkgs/tools/misc/yad/default.nix b/nixpkgs/pkgs/tools/misc/yad/default.nix
index 77491f22f987..3e5ba0c5f492 100644
--- a/nixpkgs/pkgs/tools/misc/yad/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yad/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yad";
-  version = "9.0";
+  version = "10.1";
 
   src = fetchFromGitHub {
     owner = "v1cont";
     repo = "yad";
     rev = "v${version}";
-    sha256 = "sha256-P22DMmR+z2kl05SkOsbjFHFz9I5cu4W6EaYLpd1a0mg=";
+    sha256 = "sha256-k41Z3QVGm7JUR1ny0vJKLxakabK9Da5qCnrPUHvAkWE=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
index 7bf0c440a37a..680000b33713 100644
--- a/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
@@ -63,6 +63,6 @@ buildPythonPackage rec {
     '';
     license = licenses.publicDomain;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ bluescreen303 phreedom AndersonTorres fpletz ma27 zowoq ];
+    maintainers = with maintainers; [ bluescreen303 phreedom AndersonTorres fpletz ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
index cf2226cad54c..2b7e73b35516 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
@@ -1,4 +1,4 @@
-{ python3Packages, fetchFromGitHub, lib, yubikey-personalization, libu2f-host, libusb1 }:
+{ python3Packages, fetchFromGitHub, lib, yubikey-personalization, libu2f-host, libusb1, procps }:
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
@@ -11,6 +11,11 @@ python3Packages.buildPythonPackage rec {
     sha256 = "sha256:0ycp7k6lkxzqwkc16fifhyqaqi7hl3351pwddsn18r5l83jnzdn2";
   };
 
+  postPatch = ''
+    substituteInPlace "ykman/pcsc/__init__.py" \
+      --replace '/usr/bin/pkill' '${procps}/bin/pkill'
+  '';
+
   format = "pyproject";
 
   nativeBuildInputs = with python3Packages; [ poetry-core ];
diff --git a/nixpkgs/pkgs/tools/misc/zellij/default.nix b/nixpkgs/pkgs/tools/misc/zellij/default.nix
index c7889b158735..2d07c45e61db 100644
--- a/nixpkgs/pkgs/tools/misc/zellij/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zellij/default.nix
@@ -6,20 +6,21 @@
 , pkg-config
 , libiconv
 , openssl
+, expect
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zellij";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "zellij-org";
     repo = "zellij";
     rev = "v${version}";
-    sha256 = "sha256-IcpCE9mqR7H1+gRhHyscvXhYHOynJFtOyrSr1FiMxFc=";
+    sha256 = "sha256-2DYNgPURQzHaR8wHKEzuXSzubrxsQHpl3H3ko4okY7M=";
   };
 
-  cargoSha256 = "sha256-22ggPs4iVOI1LKHtW5skfSO7J/FLF8EinvcyHVO14Dw=";
+  cargoSha256 = "sha256-AxtXWBfOzdLCpRchaQJbBBs+6rIyF+2ralOflRvkY4k=";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
@@ -31,9 +32,9 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     installShellCompletion --cmd $pname \
-      --bash <($out/bin/zellij setup --generate-completion bash) \
-      --fish <($out/bin/zellij setup --generate-completion fish) \
-      --zsh <($out/bin/zellij setup --generate-completion zsh)
+      --bash <(${expect}/bin/unbuffer $out/bin/zellij setup --generate-completion bash) \
+      --fish <(${expect}/bin/unbuffer $out/bin/zellij setup --generate-completion fish) \
+      --zsh <(${expect}/bin/unbuffer $out/bin/zellij setup --generate-completion zsh)
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/boundary/default.nix b/nixpkgs/pkgs/tools/networking/boundary/default.nix
index 7b96bcb05c8e..02dc1cd9c487 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.5.1";
+  version = "0.6.0";
 
   src =
     let
@@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
         x86_64-darwin = "darwin_amd64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-+e4wo2vYSE3Z0icHcOu9aW6ZR6EDKiTe+S58d9s/1m4=";
-        aarch64-linux = "sha256-WR9SmUO/fHivUAAYpbXujQC0zjUmG8ATiTqGVZHly1s=";
-        x86_64-darwin = "sha256-Ih2uO4s0rukGDC8DhamaFb0HT4OKiBtQovRTD3rL9XY=";
+        x86_64-linux = "sha256-9xgvSnfMh5kX/RtC/B+tkbSNcB82U6SYzCs5V04VzW0=";
+        aarch64-linux = "sha256-ARSZygm1OayiOxF7I+/5ebwtaO0z/lYztuwNSD4Zu+0=";
+        x86_64-darwin = "sha256-GFLLpOt3BEJI14xKjnjK6nd4h/0+/aSLOagZphOKErE=";
       };
     in
     fetchzip {
diff --git a/nixpkgs/pkgs/tools/networking/checkip/default.nix b/nixpkgs/pkgs/tools/networking/checkip/default.nix
new file mode 100644
index 000000000000..b379a1725de9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/checkip/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "checkip";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "jreisinger";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "065426z4iak72h56qvp1vk86r2vw5rdqy3qi1zbw1l0hnyq83zwq";
+  };
+
+  vendorSha256 = "10hk2wfkpvnavs20q390qgaj1gj10j1fy8vlqb9s9f76gpb130h4";
+
+  postFixup = ''
+    # Rename binary
+    mv $out/bin/cmd $out/bin/${pname}
+  '';
+
+  # Requires network
+  doCheck = false;
+
+  meta = with lib; {
+    description = "CLI tool that checks an IP address using various public services";
+    homepage = "https://github.com/jreisinger/checkip";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/flannel/plugin.nix b/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
new file mode 100644
index 000000000000..657be79b61bf
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule {
+  pname = "cni-plugin-flannel";
+  version = "unstable-2021-09-10";
+
+  src = fetchFromGitHub {
+    owner = "flannel-io";
+    repo = "cni-plugin";
+    rev = "8ce83510da59681da905dccb8364af9472cac341";
+    sha256 = "sha256-x6F8n+IJ1pZdbDwniWWmoGKgQm235ax3mbOcbYqWLCs=";
+  };
+
+  vendorSha256 = "sha256-TLAwE3pTnJYOi1AsOQfsG6t3xLKOah/7DvYjsqyltKs=";
+
+  postInstall = ''
+    mv $out/bin/cni-plugin $out/bin/flannel
+  '';
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "flannel CNI plugin";
+    homepage = "https://github.com/flannel-io/cni-plugin/";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbe ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/hurl/default.nix b/nixpkgs/pkgs/tools/networking/hurl/default.nix
index 6ecff2e6e389..de3b08bee2ad 100644
--- a/nixpkgs/pkgs/tools/networking/hurl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hurl/default.nix
@@ -8,13 +8,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hurl";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "Orange-OpenSource";
     repo = pname;
     rev = version;
-    sha256 = "0hbyqj794pvvfrg6jgz63mih73bnmnvgmwbv705c2238w7wsgk9w";
+    sha256 = "sha256-bAUuNKaS0BQ31GxTd8C2EVZiD8ryevFBOfxLCq6Ccz4=";
   };
 
   nativeBuildInputs = [
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   # Tests require network access to a test server
   doCheck = false;
 
-  cargoSha256 = "09ndgm6kmqwdz7yn2rqxk5xr1qkai87zm1k138cng4wq135c3w6g";
+  cargoSha256 = "sha256-dc1hu5vv2y4S1sskO7YN7bm+l2j5Jp5xOLMvXzX8Ago=";
 
   meta = with lib; {
     description = "Command line tool that performs HTTP requests defined in a simple plain text format.";
diff --git a/nixpkgs/pkgs/tools/networking/ipv6calc/default.nix b/nixpkgs/pkgs/tools/networking/ipv6calc/default.nix
index 158a979fb40c..bb0d7e698f21 100644
--- a/nixpkgs/pkgs/tools/networking/ipv6calc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ipv6calc/default.nix
@@ -1,20 +1,33 @@
-{ lib, stdenv, fetchurl, getopt, ip2location-c, openssl, perl
-, libmaxminddb ? null, geolite-legacy ? null }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, getopt
+, ip2location-c
+, openssl
+, perl
+, libmaxminddb ? null
+, geolite-legacy ? null
+}:
 
 stdenv.mkDerivation rec {
   pname = "ipv6calc";
-  version = "2.2.0";
+  version = "3.2.0";
 
-  src = fetchurl {
-    urls = [
-      "https://www.deepspace6.net/ftp/pub/ds6/sources/ipv6calc/${pname}-${version}.tar.gz"
-      "ftp://ftp.deepspace6.net/pub/ds6/sources/ipv6calc/${pname}-${version}.tar.gz"
-      "ftp://ftp.bieringer.de/pub/linux/IPv6/ipv6calc/${pname}-${version}.tar.gz"
-    ];
-    sha256 = "18acy0sy3n6jcjjwpxskysinw06czyayx1q4rqc7zc3ic4pkad8r";
+  src = fetchFromGitHub {
+    owner = "pbiering";
+    repo = pname;
+    rev = version;
+    sha256 = "1iis7qw803k9z52j30hn9sv8c3b0xyr9v7kb4fvcyiry1iaxcgfk";
   };
 
-  buildInputs = [ libmaxminddb geolite-legacy getopt ip2location-c openssl perl ];
+  buildInputs = [
+    libmaxminddb
+    geolite-legacy
+    getopt
+    ip2location-c
+    openssl
+    perl
+  ];
 
   postPatch = ''
     patchShebangs *.sh */*.sh
@@ -30,9 +43,13 @@ stdenv.mkDerivation rec {
     "--disable-bundled-md5"
     "--disable-dynamic-load"
     "--enable-shared"
-  ] ++ lib.optional (libmaxminddb != null) "--enable-mmdb"
-    ++ lib.optional (geolite-legacy != null) "--with-geoip-db=${geolite-legacy}/share/GeoIP"
-    ++ lib.optional (ip2location-c != null) "--enable-ip2location";
+  ] ++ lib.optional (libmaxminddb != null) [
+    "--enable-mmdb"
+  ] ++ lib.optional (geolite-legacy != null) [
+    "--with-geoip-db=${geolite-legacy}/share/GeoIP"
+  ] ++ lib.optional (ip2location-c != null) [
+    "--enable-ip2location"
+  ];
 
   enableParallelBuilding = true;
 
@@ -47,7 +64,8 @@ stdenv.mkDerivation rec {
       Now only one utiltity is needed to do a lot.
     '';
     homepage = "http://www.deepspace6.net/projects/ipv6calc.html";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/kapp/default.nix b/nixpkgs/pkgs/tools/networking/kapp/default.nix
index 181a9d9b85ef..437089cc3967 100644
--- a/nixpkgs/pkgs/tools/networking/kapp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kapp/default.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "kapp";
-  version = "0.37.0";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-kapp";
     rev = "v${version}";
-    sha256 = "sha256-SxS6KBiKc68PcRycdVDWWfXBKOJvo7GuG/0dUQGcHsg=";
+    sha256 = "sha256-sUP+C4ynqeODAKkjUWhL1yqlzXkXydd1ENgHQw4enA4=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/kea/default.nix b/nixpkgs/pkgs/tools/networking/kea/default.nix
index 8928215dccb7..63afc04ad117 100644
--- a/nixpkgs/pkgs/tools/networking/kea/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kea/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "1.9.10";
+  version = "1.9.11";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "08pr2qav87jmrf074v8zbqyjkl51wf6r9hhgbkzhdav9d4f9kny3";
+    sha256 = "sha256-fSyJYsAshtEviybA67UzGCWK2iHJYJy5tJIZxxzTfyU=";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/nixpkgs/pkgs/tools/networking/linux-router/default.nix b/nixpkgs/pkgs/tools/networking/linux-router/default.nix
new file mode 100644
index 000000000000..a378a729c7b5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/linux-router/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+
+# --- Runtime Dependencies ---
+, bash, procps, iproute2, dnsmasq, iptables
+, coreutils, flock, gawk, getopt, gnugrep, gnused, which
+# `nmcli` is not required for create_ap.
+# Use NetworkManager by default because it is very likely already present
+, useNetworkManager ? true
+, networkmanager
+
+# --- WiFi Hotspot Dependencies ---
+, useWifiDependencies ? true
+, hostapd, iw
+# You only need this if 'iw' can not recognize your adapter.
+, useWirelessTools ? true
+, wirelesstools # for iwconfig
+# To fall back to haveged if entropy is low.
+# Defaulting to false because not having it does not break things.
+# If it is really needed, warnings will be logged to journal.
+, useHaveged ? false
+, haveged
+# You only need this if you wish to show WiFi QR codes in terminal
+, useQrencode ? true
+, qrencode
+}:
+
+stdenv.mkDerivation rec {
+  pname = "linux-router";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "garywill";
+    repo = "linux-router";
+    rev = "${version}";
+    sha256 = "193bnlwmjxsk0cri6xdylf218qayldn02pdnppvbd39ls361776z";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = with lib; let
+      binPath = makeBinPath ([ procps iproute2 getopt bash dnsmasq
+        iptables coreutils which flock gnugrep gnused gawk ]
+        ++ optional useNetworkManager                          networkmanager
+        ++ optional useWifiDependencies                        hostapd
+        ++ optional useWifiDependencies                        iw
+        ++ optional (useWifiDependencies && useWirelessTools)  wirelesstools
+        ++ optional (useWifiDependencies && useHaveged)        haveged
+        ++ optional (useWifiDependencies && useQrencode)       qrencode);
+    in
+    ''
+      mkdir -p $out/bin/ $out/.bin-wrapped
+      mv lnxrouter $out/.bin-wrapped/lnxrouter
+      makeWrapper $out/.bin-wrapped/lnxrouter $out/bin/lnxrouter --prefix PATH : ${binPath}
+    '';
+
+  meta = with lib; {
+    homepage = "https://github.com/garywill/linux-router";
+    description = "Set Linux as router / Wifi hotspot / proxy in one command";
+    longDescription = ''
+      Features:
+
+      - Create a NATed sub-network
+      - Provide Internet
+      - DHCP server and RA
+      - DNS server
+      - IPv6 (behind NATed LAN, like IPv4)
+      - Creating Wifi hotspot:
+        - Channel selecting
+        - Choose encryptions: WPA2/WPA, WPA2, WPA, No encryption
+        - Create AP on the same interface you are getting Internet (require same channel)
+      - Transparent proxy (redsocks)
+      - DNS proxy
+      - Compatible with NetworkManager (automatically set interface as unmanaged)
+    '';
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ x3ro ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/mu/default.nix b/nixpkgs/pkgs/tools/networking/mu/default.nix
index db8f9bdb9d1a..4b9efdc24a60 100644
--- a/nixpkgs/pkgs/tools/networking/mu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mu/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.6.5";
+  version = "1.6.6";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
     rev    = version;
-    sha256 = "ZHEUJiEJzQzSwWgY07dDflY5GRiD1We435htY/7IOdQ=";
+    sha256 = "64TfXPz1NCGKnozI9j+yog+hln1rA/qpzCLvPNSvH+c=";
   };
 
   postPatch = lib.optionalString (batchSize != null) ''
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix
index 50fc66a8d68b..14a7e11aade1 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/libnma/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnma";
-  version = "1.8.30";
+  version = "1.8.32";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1d5gzn7ss5vi0bhc8s4i5gsrck1ajslajam5jxfqazg094mffcys";
+    sha256 = "Cle5Oi+tQ6zHY/Mg3Tp6k8QpsOMRjfpUnWeCTN3E6QU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/networking/oha/default.nix b/nixpkgs/pkgs/tools/networking/oha/default.nix
new file mode 100644
index 000000000000..185176440c1b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/oha/default.nix
@@ -0,0 +1,30 @@
+{ fetchFromGitHub, lib, pkg-config, rustPlatform, stdenv, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "oha";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "hatoo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vx8ki0wi9xil2iksvxzh8mhx4c5ikkhdcnc8mcwqn14cvjkggja";
+  };
+
+  cargoSha256 = "1nx2lvbjflsjma5q9ck6vq499hf75w91i4h8wlzr83wqk37i7rhc";
+
+  nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
+
+  buildInputs = lib.optional stdenv.isLinux openssl
+    ++ lib.optional stdenv.isDarwin Security;
+
+  # tests don't work inside the sandbox
+  doCheck = false;
+
+  meta = with lib; {
+    description = "HTTP load generator inspired by rakyll/hey with tui animation";
+    homepage = "https://github.com/hatoo/oha";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
index 13efa6e999cf..5800df6950ba 100644
--- a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sniffglue";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2LyCiW1MrAahpbzyxot0INPMzo0Vl/JToMZTinCQdgs=";
+    sha256 = "sha256-UZLVkTkuJPzju9fl4N6Lgdn3gNBpKruNFxDcoTwdtYc=";
   };
 
-  cargoSha256 = "sha256-AGwiyC7Zf8KHQIHfHByL06sdbS4vEXUyj1wGw7Q1N9I=";
+  cargoSha256 = "sha256-bHwp0U83uvhFOi9oaeVwNrqHkxK2IQs/bvxqUl/rpjI=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/networking/spoof-mac/default.nix b/nixpkgs/pkgs/tools/networking/spoof-mac/default.nix
new file mode 100644
index 000000000000..fdd282fa8b5f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/spoof-mac/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, docopt }:
+
+buildPythonPackage rec {
+  pname = "spoof-mac";
+  version = "unstable-2018-01-27";
+
+  src = fetchFromGitHub {
+    owner = "feross";
+    repo = "SpoofMAC";
+    rev = "2cfc796150ef48009e9b765fe733e37d82c901e0";
+    sha256 = "sha256-Qiu0URjUyx8QDVQQUFGxPax0J80e2m4+bPJeqFoKxX8=";
+  };
+
+  propagatedBuildInputs = [ docopt ];
+
+  # No tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Change your MAC address for debugging purposes";
+    homepage = "https://github.com/feross/SpoofMAC";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/sstp/default.nix b/nixpkgs/pkgs/tools/networking/sstp/default.nix
index 97e35949b15a..151538462a35 100644
--- a/nixpkgs/pkgs/tools/networking/sstp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sstp/default.nix
@@ -2,18 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "sstp-client";
-  version = "1.0.13";
+  version = "1.0.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/sstp-client/sstp-client/sstp-client-${version}.tar.gz";
-    sha256 = "06rjyncmgdy212xf9l9z6mfh4gdmgk7l4y841gb8lpbrl3y5h4ln";
+    sha256 = "sha256-hISqUfv75Big661YrSCo7hxG7XH4AL4YvNI7Qua6rWQ=";
   };
 
-  patchPhase =
-    ''
-      sed 's,/usr/sbin/pppd,${ppp}/sbin/pppd,' -i src/sstp-pppd.c
-      sed "s,sstp-pppd-plugin.so,$out/lib/pppd/sstp-pppd-plugin.so," -i src/sstp-pppd.c
-    '';
+  postPatch = ''
+    sed 's,/usr/sbin/pppd,${ppp}/sbin/pppd,' -i src/sstp-pppd.c
+    sed "s,sstp-pppd-plugin.so,$out/lib/pppd/sstp-pppd-plugin.so," -i src/sstp-pppd.c
+  '';
 
   configureFlags = [
     "--with-openssl=${openssl.dev}"
@@ -22,13 +21,14 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ libevent openssl ppp ];
 
-  meta = {
+  meta = with lib; {
     description = "SSTP client for Linux";
     homepage = "http://sstp-client.sourceforge.net/";
-    platforms = lib.platforms.linux;
-    maintainers = [ lib.maintainers.ktosiek ];
-    license = lib.licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ktosiek ];
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/stuntman/default.nix b/nixpkgs/pkgs/tools/networking/stuntman/default.nix
new file mode 100644
index 000000000000..1825a3971a74
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/stuntman/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchFromGitHub, openssl, boost }:
+
+stdenv.mkDerivation {
+  pname = "stuntman";
+  version = "1.2.16";
+
+  src = fetchFromGitHub {
+    owner = "jselbie";
+    repo = "stunserver";
+    rev = "cfadf9c3836d5ae63a682913de24ba085df924f3";
+    sha256 = "1gcx4zj44f0viddnn5klkmq0dgd29av5p06iyf9f1va4a3lk0cbg";
+  };
+
+  buildInputs = [
+    boost
+    openssl
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mv stunserver $out/bin/
+    mv stunclient $out/bin/
+
+    runHook postInstall
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+
+    ./stuntestcode
+
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "STUNTMAN - an open source STUN server and client";
+    homepage = "http://www.stunprotocol.org/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mattchrist ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/default.nix b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
index 33fbd5bc92f5..719e1d9b44f3 100644
--- a/nixpkgs/pkgs/tools/networking/v2ray/default.nix
+++ b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
@@ -3,22 +3,22 @@
 }:
 
 let
-  version = "4.41.1";
+  version = "4.42.1";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "14zqvmf7xa4knmc57ck1ns0i0va0223qdp64qmm3q2w82dh9mnb8";
+    sha256 = "19xkbkzv9bgj68kmvrxsdqzx40vlyvzl8nn2n19hwwmkrazqgf04";
   };
 
-  vendorSha256 = "sha256-K8gFF9TbhVgNOySz7nhPFIdSNWNYKUyFD0LIk6acnkc=";
+  vendorSha256 = "sha256-N1DYV0zSzCepkRMbcQUHqjITvmGahYKNn1uhL+csMSc=";
 
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202107290023";
-      geoipSha256 = "14xgy0bsamj2k4knfs1r453yp27wq8qmjqifq63zbp4lb9v8xnjy";
+      geoipRev = "202109102251";
+      geoipSha256 = "0qh8yf0m6sna3z5i2plbgw61q08qcfcx0l1z5bmwxijagf1yb7fa";
     in fetchurl {
       url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
       sha256 = geoipSha256;
@@ -26,8 +26,8 @@ let
 
     # MIT licensed
     "geosite.dat" = let
-      geositeRev = "20210727125446";
-      geositeSha256 = "14z1419dkbippm12z6gvwh3q1wd6x1p4sk6zp2i4qa408i1gc81c";
+      geositeRev = "20210910080130";
+      geositeSha256 = "0d6bzrs5mhca59j1w73kqw10jqkwic9ywm3jvszpd077qwh64dwn";
     in fetchurl {
       url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
diff --git a/nixpkgs/pkgs/tools/networking/wicd/default.nix b/nixpkgs/pkgs/tools/networking/wicd/default.nix
deleted file mode 100644
index e4eb0a2cdc8c..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/default.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{ lib, stdenv, fetchurl, python2Packages
-, wpa_supplicant, dhcp, dhcpcd, wirelesstools
-, nettools, openresolv, iproute2, iputils }:
-
-let
-  inherit (python2Packages) python pygobject2 dbus-python pyGtkGlade pycairo;
-in stdenv.mkDerivation rec {
-  pname = "wicd";
-  version = "1.7.2.4";
-
-  src = fetchurl {
-    url = "https://launchpad.net/wicd/1.7/${version}/+download/${pname}-${version}.tar.gz";
-    sha256 = "15ywgh60xzmp5z8l1kzics7yi95isrjg1paz42dvp7dlpdfzpzfw";
-  };
-
-  buildInputs = with python2Packages; [
-    python Babel urwid notify
-  ];
-
-  patches = [
-    ./no-var-install.patch
-    ./pygtk.patch
-    ./no-optimization.patch
-    ./dhclient.patch
-    ./fix-app-icon.patch
-    ./fix-gtk-issues.patch
-    ./urwid-api-update.patch
-    ./fix-curses.patch
-    ];
-
-  # Should I be using pygtk's propagated build inputs?
-  # !!! Should use makeWrapper.
-  postPatch = ''
-    # We don't have "python2".
-    substituteInPlace wicd/wicd-daemon.py --replace 'misc.find_path("python2")' "'${python.interpreter}'"
-
-    substituteInPlace in/scripts=wicd.in --subst-var-by TEMPLATE-DEFAULT $out/share/other/dhclient.conf.template.default
-
-    sed -i "2iexport PATH=${lib.makeBinPath [ python wpa_supplicant dhcpcd dhcp wirelesstools nettools nettools iputils openresolv iproute2 ]}\$\{PATH:+:\}\$PATH" in/scripts=wicd.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pygobject2}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-client.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pygobject2})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-client.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-gtk.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pygobject2})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python}):$(toPythonPath ${python2Packages.notify})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-gtk.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-cli.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-cli.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-curses.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python}):$(toPythonPath ${python2Packages.urwid})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-curses.in
-    rm po/ast.po
-  '';
-
-  configurePhase = ''
-    python setup.py configure \
-    --lib=$out/lib/ \
-    --share=$out/share/ \
-    --etc=/var/lib/wicd/ \
-    --scripts=$out/etc/scripts/ \
-    --pixmaps=$out/share/pixmaps/ \
-    --images=$out/share/pixmaps/wicd/ \
-    --encryption=$out/etc/encryption/templates/ \
-    --bin=$out/bin/ \
-    --sbin=$out/sbin/ \
-    --backends=$out/share/backends/ \
-    --daemon=$out/share/daemon/ \
-    --curses=$out/share/curses/ \
-    --gtk=$out/share/gtk/ \
-    --cli=$out/share/cli/ \
-    --networks=/var/lib/wicd/configurations/ \
-    --resume=$out/etc/acpi/resume.d/ \
-    --suspend=$out/etc/acpi/suspend.d/ \
-    --pmutils=$out/lib/pm-utils/sleep.d/ \
-    --dbus=$out/etc/dbus-1/system.d/ \
-    --dbus-service=$out/etc/dbus-1/system-services/ \
-    --systemd=$out/lib/systemd/ \
-    --logrotate=$out/etc/logrotate.d/ \
-    --desktop=$out/share/applications/ \
-    --icons=$out/share/icons/hicolor/ \
-    --translations=$out/share/locale/ \
-    --autostart=$out/etc/xdg/autostart/ \
-    --varlib=$out/var/lib/ \
-    --docdir=$out/share/doc/ \
-    --mandir=$out/share/man/ \
-    --kdedir=$out/share/autostart/ \
-    --python=${python}/bin/python \
-    --distro=nix \
-    --wicdgroup=users \
-    --no-install-init \
-    --no-install-kde \
-    --no-install-acpi \
-    --no-install-pmutils \
-  '';
-
-  installPhase = ''
-    python setup.py install --prefix=$out --install-lib=$out/${python.sitePackages}
-    mkdir -p $out/share/other
-    cp other/dhclient.conf.template.default $out/share/other/dhclient.conf.template.default
-
-    # Add a template for "WPA2 Enterprise" encryption as used, e.g., by the
-    # Eduroam network.  Taken and adapted from
-    # <http://wicd.net/punbb/viewtopic.php?id=87>.
-    cp -v "${./wpa2-ttls}" "$out/etc/encryption/templates/wpa2-ttls"
-    echo "wpa2-ttls" >> "$out/etc/encryption/templates/active"
-  '';
-
-  meta = with lib; {
-    homepage = "http://wicd.net/";
-    description = "A wiredless and wired network manager";
-    longDescription=''
-      A complete network connection manager
-      Wicd supports wired and wireless networks, and capable of
-      creating and tracking profiles for both.  It has a
-      template-based wireless encryption system, which allows the user
-      to easily add encryption methods used.  It ships with some common
-      encryption types, such as WPA and WEP. Wicd will automatically
-      connect at startup to any preferred network within range.
-    '';
-    maintainers = [ maintainers.roconnor ];
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/wicd/dhclient.patch b/nixpkgs/pkgs/tools/networking/wicd/dhclient.patch
deleted file mode 100644
index fbda1caacb7a..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/dhclient.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-diff -ruN wicd-1.7.2.4.orig/wicd/wicd-daemon.py wicd-1.7.2.4/wicd/wicd-daemon.py
---- wicd-1.7.2.4.orig/wicd/wicd-daemon.py	2013-06-22 18:55:02.641242947 +0000
-+++ wicd-1.7.2.4/wicd/wicd-daemon.py	2013-06-22 18:58:33.990244153 +0000
-@@ -69,6 +69,7 @@
- wireless_conf = os.path.join(wpath.etc, "wireless-settings.conf")
- wired_conf = os.path.join(wpath.etc, "wired-settings.conf")
- dhclient_conf = os.path.join(wpath.etc, "dhclient.conf.template")
-+dhclient_conf_default = os.path.join(wpath.share, "other", "dhclient.conf.template.default")
- 
- class WicdDaemon(dbus.service.Object):
-     """ The main wicd daemon class.
-@@ -910,7 +911,7 @@
- 
-         if not os.path.isfile(dhclient_conf):
-             print "dhclient.conf.template not found, copying..."
--            shutil.copy(dhclient_conf + ".default", dhclient_conf)            
-+            shutil.copy(dhclient_conf_default, dhclient_conf)
-         # Hide the files, so the keys aren't exposed.
-         print "chmoding configuration files 0600..."
-         os.chmod(app_conf.get_config(), 0600)diff -ruN wicd-1.7.2.4.orig/wicd/wnettools.py wicd-1.7.2.4/wicd/wnettools.py
---- wicd-1.7.2.4.orig/wicd/wnettools.py	2013-03-30 21:47:19.804907552 +0000
-+++ wicd-1.7.2.4/wicd/wnettools.py	2013-03-31 08:44:37.572792110 +0000
-@@ -37,6 +37,7 @@
- import time
- from string import maketrans, translate
- 
-+import tempfile
- import wpath
- import misc
- from misc import find_path 
-@@ -216,6 +217,7 @@
-         self.flush_tool = None
-         self.link_detect = None       
-         self.dhcp_object = None
-+        self.dhclient_conf_path = None;
-     
-     def SetDebugMode(self, value):
-         """ If True, verbose output is enabled. """
-@@ -277,12 +279,6 @@
-                 cmd = ""
-             return (client, cmd)
- 
--                # probably /var/lib/wicd/dhclient.conf with defaults
--        dhclient_conf_path = os.path.join(
--                    wpath.varlib,
--                    'dhclient.conf'
--                )
--        
-         client_dict = {
-             "dhclient" : 
-                 {'connect' : r"%(cmd)s -cf %(dhclientconf)s %(iface)s",
-@@ -307,41 +303,44 @@
-         }
-         (client_name, cmd) = get_client_name(self.DHCP_CLIENT)
- 
--        # cause dhclient doesn't have a handy dandy argument
--        # for specifing the hostname to be sent
--        if client_name == "dhclient" and flavor:
--            if hostname == None:
--                # <hostname> will use the system hostname
--                # we'll use that if there is hostname passed
--                # that shouldn't happen, though
--                hostname = '<hostname>'
--            print 'attempting to set hostname with dhclient'
--            print 'using dhcpcd or another supported client may work better'
--            dhclient_template = \
--                open(os.path.join(wpath.etc, 'dhclient.conf.template'), 'r')
--
--            output_conf = open(dhclient_conf_path, 'w')
--
--            for line in dhclient_template.readlines():
--                line = line.replace('$_HOSTNAME', hostname)
--                output_conf.write(line)
--
--            output_conf.close()
--            dhclient_template.close()
--            os.chmod(dhclient_conf_path, 0644)
--
-         if not client_name or not cmd:
-             print "WARNING: Failed to find a valid dhcp client!"
-             return ""
-             
-         if flavor == "connect":
-+            # cause dhclient doesn't have a handy dandy argument
-+            # for specifing the hostname to be sent
-+            if client_name == "dhclient" and flavor:
-+                if hostname == None:
-+                    # <hostname> will use the system hostname
-+                    # we'll use that if there is hostname passed
-+                    # that shouldn't happen, though
-+                    hostname = '<hostname>'
-+                print 'attempting to set hostname with dhclient'
-+                print 'using dhcpcd or another supported client may work better'
-+                if not self.dhclient_conf_path:
-+                    _,self.dhclient_conf_path = tempfile.mkstemp()
-+                    print 'New dhclient conf path: %s ' % self.dhclient_conf_path
-+                dhclient_template = \
-+                    open(os.path.join(wpath.etc, 'dhclient.conf.template'), 'r')
-+
-+                output_conf = open(self.dhclient_conf_path, 'w')
-+
-+                for line in dhclient_template.readlines():
-+                    line = line.replace('$_HOSTNAME', hostname)
-+                    output_conf.write(line)
-+
-+                output_conf.close()
-+                dhclient_template.close()
-+                os.chmod(self.dhclient_conf_path, 0644)
-+
-             if not hostname:
-                 hostname = os.uname()[1]
-             return client_dict[client_name]['connect'] % \
-                     { "cmd" : cmd,
-                       "iface" : self.iface,
-                       "hostname" : hostname,
--                      'dhclientconf' : dhclient_conf_path }
-+                      'dhclientconf' : self.dhclient_conf_path }
-         elif flavor == "release":
-             return client_dict[client_name]['release'] % {"cmd":cmd, "iface":self.iface}
-         else:
diff --git a/nixpkgs/pkgs/tools/networking/wicd/fix-app-icon.patch b/nixpkgs/pkgs/tools/networking/wicd/fix-app-icon.patch
deleted file mode 100644
index 31b47bb45881..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/fix-app-icon.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Someone forgot to pack wicd.png icon. We will replace it with existing one.
-
-diff -ruN wicd-1.7.2.4.orig/gtk/gui.py wicd-1.7.2.4/gtk/gui.py
---- wicd-1.7.2.4.orig/gtk/gui.py	2013-03-30 21:47:19.802907553 +0000
-+++ wicd-1.7.2.4/gtk/gui.py	2013-03-31 08:13:32.876871673 +0000
-@@ -205,8 +205,10 @@
- 
-         self.status_area.hide_all()
- 
--        if os.path.exists(os.path.join(wpath.images, "wicd.png")):
--            self.window.set_icon_from_file(os.path.join(wpath.images, "wicd.png"))
-+        if os.path.exists(os.path.join(wpath.images, "../../icons/hicolour/128x128/apps/wicd-gtk.png")):
-+            self.window.set_icon_from_file(os.path.join(wpath.images, "../../icons/hicolor/128x128/apps/wicd-gtk.png"))
-+        else:
-+            print 'icon doesn\'t exist %s' % os.path.join(wpath.images, "../../icons/hicolor/128x128/apps/wicd-gtk.png")
-         self.statusID = None
-         self.first_dialog_load = True
-         self.is_visible = True
-
diff --git a/nixpkgs/pkgs/tools/networking/wicd/fix-curses.patch b/nixpkgs/pkgs/tools/networking/wicd/fix-curses.patch
deleted file mode 100644
index 138dfbabfd5c..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/fix-curses.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/curses/wicd-curses.py	2015-01-27 22:35:25.414781192 -0300
-+++ b/curses/wicd-curses.py	2015-01-28 01:13:48.078904587 -0300
-@@ -1153,9 +1153,10 @@
-         if not ui._started:
-             return False
- 
--        input_data = ui.get_input_nonblocking()
-+        ui.set_input_timeouts(max_wait=0)
-+        input_data = ui.get_input()
-         # Resolve any "alarms" in the waiting
--        self.handle_keys(input_data[1])
-+        self.handle_keys(input_data)
- 
-         # Update the screen
-         canvas = self.frame.render((self.size), True)
diff --git a/nixpkgs/pkgs/tools/networking/wicd/fix-gtk-issues.patch b/nixpkgs/pkgs/tools/networking/wicd/fix-gtk-issues.patch
deleted file mode 100644
index 31e553b46b50..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/fix-gtk-issues.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -ruN wicd-1.7.2.4.orig/gtk/gui.py wicd-1.7.2.4/gtk/gui.py
---- wicd-1.7.2.4.orig/gtk/gui.py	2013-03-31 17:01:29.367001288 +0000
-+++ wicd-1.7.2.4/gtk/gui.py	2013-03-31 17:55:20.826028396 +0000
-@@ -35,7 +35,7 @@
- from wicd import misc
- from wicd import wpath
- from wicd import dbusmanager
--from wicd.misc import noneToString
-+from wicd.misc import noneToString, _status_dict
- from wicd.translations import _, language
- import prefs
- from prefs import PreferencesDialog
-@@ -250,7 +250,7 @@
-         
-     def handle_connection_results(self, results):
-         if results not in ['success', 'aborted'] and self.is_visible:
--            error(self.window, language[results], block=False)
-+            error(self.window, misc._status_dict[results], block=False)
- 
-     def create_adhoc_network(self, widget=None):
-         """ Shows a dialog that creates a new adhoc network. """
-diff -ruN wicd-1.7.2.4.orig/po/ru.po wicd-1.7.2.4/po/ru.po
---- wicd-1.7.2.4.orig/po/ru.po	2013-03-31 17:01:29.362001288 +0000
-+++ wicd-1.7.2.4/po/ru.po	2013-03-31 17:43:37.909022515 +0000
-@@ -173,7 +173,7 @@
- 
- #: wicd/misc.py:79
- msgid "Connection Failed: Bad password"
--msgstr "Ошибка соединения: Неверный пароль:"
-+msgstr "Ошибка соединения: Неверный пароль"
- 
- #: wicd/misc.py:89
- msgid "Connection Failed: No DHCP offers received."
-diff -ruN wicd-1.7.2.4.orig/wicd/misc.py wicd-1.7.2.4/wicd/misc.py
---- wicd-1.7.2.4.orig/wicd/misc.py	2013-03-31 17:01:29.369001288 +0000
-+++ wicd-1.7.2.4/wicd/misc.py	2013-03-31 17:23:56.822012593 +0000
-@@ -430,7 +430,9 @@
-     """ Sanitize property names to be used in config-files. """
-     allowed = string.ascii_letters + '_' + string.digits
-     table = string.maketrans(allowed, ' ' * len(allowed))
--    return s.translate(None, table)
-+    #return s.translate(None, table)
-+    #return s.translate(table)
-+    return s
- 
- def sanitize_escaped(s):
-     """ Sanitize double-escaped unicode strings. """
diff --git a/nixpkgs/pkgs/tools/networking/wicd/no-optimization.patch b/nixpkgs/pkgs/tools/networking/wicd/no-optimization.patch
deleted file mode 100644
index 785cae7b6ed5..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/no-optimization.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-With optimizations on, python will overwrite the nix store.
-
---- wicd-1.7.0/in/scripts=wicd.in  2011-04-05 14:31:09.733096865 -0400
-+++ wicd-1.7.0/in/scripts=wicd.in  2011-04-05 14:31:16.397096864 -0400
-@@ -1,3 +1,3 @@
- #!/bin/bash
- 
--exec %PYTHON% -O %SHARE%daemon/wicd-daemon.py $@
-+exec %PYTHON% -B %SHARE%daemon/wicd-daemon.py $@
-
---- wicd-1.7.2.4/wicd/wicd-daemon.py  2012-04-30 21:19:45.000000000 +0200
-+++ wicd-1.7.2.4/wicd/wicd-daemon.pynew       2013-03-14 21:35:23.250306592 +0100
-@@ -1812,7 +1812,7 @@
-     daemon = WicdDaemon(wicd_bus, auto_connect=auto_connect)
-     child_pid = None
-     if not no_poll:
--        child_pid = Popen([wpath.python, "-O", 
-+        child_pid = Popen([wpath.python, "-B", 
-                           os.path.join(wpath.daemon, "monitor.py")],
-                           shell=False, close_fds=True).pid
-     atexit.register(on_exit, child_pid)
diff --git a/nixpkgs/pkgs/tools/networking/wicd/no-var-install.patch b/nixpkgs/pkgs/tools/networking/wicd/no-var-install.patch
deleted file mode 100644
index b01f0e5a438a..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/no-var-install.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-The install tries to create files in /var.  This patch removes those steps.
-
---- wicd-1.7.2.4/setup.py     2013-03-14 21:28:21.360580941 +0100
-+++ wicd-1.7.2.4/setup.py  2013-03-14 21:22:50.125721943 +0100
-@@ -505,11 +505,8 @@
-         (wpath.dbus_service, ['other/org.wicd.daemon.service']),
-         (wpath.systemd, ['other/wicd.service']),
-         (wpath.logrotate, ['other/wicd.logrotate']),
--        (wpath.log, [empty_file]), 
--        (wpath.etc, ['other/dhclient.conf.template.default']),
-         (wpath.encryption, [('encryption/templates/' + b) for b in 
-                             os.listdir('encryption/templates') if not b.startswith('.')]),
--        (wpath.networks, [empty_file]),
-         (wpath.sbin,  ['scripts/wicd']),  
-         (wpath.daemon, ['wicd/monitor.py', 'wicd/wicd-daemon.py',
-                     'wicd/suspend.py', 'wicd/autoconnect.py']), 
-
diff --git a/nixpkgs/pkgs/tools/networking/wicd/pygtk.patch b/nixpkgs/pkgs/tools/networking/wicd/pygtk.patch
deleted file mode 100644
index f015e50d684a..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/pygtk.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-For some reason nix's pygtk doesn't have a pygtk module so we remove the version check.
-If this ever changes we could remove this patch.
-
---- wicd-1.7.0/gtk/wicd-client.py	2009-09-01 11:05:31.000000000 -0400
-+++ wicd-1.7.0/gtk/wicd-client.py	2009-12-28 00:22:57.000000000 -0500
-@@ -43,9 +43,6 @@
- import atexit
- from dbus import DBusException
- 
--import pygtk
--pygtk.require('2.0')
--
- HAS_NOTIFY = True
- try:
-     import pynotify
diff --git a/nixpkgs/pkgs/tools/networking/wicd/urwid-api-update.patch b/nixpkgs/pkgs/tools/networking/wicd/urwid-api-update.patch
deleted file mode 100644
index a794f6caaeee..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/urwid-api-update.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/curses/curses_misc.py
-+++ a/curses/curses_misc.py
-@@ -358,6 +358,19 @@ class ComboBox(urwid.WidgetWrap):
-         self.parent = None
-         self.ui = None
-         self.row = None
-+
-+    @property
-+    def focus(self):
-+        return self._focus
-+
-+    @focus.setter
-+    def focus(self, index):
-+        self._focus = index
-+
-+    @focus.deleter
-+    def focus(self):
-+        del self._focus
-+
-     def set_list(self,list):
-         self.list = list
diff --git a/nixpkgs/pkgs/tools/networking/wicd/wpa2-ttls b/nixpkgs/pkgs/tools/networking/wicd/wpa2-ttls
deleted file mode 100644
index 650375cbbaae..000000000000
--- a/nixpkgs/pkgs/tools/networking/wicd/wpa2-ttls
+++ /dev/null
@@ -1,20 +0,0 @@
-name = WPA2-TTLS
-author = various contributors
-version = 1
-require identity *Identity anonymous_identity *Anonymous_identity password *Password ca_cert *Path_to_CA_Cert
-protected password *Password
------
-ctrl_interface=/run/wpa_supplicant
-network={
-        ssid="$_ESSID"
-        scan_ssid=$_SCAN
-        proto=WPA2
-        key_mgmt=WPA-EAP
-        group=CCMP TKIP
-        eap=TTLS
-        identity="$_IDENTITY"
-        password="$_PASSWORD"
-        anonymous_identity="$_ANONYMOUS_IDENTITY"
-        ca_cert="$_CA_CERT"
-        phase2="auth=PAP"
-}
diff --git a/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix b/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
index b0fba9d047ab..a27aa8d3c3bd 100644
--- a/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-query-tree-viewer";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "cdepillabout";
-    repo  = "nix-query-tree-viewer";
+    repo  = pname;
     rev = "v${version}";
-    sha256 = "0vjcllhgq64n7mwxvyhmbqd6fpa9lwrpsnggc1kdlgd14ggq6jj6";
+    sha256 = "sha256-Lc9hfjybnRrkd7PZMa2ojxOM04bP4GJyagkZUX2nVwY=";
   };
 
   nativeBuildInputs = [
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     gtk3
   ];
 
-  cargoSha256 = "1i9sjs77v1c3lch93pzjgr1zl0k1mlwkdpf3zfp13hyjn6zpldnj";
+  cargoSha256 = "sha256-NSLBIvgo5EdCvZq52d+UbAa7K4uOST++2zbhO9DW38E=";
 
   meta = with lib; {
     description = "GTK viewer for the output of `nix store --query --tree`";
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
index 00b3a65be0d4..82c52419c67c 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-audit";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "RustSec";
     repo = "rustsec";
     rev = "cargo-audit%2Fv${version}";
-    sha256 = "0pvb1m9277ysjzydjvx7viybi6bd23ch7sbjyx1wnz45ahrmia1j";
+    sha256 = "1rmhizgld35996kzp3fal2zl20aqpnmkzx0clc80n30p814isdrw";
   };
 
-  cargoSha256 = "0cf8kg8vhfqbrkm227rzyl3394n7fsqhqgq13qks7374h5d04haw";
+  cargoSha256 = "10li9w3m4xxb8943802y74dgb1wsgjkn74hwn2x47c0w0yjiig7p";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/package-management/nix/default.nix b/nixpkgs/pkgs/tools/package-management/nix/default.nix
index 8f89fd6641d1..61c6ab3efb51 100644
--- a/nixpkgs/pkgs/tools/package-management/nix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix/default.nix
@@ -234,13 +234,13 @@ in rec {
   nixUnstable = lib.lowPrio (callPackage common rec {
     pname = "nix";
     version = "2.4${suffix}";
-    suffix = "pre20210802_47e96bb";
+    suffix = "pre20210908_${lib.substring 0 7 src.rev}";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "47e96bb533f8cacc171bec9b688b134de31a48a9";
-      sha256 = "sha256-vwj1fAGn3Pl9Vr/qSL+oDxuwbRzEdI3dsEg6o3xTmWg=";
+      rev = "3c56f62093601143838af923195f630d8ffae2d4";
+      sha256 = "sha256-pjdzLOEt8i1NQe4drLpp8+LrRd2MgsISSQEsMebz2kc=";
     };
 
     boehmgc = boehmgc_nixUnstable;
diff --git a/nixpkgs/pkgs/tools/package-management/protontricks/default.nix b/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
index cbe10e85f667..99751c00d99c 100644
--- a/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
@@ -2,23 +2,24 @@
 , buildPythonApplication
 , fetchFromGitHub
 , setuptools-scm
+, setuptools
 , vdf
 , bash
 , steam-run
 , winetricks
-, zenity
+, yad
 , pytestCheckHook
 }:
 
 buildPythonApplication rec {
   pname = "protontricks";
-  version = "1.5.2";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "Matoking";
     repo = pname;
     rev = version;
-    hash = "sha256-Vmxb8SjPhcSqFzykHRPsLtAoSwomN+se+icwHkucbX8=";
+    hash = "sha256-sbYIqVsuDZ2Htb6SVIe/gBA1UIvUzu4fjTjWQ7k1WFs=";
   };
 
   patches = [
@@ -27,23 +28,31 @@ buildPythonApplication rec {
   ];
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   nativeBuildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [ vdf ];
+
+  propagatedBuildInputs = [
+    setuptools # implicit dependency, used to find data/icon_placeholder.png
+    vdf
+  ];
 
   makeWrapperArgs = [
     "--prefix PATH : ${lib.makeBinPath [
       bash
       steam-run
-      (winetricks.override {
-        # Remove default build of wine to reduce closure size.
-        # Falls back to wine in PATH when --no-runtime is passed.
-        wine = null;
-      })
-      zenity
+      winetricks
+      yad
     ]}"
   ];
 
   checkInputs = [ pytestCheckHook ];
+
+  # From 1.6.0 release notes (https://github.com/Matoking/protontricks/releases/tag/1.6.0):
+  # In most cases the script is unnecessary and should be removed as part of the packaging process.
+  postInstall = ''
+    rm "$out/bin/protontricks-desktop-install"
+  '';
+
   pythonImportsCheck = [ "protontricks" ];
 
   meta = with lib; {
@@ -51,6 +60,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/Matoking/protontricks";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ kira-bruneau ];
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch b/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
index 82ddec1abb89..0144160c5af8 100644
--- a/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
+++ b/nixpkgs/pkgs/tools/package-management/protontricks/steam-run.patch
@@ -1,31 +1,31 @@
-diff --git a/src/protontricks/cli.py b/src/protontricks/cli.py
-index cc65a03..5c3fc7a 100755
---- a/src/protontricks/cli.py
-+++ b/src/protontricks/cli.py
-@@ -15,8 +15,8 @@ import sys
- 
- from . import __version__
- from .gui import select_steam_app_with_gui
--from .steam import (find_legacy_steam_runtime_path, find_proton_app,
--                    find_steam_path, get_steam_apps, get_steam_lib_paths)
-+from .steam import (find_proton_app, find_steam_path, get_steam_apps,
-+                    get_steam_lib_paths)
- from .util import run_command, is_flatpak_sandbox
- from .winetricks import get_winetricks_path
- 
-@@ -77,8 +77,7 @@ def main(args=None):
+diff --git a/src/protontricks/cli/main.py b/src/protontricks/cli/main.py
+index 535ec9b..690c1f9 100755
+--- a/src/protontricks/cli/main.py
++++ b/src/protontricks/cli/main.py
+@@ -14,8 +14,8 @@ import sys
+ 
+ from .. import __version__
+ from ..gui import select_steam_app_with_gui
+-from ..steam import (find_legacy_steam_runtime_path, find_proton_app,
+-                     find_steam_path, get_steam_apps, get_steam_lib_paths)
++from ..steam import (find_proton_app, find_steam_path, get_steam_apps,
++                     get_steam_lib_paths)
+ from ..util import is_flatpak_sandbox, run_command
+ from ..winetricks import get_winetricks_path
+ from .util import (CustomArgumentParser, cli_error_handler, enable_logging,
+@@ -60,8 +60,7 @@ def main(args=None):
              "WINE: path to a custom 'wine' executable\n"
              "WINESERVER: path to a custom 'wineserver' executable\n"
              "STEAM_RUNTIME: 1 = enable Steam Runtime, 0 = disable Steam "
 -            "Runtime, valid path = custom Steam Runtime path, "
--            "empty = enable automatically (default)"
-+            "Runtime, empty = enable automatically (default)"
+-            "empty = enable automatically (default)\n"
++            "Runtime, empty = enable automatically (default)\n"
+             "PROTONTRICKS_GUI: GUI provider to use, accepts either 'yad' "
+             "or 'zenity'"
          ),
-         formatter_class=argparse.RawTextHelpFormatter
-     )
-@@ -148,18 +147,9 @@ def main(args=None):
-         )
-         sys.exit(-1)
+@@ -147,17 +146,9 @@ def main(args=None):
+     if not steam_path:
+         exit_("Steam installation directory could not be found.")
  
 -    # 2. Find the pre-installed legacy Steam Runtime if enabled
 -    legacy_steam_runtime_path = None
@@ -38,13 +38,12 @@ index cc65a03..5c3fc7a 100755
 -        )
 -
 -        if not legacy_steam_runtime_path:
--            print("Steam Runtime was enabled but couldn't be found!")
--            sys.exit(-1)
+-            exit_("Steam Runtime was enabled but couldn't be found!")
 +        use_steam_runtime = True
      else:
          use_steam_runtime = False
          logger.info("Steam Runtime disabled.")
-@@ -222,7 +212,6 @@ def main(args=None):
+@@ -218,7 +209,6 @@ def main(args=None):
              proton_app=proton_app,
              steam_app=steam_app,
              use_steam_runtime=use_steam_runtime,
@@ -52,7 +51,7 @@ index cc65a03..5c3fc7a 100755
              command=[winetricks_path, "--gui"],
              use_bwrap=use_bwrap
          )
-@@ -292,7 +281,6 @@ def main(args=None):
+@@ -286,7 +276,6 @@ def main(args=None):
              proton_app=proton_app,
              steam_app=steam_app,
              use_steam_runtime=use_steam_runtime,
@@ -60,7 +59,7 @@ index cc65a03..5c3fc7a 100755
              use_bwrap=use_bwrap,
              command=[winetricks_path] + args.winetricks_command)
      elif args.command:
-@@ -302,7 +290,6 @@ def main(args=None):
+@@ -296,7 +285,6 @@ def main(args=None):
              steam_app=steam_app,
              command=args.command,
              use_steam_runtime=use_steam_runtime,
@@ -69,7 +68,7 @@ index cc65a03..5c3fc7a 100755
              # Pass the command directly into the shell *without*
              # escaping it
 diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py
-index 4ab778b..f3f5f99 100644
+index e898caf..7448d11 100644
 --- a/src/protontricks/steam.py
 +++ b/src/protontricks/steam.py
 @@ -12,8 +12,8 @@ from .util import lower_dict
@@ -77,13 +76,13 @@ index 4ab778b..f3f5f99 100644
  __all__ = (
      "COMMON_STEAM_DIRS", "SteamApp", "find_steam_path",
 -    "find_legacy_steam_runtime_path", "get_appinfo_sections",
--    "get_proton_appid", "find_steam_proton_app", "find_appid_proton_prefix",
-+    "get_appinfo_sections", "get_proton_appid",
-+    "find_steam_proton_app", "find_appid_proton_prefix",
+-    "get_tool_appid", "find_steam_compat_tool_app", "find_appid_proton_prefix",
++    "get_appinfo_sections", "get_tool_appid",
++    "find_steam_compat_tool_app", "find_appid_proton_prefix",
      "find_proton_app", "get_steam_lib_paths", "get_compat_tool_dirs",
-     "get_custom_proton_installations_in_dir", "get_custom_proton_installations",
+     "get_custom_compat_tool_installations_in_dir", "get_custom_compat_tool_installations",
      "find_current_steamid3", "get_appid_from_shortcut",
-@@ -300,37 +300,6 @@ def find_steam_path():
+@@ -311,37 +311,6 @@ def find_steam_path():
      return None, None
  
  
@@ -122,12 +121,12 @@ index 4ab778b..f3f5f99 100644
  APPINFO_STRUCT_SECTION = "<LLLLQ20sL"
  
 diff --git a/src/protontricks/util.py b/src/protontricks/util.py
-index b6617de..85f8b2d 100644
+index 5252d6c..f16dfec 100644
 --- a/src/protontricks/util.py
 +++ b/src/protontricks/util.py
-@@ -4,15 +4,14 @@ import shlex
- import shutil
+@@ -5,15 +5,14 @@ import shutil
  import stat
+ 
  from pathlib import Path
 -from subprocess import check_output, run, PIPE
 +from subprocess import run, PIPE
@@ -146,7 +145,7 @@ index b6617de..85f8b2d 100644
  )
  
  logger = logging.getLogger("protontricks")
-@@ -46,24 +45,6 @@ def lower_dict(d):
+@@ -47,24 +46,6 @@ def lower_dict(d):
      return {k.lower(): _lower_value(v) for k, v in d.items()}
  
  
@@ -171,7 +170,7 @@ index b6617de..85f8b2d 100644
  def get_host_library_paths():
      """
      Get host library paths to use when creating the LD_LIBRARY_PATH environment
-@@ -75,7 +56,7 @@ def get_host_library_paths():
+@@ -76,7 +57,7 @@ def get_host_library_paths():
      # Since that command is unavailable with newer Steam Runtime releases,
      # do it ourselves here.
      result = run(
@@ -180,7 +179,7 @@ index b6617de..85f8b2d 100644
          check=True, stdout=PIPE, stderr=PIPE
      )
      lines = result.stdout.decode("utf-8").split("\n")
-@@ -93,7 +74,7 @@ RUNTIME_ROOT_GLOB_PATTERNS = (
+@@ -94,7 +75,7 @@ RUNTIME_ROOT_GLOB_PATTERNS = (
  )
  
  
@@ -189,7 +188,7 @@ index b6617de..85f8b2d 100644
      """
      Get LD_LIBRARY_PATH value to use when running a command using Steam Runtime
      """
-@@ -116,7 +97,7 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
+@@ -117,7 +98,7 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
              )
          )
  
@@ -198,7 +197,7 @@ index b6617de..85f8b2d 100644
          return "".join([
              str(proton_app.proton_dist_path / "lib"), os.pathsep,
              str(proton_app.proton_dist_path / "lib64"), os.pathsep
-@@ -132,14 +113,19 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
+@@ -133,14 +114,19 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
      ])
  
  
@@ -225,19 +224,18 @@ index b6617de..85f8b2d 100644
  # Helper script created by Protontricks to run Wine binaries using Steam Runtime
  set -o errexit
  
-@@ -207,7 +193,10 @@ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" ]]; then
+@@ -208,7 +194,9 @@ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" ]]; then
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PROTON_LD_LIBRARY_PATH"
    "$PROTON_DIST_PATH"/bin/{name} "$@"
  else
 -  exec "$STEAM_RUNTIME_PATH"/run --share-pid --batch \
 +  exec steam-run "$STEAM_RUNTIME_PATH"/pressure-vessel/bin/pressure-vessel-wrap \
-+  --runtime-archive=$(echo "$STEAM_RUNTIME_PATH"/*runtime.tar.gz) \
 +  --variable-dir="${{PRESSURE_VESSEL_VARIABLE_DIR:-$STEAM_RUNTIME_PATH/var}}" \
 +  --share-pid --batch \
    "${{mount_params[@]}}" -- \
    env PROTONTRICKS_INSIDE_STEAM_RUNTIME=1 \
    "$PROTONTRICKS_PROXY_SCRIPT_PATH" "$@"
-@@ -273,7 +262,6 @@ def create_wine_bin_dir(proton_app, use_bwrap=True):
+@@ -274,7 +262,6 @@ def create_wine_bin_dir(proton_app, use_bwrap=True):
  def run_command(
          winetricks_path, proton_app, steam_app, command,
          use_steam_runtime=False,
@@ -245,7 +243,7 @@ index b6617de..85f8b2d 100644
          use_bwrap=True,
          **kwargs):
      """Run an arbitrary command with the correct environment variables
-@@ -350,7 +338,7 @@ def run_command(
+@@ -351,7 +338,7 @@ def run_command(
              os.environ["STEAM_RUNTIME_PATH"] = \
                  str(proton_app.required_tool_app.install_path)
              os.environ["PROTON_LD_LIBRARY_PATH"] = \
@@ -254,7 +252,7 @@ index b6617de..85f8b2d 100644
  
              runtime_name = proton_app.required_tool_app.name
              logger.info(
-@@ -373,11 +361,8 @@ def run_command(
+@@ -372,11 +359,8 @@ def run_command(
                      "Current Steam Runtime not recognized by Protontricks."
                  )
          else:
@@ -267,7 +265,7 @@ index b6617de..85f8b2d 100644
  
          # When Steam Runtime is enabled, create a set of helper scripts
          # that load the underlying Proton Wine executables with Steam Runtime
-@@ -385,8 +370,6 @@ def run_command(
+@@ -384,8 +368,6 @@ def run_command(
          wine_bin_dir = create_wine_bin_dir(
              proton_app=proton_app, use_bwrap=use_bwrap
          )
@@ -276,11 +274,11 @@ index b6617de..85f8b2d 100644
  
          os.environ["PATH"] = "".join([
              str(wine_bin_dir), os.pathsep, os.environ["PATH"]
-diff --git a/tests/test_cli.py b/tests/test_cli.py
-index 580bb5b..3a05ad3 100644
---- a/tests/test_cli.py
-+++ b/tests/test_cli.py
-@@ -117,15 +117,10 @@ class TestCLIRun:
+diff --git a/tests/cli/test_main.py b/tests/cli/test_main.py
+index e6da0fb..46b9545 100644
+--- a/tests/cli/test_main.py
++++ b/tests/cli/test_main.py
+@@ -116,15 +116,10 @@ class TestCLIRun:
          assert str(command.args[0]).endswith(".local/bin/winetricks")
          assert command.args[1] == "winecfg"
          assert command.env["PATH"].startswith(str(wine_bin_dir))
@@ -296,7 +294,7 @@ index 580bb5b..3a05ad3 100644
          assert "STEAM_RUNTIME_PATH" not in command.env
  
          for name in ("wine", "wineserver"):
-@@ -166,16 +161,14 @@ class TestCLIRun:
+@@ -165,16 +160,14 @@ class TestCLIRun:
          assert command.env["PATH"].startswith(str(wine_bin_dir))
  
          # Compared to the traditional Steam Runtime, PROTON_LD_LIBRARY_PATH
@@ -315,7 +313,7 @@ index 580bb5b..3a05ad3 100644
          assert command.env["STEAM_RUNTIME_PATH"] == \
              str(steam_runtime_soldier.install_path)
  
-@@ -239,9 +232,7 @@ class TestCLIRun:
+@@ -238,9 +231,7 @@ class TestCLIRun:
              str(runtime_root / "lib" / "x86_64-linux-gnu")
          ]))
  
@@ -326,9 +324,17 @@ index 580bb5b..3a05ad3 100644
          assert command.env["STEAM_RUNTIME_PATH"] == \
              str(steam_runtime_soldier.install_path)
  
-@@ -324,20 +315,6 @@ class TestCLIRun:
+@@ -335,7 +326,6 @@ class TestCLIRun:
+ 
+         # Also ensure log messages are included in the error message
+         assert b"Found Steam directory at" in message
+-        assert b"Using default Steam Runtime" in message
+ 
+     def test_run_gui_provider_not_found(self, cli, home_dir, steam_app_factory):
+         """
+@@ -349,20 +339,6 @@ class TestCLIRun:
  
-         assert "Zenity is not installed" in result
+         assert "YAD or Zenity is not installed" in result
  
 -    def test_run_steam_runtime_not_found(
 -            self, cli, steam_dir, steam_app_factory):
diff --git a/nixpkgs/pkgs/tools/security/age/default.nix b/nixpkgs/pkgs/tools/security/age/default.nix
index 20735c6e5782..fd59f9534fe7 100644
--- a/nixpkgs/pkgs/tools/security/age/default.nix
+++ b/nixpkgs/pkgs/tools/security/age/default.nix
@@ -1,17 +1,37 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "age";
-  version = "1.0.0-rc.3";
-  vendorSha256 = "sha256-sXUbfxhPmJXO+KgV/dmWmsyV49Pb6CoJLbt50yVgEvI=";
+  version = "1.0.0";
+  vendorSha256 = "sha256-cnFDs5Qos1KHn7TqaEgmt4sSzpjZor615euwxka14mY=";
 
   src = fetchFromGitHub {
     owner = "FiloSottile";
     repo = "age";
     rev = "v${version}";
-    sha256 = "sha256-YXdCTK9/eMvcHWg7gQQiPlLWYx2OjbOJDDNdSYO09HU=";
+    sha256 = "sha256-MfyW8Yv8swKqA7Hl45l5Zn4wZrQmE661eHsKIywy36U=";
   };
 
+  ldflags = [
+    "-s" "-w" "-X main.Version=${version}"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  preInstall = ''
+    installManPage doc/*.1
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ "$("$out/bin/${pname}" --version)" == "${version}" ]]; then
+      echo '${pname} smoke check passed'
+    else
+      echo '${pname} smoke check failed'
+      return 1
+    fi
+  '';
+
   meta = with lib; {
     homepage = "https://age-encryption.org/";
     description = "Modern encryption tool with small explicit keys";
diff --git a/nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock b/nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock
index c0610480c723..f1671500fe43 100644
--- a/nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/bundler-audit/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    bundler-audit (0.8.0)
+    bundler-audit (0.9.0.1)
       bundler (>= 1.2.0, < 3)
       thor (~> 1.0)
     thor (1.1.0)
@@ -13,4 +13,4 @@ DEPENDENCIES
   bundler-audit
 
 BUNDLED WITH
-   2.1.4
+   2.2.20
diff --git a/nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix b/nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix
index ff4d6da80691..a740f40e4073 100644
--- a/nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/bundler-audit/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00l8rs7cna0j3yh4s9sza0r88x7kjc7j4gp9yl378422k7i0r73v";
+      sha256 = "05k19l5388248rd74cn2lm2ksci7fzmga74n835v7k31m4kbzw8v";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "0.9.0.1";
   };
   thor = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/security/cfssl/default.nix b/nixpkgs/pkgs/tools/security/cfssl/default.nix
index 1e95d1d6f2f9..4b4e6cedc5cd 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.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cfssl";
     rev = "v${version}";
-    sha256 = "sha256-29HEaW5LCoHcuJrfVUN2hnsRtaSTrvIBo8ok2UJbfuQ=";
+    sha256 = "sha256-QY04MecjQTmrkPkWcLkXJWErtaw7esb6GnPIKGTJL34=";
   };
 
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/security/cowpatty/default.nix b/nixpkgs/pkgs/tools/security/cowpatty/default.nix
index 4cd420650f3b..934b31a35da6 100644
--- a/nixpkgs/pkgs/tools/security/cowpatty/default.nix
+++ b/nixpkgs/pkgs/tools/security/cowpatty/default.nix
@@ -1,26 +1,48 @@
-{ lib, stdenv, fetchurl, openssl, libpcap
+{ lib
+, stdenv
+, clang
+, fetchFromGitHub
+, installShellFiles
+, openssl
+, libpcap
 }:
 
-with lib;
-
 stdenv.mkDerivation rec {
   pname = "cowpatty";
-  version = "4.6";
-
-  buildInputs = [ openssl libpcap ];
+  version = "4.8";
 
-  src = fetchurl {
-    url = "http://www.willhackforsushi.com/code/cowpatty/${version}/${pname}-${version}.tgz";
-    sha256 = "1hivh3bq2maxvqzwfw06fr7h8bbpvxzah6mpibh3wb85wl9w2gyd";
+  src = fetchFromGitHub {
+    owner = "joswr1ght";
+    repo = pname;
+    rev = version;
+    sha256 = "0fvwwghhd7wsx0lw2dj9rdsjnirawnq3c6silzvhi0yfnzn5fs0s";
   };
 
-  installPhase = "make DESTDIR=$out BINDIR=/bin install";
+  nativeBuildInputs = [
+    clang
+    installShellFiles
+  ];
+
+  buildInputs = [
+    openssl
+    libpcap
+  ];
+
+  makeFlags = [
+    "DESTDIR=$(out)"
+    "BINDIR=/bin"
+  ];
+
+  postInstall = ''
+    installManPage cowpatty.1
+    installManPage genpmk.1
+  '';
 
-  meta = {
+  meta = with lib; {
     description = "Offline dictionary attack against WPA/WPA2 networks";
-    license = licenses.gpl2;
-    homepage = "https://www.willhackforsushi.com/?page_id=50";
-    maintainers = with maintainers; [ nico202 ];
+    homepage = "https://github.com/joswr1ght/cowpatty";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ nico202 fab ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/credential-detector/default.nix b/nixpkgs/pkgs/tools/security/credential-detector/default.nix
new file mode 100644
index 000000000000..1e3497b0ca0e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/credential-detector/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "credential-detector";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "ynori7";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1g5ja32rsf1b7y9gvmy29qz2ymyyvgh53wzd6vvknfla1df0slab";
+  };
+
+  vendorSha256 = "1mn3sysvdz4b94804gns1yssk2q08djq3kq3cd1h7gm942zwrnq4";
+
+  meta = with lib; {
+    description = "Tool to detect potentially hard-coded credentials";
+    homepage = "https://github.com/ynori7/credential-detector";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/dorkscout/default.nix b/nixpkgs/pkgs/tools/security/dorkscout/default.nix
new file mode 100644
index 000000000000..27cc5a0d4e1b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/dorkscout/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "dorkscout";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "R4yGM";
+    repo = pname;
+    rev = version;
+    sha256 = "0h2m458jxdm3xg0h2vb8yq1jc28jqwinv1pdqypdsbvsz48s0hxz";
+  };
+
+  vendorSha256 = "05vn9hd5r8cy45b3ixjch17v38p08k8di8gclq0i9rkz9bvy1nph";
+
+  meta = with lib; {
+    description = "Tool to automate the work with Google dorks";
+    homepage = "https://github.com/R4yGM/dorkscout";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix b/nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix
index d2fda127e8c7..a84de966b6f4 100644
--- a/nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix
+++ b/nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonApplication rec {
   pname = "enum4linux-ng";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "cddmp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j6qrhrzc4f9crbii4dpgxipngjh5icrhljxf26a7662dd4f7l8q";
+    sha256 = "0fk6hzmvxb5y3nb41qr6dssxhdahkh5nxhbx480x42fhnqpssir5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/exploitdb/default.nix b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
index b112627656b1..911592736801 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-09-03";
+  version = "2021-09-10";
 
   src = fetchFromGitHub {
     owner = "offensive-security";
     repo = pname;
     rev = version;
-    sha256 = "sha256-9roj5/DfbbN98jy/aO1Ua4pTMxgr4UbqXFicN2ONQgE=";
+    sha256 = "sha256-OU9IchkouABYw0k4O4WBLu1aklLCH/S90IPMPLOZWY0=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/security/gitleaks/default.nix b/nixpkgs/pkgs/tools/security/gitleaks/default.nix
index b8878cbbb873..16e1013c7c01 100644
--- a/nixpkgs/pkgs/tools/security/gitleaks/default.nix
+++ b/nixpkgs/pkgs/tools/security/gitleaks/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "7.6.0";
+  version = "7.6.1";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XRpbbtQiF9EnGMICjyXXm2XjuR0jGC7UiY+UHIAMODM=";
+    sha256 = "sha256-52Wi3bQvKdHoJ1nVb4OVJ9wd8hDVF+6zlVSpsEai0Jw=";
   };
 
   vendorSha256 = "sha256-86PspExE+T/IuCvpf6LAkWcCRlHPqP5VUbHAckEzALc=";
diff --git a/nixpkgs/pkgs/tools/security/kubescape/default.nix b/nixpkgs/pkgs/tools/security/kubescape/default.nix
new file mode 100644
index 000000000000..d3113af0cd08
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/kubescape/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kubescape";
+  version = "1.0.64";
+
+  src = fetchFromGitHub {
+    owner = "armosec";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vc673w40cgjw6jxlwg9ggwzb7yvmsqshihms6ahspc3qiwz56ah";
+  };
+
+  vendorSha256 = "18mvv70g65pq1c7nn752j26d0vasx6cl2rqp5g1hg3cb61hjbn0n";
+
+  # One test is failing, disabling for now
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Tool for testing if Kubernetes is deployed securely";
+    homepage = "https://github.com/armosec/kubescape";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/nuclei/default.nix b/nixpkgs/pkgs/tools/security/nuclei/default.nix
index cae010c5a19f..d02ac5503afd 100644
--- a/nixpkgs/pkgs/tools/security/nuclei/default.nix
+++ b/nixpkgs/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6mZ8XstophadNk/3zJe2n3WL4u34jjnWh9m2qrt06hw=";
+    sha256 = "sha256-SdN8M3Mr3bywpBUwIVOIctYdkueq/0no4wlI7Ft8Uws=";
   };
 
-  vendorSha256 = "sha256-tJ9cdZloTSXoytmMJ+6S5XAKHYs16SZmbUwZdmVnDzc=";
+  vendorSha256 = "sha256-Tz96AXGMyHNHG/3JrmZvisOEty/tDhoK1ZUngDSXOcc=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/security/quill/default.nix b/nixpkgs/pkgs/tools/security/quill/default.nix
index 9440823f4292..9f5465901b17 100644
--- a/nixpkgs/pkgs/tools/security/quill/default.nix
+++ b/nixpkgs/pkgs/tools/security/quill/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "quill";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "dfinity";
     repo = "quill";
     rev = "v${version}";
-    sha256 = "sha256-rR5VgdlJy6TQBmCHuKc7nPjznbeLjCmQdUJKjY0GsNI=";
+    sha256 = "sha256-lvINDtOG2mmz0ESxL11DQVZh3IcEiZYYMu5oN5Q9WKA=";
   };
 
   ic = fetchFromGitHub {
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
     export OPENSSL_LIB_DIR=${openssl.out}/lib
   '';
 
-  cargoSha256 = "sha256-nLNuOqShOq01gVWoRCbsvfAd7B9VClUA8Hu8/UQNILg=";
+  cargoSha256 = "sha256-F2RMfHVFqCq9cb+9bjPWaRcQWKYIwwffWCssoQ6sSdU=";
 
   nativeBuildInputs = [ pkg-config protobuf ];
   buildInputs = [ openssl ]
diff --git a/nixpkgs/pkgs/tools/security/scilla/default.nix b/nixpkgs/pkgs/tools/security/scilla/default.nix
index 1983aef17265..791792195830 100644
--- a/nixpkgs/pkgs/tools/security/scilla/default.nix
+++ b/nixpkgs/pkgs/tools/security/scilla/default.nix
@@ -5,17 +5,16 @@
 
 buildGoModule rec {
   pname = "scilla";
-  version = "20210118-${lib.strings.substring 0 7 rev}";
-  rev = "74dd81492fef92b95765df1d0f629276a146a5a4";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "edoardottt";
     repo = pname;
-    inherit rev;
-    sha256 = "10qvaigfarljydfb9vx2fb9nk293j4g9w2h9mr8xw6adbvl0qr9q";
+    rev = "v${version}";
+    sha256 = "sha256-xg8qnpYRdSGaFkjmQLbjMFIU419ASEHtFA8h8ads/50=";
   };
 
-  vendorSha256 = "04wqsl4269gc3r6l9srqhcq19zarnyyab8k1shj3w6lkfcc61z25";
+  vendorSha256 = "sha256-PFfzlqBuasTNeCNnu5GiGyQzBQkbe83q1EqCsWTor18=";
 
   meta = with lib; {
     description = "Information gathering tool for DNS, ports and more";
diff --git a/nixpkgs/pkgs/tools/security/sn0int/default.nix b/nixpkgs/pkgs/tools/security/sn0int/default.nix
index 43a390104413..bdcfe6e28bac 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.2";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BKdi/o/A0fJBlcKTDTCX7uGkK6QR0S9hIn0DI3CN5Gg=";
+    sha256 = "sha256-0BadgWZhP73WOVO18jtcdhsM0L7AM0TQ3PF7MNJM7M0=";
   };
 
-  cargoSha256 = "sha256-MeMTXwb5v4iUJQSViOraXAck7n6VlIW2Qa0qNUZWu1g=";
+  cargoSha256 = "sha256-KYrJIOaFX2wTDj4KeHn3d8wBHfVevCKQK/bDglfLWAU=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/security/step-ca/default.nix b/nixpkgs/pkgs/tools/security/step-ca/default.nix
index 9b645dcba927..85501ff18e6e 100644
--- a/nixpkgs/pkgs/tools/security/step-ca/default.nix
+++ b/nixpkgs/pkgs/tools/security/step-ca/default.nix
@@ -42,10 +42,9 @@ buildGoModule rec {
     install -Dm444 -t $out/lib/systemd/system systemd/step-ca.service
   '';
 
-  # Tests fail on darwin with
-  # panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted [recovered]
-  # probably some sandboxing issue
-  doCheck = stdenv.isLinux;
+  # Tests start http servers which need to bind to local addresses:
+  # panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
+  __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH";
diff --git a/nixpkgs/pkgs/tools/system/acpica-tools/default.nix b/nixpkgs/pkgs/tools/system/acpica-tools/default.nix
index b035ae04215d..4f0ab0297506 100644
--- a/nixpkgs/pkgs/tools/system/acpica-tools/default.nix
+++ b/nixpkgs/pkgs/tools/system/acpica-tools/default.nix
@@ -26,6 +26,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ bison flex ];
 
+  # We can handle stripping ourselves.
+  INSTALLFLAGS = "-m 555";
+
   installFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/system/cm-rgb/default.nix b/nixpkgs/pkgs/tools/system/cm-rgb/default.nix
index 3a6c7c6e57c5..adc291d4f85d 100644
--- a/nixpkgs/pkgs/tools/system/cm-rgb/default.nix
+++ b/nixpkgs/pkgs/tools/system/cm-rgb/default.nix
@@ -54,6 +54,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/gfduszynski/cm-rgb";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/consul-template/default.nix b/nixpkgs/pkgs/tools/system/consul-template/default.nix
index 5326f8722d81..020e56a1526b 100644
--- a/nixpkgs/pkgs/tools/system/consul-template/default.nix
+++ b/nixpkgs/pkgs/tools/system/consul-template/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "consul-template";
-  version = "0.26.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "consul-template";
     rev = "v${version}";
-    sha256 = "sha256-upVCztpfT+SuuB343GEnT4KSnWul10/cItKJvUqJYo4=";
+    sha256 = "sha256-XzsewkHaFIq1kvFDHIsnhfhtLPLFRin7YrhiZuF1+co=";
   };
 
-  vendorSha256 = "sha256-IAWuqg8zZ9/ny3ZijxGgHAJDICV09NTGxPvLLP4oLzw=";
+  vendorSha256 = "sha256-/4ZY4YRGsUSL2e6uYPJ9tWEvXDjU5/L56yf49pUkJ2E=";
 
   # consul-template tests depend on vault and consul services running to
   # execute tests so we skip them here
diff --git a/nixpkgs/pkgs/tools/system/foreman/Gemfile.lock b/nixpkgs/pkgs/tools/system/foreman/Gemfile.lock
index a2a7824f7aa8..1bafc658cbc0 100644
--- a/nixpkgs/pkgs/tools/system/foreman/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/system/foreman/Gemfile.lock
@@ -1,15 +1,13 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    foreman (0.78.0)
-      thor (~> 0.19.1)
-    thor (0.19.1)
+    foreman (0.87.2)
 
 PLATFORMS
-  ruby
+  x86_64-linux
 
 DEPENDENCIES
   foreman
 
 BUNDLED WITH
-   2.1.4
+   2.2.20
diff --git a/nixpkgs/pkgs/tools/system/foreman/gemset.nix b/nixpkgs/pkgs/tools/system/foreman/gemset.nix
index f747a2b0634a..d5b053daf4c0 100644
--- a/nixpkgs/pkgs/tools/system/foreman/gemset.nix
+++ b/nixpkgs/pkgs/tools/system/foreman/gemset.nix
@@ -1,18 +1,12 @@
 {
-  thor = {
-    version = "0.19.1";
-    source = {
-      type = "gem";
-      remotes = ["https://rubygems.org"];
-      sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z";
-    };
-  };
   foreman = {
-    version = "0.78.0";
+    groups = ["default"];
+    platforms = [];
     source = {
-      type = "gem";
       remotes = ["https://rubygems.org"];
-      sha256 = "1caz8mi7gq1hs4l1flcyyw1iw1bdvdbhppsvy12akr01k3s17xaq";
+      sha256 = "0szgxvnzwkzrfbq5dkwa98mig78aqglfy6irdsvq1gq045pbq9r7";
+      type = "gem";
     };
+    version = "0.87.2";
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/gdu/default.nix b/nixpkgs/pkgs/tools/system/gdu/default.nix
index 9db56026e07e..630cc66da0ef 100644
--- a/nixpkgs/pkgs/tools/system/gdu/default.nix
+++ b/nixpkgs/pkgs/tools/system/gdu/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gdu";
-  version = "5.6.2";
+  version = "5.7.0";
 
   src = fetchFromGitHub {
     owner = "dundee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9Qdl+5BvzYbBw90+9V5bKBrikxlxMt7UxMQ54XwgbTk=";
+    sha256 = "sha256-zotCn8J6zQtHd/YDT87l6Vh4Xh51tOJENBCdxZ5rqWU=";
   };
 
-  vendorSha256 = "sha256-TxtYsM1qtpvI5IbkM3vicCgJ0+EqelFJ8Vc6+Ff5wd8=";
+  vendorSha256 = "sha256-TBWhF2YmlJPNFr3sKSFhuzoBD0Hp1tnYAMJDUwO/QFM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/system/natscli/default.nix b/nixpkgs/pkgs/tools/system/natscli/default.nix
index a7f4337ce815..226528782e5f 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.25";
+  version = "0.0.26";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = version;
-    sha256 = "180511x3sciqs0njz80qc1a785m84ks9l338qi3liv7bcd541xcr";
+    sha256 = "sha256-w0a2BzfRKf55hFgdaDLsR2YeC5Jqa2uynlRN2oGPX8g=";
   };
 
-  vendorSha256 = "1j2a6wmyb9akndiwq79jqy5lz84bz2k01xp505j60ynsflim7shq";
+  vendorSha256 = "sha256-kt6KflivmsG6prxWXtODcXSP2sNn4daH8ruZMxYLk3g=";
 
   meta = with lib; {
     description = "NATS Command Line Interface";
diff --git a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
index de9afdae2940..52b75b7a4e9e 100644
--- a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
+++ b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python3 }:
+{ lib, stdenv, fetchFromGitHub, writeScript, cmake, wrapPython }:
 
 stdenv.mkDerivation rec {
   pname = "rocm-smi";
-  version = "4.1.0";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "rocm_smi_lib";
     rev = "rocm-${version}";
-    hash = "sha256-LEaC1XhmyoVWrpL05MhgN02LVT2rLKdnw9g2QdfM/uE=";
+    hash = "sha256-Ckno73Otkc9rHEUkSgNoOui+6ZHGUF+B9iAoe0NQH0c=";
   };
 
-  nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
+  nativeBuildInputs = [ cmake wrapPython ];
 
   postPatch = ''
     # Upstream ROCm is installed in an /opt directory. For this reason,
@@ -42,11 +42,18 @@ stdenv.mkDerivation rec {
     wrapPythonProgramsIn $out/bin
   '';
 
+  passthru.updateScript = writeScript "update.sh" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl jq common-updater-scripts
+    version="$(curl -sL "https://api.github.com/repos/RadeonOpenCompute/rocm_smi_lib/releases?per_page=1" | jq '.[0].tag_name | split("-") | .[1]' --raw-output)"
+    update-source-version rocm-smi "$version"
+  '';
+
   meta = with lib; {
     description = "System management interface for AMD GPUs supported by ROCm";
-    homepage = "https://github.com/RadeonOpenCompute/ROC-smi";
+    homepage = "https://github.com/RadeonOpenCompute/rocm_smi_lib";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ lovesegfault ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/csview/default.nix b/nixpkgs/pkgs/tools/text/csview/default.nix
new file mode 100644
index 000000000000..60186a6b3b75
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/csview/default.nix
@@ -0,0 +1,22 @@
+{ fetchFromGitHub, lib, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "csview";
+  version = "0.3.8";
+
+  src = fetchFromGitHub {
+    owner = "wfxr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "18bz12yn85h9vj0b18iaziix9km2iwh8gwfs93fddjv6kg87p38q";
+  };
+
+  cargoSha256 = "1my6gl8zq5k7clzapgbf1mmcgq8mmdbhl250rdd1fvfd59wkrwra";
+
+  meta = with lib; {
+    description = "A high performance csv viewer with cjk/emoji support";
+    homepage = "https://github.com/wfxr/csview";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/difftastic/default.nix b/nixpkgs/pkgs/tools/text/difftastic/default.nix
index 3a32f855c0c5..bfe430957484 100644
--- a/nixpkgs/pkgs/tools/text/difftastic/default.nix
+++ b/nixpkgs/pkgs/tools/text/difftastic/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.6";
+  version = "0.8";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    sha256 = "WFvxdRCbTBW1RGn2SvAo2iXn82OO/Z06cZQkIu4eiew=";
+    sha256 = "0103py4v4v7xqv85yiczhd9w9h1aa54svhhdibvbl6x4b35y2mk5";
   };
 
-  cargoSha256 = "2hRUfIxNVs4uSrEESas3wvvVsZHVocP8aiO7K0NZ+mY=";
+  cargoSha256 = "1k0d7yadicfzfc2m1aqs4c4a2k3srb54fpwarc3kwn26v3vfjai1";
 
   meta = with lib; {
     description = "A syntax-aware diff";
     homepage = "https://github.com/Wilfred/difftastic";
+    changelog = "https://github.com/Wilfred/difftastic/raw/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 ];
-    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/hck/default.nix b/nixpkgs/pkgs/tools/text/hck/default.nix
index f10c01ca2fd6..271e4d9b7168 100644
--- a/nixpkgs/pkgs/tools/text/hck/default.nix
+++ b/nixpkgs/pkgs/tools/text/hck/default.nix
@@ -1,17 +1,29 @@
-{ fetchFromGitHub, lib, rustPlatform }:
+{ cmake
+, fetchFromGitHub
+, lib
+, rustPlatform
+, stdenv
+, libiconv
+, CoreFoundation
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "hck";
-  version = "0.5.4";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "sstadick";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zdzi98qywlwk5bp47963vya2p2ahrbjkc9h63lmb05wlas9s78y";
+    sha256 = "02yvpgvzdprysg0spa0abn7d3vjj5spzc3528rwbpl4cw2yx8j6w";
   };
 
-  cargoSha256 = "0lvd5xpgh2vq2lszzb0fs6ha2vb419a5w0hlkq3287vq3ya3p4qg";
+  cargoSha256 = "0n6wywb1xyaxkbr0fs39992dfv55wzvp05i1vk9mxgnsim9s7aw8";
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv CoreFoundation Security ];
 
   meta = with lib; {
     description = "A close to drop in replacement for cut that can use a regex delimiter instead of a fixed string";
diff --git a/nixpkgs/pkgs/tools/text/reckon/Gemfile.lock b/nixpkgs/pkgs/tools/text/reckon/Gemfile.lock
index b1bfe4aaa8bd..18dc624c3da1 100644
--- a/nixpkgs/pkgs/tools/text/reckon/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/text/reckon/Gemfile.lock
@@ -4,7 +4,7 @@ GEM
     chronic (0.10.2)
     highline (2.0.3)
     rchardet (1.8.0)
-    reckon (0.7.1)
+    reckon (0.8.0)
       chronic (>= 0.3.0)
       highline (>= 1.5.2)
       rchardet (>= 1.8.0)
@@ -16,4 +16,4 @@ DEPENDENCIES
   reckon
 
 BUNDLED WITH
-   1.17.2
+   2.2.20
diff --git a/nixpkgs/pkgs/tools/text/reckon/default.nix b/nixpkgs/pkgs/tools/text/reckon/default.nix
index 3af64e39ed17..91233dfe97b4 100644
--- a/nixpkgs/pkgs/tools/text/reckon/default.nix
+++ b/nixpkgs/pkgs/tools/text/reckon/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ nicknovitski ];
     platforms = platforms.unix;
+    changelog = "https://github.com/cantino/reckon/blob/v${version}/CHANGELOG.md";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/reckon/gemset.nix b/nixpkgs/pkgs/tools/text/reckon/gemset.nix
index 09a4e704d08e..0e2cc48886a4 100644
--- a/nixpkgs/pkgs/tools/text/reckon/gemset.nix
+++ b/nixpkgs/pkgs/tools/text/reckon/gemset.nix
@@ -35,9 +35,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hsmzjxj1f5ma816gag1b3bdjbynhj2szgar955fcs3gbbzv4sk7";
+      sha256 = "0qnghypb9pj7888096xwyrx7myhzk85x69ympxkxki3kxcgcrdfn";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.8.0";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/sad/default.nix b/nixpkgs/pkgs/tools/text/sad/default.nix
new file mode 100644
index 000000000000..2b748d60d1fe
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/sad/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sad";
+  version = "0.4.14";
+
+  src = fetchFromGitHub {
+    owner = "ms-jpq";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03b6qxkn8sqv06gs4p6wg02arz0n9llc3z92zhfd5ipz8han83fd";
+  };
+
+  cargoSha256 = "13nkd4354siy8pr2032bxz2z5x8b378mccq6pnm71cpl9dl6w4ad";
+
+  meta = with lib; {
+    description = "CLI tool to search and replace";
+    homepage = "https://github.com/ms-jpq/sad";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/tv/default.nix b/nixpkgs/pkgs/tools/text/tv/default.nix
new file mode 100644
index 000000000000..1f0e4078f3f1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/tv/default.nix
@@ -0,0 +1,22 @@
+{ fetchFromGitHub, lib, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tv";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "uzimaru0000";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07gcs64j468213jxcjjv9vywzvfair7gbaiqzqm9wwsdgjyw0wwc";
+  };
+
+  cargoSha256 = "00fi7wimr0rihf6qx20r77w85w2i55kn823gp283lsszbw1z8as9";
+
+  meta = with lib; {
+    description = "Format json into table view";
+    homepage = "https://github.com/uzimaru0000/tv";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/typesetting/sile/default.nix b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
index 92062b8eac8a..049938581b67 100644
--- a/nixpkgs/pkgs/tools/typesetting/sile/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
@@ -3,9 +3,8 @@
 , fetchurl
 , makeWrapper
 , pkg-config
-, autoconf
-, automake
 , poppler_utils
+, gitMinimal
 , harfbuzz
 , icu
 , fontconfig
@@ -39,11 +38,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.10.15";
+  version = "0.11.1";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "0p1w3s6j34qi93aycqmqggfm277n90z90nlmm1j3qizxxwq5gda9";
+    sha256 = "06bx94zx6skhizk2bbrid82sldwgxfycvjh6zx1zy1xz8gajgrm3";
   };
 
   configureFlags = [
@@ -52,8 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    autoconf
-    automake
+    gitMinimal
     pkg-config
     makeWrapper
   ];
@@ -70,7 +68,9 @@ stdenv.mkDerivation rec {
     poppler_utils
   ];
 
-  preConfigure = lib.optionalString stdenv.isDarwin ''
+  preConfigure = ''
+    patchShebangs build-aux/*.sh
+  '' + lib.optionalString stdenv.isDarwin ''
     sed -i -e 's|@import AppKit;|#import <AppKit/AppKit.h>|' src/macfonts.m
   '';
 
@@ -108,7 +108,8 @@ stdenv.mkDerivation rec {
       technologies and borrowing some ideas from graphical systems
       such as InDesign.
     '';
-    homepage = "https://sile-typesetter.org/";
+    homepage = "https://sile-typesetter.org";
+    changelog = "https://github.com/sile-typesetter/sile/raw/v${version}/CHANGELOG.md";
     platforms = platforms.unix;
     broken = stdenv.isDarwin;   # https://github.com/NixOS/nixpkgs/issues/23018
     maintainers = with maintainers; [ doronbehar alerque ];
diff --git a/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix b/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
index c815f6fcf6d5..e5f98df3f010 100644
--- a/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
@@ -22,13 +22,13 @@ in
 
 buildPythonApplication rec {
   pname = "linode-cli";
-  version = "5.8.1";
+  version = "5.8.2";
 
   src = fetchFromGitHub {
     owner = "linode";
     repo = pname;
     rev = version;
-    sha256 = "19lfnwgm09gxk0mcikwl7v4hw2ai2k9lkdjlalz8fsswf81my7h6";
+    sha256 = "sha256-JlWbhElgRDeFMjtPPy7Sk69SMlpQYfnZ3AjAfl2SRyI=";
   };
 
   # remove need for git history
diff --git a/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix b/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
index 9c67b5462bbf..7fe09aa6b426 100644
--- a/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/shipyard/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "shipyard";
-  version = "0.3.2";
+  version = "0.3.27";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shipyard-run";
     repo = pname;
-    sha256 = "sha256-9eGaOSmHrJlcLOvZuLaNu8D/D/rWiyFb4ztxybUP0uM=";
+    sha256 = "sha256-VbcOoIMhY4FpfQbC2ESFaPoV9AS5DpGvid8jcQxLuEE=";
   };
-  vendorSha256 = "sha256-tTkPFftPDNXafIjAjNg6V6e/+2S/v5Do/YyAXPaGIqA=";
+  vendorSha256 = "sha256-YClNdtnakJJOEytTbopTXeZy218N4vHP3tQLavLgPbg=";
 
   ldflags = [
     "-s" "-w" "-X main.version=${version}"