about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/admin/balena-cli/default.nix6
-rw-r--r--pkgs/tools/admin/fits-cloudctl/default.nix12
-rw-r--r--pkgs/tools/admin/gimme-aws-creds/default.nix4
-rw-r--r--pkgs/tools/audio/pulsemixer/default.nix2
-rw-r--r--pkgs/tools/backup/borgmatic/default.nix13
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/default.nix6
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/generic.nix8
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/innovation.nix15
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/lts.nix (renamed from pkgs/tools/backup/percona-xtrabackup/8_0.nix)0
-rw-r--r--pkgs/tools/games/joystickwake/default.nix4
-rw-r--r--pkgs/tools/inputmethods/fusuma/Gemfile19
-rw-r--r--pkgs/tools/inputmethods/fusuma/Gemfile.lock32
-rw-r--r--pkgs/tools/inputmethods/fusuma/default.nix24
-rw-r--r--pkgs/tools/inputmethods/fusuma/gemset.nix87
-rw-r--r--pkgs/tools/misc/cyberchef/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/dtool/default.nix4
-rw-r--r--pkgs/tools/misc/dtool/rustc-serialize-fix.patch16
-rw-r--r--pkgs/tools/misc/flowgger/default.nix6
-rw-r--r--pkgs/tools/misc/grizzly/default.nix6
-rw-r--r--pkgs/tools/misc/lektor/default.nix31
-rw-r--r--pkgs/tools/misc/os-prober/default.nix2
-rw-r--r--pkgs/tools/misc/pspg/default.nix4
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/misc/tbls/default.nix4
-rw-r--r--pkgs/tools/misc/wagyu/default.nix10
-rw-r--r--pkgs/tools/misc/wagyu/fix-rustc-serialize-version.patch15
-rw-r--r--pkgs/tools/misc/wakatime/default.nix50
-rw-r--r--pkgs/tools/networking/bgpq4/default.nix4
-rw-r--r--pkgs/tools/networking/eternal-terminal/default.nix7
-rw-r--r--pkgs/tools/networking/goflow2/default.nix31
-rw-r--r--pkgs/tools/networking/minio-client/default.nix4
-rw-r--r--pkgs/tools/networking/netbird/default.nix4
-rw-r--r--pkgs/tools/networking/networkmanager/l2tp/default.nix4
-rw-r--r--pkgs/tools/networking/nzbget/default.nix4
-rw-r--r--pkgs/tools/networking/openssh/common.nix7
-rw-r--r--pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch45
-rw-r--r--pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch41
-rw-r--r--pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch29
-rw-r--r--pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch34
-rw-r--r--pkgs/tools/networking/persepolis/default.nix92
-rw-r--r--pkgs/tools/networking/speedtest-go/default.nix4
-rw-r--r--pkgs/tools/networking/swagger-codegen3/default.nix4
-rw-r--r--pkgs/tools/networking/trurl/default.nix4
-rw-r--r--pkgs/tools/nix/npins/default.nix2
-rw-r--r--pkgs/tools/nix/npins/sources.json8
-rw-r--r--pkgs/tools/security/aespipe/default.nix4
-rw-r--r--pkgs/tools/security/cnspec/default.nix6
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/ghidra/build.nix8
-rw-r--r--pkgs/tools/security/rnp/default.nix7
-rw-r--r--pkgs/tools/security/rnp/sexp_sexpp_rename.patch50
-rw-r--r--pkgs/tools/security/rnp/unbundle-sexpp.patch38
-rw-r--r--pkgs/tools/security/sigma-cli/default.nix27
-rw-r--r--pkgs/tools/security/ssh-mitm/default.nix55
-rw-r--r--pkgs/tools/security/trufflehog/default.nix6
-rw-r--r--pkgs/tools/system/journalwatch/default.nix3
-rw-r--r--pkgs/tools/system/openipmi/default.nix4
-rw-r--r--pkgs/tools/system/runitor/default.nix4
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/typesetting/hayagriva/default.nix6
-rw-r--r--pkgs/tools/typesetting/pulldown-cmark/default.nix6
-rw-r--r--pkgs/tools/video/go2rtc/default.nix4
63 files changed, 249 insertions, 709 deletions
diff --git a/pkgs/tools/admin/balena-cli/default.nix b/pkgs/tools/admin/balena-cli/default.nix
index f4e681f801035..5b45b78835f08 100644
--- a/pkgs/tools/admin/balena-cli/default.nix
+++ b/pkgs/tools/admin/balena-cli/default.nix
@@ -18,16 +18,16 @@ let
   };
 in buildNpmPackage' rec {
   pname = "balena-cli";
-  version = "18.2.2";
+  version = "18.2.3";
 
   src = fetchFromGitHub {
     owner = "balena-io";
     repo = "balena-cli";
     rev = "v${version}";
-    hash = "sha256-3WJ8yxSwvYOs8LaUBgqALyxY1cMiHusBPzKbSeAxrCw=";
+    hash = "sha256-TjwiNQqGZbezZu3Ul5IIug5vVNhx1op+ZRXQlxnurVI=";
   };
 
-  npmDepsHash = "sha256-sHjz0VWVM6x5iAbG9e6x4F6Gx2OpS94hDMvirExDt0M=";
+  npmDepsHash = "sha256-OQ8i76cKFbdEH6Fj41ifAeGyIMAACOgo7dMxByULJMk=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/tools/admin/fits-cloudctl/default.nix b/pkgs/tools/admin/fits-cloudctl/default.nix
index 208107856896c..1cc452f6762e9 100644
--- a/pkgs/tools/admin/fits-cloudctl/default.nix
+++ b/pkgs/tools/admin/fits-cloudctl/default.nix
@@ -5,7 +5,10 @@
 
 buildGoModule rec {
   pname = "fits-cloudctl";
-  version = "0.12.19";
+  version = "0.12.19"; # also update these 3 vars:
+  gitversion = "tags/v0.12.19-0-g0a0d89a"; # git describe --long --all
+  gitsha = "0a0d89a8";                     # git rev-parse --short=8 HEAD
+  gittime = "2024-05-15T17:34:46+02:00";   # date --iso-8601=seconds
 
   src = fetchFromGitHub {
     owner = "fi-ts";
@@ -16,6 +19,13 @@ buildGoModule rec {
 
   vendorHash = "sha256-mK10DxDUrEkCdumq6MM6h7B8C8P1hGE466ko3yj1kto=";
 
+  ldflags = [
+    "-X github.com/metal-stack/v.Version=${version}"
+    "-X github.com/metal-stack/v.Revision=${gitversion}"
+    "-X github.com/metal-stack/v.GitSHA1=${gitsha}"
+    "-X github.com/metal-stack/v.BuildDate=${gittime}"
+  ];
+
   meta = with lib; {
     description = "Command-line client for FI-TS Finance Cloud Native services";
     homepage = "https://github.com/fi-ts/cloudctl";
diff --git a/pkgs/tools/admin/gimme-aws-creds/default.nix b/pkgs/tools/admin/gimme-aws-creds/default.nix
index a1e8d594448e9..b2ac36ef51f1e 100644
--- a/pkgs/tools/admin/gimme-aws-creds/default.nix
+++ b/pkgs/tools/admin/gimme-aws-creds/default.nix
@@ -25,14 +25,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "gimme-aws-creds";
-  version = "2.8.1.1"; # N.B: if you change this, check if overrides are still up-to-date
+  version = "2.8.2"; # N.B: if you change this, check if overrides are still up-to-date
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Nike-Inc";
     repo = "gimme-aws-creds";
     rev = "v${version}";
-    hash = "sha256-vnTMFZgv2tW7b4Ga6B9TZcE/xTwPUUGZ3WP943FPpEc=";
+    hash = "sha256-fsFYcfbLeYV6tpOGgNrFmYjcUAmdsx5zwUbvcctwFVs=";
   };
 
   nativeBuildInputs = with python.pkgs; [
diff --git a/pkgs/tools/audio/pulsemixer/default.nix b/pkgs/tools/audio/pulsemixer/default.nix
index e4204321bc4d4..f38a741b66822 100644
--- a/pkgs/tools/audio/pulsemixer/default.nix
+++ b/pkgs/tools/audio/pulsemixer/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     substituteInPlace "$out/bin/pulsemixer" \
-      --replace "libpulse.so.0" "$libpulseaudio/lib/libpulse.so.0"
+      --replace-fail "libpulse.so.0" "$libpulseaudio/lib/libpulse${stdenv.hostPlatform.extensions.sharedLibrary}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/backup/borgmatic/default.nix b/pkgs/tools/backup/borgmatic/default.nix
index 1845ea99def96..dba8cf36b3a02 100644
--- a/pkgs/tools/backup/borgmatic/default.nix
+++ b/pkgs/tools/backup/borgmatic/default.nix
@@ -3,6 +3,7 @@
 , borgbackup
 , coreutils
 , python3Packages
+, fetchpatch
 , fetchPypi
 , systemd
 , enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
@@ -13,13 +14,21 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "borgmatic";
-  version = "1.8.10";
+  version = "1.8.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-hR2q49gCD9BZsk+jQ90EfKkkq7mX9qAO+gRsvdnuDec=";
+    sha256 = "sha256-Sgj15etVx8nnk0AZv+GzWscSqfqdC7+1wBE6gF/0aL0=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "prevent-network-access-in-tests.patch";
+      url = "https://projects.torsion.org/borgmatic-collective/borgmatic/pulls/869.patch";
+      hash = "sha256-jOo3LjgvJtyTaRKZX1wfnKNdw975hVekBkKfK4mJFAc=";
+    })
+  ];
+
   nativeCheckInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ] ++ passthru.optional-dependencies.apprise;
 
   # - test_borgmatic_version_matches_news_version
