about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/networking
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-10-19 14:40:23 +0000
committerAlyssa Ross <hi@alyssa.is>2022-01-07 10:22:32 +0000
commitcc62bcb55359ba8c5e0fe3a48e778444c89060d8 (patch)
treeca0e21d44eaf8837b687395e614445f7761d7bbd /nixpkgs/pkgs/tools/networking
parentd6625e8d25efd829c3cfa227d025ca4e606ae4b7 (diff)
parenta323570a264da96a0b0bcc1c9aa017794acdc752 (diff)
downloadnixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.gz
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.bz2
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.lz
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.xz
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.zst
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.zip
Merge commit 'a323570a264da96a0b0bcc1c9aa017794acdc752'
Diffstat (limited to 'nixpkgs/pkgs/tools/networking')
-rw-r--r--nixpkgs/pkgs/tools/networking/amass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/bandwhich/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/boundary/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/croc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/davix/default.nix68
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcp/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/dnstake/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsviz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/flannel/plugin.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/getmail6/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/godns/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/networking/gvproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/httpie/default.nix102
-rw-r--r--nixpkgs/pkgs/tools/networking/httplz/cargo-lock.patch1275
-rw-r--r--nixpkgs/pkgs/tools/networking/httplz/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/networking/hurl/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/networking/kea/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/keepalived/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/networking/miniupnpc/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/mole/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/networking/nbd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/oha/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/packetdrill/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/pdsh/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pmacct/default.nix67
-rw-r--r--nixpkgs/pkgs/tools/networking/privoxy/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/rustcat/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/s3cmd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/s6-dns/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/s6-networking/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/strongswan/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/suckit/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/networking/swec/default.nix74
-rw-r--r--nixpkgs/pkgs/tools/networking/telepresence/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/networking/tnat64/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/unbound/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/v2ray/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/vopono/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/networking/wget2/default.nix61
-rw-r--r--nixpkgs/pkgs/tools/networking/yggdrasil/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ytcc/default.nix4
46 files changed, 575 insertions, 1576 deletions
diff --git a/nixpkgs/pkgs/tools/networking/amass/default.nix b/nixpkgs/pkgs/tools/networking/amass/default.nix
index 5d539cc56978..caecece80ae6 100644
--- a/nixpkgs/pkgs/tools/networking/amass/default.nix
+++ b/nixpkgs/pkgs/tools/networking/amass/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.13.4";
+  version = "3.14.1";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "0zlkr0r06w3y34nx174wyfwk69i2q0bcq88kfvb0j3d28fdh5p31";
+    sha256 = "sha256-AKvTnr1NeoTMBn5KNuqdR1z1P/pkQU9E1WrPQPhl8Yw=";
   };
 
-  vendorSha256 = "065n1vhj5003ay4pflp418w32s84jvza52lghj6cpcdzs0rwgc45";
+  vendorSha256 = "sha256-v+x0S47dEgRLr2Yv8t1GnFM/iQ9bKKanPhPJMI+mF7s=";
 
   outputs = [ "out" "wordlists" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
index ebb816b1887a..35d342beb1a9 100644
--- a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
@@ -11,13 +11,21 @@ rustPlatform.buildRustPackage rec {
     sha256 = "014blvrv0kk4gzga86mbk7gd5dl1szajfi972da3lrfznck1w24n";
   };
 
-  cargoSha256 = "119szaighki565w28la6qg25s3cv8wviqin9f7f9w8x2rif3ipb3";
+  cargoSha256 = "sha256-Vrd5DIfhUSb3BONaUG8RypmVF+HWrlM0TodlWjOLa/c=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   # 10 passed; 47 failed https://hydra.nixos.org/build/148943783/nixlog/1
   doCheck = !stdenv.isDarwin;
 
+  # FIXME: remove when the linked-hash-map dependency is bumped upstream
+  cargoPatches = [
+    (fetchpatch {
+      url = "https://github.com/imsnif/bandwhich/pull/222/commits/be06905de2c4fb91afc22d50bf3cfe5a1e8003f5.patch";
+      sha256 = "sha256-FyZ7jUXK7ebXq7q/lvRSe7YdPnpYWKZE3WrSKLMjJeA=";
+    })
+  ];
+
   meta = with lib; {
     description = "A CLI utility for displaying current network utilization";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/networking/boundary/default.nix b/nixpkgs/pkgs/tools/networking/boundary/default.nix
index c55eeff8c101..4f7b76ad8c7a 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.6.1";
+  version = "0.6.2";
 
   src =
     let
@@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
         x86_64-darwin = "darwin_amd64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-E+AQhm2ddaDU8G0KuK0dC4wUU4YFELwO/q+8d2kpnV8=";
-        aarch64-linux = "sha256-RG4hazKsuUCYYBfDJ9OWghHlBNLEaxVOz5YGHP+ySbA=";
-        x86_64-darwin = "sha256-h0EjoEU+U3HQhmnPBKGijFJrkg9yPPP7zyWNbrn2e5Q=";
+        x86_64-linux = "sha256-qO74R6L2kTHXCNtka9SHT4lZo4Gr15w6K3e43+p2HW4=";
+        aarch64-linux = "sha256-apd16BuusNI5P2Qr8Hj95dRwoAk/ZEZa6TQi+0paIzs=";
+        x86_64-darwin = "sha256-LdCakVru1sbB88plsGrJiMDQl5HtH1GkCkcjmIVjeec=";
       };
     in
     fetchzip {
diff --git a/nixpkgs/pkgs/tools/networking/croc/default.nix b/nixpkgs/pkgs/tools/networking/croc/default.nix
index 9deb7d6c9409..8c9e1bcdf0f7 100644
--- a/nixpkgs/pkgs/tools/networking/croc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.3.0";
+  version = "9.4.2";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-chSVAQXGtcAFs4GzqywjAUM9qng9j6j7KOrlQalxdOw=";
+    sha256 = "sha256-aB3jYQKyqfaQBcCbFbN8ZIfosyLy+bX6SJF+iiT2ELQ=";
   };
 
-  vendorSha256 = "sha256-z8xU1IH+xemx/kxE4crj90roF73QW5D9jFLpykH7meo=";
+  vendorSha256 = "sha256-bsggZ6e9a7tq0jgOpqIRgfj4FUu/krLWuLBZjaialO0=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/networking/davix/default.nix b/nixpkgs/pkgs/tools/networking/davix/default.nix
index d9f368455594..1cdb5677eecd 100644
--- a/nixpkgs/pkgs/tools/networking/davix/default.nix
+++ b/nixpkgs/pkgs/tools/networking/davix/default.nix
@@ -1,19 +1,67 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, openssl, libxml2, boost, python3, libuuid }:
+{ lib
+, stdenv
+, fetchurl
+, cmake
+, pkg-config
+, openssl
+, libxml2
+, boost
+, python3
+, libuuid
+, curl
+, gsoap
+, enableTools ? true
+  # Build the bundled libcurl
+  # and, if defaultToLibCurl,
+  # use instead of an external one
+, useEmbeddedLibcurl ? true
+  # Use libcurl instead of libneon
+  # Note that the libneon used is bundled in the project
+  # See https://github.com/cern-fts/davix/issues/23
+, defaultToLibcurl ? false
+, enableIpv6 ? true
+, enableTcpNodelay ? true
+  # Build davix_copy.so
+, enableThirdPartyCopy ? false
+}:
 