diff --git a/pkgs/tools/backup/percona-xtrabackup/default.nix b/pkgs/tools/backup/percona-xtrabackup/default.nix
new file mode 100644
index 0000000000000..f3466dc9f165f
--- /dev/null
+++ b/pkgs/tools/backup/percona-xtrabackup/default.nix
@@ -0,0 +1,6 @@
+pkgs: {
+  percona-xtrabackup_lts = pkgs.callPackage ./lts.nix {
+    boost = pkgs.boost177;
+  };
+  percona-xtrabackup_innovation = pkgs.callPackage ./innovation.nix { };
+}
diff --git a/pkgs/tools/backup/percona-xtrabackup/generic.nix b/pkgs/tools/backup/percona-xtrabackup/generic.nix
index 112a3f556204a..6a6906cba33c0 100644
--- a/pkgs/tools/backup/percona-xtrabackup/generic.nix
+++ b/pkgs/tools/backup/percona-xtrabackup/generic.nix
@@ -5,14 +5,14 @@
 , version, hash, fetchSubmodules ? false, extraPatches ? [], extraPostInstall ? "", ...
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "percona-xtrabackup";
   inherit version;
 
   src = fetchFromGitHub {
     owner = "percona";
     repo = "percona-xtrabackup";
-    rev = "${pname}-${version}";
+    rev = "${finalAttrs.pname}-${finalAttrs.version}";
     inherit hash fetchSubmodules;
   };
 
@@ -47,6 +47,8 @@ stdenv.mkDerivation rec {
     rm -r "$out"/lib/plugin/debug
   '' + extraPostInstall;
 
+  passthru.mysqlVersion = lib.versions.majorMinor finalAttrs.version;
+
   meta = with lib; {
     description = "Non-blocking backup tool for MySQL";
     homepage = "http://www.percona.com/software/percona-xtrabackup";
@@ -54,4 +56,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = teams.flyingcircus.members ++ [ maintainers.izorkin ];
   };
-}
+})
diff --git a/pkgs/tools/backup/percona-xtrabackup/innovation.nix b/pkgs/tools/backup/percona-xtrabackup/innovation.nix
new file mode 100644
index 0000000000000..003df8aa6b505
--- /dev/null
+++ b/pkgs/tools/backup/percona-xtrabackup/innovation.nix
@@ -0,0 +1,15 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "8.3.0-1";
+  hash = "sha256-qZM2AFhpwrN0BR+DdozYn7s2I+c1tWpD5QvppTEfGEY=";
+
+  # includes https://github.com/Percona-Lab/libkmip.git
+  fetchSubmodules = true;
+
+  extraPatches = [
+  ];
+
+  extraPostInstall = ''
+  '';
+})
diff --git a/pkgs/tools/backup/percona-xtrabackup/8_0.nix b/pkgs/tools/backup/percona-xtrabackup/lts.nix
index fbb4c045d776f..fbb4c045d776f 100644
--- a/pkgs/tools/backup/percona-xtrabackup/8_0.nix
+++ b/pkgs/tools/backup/percona-xtrabackup/lts.nix
diff --git a/pkgs/tools/games/joystickwake/default.nix b/pkgs/tools/games/joystickwake/default.nix
index e321daf2dd8fd..6ba552c758528 100644
--- a/pkgs/tools/games/joystickwake/default.nix
+++ b/pkgs/tools/games/joystickwake/default.nix
@@ -1,13 +1,13 @@
 { lib, python3, fetchFromGitHub }:
 python3.pkgs.buildPythonApplication rec {
   pname = "joystickwake";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "foresto";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-qf1owRdBGyU3q9ZJAzDEcMlnHfeUMSXga4v6QXdxXO0=";
+    sha256 = "sha256-vSvIpbcDIbRyitVjx3wNSxt5vTIZ9/NPWokOJt0p6oQ=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [ dbus-next pyudev xlib ];
diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile b/pkgs/tools/inputmethods/fusuma/Gemfile
deleted file mode 100644
index 7cee961df4a06..0000000000000
--- a/pkgs/tools/inputmethods/fusuma/Gemfile
+++ /dev/null
@@ -1,19 +0,0 @@
-source 'https://rubygems.org'
-gem "fusuma", ">=3.0.0"
-gem "fusuma-plugin-appmatcher"
-gem "fusuma-plugin-keypress"
-gem "fusuma-plugin-sendkey"
-gem "fusuma-plugin-wmctrl"
-
-# I've not activated the following plugins for the reasons given below.
-
-# tap has been archived by upstream
-# gem "fusuma-plugin-tap"
-
-# touchscreen needs specific h/w support I don't have access to, so I can't confirm
-# if it's problem free.  A quick check didn't reveal any problems.
-#gem "fusuma-plugin-touchscreen"
-
-# thumbsense pulls in remap, and at best remap requires further configuration to allow the use access to event devices.
-#gem "fusuma-plugin-thumbsense"
-#gem "fusuma-plugin-remap"
diff --git a/pkgs/tools/inputmethods/fusuma/Gemfile.lock b/pkgs/tools/inputmethods/fusuma/Gemfile.lock
deleted file mode 100644
index 283d4c3fa5e1b..0000000000000
--- a/pkgs/tools/inputmethods/fusuma/Gemfile.lock
+++ /dev/null
@@ -1,32 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    fusuma (3.3.1)
-    fusuma-plugin-appmatcher (0.6.1)
-      fusuma (>= 3.0)
-      rexml
-      ruby-dbus
-    fusuma-plugin-keypress (0.9.0)
-      fusuma (>= 3.1)
-    fusuma-plugin-sendkey (0.10.1)
-      fusuma (>= 3.1)
-      revdev
-    fusuma-plugin-wmctrl (1.3.1)
-      fusuma (>= 3.1)
-    revdev (0.2.1)
-    rexml (3.2.6)
-    ruby-dbus (0.23.1)
-      rexml
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  fusuma (>= 3.0.0)
-  fusuma-plugin-appmatcher
-  fusuma-plugin-keypress
-  fusuma-plugin-sendkey
-  fusuma-plugin-wmctrl
-
-BUNDLED WITH
-   2.4.22
diff --git a/pkgs/tools/inputmethods/fusuma/default.nix b/pkgs/tools/inputmethods/fusuma/default.nix
deleted file mode 100644
index 0622ce699f8c2..0000000000000
--- a/pkgs/tools/inputmethods/fusuma/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, bundlerApp, bundlerUpdateScript, makeWrapper, gnugrep, libinput }:
-
-bundlerApp {
-  pname = "fusuma";
-  gemdir = ./.;
-  exes = [ "fusuma" ];
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  postBuild = ''
-    wrapProgram "$out/bin/fusuma" \
-      --prefix PATH : ${lib.makeBinPath [ gnugrep libinput ]}
-  '';
-
-  passthru.updateScript = bundlerUpdateScript "fusuma";
-
-  meta = with lib; {
-    description = "Multitouch gestures with libinput driver on X11, Linux";
-    homepage = "https://github.com/iberianpig/fusuma";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nicknovitski Br1ght0ne ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/inputmethods/fusuma/gemset.nix b/pkgs/tools/inputmethods/fusuma/gemset.nix
deleted file mode 100644
index 47d5f62159957..0000000000000
--- a/pkgs/tools/inputmethods/fusuma/gemset.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{
-  fusuma = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "13pbvmkjriq6myynv4gfismiqa9y7bfbvvrfcv25670l4zyiakhm";
-      type = "gem";
-    };
-    version = "3.3.1";
-  };
-  fusuma-plugin-appmatcher = {
-    dependencies = ["fusuma" "rexml" "ruby-dbus"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1qkir4a657znq0fnx91lik7bw5kyq54jwhiy2zrlplln78xs5yai";
-      type = "gem";
-    };
-    version = "0.6.1";
-  };
-  fusuma-plugin-keypress = {
-    dependencies = ["fusuma"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0as95haqa943i740xs7czcaibb8lvy4gn6kr8nbldq20nly64bih";
-      type = "gem";
-    };
-    version = "0.9.0";
-  };
-  fusuma-plugin-sendkey = {
-    dependencies = ["fusuma" "revdev"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0rdpxq4nanw85x1djdanwnz46b19fr46kdlkkgbxa4dnjk0zx4pp";
-      type = "gem";
-    };
-    version = "0.10.1";
-  };
-  fusuma-plugin-wmctrl = {
-    dependencies = ["fusuma"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1rgz1d6ahg5i9sr4z2kab5qk7pm3rm0h7r1vwkygi75rv2r3jy86";
-      type = "gem";
-    };
-    version = "1.3.1";
-  };
-  revdev = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1b6zg6vqlaik13fqxxcxhd4qnkfgdjnl4wy3a1q67281bl0qpsz9";
-      type = "gem";
-    };
-    version = "0.2.1";
-  };
-  rexml = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
-      type = "gem";
-    };
-    version = "3.2.6";
-  };
-  ruby-dbus = {
-    dependencies = ["rexml"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0hf9y5lbi1xcadc2fw87wlif75s1359c2wwlvvd0gag7cq5dm0pm";
-      type = "gem";
-    };
-    version = "0.23.1";
-  };
-}
diff --git a/pkgs/tools/misc/cyberchef/default.nix b/pkgs/tools/misc/cyberchef/default.nix
index ba1a609c96825..f0a20fe9687f1 100644
--- a/pkgs/tools/misc/cyberchef/default.nix
+++ b/pkgs/tools/misc/cyberchef/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cyberchef";
-  version = "10.18.3";
+  version = "10.18.6";
 
   src = fetchzip {
     url = "https://github.com/gchq/CyberChef/releases/download/v${version}/CyberChef_v${version}.zip";
-    sha256 = "sha256-HLYcKF+DCj5QA+0ZJwRpC+iTN5z/S249UnQirNJMLF4=";
+    sha256 = "sha256-LbauIeDUqfL1ChZTThq7CJ++yNiuKaa773jSdmxorf8=";
     stripRoot = false;
   };
 
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index f49ded27dc0fa..7bf5b4586e0d5 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -96,11 +96,11 @@ in
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python.pkgs.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "266";
+  version = "267";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    hash = "sha256-whEFBUFl8yFsZOtOWHbDm6Tx6i6UJYmQ5Fz7svLqGgs=";
+    hash = "sha256-eU5n39kwITCGKXFu7ESAs9bZM6SPxey0tmDLd86zRvE=";
   };
 
   outputs = [
diff --git a/pkgs/tools/misc/dtool/default.nix b/pkgs/tools/misc/dtool/default.nix
index 9cf22a9da39f3..8fdb2f533d47f 100644
--- a/pkgs/tools/misc/dtool/default.nix
+++ b/pkgs/tools/misc/dtool/default.nix
@@ -16,11 +16,13 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-m4H+ANwEbK6vGW3oIVZqnqvMiAKxNJf2TLIGh/G6AU4=";
   };
 
-  cargoHash = "sha256-r8r3f4yKMQgjtB3j4qE7cqQL18nIqAGPO5RsFErqh2c=";
+  cargoHash = "sha256-o5Xvc0tnoUgfp5k7EqVuEH9Zyo3C+A+mVqPhMtZCYKw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
   ];
+  # FIXME: remove patch when upstream version of rustc-serialize is updated
+  cargoPatches = [ ./rustc-serialize-fix.patch ];
 
   checkType = "debug";
 
diff --git a/pkgs/tools/misc/dtool/rustc-serialize-fix.patch b/pkgs/tools/misc/dtool/rustc-serialize-fix.patch
new file mode 100644
index 0000000000000..8d0327e8a4578
--- /dev/null
+++ b/pkgs/tools/misc/dtool/rustc-serialize-fix.patch
@@ -0,0 +1,16 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index b1cc23695b30..ffdeb1c90618 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -996,9 +996,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "rustc-serialize"
+-version = "0.3.24"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
++checksum = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401"
+ 
+ [[package]]
+ name = "rustix"
diff --git a/pkgs/tools/misc/flowgger/default.nix b/pkgs/tools/misc/flowgger/default.nix
index c9517043adc96..8a37717257eb3 100644
--- a/pkgs/tools/misc/flowgger/default.nix
+++ b/pkgs/tools/misc/flowgger/default.nix
@@ -10,14 +10,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "flowgger";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-PRlcfSVfQWt+rQEJjblY7/AMrjhGYO2/G7EX60aGApA=";
+    hash = "sha256-eybahv1A/AIpAXGj6/md8k+b9fu9gSchU16fnAWZP2s=";
   };
 
-  cargoHash = "sha256-hp2LrEVWo0gk95dPROqVcHEEG5N9fWms0mZkY9QILg0=";
+  cargoHash = "sha256-DZGyX3UDqCjB5NwCXcR8b9pXdq8qacd3nkqGp6vYb+U=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/misc/grizzly/default.nix b/pkgs/tools/misc/grizzly/default.nix
index ffe6a4352bc0d..ed5c67d95c245 100644
--- a/pkgs/tools/misc/grizzly/default.nix
+++ b/pkgs/tools/misc/grizzly/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "grizzly";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IM7NrykF2Fiudijo5q0I/FewvS/rs3lzSpvzc6dl5Ds=";
+    hash = "sha256-UOUBck1GrG3ijUpE3jPaFcC/KtlObaR38u3St8NToTk=";
   };
 
-  vendorHash = "sha256-GrzMfOwNEjVQd1uCijcsfdIDO6UPzuHEDnJExupB9Jg=";
+  vendorHash = "sha256-lioFmaFzqaxN1wnYJaoHA54to1xGZjaLGaqAFIfTaTs=";
 
   subPackages = [ "cmd/grr" ];
 
diff --git a/pkgs/tools/misc/lektor/default.nix b/pkgs/tools/misc/lektor/default.nix
index aef55ffb9b1f6..129e5e41851c1 100644
--- a/pkgs/tools/misc/lektor/default.nix
+++ b/pkgs/tools/misc/lektor/default.nix
@@ -23,19 +23,23 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "lektor";
-  version = "3.4.0b8";
+  version = "3.4.0b12";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "lektor";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-FtmRW4AS11zAX2jvGY8XTsPrN3mhHkIWoFY7sXmqG/U=";
+    # fix for case-insensitive filesystems
+    postFetch = ''
+      rm -f $out/tests/demo-project/content/icc-profile-test/{LICENSE,license}.txt
+    '';
+    hash = "sha256-y0/fYuiIB/O5tsYKjzOPnCafOIZCn4Z5OITPMcnHd/M=";
   };
 
   npmDeps = fetchNpmDeps {
-    src = "${src}/frontend";
-    hash = "sha256-Z7LP9rrVSzKoLITUarsnRbrhIw7W7TZSZUgV/OT+m0M=";
+    src = "${src}/${npmRoot}";
+    hash = "sha256-LXe5/u4nAGig8RSu6r8Qsr3p3Od8eoMxukW8Z4HkJ44=";
   };
 
   npmRoot = "frontend";