+let
+  boolToUpper = b: lib.toUpper (lib.boolToString b);
+in
 stdenv.mkDerivation rec {
-  version = "0.7.6";
+  version = "0.8.0";
   pname = "davix";
   nativeBuildInputs = [ cmake pkg-config python3 ];
-  buildInputs = [ openssl libxml2 boost libuuid ];
+  buildInputs = [
+    openssl
+    libxml2
+    boost
+    libuuid
+  ] ++ lib.optional (defaultToLibcurl && !useEmbeddedLibcurl) curl
+  ++ lib.optional (enableThirdPartyCopy) gsoap;
 
   # using the url below since the github release page states
   # "please ignore the GitHub-generated tarballs, as they are incomplete"
-  # https://github.com/cern-fts/davix/releases/tag/R_0_7_6
+  # https://github.com/cern-fts/davix/releases/tag/R_0_8_0
   src = fetchurl {
     url = "https://github.com/cern-fts/${pname}/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.gz";
-    sha256 = "0wq66spnr616cns72f9dvr2xfvkdvfqqmc6d7dx29fpp57zzvrx2";
+    sha256 = "LxCNoECKg/tbnwxoFQ02C6cz5LOg/imNRbDTLSircSQ=";
   };
 
+  preConfigure = ''
+    find . -mindepth 1 -maxdepth 1 -type f -name "patch*.sh" -print0 | while IFS= read -r -d ''' file; do
+      patchShebangs "$file"
+    done
+  '';
+
+  cmakeFlags = [
+    "-DENABLE_TOOLS=${boolToUpper enableTools}"
+    "-DEMBEDDED_LIBCURL=${boolToUpper useEmbeddedLibcurl}"
+    "-DLIBCURL_BACKEND_BY_DEFAULT=${boolToUpper defaultToLibcurl}"
+    "-DENABLE_IPV6=${boolToUpper enableIpv6}"
+    "-DENABLE_TCP_NODELAY=${boolToUpper enableTcpNodelay}"
+    "-DENABLE_THIRD_PARTY_COPY=${boolToUpper enableThirdPartyCopy}"
+  ];
 
   meta = with lib; {
     description = "Toolkit for Http-based file management";
@@ -22,10 +70,10 @@ stdenv.mkDerivation rec {
     operations with Http based protocols (WebDav, Amazon S3, ...).
     Davix provides an API and a set of command line tools";
 
-    license     = licenses.lgpl2Plus;
-    homepage    = "http://dmc.web.cern.ch/projects/davix/home";
-    maintainers = [ maintainers.adev ];
-    platforms   = platforms.all;
+    license = licenses.lgpl2Plus;
+    homepage = "http://dmc.web.cern.ch/projects/davix/home";
+    changelog = "https://github.com/cern-fts/davix/blob/devel/RELEASE-NOTES.md";
+    maintainers = with maintainers; [ adev ];
+    platforms = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/tools/networking/dhcp/default.nix b/nixpkgs/pkgs/tools/networking/dhcp/default.nix
index 2a722d17c01f..7df04ac0c895 100644
--- a/nixpkgs/pkgs/tools/networking/dhcp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, file, nettools, iputils, iproute2, makeWrapper
+{ stdenv, fetchurl, fetchpatch, perl, file, nettools, iputils, iproute2, makeWrapper
 , coreutils, gnused, openldap ? null
 , buildPackages, lib
 }:
@@ -18,6 +18,12 @@ stdenv.mkDerivation rec {
       # patch, the hostname doesn't get set properly if the old
       # hostname (i.e. before reboot) is equal to the new hostname.
       ./set-hostname.patch
+
+      (fetchpatch {
+        # upstream build fix against -fno-common compilers like >=gcc-10
+        url = "https://gitlab.isc.org/isc-projects/dhcp/-/commit/6c7e61578b1b449272dbb40dd8b98d03dad8a57a.patch";
+        sha256 = "1g37ix0yf9zza8ri8bg438ygcjviniblfyb20y4gzc8lysy28m8b";
+      })
     ];
 
   nativeBuildInputs = [ perl makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/networking/dnstake/default.nix b/nixpkgs/pkgs/tools/networking/dnstake/default.nix
new file mode 100644
index 000000000000..d32cf0fedbbb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/dnstake/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "dnstake";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "pwnesia";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mjwnb0zyqnwk26f32v9vqxc9k6zcks9nn1595mf2hck5xwn86yk";
+  };
+
+  vendorSha256 = "1xhzalx1x8js449w1qs2qdwbnz2s8mmypz9maj7jzl5mqfyhlwlp";
+
+  meta = with lib; {
+    description = "Tool to check missing hosted DNS zones";
+    homepage = "https://github.com/pwnesia/dnstake";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/dnsviz/default.nix b/nixpkgs/pkgs/tools/networking/dnsviz/default.nix
index ba31aba8d6c2..aebf7e3cd14f 100644
--- a/nixpkgs/pkgs/tools/networking/dnsviz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsviz/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonApplication rec {
   pname = "dnsviz";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchFromGitHub {
     owner = "dnsviz";
     repo = "dnsviz";
     rev = "v${version}";
-    sha256 = "sha256-QsTYpNaAJiIRUrr2JYjXWOKFihENhAccvmB/DRhX1PA=";
+    sha256 = "sha256-x6LdPVQFfsJIuKde1+LbFKz5bBEi+Mri9sVH0nGsbCU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/networking/flannel/plugin.nix b/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
index 40d0fa9ecc55..51e29a31ddc5 100644
--- a/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
+++ b/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cni-plugin-flannel";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "flannel-io";
     repo = "cni-plugin";
     rev = "v${version}";
-    sha256 = "sha256-s2gibebXTqM/12nDHwc89geWxA6gZi9/if5VnUFoTDE=";
+    sha256 = "sha256-DZC6uJR6TIHdmu8kZcbM+RC7pdejqLCOep0v3PM8/QY=";
   };
 
   vendorSha256 = "sha256-TLAwE3pTnJYOi1AsOQfsG6t3xLKOah/7DvYjsqyltKs=";
diff --git a/nixpkgs/pkgs/tools/networking/getmail6/default.nix b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
index dc36a7d124a4..045ead7569db 100644
--- a/nixpkgs/pkgs/tools/networking/getmail6/default.nix
+++ b/nixpkgs/pkgs/tools/networking/getmail6/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "getmail6";
-  version = "6.18.3";
+  version = "6.18.4";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8tBSi9QzWcVL09j6aa2yWFhLlqaI6DREX2PpKvHC3qU=";
+    sha256 = "1pxrwqpg8vnrrljigzzaq8g2g6nx55x7a8q032bp4wqyhc6jhpxq";
   };
 
   # needs a Docker setup
diff --git a/nixpkgs/pkgs/tools/networking/godns/default.nix b/nixpkgs/pkgs/tools/networking/godns/default.nix
new file mode 100644
index 000000000000..fb46a144ee7b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/godns/default.nix
@@ -0,0 +1,27 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "godns";
+  version = "2.5";
+
+  src = fetchFromGitHub {
+    owner = "TimothyYe";
+    repo = "godns";
+    rev = "v${version}";
+    sha256 = "sha256-ia0FmV2KlFPh9gmKOqVxiStgmBbX9vUIc7KllpUt44Q=";
+  };
+
+  vendorSha256 = "sha256-FZLDaMrPEyoTGFmGBlpqPWsMuobqwkBaot5qjcRJe9w=";
+
+  # Some tests require internet access, broken in sandbox
+  doCheck = false;
+
+  ldflags = [ "-X main.Version=${version}" ];
+
+  meta = with lib; {
+    description = "A dynamic DNS client tool supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc";
+    homepage = "https://github.com/TimothyYe/godns";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ yinfeng ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/gvproxy/default.nix b/nixpkgs/pkgs/tools/networking/gvproxy/default.nix
index 662f909b6245..535e8d6bdfbf 100644
--- a/nixpkgs/pkgs/tools/networking/gvproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gvproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gvproxy";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "gvisor-tap-vsock";
     rev = "v${version}";
-    sha256 = "sha256-cXaX7A8Wgq/PEHnFrparZjOKdENX3pWWXYfrEuFLDx0=";
+    sha256 = "sha256-iRFjELJCgxPvqkhBvJqCFapQrHLL3uRpKsJ/DaXSKnw=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/httpie/default.nix b/nixpkgs/pkgs/tools/networking/httpie/default.nix
index a7ecabe8e627..8e289b7bab11 100644
--- a/nixpkgs/pkgs/tools/networking/httpie/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httpie/default.nix
@@ -1,88 +1,70 @@
-{ lib, fetchFromGitHub, python3Packages, docutils }:
+{ lib
+, fetchFromGitHub
+, installShellFiles
+, python3Packages
+, pandoc
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "httpie";
-  version = "2.4.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "httpie";
     repo = "httpie";
     rev = version;
-    sha256 = "00lafjqg9nfnak0nhcr2l2hzzkwn2y6qv0wdkm6r6f69snizy3hf";
+    sha256 = "1y77dg27dn6bajwp3w6qvw1ls5wfhd1j1788l3fjhxg7j4qjki4g";
   };
 
-  patches = [
-    ./strip-venv.patch
+  nativeBuildInputs = [
+    installShellFiles
+    pandoc
   ];
 
-  outputs = [ "out" "doc" "man" ];
-
-  nativeBuildInputs = [ docutils ];
-
-  propagatedBuildInputs = with python3Packages; [ pygments requests requests-toolbelt setuptools ];
+  propagatedBuildInputs = with python3Packages; [
+    charset-normalizer
+    defusedxml
+    pygments
+    requests
+    requests-toolbelt
+    setuptools
+  ];
 
   checkInputs = with python3Packages; [
     mock
     pytest
     pytest-httpbin
     pytestCheckHook
+    responses
   ];
 
   postInstall = ''
     # install completions
-    install -Dm555 \
-      extras/httpie-completion.bash \
-      $out/share/bash-completion/completions/http.bash
-    install -Dm555 \
-      extras/httpie-completion.fish \
-      $out/share/fish/vendor_completions.d/http.fish
-
-    mkdir -p $man/share/man/man1
-
-    docdir=$doc/share/doc/httpie
-    mkdir -p $docdir/html
-
-    cp AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst $docdir
-
-    # helpfully, the readme has a `no-web` class to exclude
-    # the parts that are not relevant for offline docs
-
-    # this one build link was not marked however
-    sed -e 's/^|build|//g' -i README.rst
-
-    toHtml() {
-      rst2html5 \
-        --strip-elements-with-class=no-web \
-        --title=http \
-        --no-generator \
-        --no-datestamp \
-        --no-source-link \
-        "$1" \
-        "$2"
-    }
-
-    toHtml README.rst $docdir/html/index.html
-    toHtml CHANGELOG.rst $docdir/html/CHANGELOG.html
-    toHtml CONTRIBUTING.rst $docdir/html/CONTRIBUTING.html
-
-    rst2man \
-      --strip-elements-with-class=no-web \
-      --title=http \
-      --no-generator \
-      --no-datestamp \
-      --no-source-link \
-      README.rst \
-      $man/share/man/man1/http.1
+    installShellCompletion --bash \
+      --name http.bash extras/httpie-completion.bash
+    installShellCompletion --fish \
+      --name http.fish extras/httpie-completion.fish
+
+    # convert the docs/README.md file
+    pandoc --standalone -f markdown -t man docs/README.md -o docs/http.1
+    installManPage docs/http.1
   '';
 
-  # the tests call rst2pseudoxml.py from docutils
-  preCheck = ''
-    export PATH=${docutils}/bin:$PATH
-  '';
+  pytestFlagsArray = [
+    "httpie"
+    "tests"
+  ];
 
-  checkPhase = ''
-    py.test ./httpie ./tests --doctest-modules --verbose ./httpie ./tests -k 'not test_chunked and not test_verbose_chunked and not test_multipart_chunked and not test_request_body_from_file_by_path_chunked'
-  '';
+  disabledTests = [
+    "test_chunked"
+    "test_verbose_chunked"
+    "test_multipart_chunked"
+    "test_request_body_from_file_by_path_chunked"
+    # Part of doctest
+    "httpie.encoding.detect_encoding"
+  ];
+
+  pythonImportsCheck = [ "httpie" ];
 
   meta = with lib; {
     description = "A command line HTTP client whose goal is to make CLI human-friendly";
diff --git a/nixpkgs/pkgs/tools/networking/httplz/cargo-lock.patch b/nixpkgs/pkgs/tools/networking/httplz/cargo-lock.patch
deleted file mode 100644
index 293d65f7a238..000000000000
--- a/nixpkgs/pkgs/tools/networking/httplz/cargo-lock.patch
+++ /dev/null
@@ -1,1275 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..722bfbd
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,1269 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "adler32"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
-+
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "ansi_term"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "antidote"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5"
-+
-+[[package]]
-+name = "atty"
-+version = "0.2.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-+
-+[[package]]
-+name = "autocfg"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-+
-+[[package]]
-+name = "base64"
-+version = "0.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-+dependencies = [
-+ "byteorder",
-+ "safemem",
-+]
-+
-+[[package]]
-+name = "base64"
-+version = "0.10.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
-+dependencies = [
-+ "byteorder",
-+]
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+
-+[[package]]
-+name = "bitstring"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3e54f7b7a46d7b183eb41e2d82965261fa8a1597c68b50aced268ee1fc70272d"
-+
-+[[package]]
-+name = "brotli-sys"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4445dea95f4c2b41cde57cc9fee236ae4dbae88d8fcbdb4750fc1bb5d86aaecd"
-+dependencies = [
-+ "cc",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "brotli2"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0cb036c3eade309815c15ddbacec5b22c4d1f3983a774ab2eac2e3e9ea85568e"
-+dependencies = [
-+ "brotli-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "byteorder"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
-+
-+[[package]]
-+name = "bzip2"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
-+dependencies = [
-+ "bzip2-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "bzip2-sys"
-+version = "0.1.8+1.0.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05305b41c5034ff0e93937ac64133d109b5a2660114ec45e9760bc6816d83038"
-+dependencies = [
-+ "cc",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.52"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-+
-+[[package]]
-+name = "cidr"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2da1cf0f275bb8dc1867a7f40cdb3b746951db73a183048e6e37fa89ed81bd01"
-+dependencies = [
-+ "bitstring",
-+]
-+
-+[[package]]
-+name = "clap"
-+version = "2.33.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-+dependencies = [
-+ "ansi_term",
-+ "atty",
-+ "bitflags",
-+ "strsim",
-+ "textwrap",
-+ "unicode-width",
-+ "vec_map",
-+]
-+
-+[[package]]
-+name = "cloudabi"
-+version = "0.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+dependencies = [
-+ "bitflags",
-+]
-+
-+[[package]]
-+name = "core-foundation"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
-+dependencies = [
-+ "core-foundation-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "core-foundation-sys"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
-+
-+[[package]]
-+name = "crc32fast"
-+version = "1.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
-+dependencies = [
-+ "cfg-if",
-+]
-+
-+[[package]]
-+name = "ctrlc"
-+version = "3.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a4ba686dff9fa4c1c9636ce1010b0cf98ceb421361b0bb3d6faeec43bd217a7"
-+dependencies = [
-+ "nix",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "dtoa"
-+version = "0.4.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3"
-+
-+[[package]]
-+name = "either"
-+version = "1.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-+
-+[[package]]
-+name = "embed-resource"
-+version = "1.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1f6b0b4403da80c2fd32333937dd468292c001d778c587ae759b75432772715d"
-+dependencies = [
-+ "vswhom",
-+ "winreg",
-+]
-+
-+[[package]]
-+name = "flate2"
-+version = "1.0.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42"
-+dependencies = [
-+ "cfg-if",
-+ "crc32fast",
-+ "libc",
-+ "miniz_oxide",
-+]
-+
-+[[package]]
-+name = "foreign-types"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-+dependencies = [
-+ "foreign-types-shared",
-+]
-+
-+[[package]]
-+name = "foreign-types-shared"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-+
-+[[package]]
-+name = "fuchsia-cprng"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-+
-+[[package]]
-+name = "gcc"
-+version = "0.3.55"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "wasi",
-+]
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.1.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8a0d737e0f947a1864e93d33fdef4af8445a00d1ed8dc0c8ddb73139ea6abf15"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "httparse"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
-+
-+[[package]]
-+name = "https"
-+version = "1.9.2"
-+dependencies = [
-+ "base64 0.10.1",
-+ "brotli2",
-+ "bzip2",
-+ "cc",
-+ "cidr",
-+ "clap",
-+ "ctrlc",
-+ "embed-resource",
-+ "flate2",
-+ "hyper-native-tls",
-+ "iron",
-+ "itertools",
-+ "lazy_static",
-+ "lazysort",
-+ "libc",
-+ "md6",
-+ "mime_guess",
-+ "os-str-generic",
-+ "percent-encoding 2.1.0",
-+ "rand 0.7.3",
-+ "regex",
-+ "rfsapi",
-+ "serde",
-+ "serde_json",
-+ "tabwriter",
-+ "time",
-+ "trivial_colours",
-+ "unicase 2.6.0",
-+ "walkdir",
-+ "winapi",
-+ "xml-rs",
-+]
-+
-+[[package]]
-+name = "hyper"
-+version = "0.10.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273"
-+dependencies = [
-+ "base64 0.9.3",
-+ "httparse",
-+ "language-tags",
-+ "log 0.3.9",
-+ "mime",
-+ "num_cpus",
-+ "time",
-+ "traitobject",
-+ "typeable",
-+ "unicase 1.4.2",
-+ "url",
-+]
-+
-+[[package]]
-+name = "hyper-native-tls"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6d375598f442742b0e66208ee12501391f1c7ac0bafb90b4fe53018f81f06068"
-+dependencies = [
-+ "antidote",
-+ "hyper",
-+ "native-tls",
-+]
-+
-+[[package]]
-+name = "idna"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
-+dependencies = [
-+ "matches",
-+ "unicode-bidi",
-+ "unicode-normalization",
-+]
-+
-+[[package]]
-+name = "iron"
-+version = "0.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c6d308ca2d884650a8bf9ed2ff4cb13fbb2207b71f64cda11dc9b892067295e8"
-+dependencies = [
-+ "hyper",
-+ "hyper-native-tls",
-+ "log 0.3.9",
-+ "mime_guess",
-+ "modifier",
-+ "num_cpus",
-+ "plugin",
-+ "typemap",
-+ "url",
-+]
-+
-+[[package]]
-+name = "itertools"
-+version = "0.8.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
-+dependencies = [
-+ "either",
-+]
-+
-+[[package]]
-+name = "itoa"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"
-+
-+[[package]]
-+name = "language-tags"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+
-+[[package]]
-+name = "lazysort"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d0e22ff43b231e0e2f87d74984e53ebc73b90ae13397e041214fb07efc64168f"
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.69"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
-+
-+[[package]]
-+name = "log"
-+version = "0.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
-+dependencies = [
-+ "log 0.4.8",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+dependencies = [
-+ "cfg-if",
-+]
-+
-+[[package]]
-+name = "matches"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-+
-+[[package]]
-+name = "md6"
-+version = "2.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "21baf112ff708069b0d0544843236583c9c18675cc1af78ba4ace0f60f63fb31"
-+dependencies = [
-+ "gcc",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "memchr"
-+version = "2.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-+
-+[[package]]
-+name = "mime"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
-+dependencies = [
-+ "log 0.3.9",
-+]
-+
-+[[package]]
-+name = "mime_guess"
-+version = "1.8.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3"
-+dependencies = [
-+ "mime",
-+ "phf",
-+ "phf_codegen",
-+ "unicase 1.4.2",
-+]
-+
-+[[package]]
-+name = "miniz_oxide"
-+version = "0.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5"
-+dependencies = [
-+ "adler32",
-+]
-+
-+[[package]]
-+name = "modifier"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "41f5c9112cb662acd3b204077e0de5bc66305fa8df65c8019d5adb10e9ab6e58"
-+
-+[[package]]
-+name = "native-tls"
-+version = "0.2.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d"
-+dependencies = [
-+ "lazy_static",
-+ "libc",
-+ "log 0.4.8",
-+ "openssl",
-+ "openssl-probe",
-+ "openssl-sys",
-+ "schannel",
-+ "security-framework",
-+ "security-framework-sys",
-+ "tempfile",
-+]
-+
-+[[package]]
-+name = "nix"
-+version = "0.17.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
-+dependencies = [
-+ "bitflags",
-+ "cc",
-+ "cfg-if",
-+ "libc",
-+ "void",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
-+dependencies = [
-+ "num-traits 0.2.11",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
-+dependencies = [
-+ "autocfg 1.0.0",
-+]
-+
-+[[package]]
-+name = "num_cpus"
-+version = "1.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "openssl"
-+version = "0.10.29"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cee6d85f4cb4c4f59a6a85d5b68a233d280c82e29e822913b9c8b129fbf20bdd"
-+dependencies = [
-+ "bitflags",
-+ "cfg-if",
-+ "foreign-types",
-+ "lazy_static",
-+ "libc",
-+ "openssl-sys",
-+]
-+
-+[[package]]
-+name = "openssl-probe"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
-+
-+[[package]]
-+name = "openssl-sys"
-+version = "0.9.55"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7717097d810a0f2e2323f9e5d11e71608355e24828410b55b9d4f18aa5f9a5d8"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "cc",
-+ "libc",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "os-str-generic"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "78f3d620827b89763f54b7f1da3029bd4e0ca7eb1ae61a5c4d3b0bc0dca5157e"
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-+
-+[[package]]
-+name = "phf"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
-+dependencies = [
-+ "phf_shared",
-+]
-+
-+[[package]]
-+name = "phf_codegen"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
-+dependencies = [
-+ "phf_generator",
-+ "phf_shared",
-+]
-+
-+[[package]]
-+name = "phf_generator"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
-+dependencies = [
-+ "phf_shared",
-+ "rand 0.6.5",
-+]
-+
-+[[package]]
-+name = "phf_shared"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
-+dependencies = [
-+ "siphasher",
-+ "unicase 1.4.2",
-+]
-+
-+[[package]]
-+name = "pkg-config"
-+version = "0.3.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-+
-+[[package]]
-+name = "plugin"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1a6a0dc3910bc8db877ffed8e457763b317cf880df4ae19109b9f77d277cf6e0"
-+dependencies = [
-+ "typemap",
-+]
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-+
-+[[package]]
-+name = "quote"
-+version = "0.3.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-+
-+[[package]]
-+name = "rand"
-+version = "0.6.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+dependencies = [
-+ "autocfg 0.1.7",
-+ "libc",
-+ "rand_chacha 0.1.1",
-+ "rand_core 0.4.2",
-+ "rand_hc 0.1.0",
-+ "rand_isaac",
-+ "rand_jitter",
-+ "rand_os",
-+ "rand_pcg",
-+ "rand_xorshift",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-+dependencies = [
-+ "getrandom",
-+ "libc",
-+ "rand_chacha 0.2.2",
-+ "rand_core 0.5.1",
-+ "rand_hc 0.2.0",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-+dependencies = [
-+ "autocfg 0.1.7",
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-+dependencies = [
-+ "ppv-lite86",
-+ "rand_core 0.5.1",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-+dependencies = [
-+ "rand_core 0.4.2",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+dependencies = [
-+ "getrandom",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-+dependencies = [
-+ "rand_core 0.5.1",
-+]
-+
-+[[package]]
-+name = "rand_isaac"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rand_jitter"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-+dependencies = [
-+ "libc",
-+ "rand_core 0.4.2",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand_os"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-+dependencies = [
-+ "cloudabi",
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.4.2",
-+ "rdrand",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand_pcg"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-+dependencies = [
-+ "autocfg 0.1.7",
-+ "rand_core 0.4.2",
-+]
-+
-+[[package]]
-+name = "rand_xorshift"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rdrand"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+
-+[[package]]
-+name = "regex"
-+version = "1.3.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692"
-+dependencies = [
-+ "aho-corasick",
-+ "memchr",
-+ "regex-syntax",
-+ "thread_local",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
-+
-+[[package]]
-+name = "remove_dir_all"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rfsapi"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1b6fbc119d00459f80252adb96e554766d75de071ed5d3c49f46a000d137cd49"
-+dependencies = [
-+ "hyper",
-+ "mime",
-+ "serde",
-+ "serde_derive",
-+ "time",
-+]
-+
-+[[package]]
-+name = "safemem"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-+
-+[[package]]
-+name = "same-file"
-+version = "1.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-+dependencies = [
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "schannel"
-+version = "0.1.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "039c25b130bd8c1321ee2d7de7fde2659fa9c2744e4bb29711cfc852ea53cd19"
-+dependencies = [
-+ "lazy_static",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "security-framework"
-+version = "0.4.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f331b9025654145cd425b9ded0caf8f5ae0df80d418b326e2dc1c3dc5eb0620"
-+dependencies = [
-+ "bitflags",
-+ "core-foundation",
-+ "core-foundation-sys",
-+ "libc",
-+ "security-framework-sys",
-+]
-+
-+[[package]]
-+name = "security-framework-sys"
-+version = "0.4.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405"
-+dependencies = [
-+ "core-foundation-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "serde"
-+version = "0.9.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "34b623917345a631dc9608d5194cc206b3fe6c3554cd1c75b937e55e285254af"
-+
-+[[package]]
-+name = "serde_codegen_internals"
-+version = "0.14.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bc888bd283bd2420b16ad0d860e35ad8acb21941180a83a189bb2046f9d00400"
-+dependencies = [
-+ "syn",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "0.9.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "978fd866f4d4872084a81ccc35e275158351d3b9fe620074e7d7504b816b74ba"
-+dependencies = [
-+ "quote",
-+ "serde_codegen_internals",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "0.9.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ad8bcf487be7d2e15d3d543f04312de991d631cfe1b43ea0ade69e6a8a5b16a1"
-+dependencies = [
-+ "dtoa",
-+ "itoa",
-+ "num-traits 0.1.43",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "siphasher"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
-+
-+[[package]]
-+name = "smallvec"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
-+
-+[[package]]
-+name = "strsim"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-+
-+[[package]]
-+name = "syn"
-+version = "0.11.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
-+dependencies = [
-+ "quote",
-+ "synom",
-+ "unicode-xid",
-+]
-+
-+[[package]]
-+name = "synom"
-+version = "0.11.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
-+dependencies = [
-+ "unicode-xid",
-+]
-+
-+[[package]]
-+name = "tabwriter"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "36205cfc997faadcc4b0b87aaef3fbedafe20d38d4959a7ca6ff803564051111"
-+dependencies = [
-+ "unicode-width",
-+]
-+
-+[[package]]
-+name = "tempfile"
-+version = "3.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "rand 0.7.3",
-+ "redox_syscall",
-+ "remove_dir_all",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "textwrap"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+dependencies = [
-+ "unicode-width",
-+]
-+
-+[[package]]
-+name = "thread_local"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+dependencies = [
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
-+dependencies = [
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "traitobject"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
-+
-+[[package]]
-+name = "trivial_colours"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7153365ea16c5a0ce2eebc4da1b33339a6b21d90c49f670e82130639656bb458"
-+
-+[[package]]
-+name = "typeable"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
-+
-+[[package]]
-+name = "typemap"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6"
-+dependencies = [
-+ "unsafe-any",
-+]
-+
-+[[package]]
-+name = "unicase"
-+version = "1.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
-+dependencies = [
-+ "version_check 0.1.5",
-+]
-+
-+[[package]]
-+name = "unicase"
-+version = "2.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
-+dependencies = [
-+ "version_check 0.9.1",
-+]
-+
-+[[package]]
-+name = "unicode-bidi"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-+dependencies = [
-+ "matches",
-+]
-+
-+[[package]]
-+name = "unicode-normalization"
-+version = "0.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
-+dependencies = [
-+ "smallvec",
-+]
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-+
-+[[package]]
-+name = "unsafe-any"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f30360d7979f5e9c6e6cea48af192ea8fab4afb3cf72597154b8f08935bc9c7f"
-+dependencies = [
-+ "traitobject",
-+]
-+
-+[[package]]
-+name = "url"
-+version = "1.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-+dependencies = [
-+ "idna",
-+ "matches",
-+ "percent-encoding 1.0.1",
-+]
-+
-+[[package]]
-+name = "vcpkg"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
-+
-+[[package]]
-+name = "vec_map"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
-+
-+[[package]]
-+name = "void"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-+
-+[[package]]
-+name = "vswhom"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b"
-+dependencies = [
-+ "libc",
-+ "vswhom-sys",
-+]
-+
-+[[package]]
-+name = "vswhom-sys"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc2f5402d3d0e79a069714f7b48e3ecc60be7775a2c049cb839457457a239532"
-+dependencies = [
-+ "cc",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "walkdir"
-+version = "2.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
-+dependencies = [
-+ "same-file",
-+ "winapi",
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "wasi"
-+version = "0.9.0+wasi-snapshot-preview1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu",
-+ "winapi-x86_64-pc-windows-gnu",
-+]
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+
-+[[package]]
-+name = "winapi-util"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+
-+[[package]]
-+name = "winreg"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "xml-rs"
-+version = "0.8.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2bb76e5c421bbbeb8924c60c030331b345555024d56261dae8f3e786ed817c23"
diff --git a/nixpkgs/pkgs/tools/networking/httplz/default.nix b/nixpkgs/pkgs/tools/networking/httplz/default.nix
index 2424018d8856..52654a49d65f 100644
--- a/nixpkgs/pkgs/tools/networking/httplz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httplz/default.nix
@@ -1,27 +1,46 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, rustPlatform
-, openssl, pkg-config, darwin, libiconv }:
+{ lib
+, rustPlatform
+, fetchCrate
+, installShellFiles
+, makeWrapper
+, pkg-config
+, ronn
+, openssl
+, stdenv
+, libiconv
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "httplz";
-  version = "1.9.2";
+  version = "1.12.1";
 
-  src = fetchFromGitHub {
-    owner = "thecoshman";
-    repo = "http";
-    rev = "v${version}";
-    sha256 = "154alxxclz78r29m656c8yahnzq0vd64s4sp19h0ca92dfw4s46y";
+  src = fetchCrate {
+    inherit version;
+    pname = "https";
+    sha256 = "sha256-vMhQHWzsZlqMVkEQHCZTB8T4ETTaf8iAS9QhgYdfcx0=";
   };
 
-  nativeBuildInputs = [ makeWrapper pkg-config ];
+  cargoSha256 = "sha256-9gnKVZ3HQs3kNj4i1cgC+Jl3dhjx7QRaHSih1HOB3nI=";
+
+  nativeBuildInputs = [
+    installShellFiles
+    makeWrapper
+    pkg-config
+    ronn
+  ];
+
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
-    libiconv darwin.apple_sdk.frameworks.Security
+    libiconv
+    Security
   ];
 
-  cargoBuildFlags = [ "--bin httplz" ];
-  cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "0r33vg9431jv32r03ryxb3rc4mp6h1kc00d3h1knssfvkwsh31yn";
+  cargoBuildFlags = [ "--bin" "httplz" ];
 
   postInstall = ''
+    sed -E 's/http(`| |\(|$)/httplz\1/g' http.md > httplz.1.ronn
+    RUBYOPT=-Eutf-8:utf-8 ronn --organization "http developers" -r httplz.1.ronn
+    installManPage httplz.1
     wrapProgram $out/bin/httplz \
       --prefix PATH : "${openssl}/bin"
   '';
@@ -30,6 +49,6 @@ rustPlatform.buildRustPackage rec {
     description = "A basic http server for hosting a folder fast and simply";
     homepage = "https://github.com/thecoshman/http";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ figsoda ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/hurl/default.nix b/nixpkgs/pkgs/tools/networking/hurl/default.nix
index 7caabc9d37cc..0843ba3a756a 100644
--- a/nixpkgs/pkgs/tools/networking/hurl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hurl/default.nix
@@ -1,9 +1,13 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
 , pkg-config
+, python3
+, installShellFiles
 , libxml2
 , openssl
+, curl
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -19,11 +23,15 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [
     pkg-config
+    python3
+    installShellFiles
   ];
 
   buildInputs = [
     libxml2
     openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    curl
   ];
 
   # Tests require network access to a test server
@@ -31,9 +39,16 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-tAg3xwmh7SjJsm9r5TnhXHIDLpUQpz3YDS6gWxFgps4=";
 
+  postInstall = ''
+    python ci/gen_manpage.py docs/hurl.md > hurl.1
+    python ci/gen_manpage.py docs/hurlfmt.md > hurlfmt.1
+    installManPage hurl.1 hurlfmt.1
+  '';
+
   meta = with lib; {
     description = "Command line tool that performs HTTP requests defined in a simple plain text format.";
     homepage = "https://hurl.dev/";
+    changelog = "https://github.com/Orange-OpenSource/hurl/raw/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ eonpatapon ];
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/tools/networking/kea/default.nix b/nixpkgs/pkgs/tools/networking/kea/default.nix
index 63afc04ad117..9bc3c1e8da3c 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.11";
+  version = "2.0.0"; # only even minor versions are stable
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-fSyJYsAshtEviybA67UzGCWK2iHJYJy5tJIZxxzTfyU=";
+    sha256 = "sha256-BYVODDhxtFLtrOGOzMarYYlA4CSfvnwjKjbQauWb9B0=";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/nixpkgs/pkgs/tools/networking/keepalived/default.nix b/nixpkgs/pkgs/tools/networking/keepalived/default.nix
index 48fe72d42967..22606ec78b69 100644
--- a/nixpkgs/pkgs/tools/networking/keepalived/default.nix
+++ b/nixpkgs/pkgs/tools/networking/keepalived/default.nix
@@ -1,25 +1,30 @@
 { lib, stdenv, fetchFromGitHub, nixosTests
-, libnfnetlink, libnl, net-snmp, openssl
-, pkg-config, autoreconfHook }:
+, file, libmnl, libnftnl, libnl
+, net-snmp, openssl, pkg-config
+, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "keepalived";
-  version = "2.2.2";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "acassen";
     repo = "keepalived";
     rev = "v${version}";
-    sha256 = "sha256-qugEEbOQ4bemzelIOaNFvo3piMZpKUZGjR+4XF8aLHw=";
+    sha256 = "sha256-WXKu+cabMmXNHiLwXrQqS8GQHIWYkee7vPddyGURWic=";
   };
 
   buildInputs = [
-    libnfnetlink
+    file
+    libmnl
+    libnftnl
     libnl
     net-snmp
     openssl
   ];
 
+  enableParallelBuilding = true;
+
   passthru.tests.keepalived = nixosTests.keepalived;
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
@@ -32,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://keepalived.org";
     description = "Routing software written in C";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix b/nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix
new file mode 100644
index 000000000000..1f92fd0ce320
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ligolo-ng";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "tnpitsecurity";
+    repo = "ligolo-ng";
+    rev = "v${version}";
+    sha256 = "sha256-VzK6WykC3UDlhhyu8LMRHgOMkdEssJuh1Aqp0rGx7F4=";
+  };
+
+  postConfigure = ''
+    export CGO_ENABLED=0
+  '';
+
+  ldflags = [ "-s" "-w" "-extldflags '-static'" ];
+
+  vendorSha256 = "sha256-ZRUy6gsl4Q2Sdm8Bfo4ANPdwcNQi5LNV6SbynpwfnOc=";
+
+  doCheck = false; # tests require network access
+
+  meta = with lib; {
+    homepage = "https://github.com/tnpitsecurity/ligolo-ng";
+    description = "A tunneling/pivoting tool that uses a TUN interface";
+    platforms = platforms.linux;
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ elohmeier ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix b/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
index 9fe476906bc6..0182440a8eb7 100644
--- a/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/miniupnpc/default.nix
@@ -19,6 +19,8 @@ let
 
       makeFlags = [ "PREFIX=$(out)" "INSTALLPREFIX=$(out)" ];
 
+      postInstall = ''chmod +x "$out"/lib/libminiupnpc.so'';
+
       meta = with lib; {
         homepage = "http://miniupnp.free.fr/";
         description = "A client that implements the UPnP Internet Gateway Device (IGD) specification";
diff --git a/nixpkgs/pkgs/tools/networking/mole/default.nix b/nixpkgs/pkgs/tools/networking/mole/default.nix
new file mode 100644
index 000000000000..da452b1bfae8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/mole/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "mole";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "davrodpin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11q48wfsr35xf2gmvh4biq4hlpba3fh6lrm3p9wni0rl1nxy40i7";
+  };
+
+  vendorSha256 = "1qm328ldkaifj1vsrz025vsa2wqzii9rky00b6wh8jf31f4ljbzv";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=github.com/davrodpin/mole/cmd.version=${version}"
+  ];
+
+  meta = with lib; {
+    description = "CLI application to create SSH tunnels";
+    homepage = "https://github.com/davrodpin/mole";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/nbd/default.nix b/nixpkgs/pkgs/tools/networking/nbd/default.nix
index 3f3a9b2b7235..95c2f970999a 100644
--- a/nixpkgs/pkgs/tools/networking/nbd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nbd/default.nix
@@ -30,7 +30,6 @@ stdenv.mkDerivation rec {
     homepage = "http://nbd.sourceforge.net";
     description = "Map arbitrary files as block devices over the network";
     license = lib.licenses.gpl2;
-    maintainers = [ lib.maintainers.peti ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix
index 06df79e47052..ca5ec7abffa5 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/openvpn/default.nix
@@ -3,13 +3,13 @@
 
 let
   pname = "NetworkManager-openvpn";
-  version = "1.8.12";
+  version = "1.8.16";
 in stdenv.mkDerivation {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f";
+    sha256 = "iSDeCceuXx9SDIP4REVduPrsMUJzUCaP4t2VuGD5H7U=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/networking/oha/default.nix b/nixpkgs/pkgs/tools/networking/oha/default.nix
index 185176440c1b..4f59810a7623 100644
--- a/nixpkgs/pkgs/tools/networking/oha/default.nix
+++ b/nixpkgs/pkgs/tools/networking/oha/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oha";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "hatoo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vx8ki0wi9xil2iksvxzh8mhx4c5ikkhdcnc8mcwqn14cvjkggja";
+    sha256 = "sha256-/gcNVTfLJKA5qzRgAqFSlSI618QBsJTxFE1doOKR7e8=";
   };
 
-  cargoSha256 = "1nx2lvbjflsjma5q9ck6vq499hf75w91i4h8wlzr83wqk37i7rhc";
+  cargoSha256 = "sha256-o5VKj69Wp7zLR3TS+wNA0D8nP6Cynlr4KtW4JSUm0VE=";
 
   nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
 
diff --git a/nixpkgs/pkgs/tools/networking/openssh/default.nix b/nixpkgs/pkgs/tools/networking/openssh/default.nix
index b57633b750f8..c8bc1f8a1dda 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openssh/default.nix
@@ -39,6 +39,7 @@ in
 
     extraMeta.knownVulnerabilities = [
       "CVE-2021-28041"
+      "CVE-2021-41617"
     ];
   };
 
@@ -69,6 +70,7 @@ in
 
     extraMeta.knownVulnerabilities = [
       "CVE-2021-28041"
+      "CVE-2021-41617"
     ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/packetdrill/default.nix b/nixpkgs/pkgs/tools/networking/packetdrill/default.nix
index 861e9c0383bb..b06e4558fbbf 100644
--- a/nixpkgs/pkgs/tools/networking/packetdrill/default.nix
+++ b/nixpkgs/pkgs/tools/networking/packetdrill/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, bison, flex, cmake, libpcap }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, bison, flex, cmake, libpcap }:
 stdenv.mkDerivation rec {
   pname = "packetdrill";
   version = "unstable-2020-08-22";
@@ -9,6 +9,16 @@ stdenv.mkDerivation rec {
     rev = "68a34fa73cf221e5f52d6fa4f203bcd93062be1b";
     sha256 = "0djkwb6l2959f44d98vwb092rghf0qmii8391vrpxqb99j6pv4h6";
   };
+  patches = [
+    # Upstream fix for -fno-common toolchains
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/google/packetdrill/commit/c08292838de81a71ee477d5bf9d95b1130a1292b.patch";
+      sha256 = "1irbar1zkydmgqb12r3xd80dwj2jfxnxayxpb4nmbma8xm7knb10";
+      stripLen = 3;
+    })
+  ];
+
   setSourceRoot = ''
     export sourceRoot=$(realpath */gtests/net/packetdrill)
   '';
diff --git a/nixpkgs/pkgs/tools/networking/pdsh/default.nix b/nixpkgs/pkgs/tools/networking/pdsh/default.nix
index d7ac9ad54e6f..531dfeeb4c45 100644
--- a/nixpkgs/pkgs/tools/networking/pdsh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pdsh/default.nix
@@ -43,6 +43,5 @@ stdenv.mkDerivation rec {
     '';
 
     platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.peti ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pmacct/default.nix b/nixpkgs/pkgs/tools/networking/pmacct/default.nix
index 9cb8c0b88f73..86f1af029df0 100644
--- a/nixpkgs/pkgs/tools/networking/pmacct/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pmacct/default.nix
@@ -1,55 +1,56 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , pkg-config
 , autoreconfHook
 , libtool
 , libpcap
-
+, libcdada
 # Optional Dependencies
-, zlib ? null
-, withJansson ? true, jansson ? null
-, withNflog ? true, libnetfilter_log ? null
-, withSQLite ? true, sqlite ? null
-, withPgSQL ? true, postgresql ? null
-, withMysql ? true, libmysqlclient ? null }:
-
-assert withJansson -> jansson != null;
-assert withNflog -> libnetfilter_log != null;
-assert withSQLite -> sqlite != null;
-assert withPgSQL -> postgresql != null;
-assert withMysql -> libmysqlclient != null;
-
-let inherit (lib) getDev optional optionalString; in
+, withJansson ? true, jansson
+, withNflog ? true, libnetfilter_log
+, withSQLite ? true, sqlite
+, withPgSQL ? true, postgresql
+, withMysql ? true, libmysqlclient, zlib
+, gnutlsSupport ? false, gnutls
+}:
 
 stdenv.mkDerivation rec {
-  version = "1.7.5";
+  version = "1.7.6";
   pname = "pmacct";
 
   src = fetchFromGitHub {
     owner = "pmacct";
-    repo = pname;
+    repo = "pmacct";
     rev = "v${version}";
-    sha256 = "17p5isrq5w58hvmzhc6akbd37ins3c95g0rvhhdm0v33khzxmran";
+    sha256 = "0x1i75hwz44siqvn4i58jgji0zwrqgn6ayv89s9m9nh3b423nsiv";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config libtool ];
-  buildInputs = [ libpcap ]
-    ++ optional withJansson jansson
-    ++ optional withNflog libnetfilter_log
-    ++ optional withSQLite sqlite
-    ++ optional withPgSQL postgresql
-    ++ optional withMysql [ libmysqlclient zlib ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    libtool
+  ];
+  buildInputs = [
+    libcdada
+    libpcap
+  ] ++ lib.optional withJansson jansson
+  ++ lib.optional withNflog libnetfilter_log
+  ++ lib.optional withSQLite sqlite
+  ++ lib.optional withPgSQL postgresql
+  ++ lib.optionals withMysql [ libmysqlclient zlib ]
+  ++ lib.optional gnutlsSupport gnutls;
 
-  MYSQL_CONFIG =
-    optionalString withMysql "${getDev libmysqlclient}/bin/mysql_config";
+  MYSQL_CONFIG = lib.optionalString withMysql "${lib.getDev libmysqlclient}/bin/mysql_config";
 
   configureFlags = [
     "--with-pcap-includes=${libpcap}/include"
-  ] ++ optional withJansson "--enable-jansson"
-    ++ optional withNflog "--enable-nflog"
-    ++ optional withSQLite "--enable-sqlite3"
-    ++ optional withPgSQL "--enable-pgsql"
-    ++ optional withMysql "--enable-mysql";
+  ] ++ lib.optional withJansson "--enable-jansson"
+  ++ lib.optional withNflog "--enable-nflog"
+  ++ lib.optional withSQLite "--enable-sqlite3"
+  ++ lib.optional withPgSQL "--enable-pgsql"
+  ++ lib.optional withMysql "--enable-mysql"
+  ++ lib.optional gnutlsSupport "--enable-gnutls";
 
   meta = with lib; {
     description = "A small set of multi-purpose passive network monitoring tools";
diff --git a/nixpkgs/pkgs/tools/networking/privoxy/default.nix b/nixpkgs/pkgs/tools/networking/privoxy/default.nix
index 9fce8d7a5f41..9fc159d810c1 100644
--- a/nixpkgs/pkgs/tools/networking/privoxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/privoxy/default.nix
@@ -2,7 +2,7 @@
 , nixosTests
 , fetchurl, autoreconfHook
 , zlib, pcre, w3m, man
-, mbedtls, brotli
+, openssl, brotli
 }:
 
 stdenv.mkDerivation rec {
@@ -18,11 +18,11 @@ stdenv.mkDerivation rec {
   hardeningEnable = [ "pie" ];
 
   nativeBuildInputs = [ autoreconfHook w3m man ];
-  buildInputs = [ zlib pcre mbedtls brotli ];
+  buildInputs = [ zlib pcre openssl brotli ];
 
   makeFlags = [ "STRIP=" ];
   configureFlags = [
-    "--with-mbedtls"
+    "--with-openssl"
     "--with-brotli"
     "--enable-external-filters"
     "--enable-compression"
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     description = "Non-caching web proxy with advanced filtering capabilities";
     # When linked with mbedtls, the license becomes GPLv3 (or later), otherwise
     # GPLv2 (or later). See https://www.privoxy.org/user-manual/copyright.html
-    license = licenses.gpl3Plus;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.phreedom ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/rustcat/default.nix b/nixpkgs/pkgs/tools/networking/rustcat/default.nix
new file mode 100644
index 000000000000..a5dfd38a0e3d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/rustcat/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rustcat";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "robiot";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-aoeinz1XVJ+MNt8ndV/HnKLdwa7rXwxIZucCkZCnNaM=";
+  };
+
+  cargoSha256 = "sha256-cQxBM8m0sy9WKvKqyY/sNE3p4l2v9zdx80mReQEAoc8=";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "Port listener and reverse shell";
+    homepage = "https://github.com/robiot/rustcat";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/s3cmd/default.nix b/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
index 888d6a05c67d..88af5a136251 100644
--- a/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "s3cmd";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "s3tools";
     repo = "s3cmd";
     rev = "v${version}";
-    sha256 = "0p6mbgai7f0c12pkw4s7d649gj1f8hywj60pscxvj9jsna3iifhs";
+    sha256 = "0w4abif05mp52qybh4hjg6jbbj2caljq5xdhfiha3g0s5zsq46ri";
   };
 
   propagatedBuildInputs = [ python_magic python-dateutil ];
diff --git a/nixpkgs/pkgs/tools/networking/s6-dns/default.nix b/nixpkgs/pkgs/tools/networking/s6-dns/default.nix
index a4ebf5beef9b..0a7307b6293b 100644
--- a/nixpkgs/pkgs/tools/networking/s6-dns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s6-dns/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-dns";
-  version = "2.3.5.1";
-  sha256 = "0qsgqwdr5ms337fc9f2b4aa5cr7myvbzndvgkgswnrdwszjm078c";
+  version = "2.3.5.2";
+  sha256 = "0nczzjprvp6wirzycgf5h32dlgx4r8grzkqhif27n3ii6f5g78yw";
 
   description = "A suite of DNS client programs and libraries for Unix systems";
 
diff --git a/nixpkgs/pkgs/tools/networking/s6-networking/default.nix b/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
index e0c8eda9c749..42f7187fabed 100644
--- a/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s6-networking/default.nix
@@ -19,8 +19,8 @@ assert sslSupportEnabled -> sslLibs ? ${sslSupport};
 
 buildPackage {
   pname = "s6-networking";
-  version = "2.4.1.1";
-  sha256 = "0m55ibx7k2wgrqbpci1n667ij0h925ajzggxalq2pj65kmwcmyx3";
+  version = "2.5.0.0";
+  sha256 = "1fn3g9gkwgmnxallhk82f5rly81pnkilj7n49g5fbfmaalsq96mh";
 
   description = "A suite of small networking utilities for Unix systems";
 
@@ -57,7 +57,6 @@ buildPackage {
   postInstall = ''
     # remove all s6 executables from build directory
     rm $(find -name "s6-*" -type f -mindepth 1 -maxdepth 1 -executable)
-    rm minidentd
     rm libs6net.* libstls.* libs6tls.* libsbearssl.*
 
     mv doc $doc/share/doc/s6-networking/html
diff --git a/nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix b/nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix
new file mode 100644
index 000000000000..c7a90aee5236
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "ssh-key-confirmer";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "benjojo";
+    repo = "ssh-key-confirmer";
+    rev = "v${version}";
+    sha256 = "18whj9ds3rpjj5b71lbadi37ps99v13nnmkn3vq28x6cqfdy6w09";
+  };
+
+  vendorSha256 = "0v9yw6v8fj6dqgbkks4pnmvxx9b7jqdy7bn7ywddk396sbsxjiqa";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    description = "Test ssh login key acceptance without having the private key";
+    homepage = "https://github.com/benjojo/ssh-key-confirmer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix b/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix
index ddccc9ac6358..c6284d7c80b0 100644
--- a/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix
+++ b/nixpkgs/pkgs/tools/networking/stevenblack-blocklist/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 let
-  version = "3.8.2";
+  version = "3.9.7";
 in
 fetchFromGitHub {
   name = "stevenblack-blocklist-${version}";
@@ -9,7 +9,7 @@ fetchFromGitHub {
   owner = "StevenBlack";
   repo = "hosts";
   rev = version;
-  sha256 = "sha256-rkyAF1/kPI34nZ57Hqg8QivK0YERZ54jZ1HQ5oXYgxc=";
+  sha256 = "sha256-AMeUY4aeyPIyirCLawLVjqDGB8z28q/Hm/UI+wGYZvY=";
 
   meta = with lib; {
     description = "Unified hosts file with base extensions";
diff --git a/nixpkgs/pkgs/tools/networking/strongswan/default.nix b/nixpkgs/pkgs/tools/networking/strongswan/default.nix
index ff69dbc75445..601446abb95c 100644
--- a/nixpkgs/pkgs/tools/networking/strongswan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/strongswan/default.nix
@@ -46,6 +46,13 @@ stdenv.mkDerivation rec {
       url = "https://patch-diff.githubusercontent.com/raw/strongswan/strongswan/pull/150.patch";
       sha256 = "1irfxb99blb8v3hs0kmlhzkkwbmds1p0gq319z8lmacz36cgyj2c";
     })
+
+    # fix build with -fno-common tollchain
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://git.strongswan.org/?p=strongswan.git;a=patch;h=91c6387e69c09beaa9b9ca1e28471751a834fc24";
+      sha256 = "0jp9walxwffp5cl7q0hb80h3s2gdj1nn3n8bvnbmwgh2s6pi148f";
+    })
   ];
 
   postPatch = optionalString stdenv.isLinux ''
diff --git a/nixpkgs/pkgs/tools/networking/suckit/default.nix b/nixpkgs/pkgs/tools/networking/suckit/default.nix
new file mode 100644
index 000000000000..568e344065e4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/suckit/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, stdenv
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "suckit";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "skallwar";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wr03yvrqa9p6m127fl4hcf9057i11zld898qz4kbdyiynpi0166";
+  };
+
+  cargoSha256 = "sha256-6otIWAAf9pI4A8kxK3dyOVpkw+SJ3/YAvTahDSXMWNc=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
+
+  # requires internet access
+  checkFlags = [ "--skip=test_download_url" ];
+
+  meta = with lib; {
+    description = "Recursively visit and download a website's content to your disk";
+    homepage = "https://github.com/skallwar/suckit";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/swec/default.nix b/nixpkgs/pkgs/tools/networking/swec/default.nix
deleted file mode 100644
index 6751b1cf5eb8..000000000000
--- a/nixpkgs/pkgs/tools/networking/swec/default.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{ fetchurl, lib, stdenv, makeWrapper, perlPackages }:
-
-stdenv.mkDerivation rec {
-  pname = "swec";
-  version = "0.4";
-
-  src = fetchurl {
-    url = "http://files.zerodogg.org/swec/swec-${version}.tar.bz2";
-    sha256 = "1m3971z4z1wr0paggprfz0n8ng8vsnkc9m6s3bdplgyz7qjk6jwx";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ perlPackages.perl perlPackages.LWP perlPackages.URI perlPackages.HTMLParser ];
-  checkInputs = [ perlPackages.HTTPServerSimple perlPackages.Parent ];
-
-  configurePhase = ''
-    for i in swec tests/{runTests,testServer}
-    do
-      sed -i "$i" -e's|/usr/bin/perl|${perlPackages.perl}/bin/perl|g'
-    done
-  '';
-
-  dontBuild = true;
-
-  installPhase = ''
-    make install prefix="$out"
-
-    mkdir -p "$out/share/swec-${version}"
-    cp -v default.sdf "$out/share/swec-${version}"
-    sed -i "$out/bin/swec" -e"s|realpath(\$0)|'$out/share/swec-${version}/swec'|g"
-
-    wrapProgram "$out/bin/swec" \
-      --prefix PERL5LIB : ${with perlPackages; makePerlPath [ LWP URI HTMLParser ]}
-  '';
-
-  doCheck = true;
-  checkPhase = "make test";
-
-  meta = {
-    homepage = "https://random.zerodogg.org/swec/";
-
-    description = "Simple Web Error Checker (SWEC)";
-
-    longDescription =
-      '' SWEC (Simple Web Error Checker) is a program that automates testing
-         of dynamic websites.  It parses each HTML file it finds for links,
-         and if those links are within the site specified (ie. local, not
-         external), it will check that page as well.  In this respect it
-         works a lot like a crawler, in that it'll click on any link it finds
-         (more notes about this later).
-
-         In addition to parsing and locating links, it will also parse the
-         pages looking for known errors and report those (such as Mason or
-         PHP errors), and will report if a page can not be read (by either
-         returning a 404, 500 or similar).
-
-         Since you may often want SWEC to be logged in on your site, you have
-         to be careful.  When logged in, SWEC will still click on all links
-         it finds, including things like 'join group' or 'delete account'
-         (though it has some magic trying to avoid the latter).  Therefore it
-         is highly recommended that when you run SWEC as a logged-in user on
-         a site, use a test server, not the live one.
-
-         Running SWEC on a live site without being logged in as a user is
-         perfectly fine, it won't do anything a normal crawler wouldn't do
-         (well, not exactly true, SWEC will ignore robots.txt).
-      '';
-
-    license = lib.licenses.gpl3Plus;
-
-    maintainers = [ ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/telepresence/default.nix b/nixpkgs/pkgs/tools/networking/telepresence/default.nix
index 5d1966114b78..090357fa6e61 100644
--- a/nixpkgs/pkgs/tools/networking/telepresence/default.nix
+++ b/nixpkgs/pkgs/tools/networking/telepresence/default.nix
@@ -3,32 +3,18 @@
 , iptables, bash }:
 
 let
-  sshuttle-telepresence =
-    let
-      sshuttleTelepresenceRev = "32226ff14d98d58ccad2a699e10cdfa5d86d6269";
-    in
-      lib.overrideDerivation sshuttle (p: {
-        src = fetchFromGitHub {
-          owner = "datawire";
-          repo = "sshuttle";
-          rev = sshuttleTelepresenceRev;
-          sha256 = "1lp5b0h9v59igf8wybjn42w6ajw08blhiqmjwp4r7qnvmvmyaxhh";
-        };
-
-        SETUPTOOLS_SCM_PRETEND_VERSION="${sshuttleTelepresenceRev}";
-
-        postPatch = "rm sshuttle/tests/client/test_methods_nat.py";
-        postInstall = "mv $out/bin/sshuttle $out/bin/sshuttle-telepresence";
-      });
+  sshuttle-telepresence = lib.overrideDerivation sshuttle (p: {
+    postInstall = "mv $out/bin/sshuttle $out/bin/sshuttle-telepresence";
+  });
 in pythonPackages.buildPythonPackage rec {
   pname = "telepresence";
-  version = "0.108";
+  version = "0.109";
 
   src = fetchFromGitHub {
     owner = "telepresenceio";
     repo = "telepresence";
     rev = version;
-    sha256 = "6V0sM0Z+2xNDgL0wIzJOdaUp2Ol4ejNTk9K/pllVa7g=";
+    sha256 = "1ccc8bzcdxp6rh6llk7grcnmyc05fq7dz5w0mifdzjv3a473hsky";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/networking/tnat64/default.nix b/nixpkgs/pkgs/tools/networking/tnat64/default.nix
index 9b1c2c3aec11..d22f2b98efd6 100644
--- a/nixpkgs/pkgs/tools/networking/tnat64/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tnat64/default.nix
@@ -2,20 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "tnat64";
-  version = "0.05";
+  version = "0.06";
 
   src = fetchFromGitHub {
     owner = "andrewshadura";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "07lmzidbrd3aahk2jvv93cic9gf36pwmgfd63gmy6hjkxf9a6fw9";
+    sha256 = "191j1fpr3bw6fk48npl99z7iq6m1g33f15xk5cay1gnk5f46i2j6";
   };
 
-  postPatch = ''
-    # Fix usage of deprecated sys_errlist
-    substituteInPlace tnat64.c --replace 'sys_errlist[errno]' 'strerror(errno)'
-  '';
-
   configureFlags = [ "--libdir=$(out)/lib" ];
   nativeBuildInputs = [ autoreconfHook ];
 
diff --git a/nixpkgs/pkgs/tools/networking/unbound/default.nix b/nixpkgs/pkgs/tools/networking/unbound/default.nix
index a24ac1f38888..393756a9b2ab 100644
--- a/nixpkgs/pkgs/tools/networking/unbound/default.nix
+++ b/nixpkgs/pkgs/tools/networking/unbound/default.nix
@@ -5,9 +5,13 @@
 , nettle
 , expat
 , libevent
+, libsodium
+, protobufc
+, hiredis
 , dns-root-data
 , pkg-config
 , makeWrapper
+, symlinkJoin
   #
   # By default unbound will not be built with systemd support. Unbound is a very
   # commmon dependency. The transitive dependency closure of systemd also
@@ -21,6 +25,11 @@
 , systemd ? null
   # optionally support DNS-over-HTTPS as a server
 , withDoH ? false
+, withECS ? false
+, withDNSCrypt ? false
+, withDNSTAP ? false
+, withTFO ? false
+, withRedis ? false
 , libnghttp2
 }:
 
@@ -57,8 +66,24 @@ stdenv.mkDerivation rec {
     "--enable-systemd"
   ] ++ lib.optionals withDoH [
     "--with-libnghttp2=${libnghttp2.dev}"
+  ] ++ lib.optionals withECS [
+    "--enable-subnet"
+  ] ++ lib.optionals withDNSCrypt [
+    "--enable-dnscrypt"
+    "--with-libsodium=${symlinkJoin { name = "libsodium-full"; paths = [ libsodium.dev libsodium.out ]; }}"
+  ] ++ lib.optionals withDNSTAP [
+    "--enable-dnstap"
+    "--with-protobuf-c=${protobufc}"
+  ] ++ lib.optionals withTFO [
+    "--enable-tfo-client"
+    "--enable-tfo-server"
+  ] ++ lib.optionals withRedis [
+    "--enable-cachedb"
+    "--with-libhiredis=${hiredis}"
   ];
 
+  PROTOC_C = if withDNSTAP then "${protobufc}/bin/protoc-c" else null;
+
   # Remove references to compile-time dependencies that are included in the configure flags
   postConfigure = let
     inherit (builtins) storeDir;
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/default.nix b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
index 719e1d9b44f3..b37b98d7efc6 100644
--- a/nixpkgs/pkgs/tools/networking/v2ray/default.nix
+++ b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
@@ -3,22 +3,22 @@
 }:
 
 let
-  version = "4.42.1";
+  version = "4.43.0";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "19xkbkzv9bgj68kmvrxsdqzx40vlyvzl8nn2n19hwwmkrazqgf04";
+    sha256 = "sha256-kOTQQUbaRQBABopU0x36j8Qre+Ko0UecUDNN8dvFni8=";
   };
 
-  vendorSha256 = "sha256-N1DYV0zSzCepkRMbcQUHqjITvmGahYKNn1uhL+csMSc=";
+  vendorSha256 = "sha256-7zSIAKcMwtaTvokKuLJ8orqJc2jGuaw5FglEJadeZ9I=";
 
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202109102251";
-      geoipSha256 = "0qh8yf0m6sna3z5i2plbgw61q08qcfcx0l1z5bmwxijagf1yb7fa";
+      geoipRev = "202109300030";
+      geoipSha256 = "1d2z3ljs0v9rd10cfj8cpiijz3ikkplsymr44f7y90g4dmniwqh0";
     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 = "20210910080130";
-      geositeSha256 = "0d6bzrs5mhca59j1w73kqw10jqkwic9ywm3jvszpd077qwh64dwn";
+      geositeRev = "20211001023210";
+      geositeSha256 = "02d55i1pdndwvmi4v42hnncjng517s0k06gr3yn5krnj2qfjli2w";
     in fetchurl {
       url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
diff --git a/nixpkgs/pkgs/tools/networking/vopono/default.nix b/nixpkgs/pkgs/tools/networking/vopono/default.nix
new file mode 100644
index 000000000000..b90f405ec684
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/vopono/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, fetchCrate
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "vopono";
+  version = "0.8.6";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "0dsyav755mggnsybj7iwvdqbqzz0gfd3j9vh0hmg5b7pbffanzvy";
+  };
+
+  cargoHash = "sha256:187mi36dgr2f1klqclci175zqgyrm0b6awrcnav63vira7hqz076";
+
+  meta = with lib; {
+    description = "Run applications through VPN connections in network namespaces";
+    homepage = "https://github.com/jamesmcm/vopono";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/wget2/default.nix b/nixpkgs/pkgs/tools/networking/wget2/default.nix
index 3fd40f8a7bad..8b2c77cd0ea1 100644
--- a/nixpkgs/pkgs/tools/networking/wget2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wget2/default.nix
@@ -6,9 +6,7 @@
 , autoreconfHook
 , flex
 , gnulib
-, lzip
 , pkg-config
-, python3
 , texinfo
   # libraries
 , brotli
@@ -17,49 +15,71 @@
 , libhsts
 , libidn2
 , libpsl
-, xz
+, lzip
 , nghttp2
-, sslSupport ? true
 , openssl
 , pcre2
+, sslSupport ? true
+, xz
 , zlib
 , zstd
 }:
 
 stdenv.mkDerivation rec {
   pname = "wget2";
-  version = "1.99.2";
+  version = "2.0.0";
+
+  outputs = [ "out" "lib" "dev" ];
 
   src = fetchFromGitLab {
     owner = "gnuwget";
     repo = pname;
-    rev = version;
-    sha256 = "1gws8y3z8xzi46c48n7jb162mr3ar4c34s7yy8kjcs14yzq951qz";
+    rev = "v${version}";
+    sha256 = "07zs2x2k62836l0arzc333j96yjpwal1v4mr8j99x6qxgmmssrbj";
   };
 
   patches = [
     (fetchpatch {
-      name = "fix-autotools-2.70.patch";
-      url = "https://gitlab.com/gnuwget/wget2/-/commit/580af869093cfda6bc8a9d5901850354a16b3666.patch";
-      sha256 = "1x6wq4wxvvy6174d52qrhxkcgmv366f8smxyki49zb6rs4gqhskd";
+      name = "fix-bashism-in-configure-ac.patch";
+      url = "https://gitlab.com/gnuwget/wget2/-/commit/da9788f5d62b89ba796393d9bc496b1d8d7a7b30.patch";
+      sha256 = "0bn3vkgyknks7jzs5722s2c4qlx7k5lwfiyz204bi42v1m28s1a5";
     })
     (fetchpatch {
-      name = "update-potfiles-for-gnulib-2020-11-28.patch";
-      url = "https://gitlab.com/gnuwget/wget2/-/commit/368deb9fcca0c281f9c76333607cc878c3945ad0.patch";
-      sha256 = "1qsz8hbzbgg14wikxsbjjlq0cp3jw4pajbaz9wdn6ny617hdvi8y";
+      name = "fix-double-quotes-in-configure-ac.patch";
+      url = "https://gitlab.com/gnuwget/wget2/-/commit/574c8ae08dfd8949da039879d85899123d31ab1d.patch";
+      sha256 = "14rfmij5w3bvj0fnkkkrxg0lfw3vgwiyvbkal3nqhgb0mlhlmd47";
     })
   ];
 
   # wget2_noinstall contains forbidden reference to /build/
   postPatch = ''
     substituteInPlace src/Makefile.am \
-      --replace 'bin_PROGRAMS = wget2 wget2_noinstall' 'bin_PROGRAMS = wget2'
+      --replace "bin_PROGRAMS = wget2 wget2_noinstall" "bin_PROGRAMS = wget2"
   '';
 
-  nativeBuildInputs = [ autoreconfHook flex lzip pkg-config python3 texinfo ];
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    flex
+    lzip
+    pkg-config
+    texinfo
+  ];
 
-  buildInputs = [ brotli bzip2 gpgme libhsts libidn2 libpsl xz nghttp2 pcre2 zlib zstd ]
-    ++ lib.optional sslSupport openssl;
+  buildInputs = [
+    brotli
+    bzip2
+    gpgme
+    libhsts
+    libidn2
+    libpsl
+    nghttp2
+    pcre2
+    xz
+    zlib
+    zstd
+  ] ++ lib.optional sslSupport openssl;
 
   # TODO: include translation files
   autoreconfPhase = ''
@@ -69,20 +89,15 @@ stdenv.mkDerivation rec {
     cp -r ${gnulib} gnulib
     chmod -R u+w gnulib/{build-aux,lib}
 
-    # fix bashisms can be removed when https://gitlab.com/gnuwget/wget2/-/commit/c9499dcf2f58983d03e659e2a1a7f21225141edf is in the release
-    sed 's|==|=|g' -i configure.ac
-
     ./bootstrap --no-git --gnulib-srcdir=gnulib --skip-po
   '';
 
   configureFlags = [
-    "--disable-static"
+    (lib.enableFeature false "shared")
     # TODO: https://gitlab.com/gnuwget/wget2/-/issues/537
     (lib.withFeatureAs sslSupport "ssl" "openssl")
   ];
 
-  outputs = [ "out" "lib" "dev" ];
-
   meta = with lib; {
     description = "successor of GNU Wget, a file and recursive website downloader.";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
index 874205f592bd..bb17691cbad4 100644
--- a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
+++ b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
@@ -13,14 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-QQN8ePOQ7DT9KeuY4ohFuPtocuinh3Y3us6QMnCQ4gc=";
 
-  doCheck = false;
-
   # Change the default location of the management socket on Linux
   # systems so that the yggdrasil system service unit does not have to
   # be granted write permission to /run.
   patches = [ ./change-runtime-dir.patch ];
 
-  subPackages = [ "cmd/yggdrasil" "cmd/yggdrasilctl" ];
+  subPackages = [ "cmd/genkeys" "cmd/yggdrasil" "cmd/yggdrasilctl" ];
 
   ldflags = [
     "-X github.com/yggdrasil-network/yggdrasil-go/src/version.buildVersion=${version}"
diff --git a/nixpkgs/pkgs/tools/networking/ytcc/default.nix b/nixpkgs/pkgs/tools/networking/ytcc/default.nix
index 38bb5c06607d..1c83acc2a186 100644
--- a/nixpkgs/pkgs/tools/networking/ytcc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ytcc/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
-  version = "2.3.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "1q0w3b7r93416s28qra608n0d7cjh95nwkzgg23z5hp5sq3w3izr";
+    sha256 = "1w2frcy51kwsvd486awhpl5kkm11zj1nw3nnv9337316gfs213nw";
   };
 
   nativeBuildInputs = [ gettext ];