@@ -50,8 +54,6 @@ python.pkgs.buildPythonApplication rec {
   propagatedBuildInputs = with python.pkgs; [
     babel
     click
-    exifread
-    filetype
     flask
     inifile
     jinja2
@@ -71,11 +73,6 @@ python.pkgs.buildPythonApplication rec {
     pytest-click
     pytest-mock
     pytestCheckHook
-    pythonRelaxDepsHook
-  ];
-
-  pythonRelaxDeps = [
-    "werkzeug"
   ];
 
   postInstall = ''
@@ -90,16 +87,18 @@ python.pkgs.buildPythonApplication rec {
     # Tests require network access
     "test_path_installed_plugin_is_none"
     "test_VirtualEnv_run_pip_install"
-    # expects FHS paths
-    "test_VirtualEnv_executable"
   ];
 
-  meta = with lib; {
+  postCheck = ''
+    make test-js
+  '';
+
+  meta = {
     description = "A static content management system";
     homepage = "https://www.getlektor.com/";
     changelog = "https://github.com/lektor/lektor/blob/v${version}/CHANGES.md";
-    license = licenses.bsd0;
+    license = lib.licenses.bsd3;
     mainProgram = "lektor";
-    maintainers = with maintainers; [ ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/tools/misc/os-prober/default.nix b/pkgs/tools/misc/os-prober/default.nix
index 5d15b7077385b..f48aae8e6df5e 100644
--- a/pkgs/tools/misc/os-prober/default.nix
+++ b/pkgs/tools/misc/os-prober/default.nix
@@ -68,6 +68,8 @@ stdenv.mkDerivation rec {
     description = "Utility to detect other OSs on a set of drives";
     homepage = "http://packages.debian.org/source/sid/os-prober";
     license = licenses.gpl2Plus;
+    mainProgram = "os-prober";
     maintainers = with maintainers; [ symphorien ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index 9d0adb051af0e..1ceefdd82edf2 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "5.8.5";
+  version = "5.8.6";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Lri675TEIVWp8iEQI1oeSd9xNCVtzlUcK2AEJHmWNjs=";
+    sha256 = "sha256-UgJHsniDbfAcohnrYYUUJ4OhL2Fr65kGu26dsw9vYyM=";
   };
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index d040534cf3004..ce82cb7745c7d 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "1.18.2";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = "starship";
     rev = "v${version}";
-    hash = "sha256-84FyKhSP2EZZkQJRhNPTYs2BYppylk50GiIck8pN3l4=";
+    hash = "sha256-3IO9hHuhzJsCHU/6BA5ylEKQI2ik6ZiRul/iO/vzii4=";
   };
 
   nativeBuildInputs = [ installShellFiles cmake ];
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
     cp docs/public/presets/toml/*.toml $presetdir
   '';
 
-  cargoHash = "sha256-Fu8KfWHCQUPSiT1aMSS0Il/S02YXdEqKMA2nsliUu8E=";
+  cargoHash = "sha256-zX04gX40dFYsK+R6gafHNtDevzrWiGufMwrGfhqYVG0=";
 
   nativeCheckInputs = [ git ];
 
diff --git a/pkgs/tools/misc/tbls/default.nix b/pkgs/tools/misc/tbls/default.nix
index 0d20bead317e0..0a3b341cc482c 100644
--- a/pkgs/tools/misc/tbls/default.nix
+++ b/pkgs/tools/misc/tbls/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "tbls";
-  version = "1.74.3";
+  version = "1.75.0";
 
   src = fetchFromGitHub {
     owner = "k1LoW";
     repo = "tbls";
     rev = "v${version}";
-    hash = "sha256-tS/sdX74Fr6arZh7/JiNFz1grjPMVZfg8C1VvqxsbYM=";
+    hash = "sha256-8bfDahJw+ZUSNqMiKDqqyX2jVPd6Wg3JsD/ATAW/oF4=";
   };
 
   vendorHash = "sha256-NafHcWP9xJX2hy8i1TKtBi54cXDKgoxbgwLQjYRBcjU=";
diff --git a/pkgs/tools/misc/wagyu/default.nix b/pkgs/tools/misc/wagyu/default.nix
index 39e1085d4c965..0eb71743f064a 100644
--- a/pkgs/tools/misc/wagyu/default.nix
+++ b/pkgs/tools/misc/wagyu/default.nix
@@ -2,16 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wagyu";
-  version = "0.6.1";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "AleoHQ";
     repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-ltWNKB3DHtwVVzJyvRWj2I8rjsl7ru2i/RCO9yiQhpg=";
+    rev = "v${version}";
+    hash = "sha256-5n8BmETv5jUvgu0rskAPYaBgYyNL2QU2t/iUb3hNMMw=";
   };
 
-  cargoHash = "sha256-8dbeSHN6+1jLdVA9QxNAy7Y6EX7wflpQI72kqZAEVIE=";
+  cargoPatches = [ ./fix-rustc-serialize-version.patch ];
+
+  cargoHash = "sha256-vseTtok0E0ddg9ALQ1ql3NPPxirfyMPHOSWsM2qu2jU=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/misc/wagyu/fix-rustc-serialize-version.patch b/pkgs/tools/misc/wagyu/fix-rustc-serialize-version.patch
new file mode 100644
index 0000000000000..2b990909c1b40
--- /dev/null
+++ b/pkgs/tools/misc/wagyu/fix-rustc-serialize-version.patch
@@ -0,0 +1,15 @@
+diff --git a/Cargo.lock b/Cargo.lock
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1286,9 +1286,9 @@ checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6"
+ 
+ [[package]]
+ name = "rustc-serialize"
+-version = "0.3.24"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
++checksum = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401"
+ 
+ [[package]]
+ name = "rustc_version"
diff --git a/pkgs/tools/misc/wakatime/default.nix b/pkgs/tools/misc/wakatime/default.nix
deleted file mode 100644
index d27cfa112afcb..0000000000000
--- a/pkgs/tools/misc/wakatime/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib, buildGoModule, fetchFromGitHub, testers, wakatime }:
-
-buildGoModule rec {
-  pname = "wakatime";
-  version = "1.73.0";
-
-  src = fetchFromGitHub {
-    owner = "wakatime";
-    repo = "wakatime-cli";
-    rev = "v${version}";
-    hash = "sha256-EUZgYRsQRqtp0yiqNYex+ILSZwGEdO4BhciEgUVdui4=";
-  };
-
-  vendorHash = "sha256-SlYYrlRDBvhNm2BxemK9HzzsqM/RGH/sDQXpoGEY8rw=";
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X github.com/wakatime/wakatime-cli/pkg/version.Version=${version}"
-  ];
-
-  checkFlags =
-    let
-      skippedTests = [
-        # Tests requiring network
-        "TestFileExperts"
-        "TestSendHeartbeats"
-        "TestSendHeartbeats_ExtraHeartbeats"
-        "TestSendHeartbeats_IsUnsavedEntity"
-        "TestSendHeartbeats_NonExistingExtraHeartbeatsEntity"
-
-        # Flaky tests
-        "TestLoadParams_ApiKey_FromVault_Err_Darwin"
-      ];
-    in
-    [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
-
-  passthru.tests.version = testers.testVersion {
-    package = wakatime;
-    command = "HOME=$(mktemp -d) wakatime-cli --version";
-  };
-
-  meta = with lib; {
-    homepage = "https://wakatime.com/";
-    description = "WakaTime command line interface";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ sigmanificient ];
-    mainProgram = "wakatime-cli";
-  };
-}
diff --git a/pkgs/tools/networking/bgpq4/default.nix b/pkgs/tools/networking/bgpq4/default.nix
index 006bfbf595dde..ea47cf4b2cae0 100644
--- a/pkgs/tools/networking/bgpq4/default.nix
+++ b/pkgs/tools/networking/bgpq4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq4";
-  version = "1.13";
+  version = "1.15";
 
   src = fetchFromGitHub {
     owner = "bgp";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Kw1Y9g2ItclDYYoZC2FTdBTec7zoM/N3Vk4zM8EVBR0=";
+    sha256 = "sha256-3mfFj9KoQbDe0gH7Le03N1Yds/bTEmY+OiXNaOtHkpY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/eternal-terminal/default.nix b/pkgs/tools/networking/eternal-terminal/default.nix
index 22ed2dcb80e70..27778006b1e18 100644
--- a/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/pkgs/tools/networking/eternal-terminal/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eternal-terminal";
-  version = "6.2.4";
+  version = "6.2.8";
 
   src = fetchFromGitHub {
     owner = "MisterTea";
     repo = "EternalTerminal";
     rev = "refs/tags/et-v${version}";
-    hash = "sha256-9W9Pz0VrFU+HNpf98I3CLrn8+kpjjNLOUK8gGcDJcI8=";
+    hash = "sha256-7LhCP7zARpigsDJmA7y/ZIgN06l8aCszXryzPoa4aL0=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   preBuild = ''
+    mkdir -p ../external_imported/Catch2/single_include/catch2
     cp ${catch2}/include/catch2/catch.hpp ../external_imported/Catch2/single_include/catch2/catch.hpp
   '';
 
@@ -54,7 +55,7 @@ stdenv.mkDerivation rec {
     homepage = "https://eternalterminal.dev/";
     changelog = "https://github.com/MisterTea/EternalTerminal/releases/tag/et-v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dezgeg ];
+    maintainers = with maintainers; [ dezgeg jshort ];
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/networking/goflow2/default.nix b/pkgs/tools/networking/goflow2/default.nix
deleted file mode 100644
index 6edd9b87f6577..0000000000000
--- a/pkgs/tools/networking/goflow2/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  lib,
-  buildGoModule,
-  fetchFromGitHub,
-}:
-buildGoModule rec {
-  pname = "goflow2";
-  version = "2.1.3";
-
-  src = fetchFromGitHub {
-    owner = "netsampler";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-wtvBkk+Y4koGDGN+N/w4FsdejgpCIio0g2QV35Pr/fo=";
-  };
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X=main.version=${version}"
-  ];
-
-  vendorHash = "sha256-qcWeIg278V2bgFGpWwUT5JCblxfBv0/gWV1oXul/nCQ=";
-
-  meta = with lib; {
-    description = "High performance sFlow/IPFIX/NetFlow Collector";
-    homepage = "https://github.com/netsampler/goflow2";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ isabelroses ];
-  };
-}
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index b9e23b6548ef5..34325cab9edb3 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2024-04-29T09-56-05Z";
+  version = "2024-05-09T17-04-24Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-Fx7D8w5cPrl/TFmMIGZxn00BC0AYaLEh6K1PQ10jTBQ=";
+    sha256 = "sha256-S7bi7BTbsbXUFoDpm0IhOvjnumcKbewV0celUxAx57g=";
   };
 
   vendorHash = "sha256-vqPSzzNIvy+9J9bPE4hxWvRPuPKpB8ahuu6ENnFmfJ0=";
diff --git a/pkgs/tools/networking/netbird/default.nix b/pkgs/tools/networking/netbird/default.nix
index f946bdca45b3e..54eab181ac20f 100644
--- a/pkgs/tools/networking/netbird/default.nix
+++ b/pkgs/tools/networking/netbird/default.nix
@@ -31,13 +31,13 @@ let
 in
 buildGoModule rec {
   pname = "netbird";
-  version = "0.27.5";
+  version = "0.27.7";
 
   src = fetchFromGitHub {
     owner = "netbirdio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-DWtTCx+vzOE4yE9jAUxB1oF1UubIXK4f7wptJY89az0=";
+    hash = "sha256-byUmgttd0v47G1Powww/YtXOw7TT6Fe2uoOuBOp2l78=";
   };
 
   vendorHash = "sha256-LPq6ovulE+xdoRaQpwA0mNqw3kFxMs/am1ucO8UmDtU=";
diff --git a/pkgs/tools/networking/networkmanager/l2tp/default.nix b/pkgs/tools/networking/networkmanager/l2tp/default.nix
index bcc5e314cfbaa..4389b2b620991 100644
--- a/pkgs/tools/networking/networkmanager/l2tp/default.nix
+++ b/pkgs/tools/networking/networkmanager/l2tp/default.nix
@@ -22,13 +22,13 @@
 stdenv.mkDerivation rec {
   name = "${pname}${lib.optionalString withGnome "-gnome"}-${version}";
   pname = "NetworkManager-l2tp";
-  version = "1.20.14";
+  version = "1.20.16";
 
   src = fetchFromGitHub {
     owner = "nm-l2tp";
     repo = "network-manager-l2tp";
     rev = version;
-    hash = "sha256-PTDr2M88ZC3Y92zsz/GiSxavd8MdfC9lwxep0+Wjgjk=";
+    hash = "sha256-78TOx3UnAF02UfZ7cWhPKv9bhJCq5UmAMrwd5xUnVrg=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/nzbget/default.nix b/pkgs/tools/networking/nzbget/default.nix
index c1eff0920f0b2..5ecda7d8f73ab 100644
--- a/pkgs/tools/networking/nzbget/default.nix
+++ b/pkgs/tools/networking/nzbget/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nzbget";
-  version = "24.0";
+  version = "24.1";
 
   src = fetchFromGitHub {
     owner = "nzbgetcom";
     repo = "nzbget";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-vEtbf4y3Jc69FrEzGE34Xt/4oDmZlWTbwispvoypRI0=";
+    hash = "sha256-HovfnTsgu07/lp/spI+iA8H7lOj0Qyrri2MOJKyMKHQ=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/networking/openssh/common.nix b/pkgs/tools/networking/openssh/common.nix
index 5c7b3ecb1d355..d5f658641efd8 100644
--- a/pkgs/tools/networking/openssh/common.nix
+++ b/pkgs/tools/networking/openssh/common.nix
@@ -33,6 +33,7 @@
 , withPAM ? stdenv.hostPlatform.isLinux
 , dsaKeysSupport ? false
 , linkOpenssl ? true
+, isNixos ? stdenv.hostPlatform.isLinux
 }:
 
 stdenv.mkDerivation {
@@ -77,6 +78,12 @@ stdenv.mkDerivation {
     unset LD
   '';
 
+  env = lib.optionalAttrs isNixos {
+    # openssh calls passwd to allow the user to reset an expired password, but nixos
+    # doesn't ship it at /usr/bin/passwd.
+    PATH_PASSWD_PROG = "/run/wrappers/bin/passwd";
+  };
+
   # I set --disable-strip because later we strip anyway. And it fails to strip
   # properly when cross building.
   configureFlags = [
diff --git a/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch b/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch
deleted file mode 100644
index 4ddd18bbd4687..0000000000000
--- a/pkgs/tools/networking/persepolis/0001-Allow-building-on-darwin.patch
+++ /dev/null
@@ -1,45 +0,0 @@
----
- setup.py | 13 +++++--------
- 1 file changed, 5 insertions(+), 8 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 985d28d..933f3df 100755
---- a/setup.py
-+++ b/setup.py
-@@ -24,13 +24,9 @@ import shutil
- # finding os platform
- os_type = platform.system()
- 
--if os_type == 'Linux' or os_type == 'FreeBSD' or os_type == 'OpenBSD':
--    from setuptools import setup, Command, find_packages
--    setuptools_available = True
--    print(os_type + " detected!")
--else:
--    print('This script is only work for GNU/Linux or BSD!')
--    sys.exit(1)
-+from setuptools import setup, Command, find_packages
-+setuptools_available = True
-+print(os_type + " detected!")
- 
- # Checking dependencies!
- not_installed = ''
-@@ -100,6 +96,7 @@ else:
-     print('paplay is found!')
- 
- # sound-theme-freedesktop
-+notifications_path = ''
- if os_type == 'Linux':
-     notifications_path = '/usr/share/sounds/freedesktop/stereo/'
- elif os_type == 'FreeBSD' or os_type == 'OpenBSD':
-@@ -139,7 +136,7 @@ if sys.argv[1] == "test":
- 
- DESCRIPTION = 'Persepolis Download Manager'
- 
--if os_type == 'Linux':
-+if os_type in ['Linux', 'Darwin']:
-     DATA_FILES = [
-         ('/usr/share/man/man1/', ['man/persepolis.1.gz']),
-         ('/usr/share/applications/', ['xdg/com.github.persepolisdm.persepolis.desktop']),
--- 
-2.39.3 (Apple Git-145)
-
diff --git a/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch b/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch
deleted file mode 100644
index 50252c8cd72a8..0000000000000
--- a/pkgs/tools/networking/persepolis/0002-Fix-startup-crash-on-darwin.patch
+++ /dev/null
@@ -1,41 +0,0 @@
----
- persepolis/scripts/mac_notification.py | 25 +++++++++----------------
- 1 file changed, 9 insertions(+), 16 deletions(-)
-
-diff --git a/persepolis/scripts/mac_notification.py b/persepolis/scripts/mac_notification.py
-index 4d69929..9a9a7cf 100644
---- a/persepolis/scripts/mac_notification.py
-+++ b/persepolis/scripts/mac_notification.py
-@@ -15,20 +15,13 @@
- 
- # native notification on mac! needs Xcode (latest version) installed and pyobjc
- # library from pip
--import Foundation
--import AppKit
--import objc
--
--NSUserNotification = objc.lookUpClass('NSUserNotification')
--NSUserNotificationCenter = objc.lookUpClass('NSUserNotificationCenter')
--
--
- def notifyMac(title, subtitle, info_text, delay=0):
--    notification = NSUserNotification.alloc().init()
--    notification.setTitle_(title)
--    notification.setSubtitle_(subtitle)
--    notification.setInformativeText_(info_text)
--    notification.setDeliveryDate_(Foundation.NSDate.dateWithTimeInterval_sinceDate_(
--        delay, Foundation.NSDate.date()))
--    NSUserNotificationCenter.defaultUserNotificationCenter(
--    ).scheduleNotification_(notification)
-+    print(f"""
-+Warning: Persepolis was installed from nixpkgs, which currently breaks notifications
-+         on macOS. Until https://github.com/NixOS/nixpkgs/issues/105156 is resolved,
-+         this cannot be fixed. The notification that should've been displayed was:
-+
-+         title: {title}
-+         subtitle: {subtitle}
-+         info_text: {info_text}
-+ """)
--- 
-2.39.3 (Apple Git-145)
-
diff --git a/pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch b/pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch
deleted file mode 100644
index ab3c957ef4b19..0000000000000
--- a/pkgs/tools/networking/persepolis/0003-Search-PATH-for-aria2c-on-darwin.patch
+++ /dev/null
@@ -1,29 +0,0 @@
----
- persepolis/scripts/download.py | 10 +---------
- 1 file changed, 1 insertion(+), 9 deletions(-)
-
-diff --git a/persepolis/scripts/download.py b/persepolis/scripts/download.py
-index aaabb35..69676d3 100644
---- a/persepolis/scripts/download.py
-+++ b/persepolis/scripts/download.py
-@@ -72,16 +72,8 @@ def startAria():
- 
-     # in macintosh
-     elif os_type == 'Darwin':
--        if aria2_path == "" or aria2_path == None or os.path.isfile(str(aria2_path)) == False:
--
--            cwd = sys.argv[0]
--            current_directory = os.path.dirname(cwd)
--            aria2d = os.path.join(current_directory, 'aria2c')
- 
--        else:
--            aria2d = aria2_path
--
--        subprocess.Popen([aria2d, '--no-conf',
-+        subprocess.Popen(['aria2c', '--no-conf',
-                           '--enable-rpc', '--rpc-listen-port=' + str(port),
-                           '--rpc-max-request-size=2M',
-                           '--rpc-listen-all', '--quiet=true'],
--- 
-2.39.3 (Apple Git-145)
-
diff --git a/pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch b/pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch
deleted file mode 100644
index 800f7bddd4086..0000000000000
--- a/pkgs/tools/networking/persepolis/0004-Search-PATH-for-ffmpeg-on-darwin.patch
+++ /dev/null
@@ -1,34 +0,0 @@
----
- persepolis/scripts/mainwindow.py   | 2 +-
- persepolis/scripts/useful_tools.py | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/persepolis/scripts/mainwindow.py b/persepolis/scripts/mainwindow.py
-index d21f3f4..a0e3674 100644
---- a/persepolis/scripts/mainwindow.py
-+++ b/persepolis/scripts/mainwindow.py
-@@ -161,7 +161,7 @@ class CheckVersionsThread(QThread):
- 
-             else:
-                 pipe = subprocess.Popen(
--                    [ffmpeg_path, '-version'],
-+                    ['ffmpeg', '-version'],
-                     stdout=subprocess.PIPE,
-                     stdin=subprocess.PIPE,
-                     stderr=subprocess.PIPE,
-diff --git a/persepolis/scripts/useful_tools.py b/persepolis/scripts/useful_tools.py
-index b780967..31733eb 100644
---- a/persepolis/scripts/useful_tools.py
-+++ b/persepolis/scripts/useful_tools.py
-@@ -342,7 +342,7 @@ def muxer(parent, video_finder_dictionary):
-                 current_directory = os.path.dirname(cwd)
-                 ffmpeg_path = os.path.join(current_directory, 'ffmpeg')
- 
--                pipe = subprocess.Popen([ffmpeg_path, '-i', video_file_path,
-+                pipe = subprocess.Popen(['ffmpeg', '-i', video_file_path,
-                                          '-i', audio_file_path,
-                                          '-c', 'copy',
-                                          '-shortest',
--- 
-2.39.3 (Apple Git-145)
-
diff --git a/pkgs/tools/networking/persepolis/default.nix b/pkgs/tools/networking/persepolis/default.nix
deleted file mode 100644
index b3b084c225964..0000000000000
--- a/pkgs/tools/networking/persepolis/default.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib
-, stdenv
-, buildPythonApplication
-, fetchFromGitHub
-, aria2
-, ffmpeg
-, libnotify
-, pulseaudio
-, psutil
-, pyqt5
-, requests
-, setproctitle
-, setuptools
-, sound-theme-freedesktop
-, wrapQtAppsHook
-, yt-dlp
-}:
-
-buildPythonApplication rec {
-  pname = "persepolis";
-  version = "3.2.0";
-
-  src = fetchFromGitHub {
-    owner = "persepolisdm";
-    repo = "persepolis";
-    rev = version;
-    sha256 = "1rh7q432ynbysapsd075nif975ync71icpb71x2mb4j8jx1vzs45";
-  };
-
-  # see: https://github.com/persepolisdm/persepolis/blob/3.2.0/setup.py#L130
-  doCheck = false;
-
-  preBuild=
-  # Make setup automatic
-  ''
-    substituteInPlace setup.py --replace "answer = input(" "answer = 'y'#"
-  '' +
-  # Replace abandoned youtube-dl with maintained fork yt-dlp. Fixes https://github.com/persepolisdm/persepolis/issues/930,
-  # can be removed if that issue is fixed and/or https://github.com/persepolisdm/persepolis/pull/936 is merged
-  ''
-    substituteInPlace setup.py ./persepolis/scripts/video_finder_addlink.py --replace \
-        "import youtube_dl" "import yt_dlp as youtube_dl"
-  '';
-
-  patches = lib.optionals stdenv.isDarwin [
-    # Upstream is abandonware, the last commit to master was on 2021-08-26.
-    # If it is forked or picked up again, consider upstreaming these patches.
-    ./0001-Allow-building-on-darwin.patch
-    ./0002-Fix-startup-crash-on-darwin.patch
-    ./0003-Search-PATH-for-aria2c-on-darwin.patch
-    ./0004-Search-PATH-for-ffmpeg-on-darwin.patch
-  ];
-
-  postPatch = ''
-    sed -i 's|/usr/share/sounds/freedesktop/stereo/|${sound-theme-freedesktop}/share/sounds/freedesktop/stereo/|' setup.py
-    sed -i "s|'persepolis = persepolis.__main__'|'persepolis = persepolis.scripts.persepolis:main'|" setup.py
-  '';
-
-  postInstall = ''
-     mkdir -p $out/share/applications
-     cp $src/xdg/com.github.persepolisdm.persepolis.desktop $out/share/applications
-  '';
-
-  # prevent double wrapping
-  dontWrapQtApps = true;
-  nativeBuildInputs = [ wrapQtAppsHook ];
-
-  # feed args to wrapPythonApp
-  makeWrapperArgs = [
-    "--prefix PATH : ${lib.makeBinPath [ aria2 ffmpeg libnotify ]}"
-    "\${qtWrapperArgs[@]}"
-  ];
-
-  propagatedBuildInputs = [
-    pulseaudio
-    psutil
-    pyqt5
-    requests
-    setproctitle
-    setuptools
-    sound-theme-freedesktop
-    yt-dlp
-  ];
-
-  meta = with lib; {
-    description = "Persepolis Download Manager is a GUI for aria2";
-    mainProgram = "persepolis";
-    homepage = "https://persepolisdm.github.io/";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ iFreilicht ];
-  };
-}
diff --git a/pkgs/tools/networking/speedtest-go/default.nix b/pkgs/tools/networking/speedtest-go/default.nix
index 56764fb5f1985..ba393d632c163 100644
--- a/pkgs/tools/networking/speedtest-go/default.nix
+++ b/pkgs/tools/networking/speedtest-go/default.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "speedtest-go";
-  version = "1.7.5";
+  version = "1.7.7";
 
   src = fetchFromGitHub {
     owner = "showwin";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-8YN7k7sP0S3MIArUfwDYMQvcCKNTxauQjevyOoisAuc=";
+    hash = "sha256-8LMbaa3D1ODjySx69U0CGWphG8CQswWlQsqW6mXPy6o=";
   };
 
   vendorHash = "sha256-wQqAX7YuxxTiMWmV9LRoXunGMMzs12UyHbf4VvbQF1E=";
diff --git a/pkgs/tools/networking/swagger-codegen3/default.nix b/pkgs/tools/networking/swagger-codegen3/default.nix
index ca30bba0c35e9..04fd6ce62fda1 100644
--- a/pkgs/tools/networking/swagger-codegen3/default.nix
+++ b/pkgs/tools/networking/swagger-codegen3/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper, testers, swagger-codegen3 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.55";
+  version = "3.0.56";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "sha256-xiPeWblDr6P405o4ik0gWG2GfBPC/eGtEyF6XCRFHGg=";
+    sha256 = "sha256-i2XC7fFfsO2OIE4NsO/WiqSHiYCXJZr6naxxAw/jkt0=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/networking/trurl/default.nix b/pkgs/tools/networking/trurl/default.nix
index 68dbe001d5139..ea19b2794ec2f 100644
--- a/pkgs/tools/networking/trurl/default.nix
+++ b/pkgs/tools/networking/trurl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "trurl";
-  version = "0.12";
+  version = "0.13";
 
   src = fetchFromGitHub {
     owner = "curl";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-r+z+7aE/frr1qWaBXyyO2L+aNa8CnhRqLg/jwwamIPg=";
+    hash = "sha256-TkYZk4SoGAc0dxtxil4FjEhA53M+/dRmhc2kJfxWze8=";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/tools/nix/npins/default.nix b/pkgs/tools/nix/npins/default.nix
index 02ec39094ddf3..9d10464aa73c9 100644
--- a/pkgs/tools/nix/npins/default.nix
+++ b/pkgs/tools/nix/npins/default.nix
@@ -19,7 +19,7 @@ in rustPlatform.buildRustPackage rec {
   version = src.version;
   src = passthru.mkSource sources.npins;
 
-  cargoSha256 = "sha256-eySVpmCVWBJfyAkTQv+LqojWMO/3r6kBYP1a4z+FYHY=";
+  cargoSha256 = "sha256-YwMypBl+P1ygf4zUbkZlq4zPrOzf+lPOz2FLg2/xI3k=";
 
   buildInputs = lib.optional stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security ]);
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/nix/npins/sources.json b/pkgs/tools/nix/npins/sources.json
index fbeb040fa74c7..f7faf4210d728 100644
--- a/pkgs/tools/nix/npins/sources.json
+++ b/pkgs/tools/nix/npins/sources.json
@@ -9,10 +9,10 @@
       },
       "pre_releases": false,
       "version_upper_bound": null,
-      "version": "0.2.2",
-      "revision": "a443c58d9c7b818aaea3c47821d7c561faef66ec",
-      "url": "https://api.github.com/repos/andir/npins/tarball/0.2.2",
-      "hash": "0rv6m8c9lmzkb76b682w7ax6jy8ls4l4y17wjx98jk64b74qspca"
+      "version": "0.2.4",
+      "revision": "181da464f7edb5e675dd96cc25d611760796a739",
+      "url": "https://api.github.com/repos/andir/npins/tarball/0.2.4",
+      "hash": "04155dr6i1gy2zgy49v8zm75sn1akm83l4x8h6cxvxyk1l2abn4q"
     }
   },
   "version": 3
diff --git a/pkgs/tools/security/aespipe/default.nix b/pkgs/tools/security/aespipe/default.nix
index b893c9b0b2d68..fe9c1d22f407c 100644
--- a/pkgs/tools/security/aespipe/default.nix
+++ b/pkgs/tools/security/aespipe/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "aespipe";
-  version = "2.4g";
+  version = "2.4h";
 
   src = fetchurl {
     url = "mirror://sourceforge/loop-aes/aespipe/aespipe-v${version}.tar.bz2";
-    sha256 = "sha256-v7l+feFh6NfOETsWO9odGo7HfSwa+rVtzIFT16kBh/w=";
+    sha256 = "sha256-6rMR/CbqQyibw632YNYnBJJJSWByXSAm7EkXKUoaukk=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix
index a08dfda01239a..6bcdfd5a17de3 100644
--- a/pkgs/tools/security/cnspec/default.nix
+++ b/pkgs/tools/security/cnspec/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "11.4.1";
+  version = "11.4.2";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-amTkhUChhgO4Uhv23TLFiKAkp58NqBmbyVsF/vaq/ZU=";
+    hash = "sha256-+UKiv+0BRmzu7ER6NE9jkZlov2MC2EEmpH7XWtJkBxA=";
   };
 
   proxyVendor = true;
 
-  vendorHash = "sha256-FNl7Tu2dDWmtCO3pJRWQpSkfR7aa96AdjP6lTcj6WY4=";
+  vendorHash = "sha256-JxyThRpr1XFYtg3Z5cF/LnGFqG9vzVpGZRNpgHpE458=";
 
   subPackages = [ "apps/cnspec" ];
 
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index 8752844e22337..56367fcc64c22 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2024-05-09";
+  version = "2024-05-16";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = "exploitdb";
     rev = "refs/tags/${version}";
-    hash = "sha256-k0rBx2rVJoDB2AEfcyQEmanoWgiu1Q7fRDL2xqMfn3Q=";
+    hash = "sha256-m00hnTu8PEUmWHO9ei9DYU10DAgn1zaKATt6yVJ7R1o=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/ghidra/build.nix b/pkgs/tools/security/ghidra/build.nix
index 2124609841404..f8f0fb3ae5a81 100644
--- a/pkgs/tools/security/ghidra/build.nix
+++ b/pkgs/tools/security/ghidra/build.nix
@@ -71,6 +71,7 @@ HERE
 
     nativeBuildInputs = [ gradle perl ] ++ lib.optional stdenv.isDarwin xcbuild;
     buildPhase = ''
+      runHook preBuild
       export HOME="$NIX_BUILD_TOP/home"
       mkdir -p "$HOME"
       export JAVA_TOOL_OPTIONS="-Duser.home='$HOME'"
@@ -81,13 +82,16 @@ HERE
 
       # Then, fetch the maven dependencies.
       gradle --no-daemon --info -Dorg.gradle.java.home=${openjdk17} resolveDependencies
+      runHook postBuild
     '';
     # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
     installPhase = ''
+      runHook preInstall
       find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
         | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/maven/$x/$3/$4/$5" #e' \
         | sh
       cp -r dependencies $out/dependencies
+      runHook postInstall
     '';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
@@ -108,6 +112,7 @@ in stdenv.mkDerivation {
   ];
 
   buildPhase = ''
+    runHook preBuild
     export HOME="$NIX_BUILD_TOP/home"
     mkdir -p "$HOME"
     export JAVA_TOOL_OPTIONS="-Duser.home='$HOME'"
@@ -117,9 +122,11 @@ in stdenv.mkDerivation {
     sed -i "s#mavenLocal()#mavenLocal(); maven { url '${deps}/maven' }#g" build.gradle
 
     gradle --offline --no-daemon --info -Dorg.gradle.java.home=${openjdk17} buildGhidra
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p "${pkg_path}" "$out/share/applications"
 
     ZIP=build/dist/$(ls build/dist)
@@ -138,6 +145,7 @@ in stdenv.mkDerivation {
       mkdir -pv "$out/share/icons/hicolor/$res/apps"
       mv "$f" "$out/share/icons/hicolor/$res/apps/ghidra.png"
     done;
+    runHook postInstall
   '';
 
   postFixup = ''
diff --git a/pkgs/tools/security/rnp/default.nix b/pkgs/tools/security/rnp/default.nix
index 9a3796aeb42e0..2f7a22e59b188 100644
--- a/pkgs/tools/security/rnp/default.nix
+++ b/pkgs/tools/security/rnp/default.nix
@@ -16,20 +16,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rnp";
-  version = "0.17.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "rnpgp";
     repo = "rnp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-4fB7Sl9+ATrJTRnhbNG5BoW3XLxR7IP167RK96+gxj0=";
+    hash = "sha256-jUh7BxRnB6KePCk1jIvKzXgxSmWdKlQYmxshZZY4SBQ";
   };
 
   buildInputs = [ zlib bzip2 json_c botan2 sexpp ];
 
   patches = [
-    ./unbundle-sexpp.patch
-    ./sexp_sexpp_rename.patch
   ];
 
   cmakeFlags = [
@@ -38,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
     "-DBUILD_TESTING=on"
     "-DDOWNLOAD_GTEST=off"
     "-DDOWNLOAD_RUBYRNP=off"
+    "-DSYSTEM_LIBSEXPP=on"
   ];
 
   nativeBuildInputs = [ asciidoctor cmake gnupg gtest pkg-config python3 ];
diff --git a/pkgs/tools/security/rnp/sexp_sexpp_rename.patch b/pkgs/tools/security/rnp/sexp_sexpp_rename.patch
deleted file mode 100644
index a86d205139f70..0000000000000
--- a/pkgs/tools/security/rnp/sexp_sexpp_rename.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff --git i/src/lib/CMakeLists.txt w/src/lib/CMakeLists.txt
-index 086ac57d..2ce59ca1 100755
---- i/src/lib/CMakeLists.txt
-+++ w/src/lib/CMakeLists.txt
-@@ -328,7 +328,7 @@ elseif (CRYPTO_BACKEND_OPENSSL)
-   target_link_libraries(librnp-obj PRIVATE OpenSSL::Crypto)
- endif()
-
--target_link_libraries(librnp-obj PRIVATE sexp)
-+target_link_libraries(librnp-obj PRIVATE sexpp)
-
- set_target_properties(librnp-obj PROPERTIES CXX_VISIBILITY_PRESET hidden)
- if (TARGET BZip2::BZip2)
-@@ -384,7 +384,7 @@ foreach (prop LINK_LIBRARIES INTERFACE_LINK_LIBRARIES INCLUDE_DIRECTORIES INTERF
-   get_target_property(val librnp-obj ${prop})
-   if (BUILD_SHARED_LIBS)
-     set_property(TARGET librnp-static PROPERTY ${prop} ${val})
--    list(REMOVE_ITEM val "$<LINK_ONLY:sexp>")
-+    list(REMOVE_ITEM val "$<LINK_ONLY:sexpp>")
-     set_property(TARGET librnp PROPERTY ${prop} ${val})
-   else()
-     set_property(TARGET librnp PROPERTY ${prop} ${val})
-diff --git i/src/librekey/g23_sexp.hpp w/src/librekey/g23_sexp.hpp
-index b888680f..b062c52f 100644
---- i/src/librekey/g23_sexp.hpp
-+++ w/src/librekey/g23_sexp.hpp
-@@ -27,8 +27,8 @@
- #ifndef RNP_G23_SEXP_HPP
- #define RNP_G23_SEXP_HPP
-
--#include "sexp/sexp.h"
--#include "sexp/ext-key-format.h"
-+#include "sexpp/sexp.h"
-+#include "sexpp/ext-key-format.h"
-
- #define SXP_MAX_DEPTH 30
-
-diff --git i/src/tests/CMakeLists.txt w/src/tests/CMakeLists.txt
-index 7d2a6b0c..88aeaf9f 100644
---- i/src/tests/CMakeLists.txt
-+++ w/src/tests/CMakeLists.txt
-@@ -176,7 +176,7 @@ target_link_libraries(rnp_tests
-   PRIVATE
-     librnp-static
-     JSON-C::JSON-C
--    sexp
-+    sexpp
-     ${GTestMain}
- )
- if (CRYPTO_BACKEND_LOWERCASE STREQUAL "openssl")
diff --git a/pkgs/tools/security/rnp/unbundle-sexpp.patch b/pkgs/tools/security/rnp/unbundle-sexpp.patch
deleted file mode 100644
index dcbf92948a282..0000000000000
--- a/pkgs/tools/security/rnp/unbundle-sexpp.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git i/CMakeLists.txt w/CMakeLists.txt
-index bb6d40cb..30171e7c 100644
---- i/CMakeLists.txt
-+++ w/CMakeLists.txt
-@@ -176,11 +176,6 @@ if (ENABLE_FUZZERS)
- endif()
- add_subdirectory(src/common)
-
--set(WITH_SEXP_CLI OFF)
--set(WITH_SEXP_TESTS OFF)
--set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME development)
--add_subdirectory(src/libsexp EXCLUDE_FROM_ALL)
--
- add_subdirectory(src/lib)
- add_subdirectory(src/rnp)
- add_subdirectory(src/rnpkeys)
-diff --git i/src/lib/CMakeLists.txt w/src/lib/CMakeLists.txt
-index 086ac57d..b219ef06 100755
---- i/src/lib/CMakeLists.txt
-+++ w/src/lib/CMakeLists.txt
-@@ -433,7 +433,7 @@ install(TARGETS librnp
-       COMPONENT development
-   )
-
--  install(TARGETS librnp-static sexp
-+  install(TARGETS librnp-static
-     EXPORT rnp-targets
-     ARCHIVE
-       DESTINATION  "${CMAKE_INSTALL_LIBDIR}"
-@@ -441,7 +441,7 @@ install(TARGETS librnp
-   )
- else(BUILD_SHARED_LIBS)
- # static libraries only
--install(TARGETS librnp sexp
-+install(TARGETS librnp
-     EXPORT rnp-targets
-     ARCHIVE
-       DESTINATION  "${CMAKE_INSTALL_LIBDIR}"
diff --git a/pkgs/tools/security/sigma-cli/default.nix b/pkgs/tools/security/sigma-cli/default.nix
index 897fdfcb2f295..f2854b680dd41 100644
--- a/pkgs/tools/security/sigma-cli/default.nix
+++ b/pkgs/tools/security/sigma-cli/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, fetchFromGitHub
-, python3
+{
+  lib,
+  fetchFromGitHub,
+  python3,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sigma-cli";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "SigmaHQ";
     repo = "sigma-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+6+xTc9XGsPxK3OsiA4dj2ORgC0PQtZsZ5a6STwmfcg=";
+    hash = "sha256-/Nciqf8O/Sq2zniaKid1VkYC/H6hgsVzMtOtFy/CiR8=";
   };
 
   postPatch = ''
@@ -20,11 +21,9 @@ python3.pkgs.buildPythonApplication rec {
       --replace '= "^' '= ">='
   '';
 
-  nativeBuildInputs = with python3.pkgs; [
-    poetry-core
-  ];
+  build-system = with python3.pkgs; [ poetry-core ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     click
     colorama
     prettytable
@@ -39,9 +38,7 @@ python3.pkgs.buildPythonApplication rec {
     pysigma-pipeline-windows
   ];
 
-  nativeCheckInputs = with python3.pkgs; [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ];
 
   disabledTests = [
     "test_plugin_list"
@@ -61,15 +58,13 @@ python3.pkgs.buildPythonApplication rec {
     "test_check_exclude"
   ];
 
-  pythonImportsCheck = [
-    "sigma.cli"
-  ];
+  pythonImportsCheck = [ "sigma.cli" ];
 
   meta = with lib; {
     description = "Sigma command line interface";
     homepage = "https://github.com/SigmaHQ/sigma-cli";
     changelog = "https://github.com/SigmaHQ/sigma-cli/releases/tag/v${version}";
-    license = with licenses; [ lgpl21Plus ];
+    license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ fab ];
     mainProgram = "sigma";
   };
diff --git a/pkgs/tools/security/ssh-mitm/default.nix b/pkgs/tools/security/ssh-mitm/default.nix
index 9d40f86354b59..745090c8e9a1b 100644
--- a/pkgs/tools/security/ssh-mitm/default.nix
+++ b/pkgs/tools/security/ssh-mitm/default.nix
@@ -1,18 +1,29 @@
-{ lib
-, fetchFromGitHub
-, python3
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  installShellFiles,
+  python3,
 }:
 
 let
   py = python3.override {
     packageOverrides = self: super: {
       paramiko = super.paramiko.overridePythonAttrs (oldAttrs: rec {
-        version = "3.1.0";
+        version = "3.3.1";
         src = oldAttrs.src.override {
           inherit version;
-          hash = "sha256-aVD6ymgZrNMhnUrmlKI8eofuONCE9wwXJLDA27i3V2k=";
+          hash = "sha256-ajd3qWGshtvvN1xfW41QAUoaltD9fwVKQ7yIATSw/3c=";
         };
-        patches = [ ];
+        patches = [
+          (fetchpatch {
+            name = "Use-pytest-s-setup_method-in-pytest-8-the-nose-method-setup-is-deprecated.patch";
+            url = "https://github.com/paramiko/paramiko/pull/2349.diff";
+            hash = "sha256-4CTIZ9BmzRdh+HOwxSzfM9wkUGJOnndctK5swqqsIvU=";
+          })
+
+        ];
         propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ python3.pkgs.icecream ];
       });
     };
@@ -20,18 +31,24 @@ let
 in
 with py.pkgs;
 
+
 buildPythonApplication rec {
   pname = "ssh-mitm";
-  version = "3.0.2";
-  format = "setuptools";
+  version = "4.1.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "ssh-mitm";
+    repo = "ssh-mitm";
     rev = "refs/tags/${version}";
-    hash = "sha256-koV7g6ZmrrXk60rrDP8BwrDZk3shiyJigQgNcb4BASE=";
+    hash = "sha256-Uf1B7oEZyNWj4TjrLvEfFdxsvsGeMLXFsSdxGLUV4ZU=";
   };
 
+  build-system = [
+    hatchling
+    hatch-requirements-txt
+  ];
+
   propagatedBuildInputs = [
     argcomplete
     colored
@@ -39,17 +56,25 @@ buildPythonApplication rec {
     paramiko
     pytz
     pyyaml
+    python-json-logger
     rich
+    tkinter
     setuptools
     sshpubkeys
-  ];
+    wrapt
+  ] ++ lib.optionals stdenv.isDarwin [ setuptools ];
+  # fix for darwin users
+
+  nativeBuildInputs = [ installShellFiles ];
 
   # Module has no tests
   doCheck = false;
+  # Install man page
+  postInstall = ''
+    installManPage man1/*
+  '';
 
-  pythonImportsCheck = [
-    "sshmitm"
-  ];
+  pythonImportsCheck = [ "sshmitm" ];
 
   meta = with lib; {
     description = "Tool for SSH security audits";
diff --git a/pkgs/tools/security/trufflehog/default.nix b/pkgs/tools/security/trufflehog/default.nix
index c37b2f7bf38f7..d0e9cb39a2321 100644
--- a/pkgs/tools/security/trufflehog/default.nix
+++ b/pkgs/tools/security/trufflehog/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.76.0";
+  version = "3.76.3";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-c3zQaIZmVjU4TyvidTnJlUwU9Xg4h0i/Sr8lBvBt5kA=";
+    hash = "sha256-Esw9O0OO6a4BwN/HA8WTDUX4xcwN6Jdu1io4DYko54A=";
   };
 
-  vendorHash = "sha256-4pmemOKnXIQKWqg6NWL8G5zWfjneQngT56whu/f9aJc=";
+  vendorHash = "sha256-vHHLHXfeRl9aEBqFidGCkBLs/ifwOysbUSYbQaTKcPU=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/system/journalwatch/default.nix b/pkgs/tools/system/journalwatch/default.nix
index 8bb9b605a8f4f..0959e6166a0d0 100644
--- a/pkgs/tools/system/journalwatch/default.nix
+++ b/pkgs/tools/system/journalwatch/default.nix
@@ -1,9 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, systemd, pytest }:
+{ lib, buildPythonPackage, fetchFromGitHub, systemd, pytest }:
 
 buildPythonPackage rec {
   pname = "journalwatch";
   version = "1.1.0";
-  disabled = pythonOlder "3.3";
 
   src = fetchFromGitHub {
     owner = "The-Compiler";
diff --git a/pkgs/tools/system/openipmi/default.nix b/pkgs/tools/system/openipmi/default.nix
index 189452c65d63d..e1616460413d2 100644
--- a/pkgs/tools/system/openipmi/default.nix
+++ b/pkgs/tools/system/openipmi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "OpenIPMI";
-  version = "2.0.34";
+  version = "2.0.35";
 
   src = fetchurl {
     url = "mirror://sourceforge/openipmi/OpenIPMI-${version}.tar.gz";
-    sha256 = "sha256-kyJ+Q8crXDvVlJMj4GaapVJ9GpcUc6OjZa8D+4KEqV8=";
+    sha256 = "sha256-sFkRT2KZ1z8E/252oIV6Crgao2Le6ZZE0layI4ckN60=";
   };
 
   buildInputs = [ ncurses popt python3 readline ];
diff --git a/pkgs/tools/system/runitor/default.nix b/pkgs/tools/system/runitor/default.nix
index d5d2f50cc0f57..6d2eeff80c604 100644
--- a/pkgs/tools/system/runitor/default.nix
+++ b/pkgs/tools/system/runitor/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "runitor";
-  version = "1.2.0";
+  version = "1.3.0";
   vendorHash = null;
 
   src = fetchFromGitHub {
     owner = "bdd";
     repo = "runitor";
     rev = "v${version}";
-    sha256 = "sha256-lL9yfiqPIIfEvjiWcG6e1NrURHJFdk4x/od/w7/i2DE=";
+    sha256 = "sha256-9sg+ku3Qh/X/EZ2VCrvIc0pq5iyn4O8RZrO4KpkciAI=";
   };
 
   ldflags = [
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index 22a1996804929..763c2e3b0fbea 100644
--- a/pkgs/tools/text/crowdin-cli/default.nix
+++ b/pkgs/tools/text/crowdin-cli/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "3.19.3";
+  version = "3.19.4";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-9SghBr+vyXrzB+zq+J0hRMVIom4mb4x0xBSqS4EqhVM=";
+    hash = "sha256-SD4D9wW+Tdr3mD91SJKm5K3gktH0ywQBRh0d1TMeLDs=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/pkgs/tools/typesetting/hayagriva/default.nix b/pkgs/tools/typesetting/hayagriva/default.nix
index 6574c0c9c6e94..2bf7a4f401d6c 100644
--- a/pkgs/tools/typesetting/hayagriva/default.nix
+++ b/pkgs/tools/typesetting/hayagriva/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hayagriva";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-hE0Oi+0vDQGDEOYtHiPit1RrrkrlLZs20nEHOm/bp5M=";
+    hash = "sha256-6LJRvyCgcj/m25kC26vT3aUREstXmmCIR4+LoHZgIqw=";
   };
 
-  cargoHash = "sha256-WZbbjLDHYJTiuM0Lh9YfVvLTvK/jfO8fRbLqZ8XOLGg=";
+  cargoHash = "sha256-asINO3zy4x+n7chriC8ESCe3K027xFUNi+54XtQwS0w=";
 
   buildFeatures = [ "cli" ];
 
diff --git a/pkgs/tools/typesetting/pulldown-cmark/default.nix b/pkgs/tools/typesetting/pulldown-cmark/default.nix
index b77c5984a7a78..76f172da3cda0 100644
--- a/pkgs/tools/typesetting/pulldown-cmark/default.nix
+++ b/pkgs/tools/typesetting/pulldown-cmark/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pulldown-cmark";
-  version = "0.10.3";
+  version = "0.11.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-lJTMMXjuam872p+3+uesODd3s3/IJFg476AssikhI48=";
+    hash = "sha256-1RE622jAtIxv9Jk6vMdm1djaaUCyNGXHIIela+WRubI=";
   };
 
-  cargoHash = "sha256-P0Wem+iEnjq+iyJYw0QqwFQ7UuG/BMKEUernykjg44o=";
+  cargoHash = "sha256-L1KPpLw1MEYDisVdPEO16ZvSRx/ya22oDReyS+hG5t4=";
 
   meta = {
     description = "A pull parser for CommonMark written in Rust";
diff --git a/pkgs/tools/video/go2rtc/default.nix b/pkgs/tools/video/go2rtc/default.nix
index 82b64a5b63540..90a982335facc 100644
--- a/pkgs/tools/video/go2rtc/default.nix
+++ b/pkgs/tools/video/go2rtc/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "go2rtc";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "AlexxIT";
     repo = "go2rtc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qy8XWKhjnaSYsQWLyLgukYeKio5ngzJCO2qS9CzSV1Y=";
+    hash = "sha256-GqZs11g05xc3Nob/jqGbG/rFYBhyEPNdXYJuJBiAyko=";
   };
 
   vendorHash = "sha256-5c3oauklMD9fEnVGPyWq6hR5jz6pSnq2kmdq+0JBfpo=";