about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools')
-rw-r--r--nixpkgs/pkgs/tools/X11/sbs/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/X11/x2x/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/X11/xpra/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-nuke/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-sso-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli2/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/copilot-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/drawterm/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/fioctl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/gixy/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/admin/granted/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/kics/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/wrapper.nix18
-rw-r--r--nixpkgs/pkgs/tools/admin/mycli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/okta-aws-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/qovery-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/simplotask/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/ssmsh/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/admin/stripe-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/tlsclient/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/trivy/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/admin/try/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/archivers/7zz/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/audio/dl-librescore/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/audio/playerctl/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/audio/shaq/default.nix64
-rw-r--r--nixpkgs/pkgs/tools/backup/borgbackup/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/duplicity/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/bluetuith/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/nrfconnect/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/ventoy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/pigz/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bindfs/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/filesystems/dosfstools/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/filesystems/garage/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/filesystems/irods/common.nix16
-rw-r--r--nixpkgs/pkgs/tools/filesystems/irods/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/filesystems/irods/irods_root_path.patch49
-rw-r--r--nixpkgs/pkgs/tools/filesystems/irods/zmqcpp-deprecated-send_recv.patch21
-rw-r--r--nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch31
-rw-r--r--nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix59
-rw-r--r--nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix9
-rw-r--r--nixpkgs/pkgs/tools/games/scarab/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/games/scarab/deps.nix75
-rw-r--r--nixpkgs/pkgs/tools/graphics/agi/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/graphics/blockhash/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/fgallery/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/graphics/maim/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/graphics/stegsolve/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/graphics/structure-synth/default.nix46
-rw-r--r--nixpkgs/pkgs/tools/graphics/structure-synth/gcc47.patch50
-rw-r--r--nixpkgs/pkgs/tools/graphics/vulkan-cts/default.nix71
-rw-r--r--nixpkgs/pkgs/tools/graphics/vulkan-cts/sources.nix73
-rwxr-xr-xnixpkgs/pkgs/tools/graphics/vulkan-cts/update.sh21
-rwxr-xr-xnixpkgs/pkgs/tools/graphics/vulkan-cts/vk-cts-sources.py93
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock2
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/hime/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus/ibus-qt.nix24
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/uim/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/misc/broot/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/brotab/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/cc2538-bsl/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/convimg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ddccontrol/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/dgoss/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/fix-test_fit.patch58
-rw-r--r--nixpkgs/pkgs/tools/misc/digitemp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/entr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/exa/default.nix63
-rw-r--r--nixpkgs/pkgs/tools/misc/expect/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/eza/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/gh-markdown-preview/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/goss/default.nix41
-rw-r--r--nixpkgs/pkgs/tools/misc/hsd/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/misc/infracost/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/jfrog-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/parallel/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pb/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/misc/pc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/qjoypad/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ripdrag/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/rmtrash/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rot8/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rustypaste-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/sfeed/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/shopware-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/slingshot/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/sqlite3-to-mysql/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/misc/srisum/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/star-history/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/staruml/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/steampipe/default.nix4
-rwxr-xr-xnixpkgs/pkgs/tools/misc/szyszka/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/tgpt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/toybox/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/trackma/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/ttchat/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/turbo/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/up/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ytmdl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/apc-temp-fetch/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/bitmask-vpn/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/calendar-cli/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch132
-rw-r--r--nixpkgs/pkgs/tools/networking/connman/connman/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/networking/dae/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/networking/dnscrypt-proxy/default.nix (renamed from nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix)2
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsmasq/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gobgp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/godns/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/hysteria/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/ivpn/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/juicity/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/mu/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/networking/ndn-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/nfdump/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/oha/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/passh/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/saldl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/sing-box/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/veilid/Cargo.lock632
-rw-r--r--nixpkgs/pkgs/tools/networking/veilid/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/nix/fh/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/nix/zon2nix/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/package-management/harmonia/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/pdm/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/package-management/poetry/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix13
-rw-r--r--nixpkgs/pkgs/tools/package-management/poetry/unwrapped.nix22
-rw-r--r--nixpkgs/pkgs/tools/security/cloudfox/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/crowdsec/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/hashcat/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/kpcli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/kubescape/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock8
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/gemset.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/nuclei/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/omapd/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/security/omapd/zlib.patch9
-rw-r--r--nixpkgs/pkgs/tools/security/sirikali/default.nix88
-rw-r--r--nixpkgs/pkgs/tools/security/slsa-verifier/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/sshchecker/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/subjs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/sudo-rs/default.nix83
-rw-r--r--nixpkgs/pkgs/tools/security/trufflehog/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/vals/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/vaultwarden/Cargo.lock415
-rw-r--r--nixpkgs/pkgs/tools/security/vaultwarden/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/vaultwarden/webvault.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/weggli/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/system/auto-cpufreq/fix-version-output.patch32
-rw-r--r--nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch185
-rw-r--r--nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-update.patch60
-rw-r--r--nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/bfs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/mediawriter/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/sleuthkit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/ttop/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/system/xe/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/base16384/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/discount/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix17
-rw-r--r--nixpkgs/pkgs/tools/text/grin/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/text/gtree/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/jotdown/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/miller/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mpage/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/papeer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/xml/xmlstarlet/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/sile/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix231
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh14
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/setup-hook.sh7
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix32
-rw-r--r--nixpkgs/pkgs/tools/typesetting/typst-live/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/wayland/gtklock/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/wayland/wleave/default.nix60
215 files changed, 2697 insertions, 1938 deletions
diff --git a/nixpkgs/pkgs/tools/X11/sbs/default.nix b/nixpkgs/pkgs/tools/X11/sbs/default.nix
new file mode 100644
index 000000000000..02a25ba467fb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/X11/sbs/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, libX11, imlib2, libXinerama, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "sbs";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "onur-ozkan";
+    repo = "${pname}";
+    rev = "v${version}";
+    sha256 = "sha256-Zgu9W/3LwHF/fyaPlxmV/2LdxilO1tU0JY/esLnJVGY=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ imlib2 libX11 libXinerama ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "Simple background setter with 200 lines of code";
+    homepage = "https://github.com/onur-ozkan/sbs";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ onur-ozkan ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/X11/x2x/default.nix b/nixpkgs/pkgs/tools/X11/x2x/default.nix
index f473344ad38c..3a766d63ba97 100644
--- a/nixpkgs/pkgs/tools/X11/x2x/default.nix
+++ b/nixpkgs/pkgs/tools/X11/x2x/default.nix
@@ -1,25 +1,18 @@
-{ lib, stdenv, fetchurl, imake, libX11, libXtst, libXext, gccmakedep }:
+{ lib, stdenv, libX11, libXtst, libXext, fetchFromGitHub, autoreconfHook, pkg-config, libXi }:
 
 stdenv.mkDerivation rec {
   pname = "x2x";
-  version = "1.27";
+  version = "unstable-2023-04-30";
 
-  src = fetchurl {
-    url = "https://github.com/downloads/dottedmag/x2x/x2x-${version}.tar.gz";
-    sha256 = "0dha0kn1lbc4as0wixsvk6bn4innv49z9a0sm5wlx4q1v0vzqzyj";
+  src = fetchFromGitHub {
+    owner = "dottedmag";
+    repo = pname;
+    rev = "53692798fa0e991e0dd67cdf8e8126158d543d08";
+    hash = "sha256-FUl2z/Yz9uZlUu79LHdsXZ6hAwSlqwFV35N+GYDNvlQ=";
   };
 
-  nativeBuildInputs = [ imake gccmakedep ];
-  buildInputs = [ libX11 libXtst libXext ];
-
-  hardeningDisable = [ "format" ];
-
-  buildFlags = [ "x2x" ];
-
-  installPhase = ''
-    install -D x2x $out/bin/x2x
-    install -D x2x.1 $out/man/man1/x2x.1
-  '';
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ libX11 libXtst libXext libXi ];
 
   meta = with lib; {
     description = "Allows the keyboard, mouse on one X display to be used to control another X display";
diff --git a/nixpkgs/pkgs/tools/X11/xpra/default.nix b/nixpkgs/pkgs/tools/X11/xpra/default.nix
index f43196644c7d..e77273c6084c 100644
--- a/nixpkgs/pkgs/tools/X11/xpra/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xpra/default.nix
@@ -16,6 +16,7 @@
 , gobject-introspection
 , gst_all_1
 , gtk3
+, libappindicator
 , libfakeXinerama
 , librsvg
 , libvpx
@@ -118,6 +119,7 @@ in buildPythonApplication rec {
     gdk-pixbuf
     glib
     gtk3
+    libappindicator
     librsvg
     libvpx
     libwebp
diff --git a/nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix b/nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix
index d237e4f748f9..ff38638d5bca 100644
--- a/nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.179";
+  version = "3.0.180";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-AQsmk5Kl/uGUeT3hNEuqg28q+hXtkz3E7J2Q0FOdr8U=";
+    sha256 = "sha256-w1t1sx7Pcv444x3YPNSg3fRQdPga2Q9Z1+Iad7OTjOM=";
   };
 
-  vendorHash = "sha256-81z4bflVzDCl6IiYnTwFPsLHXq87OiKv4aDmZq05Nqc=";
+  vendorHash = "sha256-bL1S6GML7XuLraVXcd6NcC3VSYAd05F2ktzI0KF3G8A=";
 
   subPackages = [ "main" ];
 
diff --git a/nixpkgs/pkgs/tools/admin/aws-nuke/default.nix b/nixpkgs/pkgs/tools/admin/aws-nuke/default.nix
index 48c783ccf18a..c3f6cb2da5c2 100644
--- a/nixpkgs/pkgs/tools/admin/aws-nuke/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-nuke/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "aws-nuke";
-  version = "2.24.1";
+  version = "2.24.2";
 
   src = fetchFromGitHub {
     owner = "rebuy-de";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AftmWmZFi9NIXNxbMEO1eIzRl3UwS3rxXZ4htJClEfo=";
+    hash = "sha256-Zy+ULmGDUK4KGMJ5PXTyT8CSp0nC71AW/4Udl2ElOCg=";
   };
 
-  vendorHash = "sha256-cYQlHl0fmLH5f+QNdJ+V6L9Ts8sa9y8l0oOIqdpJlL0=";
+  vendorHash = "sha256-srQuR9ZoTjZR1XfewFv7wF188Q5FggMdicm71v6MY/8=";
 
   overrideModAttrs = _: {
     preBuild = ''
diff --git a/nixpkgs/pkgs/tools/admin/aws-sso-cli/default.nix b/nixpkgs/pkgs/tools/admin/aws-sso-cli/default.nix
index 18b312c6a1c0..94d993bd2c6a 100644
--- a/nixpkgs/pkgs/tools/admin/aws-sso-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-sso-cli/default.nix
@@ -6,15 +6,15 @@
 }:
 buildGoModule rec {
   pname = "aws-sso-cli";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "synfinatic";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-mINJtjSOmU6oUNIPa5Hl5fG5FqTFM8AJg9jH8WmIAHE=";
+    hash = "sha256-QwixApaGUzTmvc9TfFk8bdMU7dxyaeUo5aWucV4tH1c=";
   };
-  vendorHash = "sha256-skFENAr5XjdKoAyVwXYJVZH+IviqfyZmMIdgHq+7IPs=";
+  vendorHash = "sha256-/6DCrjOqjbz+olRp7rs8ui4uUrcor0zAc0yOIz+ZcEo=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/tools/admin/awscli2/default.nix b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
index c2465ea95914..ee3d19be604c 100644
--- a/nixpkgs/pkgs/tools/admin/awscli2/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
@@ -23,14 +23,14 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.13.13"; # N.B: if you change this, check if overrides are still up-to-date
+  version = "2.13.15"; # N.B: if you change this, check if overrides are still up-to-date
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = "refs/tags/${version}";
-    hash = "sha256-0Wx/Ze6W0Fa8OzM79PFu2liSxl1UwuUqIoYT0WhTk5k=";
+    hash = "sha256-wxuuEya2uUquRmRmh9M2wJ6dcvCx8kyzk71og9OAJ+c=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/admin/copilot-cli/default.nix b/nixpkgs/pkgs/tools/admin/copilot-cli/default.nix
index b7176656363a..7c56d6952b98 100644
--- a/nixpkgs/pkgs/tools/admin/copilot-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/copilot-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "copilot-cli";
-  version = "1.30.0";
+  version = "1.30.1";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Q495MJlvElm5yrX4QWrwvB62Tdzq0W5pTYsTXyw9Idw=";
+    hash = "sha256-ldSF+M6gYKJ6EDJ4jKpPS+XTyybynsRhibNtLG1+DlE=";
   };
 
   vendorHash = "sha256-/2uUiFL2wL+gAzqY2S3sqytPLKB5+QkYXCBNLqSJSWU=";
diff --git a/nixpkgs/pkgs/tools/admin/drawterm/default.nix b/nixpkgs/pkgs/tools/admin/drawterm/default.nix
index 1a96f3bcfbe4..b5b6a1fb32f3 100644
--- a/nixpkgs/pkgs/tools/admin/drawterm/default.nix
+++ b/nixpkgs/pkgs/tools/admin/drawterm/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ luc65r moody ];
     platforms = platforms.linux;
+    mainProgram = "drawterm";
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/eksctl/default.nix b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
index d3472f4dae51..64aeb86a13ec 100644
--- a/nixpkgs/pkgs/tools/admin/eksctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.154.0";
+  version = "0.155.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    hash = "sha256-GPJym+U6wBEJSvDYoXAwgCFqzTvXSVK2i/AN+X1S6Oo=";
+    hash = "sha256-4/U5ZAmNI3+uvxcDbSP0/AHnrn4eesDErtQrQPot8G4=";
   };
 
-  vendorHash = "sha256-/aL1mweWPJRjjqzGBcGc7UHcH0ymVANdu2LkpoCTkh0=";
+  vendorHash = "sha256-oqxAiFe7NE3WZkJIL63HmOtVR98WyMK4+VAGqb/eDN0=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
index 0f55bc9dbd56..93c7c5fb0755 100644
--- a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "exoscale-cli";
-  version = "1.72.0";
+  version = "1.72.2";
 
   src = fetchFromGitHub {
     owner = "exoscale";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-+M7+/iexcqQD1RVJziNll0XaPAsUiFlC3+1EwXxA5P0=";
+    sha256 = "sha256-EUHjkhorfqRPStwThO5rdBVtl+NltEv18Bno4zu+5Us=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/tools/admin/fioctl/default.nix b/nixpkgs/pkgs/tools/admin/fioctl/default.nix
index a3529b5458f9..f9e517e091d8 100644
--- a/nixpkgs/pkgs/tools/admin/fioctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/fioctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fioctl";
-  version = "0.33";
+  version = "0.35";
 
   src = fetchFromGitHub {
     owner = "foundriesio";
     repo = "fioctl";
     rev = "v${version}";
-    sha256 = "sha256-9c0eyRij1L2C6nJ9ufDGONVenJTGdRALFojK3SFRTjI=";
+    sha256 = "sha256-4lAoUmbNsC0d+yaB+DqHVqz3UMI08rhXIm7rgueeXik=";
   };
 
   vendorHash = "sha256-hSllpWjiYOBbANCX7usdAAF1HNAJ79ELK92qEyn8G1c=";
diff --git a/nixpkgs/pkgs/tools/admin/gixy/default.nix b/nixpkgs/pkgs/tools/admin/gixy/default.nix
index e8d400d7f66d..31c2e88dd825 100644
--- a/nixpkgs/pkgs/tools/admin/gixy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/gixy/default.nix
@@ -21,6 +21,7 @@ in
 python.pkgs.buildPythonApplication rec {
   pname = "gixy";
   version = "0.1.20";
+  format = "setuptools";
 
   # package is only compatible with python 2.7 and 3.5+
   disabled = with python.pkgs; !(pythonAtLeast "3.5" || isPy27);
@@ -42,7 +43,7 @@ python.pkgs.buildPythonApplication rec {
     configargparse
     pyparsing
     jinja2
-    nose
+    nose3
     setuptools
     six
   ];
diff --git a/nixpkgs/pkgs/tools/admin/granted/default.nix b/nixpkgs/pkgs/tools/admin/granted/default.nix
index 907d440174ff..7cb1dc0cb1e2 100644
--- a/nixpkgs/pkgs/tools/admin/granted/default.nix
+++ b/nixpkgs/pkgs/tools/admin/granted/default.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.14.2";
+  version = "0.14.4";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BxtEMIWJaZaCtd5auGRq+F3VkRTZXGBa6GdLWgvC+ZE=";
+    sha256 = "sha256-haeFDAm44b4JgNbl983MjG3HQMvqrkiGSboCcf3uYmI=";
   };
 
-  vendorHash = "sha256-tPWdzPJyjxcjDM5UgIeQek60Df/7dSaKedZF04tfu6Q=";
+  vendorHash = "sha256-B+d15b8ei1wn3F8L1Hgce2wRPoisoFwG6YgrbPikeOo=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/tools/admin/kics/default.nix b/nixpkgs/pkgs/tools/admin/kics/default.nix
index cebb1f2f072d..64f8ec24251e 100644
--- a/nixpkgs/pkgs/tools/admin/kics/default.nix
+++ b/nixpkgs/pkgs/tools/admin/kics/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "kics";
-  version = "1.7.5";
+  version = "1.7.7";
 
   src = fetchFromGitHub {
     owner = "Checkmarx";
     repo = "kics";
     rev = "v${version}";
-    hash = "sha256-+/wqwWRJQKfmh4JuWppcE2444lD1PQ9rDGOsFh57AKs=";
+    hash = "sha256-qK1lq7jrej4HdM+BUDDPujhbhqEhKcli3CTAmadO5Mg=";
   };
 
-  vendorHash = "sha256-ipXfxqHdushJ2P//oyGGjZsq5EypDEpHKlW32VHaMXw=";
+  vendorHash = "sha256-gJu3B30IPp8A/xgtE5fzThQAtnFbbzr8ZwucAsObBxs=";
 
   subPackages = [ "cmd/console" ];
 
diff --git a/nixpkgs/pkgs/tools/admin/lxd/wrapper.nix b/nixpkgs/pkgs/tools/admin/lxd/wrapper.nix
index 8052484ce7c4..b197cd496b1a 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/wrapper.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/wrapper.nix
@@ -11,19 +11,28 @@
 , attr
 , bash
 , btrfs-progs
+, cdrkit
 , criu
 , dnsmasq
+, e2fsprogs
+, getent
 , gnutar
 , gptfdisk
 , gzip
 , iproute2
 , iptables
+, kmod
+, lvm2
+, minio
+, nftables
 , OVMF
 , qemu_kvm
 , qemu-utils
 , rsync
 , spice-gtk
 , squashfsTools
+, thin-provisioning-tools
+, util-linux
 , virtiofsd
 , xz
 }:
@@ -33,17 +42,26 @@ let
     attr
     bash
     btrfs-progs
+    cdrkit
     criu
     dnsmasq
+    e2fsprogs
+    getent
     gnutar
     gptfdisk
     gzip
     iproute2
     iptables
+    kmod
+    lvm2
+    minio
+    nftables
     qemu_kvm
     qemu-utils
     rsync
     squashfsTools
+    thin-provisioning-tools
+    util-linux
     virtiofsd
     xz
 
diff --git a/nixpkgs/pkgs/tools/admin/mycli/default.nix b/nixpkgs/pkgs/tools/admin/mycli/default.nix
index b7ece9ed25a0..8a67139bb576 100644
--- a/nixpkgs/pkgs/tools/admin/mycli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/mycli/default.nix
@@ -8,11 +8,11 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "mycli";
-  version = "1.26.1";
+  version = "1.27.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jAMDXJtFJtv6CwhZZU4pdKDndZKp6bJ/QPWo2q6DvrE=";
+    sha256 = "sha256-px21vZwafQAG9PL/AVSM51Y30/UMo6fne5ULW0av980=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/admin/okta-aws-cli/default.nix b/nixpkgs/pkgs/tools/admin/okta-aws-cli/default.nix
index 38a2d42ac0a4..52a3422bfa89 100644
--- a/nixpkgs/pkgs/tools/admin/okta-aws-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/okta-aws-cli/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "okta-aws-cli";
-  version = "1.1.0";
+  version = "1.2.1";
 
   subPackages = [ "cmd/okta-aws-cli" ];
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     owner  = "okta";
     repo   = "okta-aws-cli";
     rev    = "v${version}";
-    sha256 = "sha256-TRS1+msrp+Wd+9FhQSErZGvfpcRA5ltNKIyVHLveMOo=";
+    sha256 = "1d148zf9warwg8kvkqpw79dwmlrab61hpird58wlh6jyqfxa5729";
   };
 
   vendorHash = "sha256-AJmQxMRj602yodzIdhZV+R22KxnEIbT9iSz/5G5T6r8=";
diff --git a/nixpkgs/pkgs/tools/admin/qovery-cli/default.nix b/nixpkgs/pkgs/tools/admin/qovery-cli/default.nix
index 9c88c2d39b89..595778084061 100644
--- a/nixpkgs/pkgs/tools/admin/qovery-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/qovery-cli/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "qovery-cli";
-  version = "0.67.1";
+  version = "0.68.1";
 
   src = fetchFromGitHub {
     owner = "Qovery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-mVn+Q4XZ+jJjHR+V5Rl/rPUZN/Tv7vVX7u6IDuJNdO0=";
+    hash = "sha256-9xTX4y+05haMh6solpPpx7y9yG5H1YcWF+Cf8Sdbu+E=";
   };
 
-  vendorHash = "sha256-Fcm/f54zGgA742yhIVJxjv7Y2T8DblC71+hw5HTmOf0=";
+  vendorHash = "sha256-U/yV+6WV8Oc0gLcYFyfOeBzzJdNwyyBk3jPRkH3LUrc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix b/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
index 02bb0ae0f398..1ac149a2c7ea 100644
--- a/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "scaleway-cli";
-  version = "2.19.0";
+  version = "2.20.0";
 
   src = fetchFromGitHub {
     owner = "scaleway";
     repo = "scaleway-cli";
     rev = "v${version}";
-    sha256 = "sha256-DJTgmUH/n1TBKrgBN+8oG2ziRlAXzj6gOtjv4QjNkC8=";
+    sha256 = "sha256-zKqYbvSawu+xtDCxe31ERrjCMo4WLimbwAQX9mWvI7k=";
   };
 
-  vendorHash = "sha256-RnTj59WsyY/cWkhe2bucMvzrI8EwC3I1kxccBCfFqtI=";
+  vendorHash = "sha256-UR7ZohQeLWux9AAvOUgtPA4F/qZXlx1vNjYrwal+Sac=";
 
   ldflags = [
     "-w"
diff --git a/nixpkgs/pkgs/tools/admin/simplotask/default.nix b/nixpkgs/pkgs/tools/admin/simplotask/default.nix
index 127fd46f7814..ba7241a753d8 100644
--- a/nixpkgs/pkgs/tools/admin/simplotask/default.nix
+++ b/nixpkgs/pkgs/tools/admin/simplotask/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "simplotask";
-  version = "1.11.4";
+  version = "1.11.5";
 
   src = fetchFromGitHub {
     owner = "umputun";
     repo = "spot";
     rev = "v${version}";
-    hash = "sha256-G/T7LF8ujlCSbK1Lv2h43OZVx52yrLDr+6e/WxhaHOo=";
+    hash = "sha256-ZPmYAUfkWo+inD2CwzT4Hncsshk3Y2W6aldy/5v1sks=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/tools/admin/ssmsh/default.nix b/nixpkgs/pkgs/tools/admin/ssmsh/default.nix
index e42e2e06de66..0d55ca6d22bd 100644
--- a/nixpkgs/pkgs/tools/admin/ssmsh/default.nix
+++ b/nixpkgs/pkgs/tools/admin/ssmsh/default.nix
@@ -1,22 +1,28 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, ssmsh }:
 
 buildGoModule rec {
   pname = "ssmsh";
-  version = "1.4.7";
+  version = "1.4.8";
 
   src = fetchFromGitHub {
     owner = "bwhaley";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-juyTCtcuFIlKyLxDrK5tRRzCMwoSXG4EUA32E/Z4y5c=";
+    sha256 = "sha256-GpN+yicgFIHOaMeJJcRn55f6fQbFX12vSV089/cMsqc=";
   };
 
-  vendorSha256 = "sha256-dqUMwnHRsR8n4bHEKoePyuqr8sE4NWPpuYo5SwOw0Rw=";
+  vendorSha256 = "sha256-17fmdsfOrOaySPsXofLzz0+vmiemg9MbnWhRoZ67EuQ=";
 
   doCheck = true;
 
   ldflags = [ "-w" "-s" "-X main.Version=${version}" ];
 
+  passthru.tests = testers.testVersion {
+    package = ssmsh;
+    command = "ssmsh -version";
+    version = "Version ${version}";
+  };
+
   meta = with lib; {
     homepage = "https://github.com/bwhaley/ssmsh";
     description = "An interactive shell for AWS Parameter Store";
diff --git a/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix b/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
index 727f6f605cbe..45fdbff60321 100644
--- a/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.17.1";
+  version = "1.17.2";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-5j2DHbBLHQWtkQP8qTTxD949alo5mh88Vgv5cus8C/w=";
+    hash = "sha256-MzzjrGtqbtZMvfL7dPAsKHF2ZTneSdtDuwHQQcyrQDw=";
   };
   vendorHash = "sha256-DYA6cu2KzEBZ4wsT7wjcdY1endQQOZlj2aOwu6iGLew=";
 
@@ -72,7 +72,7 @@ buildGoModule rec {
       Create, retrieve, update, or delete API objects.
     '';
     license = with licenses; [ asl20 ];
-    maintainers = with maintainers; [ RaghavSood jk ];
+    maintainers = with maintainers; [ RaghavSood jk kashw2 ];
     mainProgram = "stripe";
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/tlsclient/default.nix b/nixpkgs/pkgs/tools/admin/tlsclient/default.nix
index 2cf0f0d548c5..5f3633a6c9c7 100644
--- a/nixpkgs/pkgs/tools/admin/tlsclient/default.nix
+++ b/nixpkgs/pkgs/tools/admin/tlsclient/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tlsclient";
-  version = "1.6.4";
+  version = "1.6.5";
 
   src = fetchFromSourcehut {
     owner = "~moody";
     repo = "tlsclient";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-36fhY9kO6tPUuRkpk3Jv9oBRYX/SnmdZg0Rzt/A6MQE=";
+    hash = "sha256-Ff41LZ5jbrqni2ptsUlI3L17SCHnGo4utg8etFubRNI=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/tools/admin/trivy/default.nix b/nixpkgs/pkgs/tools/admin/trivy/default.nix
index 473cdb977bc1..147fed6f127d 100644
--- a/nixpkgs/pkgs/tools/admin/trivy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/trivy/default.nix
@@ -1,23 +1,25 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, testers
+, trivy
 }:
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.44.1";
+  version = "0.45.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zSrXfSG9GXReJ+XRx7FTBZovSvNq725zzWMje3maTx4=";
+    hash = "sha256-HsxcB3X8/n4Y8sU7im1nEGqMK9bVlhq5ZiF9gG+3YFs=";
   };
 
-  # hash missmatch on across linux and darwin
+  # Hash mismatch on across Linux and Darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-CEr8UvQtKZo5jahLeLx3RYT592i6SwwNLRA4IRD0mYU=";
+  vendorHash = "sha256-rlMhmgnqvkKttfIzVMi1Ca/dqOdkoCF9yZbEcr8sv5I=";
 
   subPackages = [ "cmd/trivy" ];
 
@@ -32,12 +34,11 @@ buildGoModule rec {
 
   doInstallCheck = true;
 
-  installCheckPhase = ''
-    runHook preInstallCheck
-    $out/bin/trivy --help
-    $out/bin/trivy --version | grep "v${version}"
-    runHook postInstallCheck
-  '';
+  passthru.tests.version = testers.testVersion {
+    package = trivy;
+    command = "trivy --version";
+    version = "v${version}";
+  };
 
   meta = with lib; {
     homepage = "https://github.com/aquasecurity/trivy";
diff --git a/nixpkgs/pkgs/tools/admin/try/default.nix b/nixpkgs/pkgs/tools/admin/try/default.nix
index e44f92d1002b..4ab78210afca 100644
--- a/nixpkgs/pkgs/tools/admin/try/default.nix
+++ b/nixpkgs/pkgs/tools/admin/try/default.nix
@@ -1,12 +1,12 @@
 { stdenvNoCC, lib, fetchFromGitHub, fuse-overlayfs, util-linux, makeWrapper }:
 stdenvNoCC.mkDerivation rec {
   pname = "try";
-  version = "0.1.0";
+  version = "0.2.0";
   src = fetchFromGitHub {
     owner = "binpash";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TTKr22FwXfPL/YrFT+r12nFSxbk/47N6rrb3Vw/lSPI=";
+    hash = "sha256-2EDRVwW4XzQhd7rAM2rDuR94Fkaq4pH5RTooFEBBh5g=";
   };
   nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/archivers/7zz/default.nix b/nixpkgs/pkgs/tools/archivers/7zz/default.nix
index 6df03f1d83d2..48b072b0cf4b 100644
--- a/nixpkgs/pkgs/tools/archivers/7zz/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/7zz/default.nix
@@ -69,6 +69,16 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ lib.optionals stdenv.hostPlatform.isMinGW [
     "-Wno-conversion"
     "-Wno-unused-macros"
+  ] ++ lib.optionals stdenv.cc.isClang [
+    "-Wno-declaration-after-statement"
+    (lib.optionals (lib.versionAtLeast (lib.getVersion stdenv.cc.cc) "13") [
+      "-Wno-reserved-identifier"
+      "-Wno-unused-but-set-variable"
+    ])
+    (lib.optionals (lib.versionAtLeast (lib.getVersion stdenv.cc.cc) "16") [
+      "-Wno-unsafe-buffer-usage"
+      "-Wno-cast-function-type-strict"
+    ])
   ]);
 
   inherit makefile;
diff --git a/nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix b/nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix
index 1c4730c8de64..da231bf4a742 100644
--- a/nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/rpm2targz/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     description = "Convert a .rpm file to a .tar.gz archive";
     homepage = "http://slackware.com/config/packages.php";
     license = licenses.bsd1;
-    maintainers = with maintainers; [ zseri ];
+    maintainers = [ maintainers.fogti ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix b/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix
deleted file mode 100644
index 21dc009e33dd..000000000000
--- a/nixpkgs/pkgs/tools/audio/acoustid-fingerprinter/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, cmake, pkg-config, qt4, taglib, chromaprint, ffmpeg_4 }:
-
-stdenv.mkDerivation rec {
-  pname = "acoustid-fingerprinter";
-  version = "0.6";
-
-  src = fetchurl {
-    url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/downloads/"
-        + "${pname}-${version}.tar.gz";
-    sha256 = "0ckglwy95qgqvl2l6yd8ilwpd6qs7yzmj8g7lnxb50d12115s5n0";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ qt4 taglib chromaprint ffmpeg_4 ];
-
-  cmakeFlags = [ "-DTAGLIB_MIN_VERSION=${lib.getVersion taglib}" ];
-
-  patches = [
-    (fetchpatch {
-      name = "fix-build-with-libav-10.patch";
-      url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/2c778334a9fc2f0ccf9b1d7635c116bce6509748/raw";
-      sha256 = "1smyp3x5n6jwxpgw60xsijq2fn6g1gl759h1lm5agaxhcyyqn0i0";
-    })
-    (fetchpatch {
-      name = "fix-build-failure-on-gcc-6.patch";
-      url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/632e87969c3a5562a5d4842b03613267ba6236b2/raw";
-      sha256 = "15hm9knrpqn3yqrwyjz4zh2aypwbcycd0c5svrsy1fb2h2rh05jk";
-    })
-  ];
-
-  meta = with lib; {
-    homepage = "https://acoustid.org/fingerprinter";
-    description = "Audio fingerprinting tool using chromaprint";
-    license = lib.licenses.gpl2Plus;
-    maintainers = with maintainers; [ ehmry ];
-    platforms = with platforms; linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/audio/dl-librescore/default.nix b/nixpkgs/pkgs/tools/audio/dl-librescore/default.nix
new file mode 100644
index 000000000000..5e8306f21228
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/dl-librescore/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, buildNpmPackage
+, fetchFromGitHub
+, python3
+, darwin
+}:
+
+buildNpmPackage rec {
+  pname = "dl-librescore";
+  version = "0.34.47";
+
+  src = fetchFromGitHub {
+    owner = "LibreScore";
+    repo = "dl-librescore";
+    rev = "v${version}";
+    hash = "sha256-yXreyQiIKmZEw2HcpnCW4TxCTHzdq+KuPSlFPFZy2oU=";
+  };
+
+  npmDepsHash = "sha256-qKu7xViApKg/4EubS4tsZEtNoW62rpC4e6xmBugSkek=";
+
+  # see https://github.com/LibreScore/dl-librescore/pull/32
+  # TODO can be removed with next update
+  postPatch = ''
+    substituteInPlace package-lock.json \
+      --replace 50c7a1508cd9358757c30794e14ba777e6faa8aa b4cb32eb1734a2f73ba2d92743647b1a91c0e2a8
+  '';
+
+  makeCacheWritable = true;
+
+  nativeBuildInputs = [
+    python3
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.cctools
+  ];
+
+  meta = {
+    description = "Download sheet music";
+    homepage = "https://github.com/LibreScore/dl-librescore";
+    license = lib.licenses.mit;
+    mainProgram = "dl-librescore";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/playerctl/default.nix b/nixpkgs/pkgs/tools/audio/playerctl/default.nix
index b28ab390e01c..8740c273eef3 100644
--- a/nixpkgs/pkgs/tools/audio/playerctl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/playerctl/default.nix
@@ -1,4 +1,17 @@
-{ lib, stdenv, meson, ninja, fetchFromGitHub, glib, pkg-config, gtk-doc, docbook_xsl, gobject-introspection }:
+{ lib
+, stdenv
+, buildPackages
+, docbook_xsl
+, fetchFromGitHub
+, glib
+, gobject-introspection
+, gtk-doc
+, meson
+, mesonEmulatorHook
+, ninja
+, pkg-config
+, withDocs ? stdenv.hostPlatform.emulatorAvailable buildPackages
+}:
 
 stdenv.mkDerivation rec {
   pname = "playerctl";
@@ -11,10 +24,22 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-OiGKUnsKX0ihDRceZoNkcZcEAnz17h2j2QUOSVcxQEY=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config gtk-doc docbook_xsl gobject-introspection ];
+  nativeBuildInputs = [
+    docbook_xsl
+    gobject-introspection
+    gtk-doc
+    meson
+    ninja
+    pkg-config
+  ] ++ lib.optionals (withDocs && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    mesonEmulatorHook
+  ];
   buildInputs = [ glib ];
 
-  mesonFlags = [ "-Dbash-completions=true" ];
+  mesonFlags = [
+    "-Dbash-completions=true"
+    (lib.mesonBool "gtk-doc" withDocs)
+  ];
 
   meta = with lib; {
     description = "Command-line utility and library for controlling media players that implement MPRIS";
diff --git a/nixpkgs/pkgs/tools/audio/shaq/default.nix b/nixpkgs/pkgs/tools/audio/shaq/default.nix
new file mode 100644
index 000000000000..a7072ece0ff5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/shaq/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, python3
+, fetchFromGitHub
+, ffmpeg
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "shaq";
+  version = "0.0.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "woodruffw";
+    repo = "shaq";
+    rev = "v${version}";
+    hash = "sha256-RF606Aeskqbx94H5ivd+RJ+Hk0iYsds/PUY8TZqirs4=";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.flit-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pyaudio
+    pydub
+    rich
+    shazamio
+  ];
+
+  passthru.optional-dependencies = with python3.pkgs; {
+    dev = [
+      build
+      shaq
+    ];
+    lint = [
+      black
+      mypy
+      ruff
+    ];
+    test = [
+      pretend
+      pytest
+      pytest-cov
+    ];
+  };
+
+  pythonImportsCheck = [ "shaq" ];
+
+  makeWrapperArgs = [
+    "--prefix"
+    "PATH"
+    ":"
+    (lib.makeBinPath [ ffmpeg ])
+  ];
+
+  meta = with lib; {
+    description = "A CLI client for Shazam";
+    homepage = "https://github.com/woodruffw/shaq";
+    changelog = "https://github.com/woodruffw/shaq/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda mig4ng ];
+    mainProgram = "shaq";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/borgbackup/default.nix b/nixpkgs/pkgs/tools/backup/borgbackup/default.nix
index e35950bfdfa3..a900df590eac 100644
--- a/nixpkgs/pkgs/tools/backup/borgbackup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/borgbackup/default.nix
@@ -16,12 +16,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "borgbackup";
-  version = "1.2.4";
+  version = "1.2.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pL1U6UaegbejCmcRQjEVq8gY2c2ETsscoOYQS8U3Tag=";
+    hash = "sha256-t6b48IYDnu7HkHC5FPPGUe1/NhLJZTdK+RDSd8eiE50=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/backup/duplicity/default.nix b/nixpkgs/pkgs/tools/backup/duplicity/default.nix
index 216d4dc7da6a..15b8a33de675 100644
--- a/nixpkgs/pkgs/tools/backup/duplicity/default.nix
+++ b/nixpkgs/pkgs/tools/backup/duplicity/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitLab
 , python3
 , librsync
@@ -11,10 +12,8 @@
 , makeWrapper
 , gettext
 }:
-let
-  pythonPackages = python3.pkgs;
-in
-pythonPackages.buildPythonApplication rec {
+
+python3.pkgs.buildPythonApplication rec {
   pname = "duplicity";
   version = "0.8.23";
 
@@ -51,14 +50,15 @@ pythonPackages.buildPythonApplication rec {
   nativeBuildInputs = [
     makeWrapper
     gettext
-    pythonPackages.wrapPython
-    pythonPackages.setuptools-scm
+    python3.pkgs.wrapPython
+    python3.pkgs.setuptools-scm
   ];
+
   buildInputs = [
     librsync
   ];
 
-  pythonPath = with pythonPackages; [
+  pythonPath = with python3.pkgs; [
     b2sdk
     boto3
     cffi
@@ -82,7 +82,7 @@ pythonPackages.buildPythonApplication rec {
     par2cmdline # Add 'par2' to PATH.
   ] ++ lib.optionals stdenv.isLinux [
     util-linux # Add 'setsid' to PATH.
-  ] ++ (with pythonPackages; [
+  ] ++ (with python3.pkgs; [
     lockfile
     mock
     pexpect
@@ -127,6 +127,6 @@ pythonPackages.buildPythonApplication rec {
     description = "Encrypted bandwidth-efficient backup using the rsync algorithm";
     homepage = "https://duplicity.gitlab.io/duplicity-web/";
     license = licenses.gpl2Plus;
-    platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/bluetooth/bluetuith/default.nix b/nixpkgs/pkgs/tools/bluetooth/bluetuith/default.nix
index 7904e8d5b5d0..8aeab2de7a96 100644
--- a/nixpkgs/pkgs/tools/bluetooth/bluetuith/default.nix
+++ b/nixpkgs/pkgs/tools/bluetooth/bluetuith/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bluetuith";
-  version = "0.1.6";
+  version = "0.1.7";
 
   src = fetchFromGitHub {
     owner = "darkhz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9fhgld0jhljvDMsRlU+jXsJla2oNjdsFm8TbmmvcoL4=";
+    sha256 = "sha256-8FVXVawmaCgnsexnNRw53tVR2a2fRyDK+h959Ezw7Zg=";
   };
 
-  vendorHash = "sha256-eSgjIZmD5HL8S1XY0LK2IeWDchjFWBlRq5qriBg7l2U=";
+  vendorHash = "sha256-mudJN7rYWpdv2X4hrYjPBtEILyrdext4q+maDK1dC44=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/nixpkgs/pkgs/tools/bluetooth/nrfconnect/default.nix b/nixpkgs/pkgs/tools/bluetooth/nrfconnect/default.nix
deleted file mode 100644
index 07dc7303a06e..000000000000
--- a/nixpkgs/pkgs/tools/bluetooth/nrfconnect/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib
-, fetchurl
-, appimageTools
-}:
-
-let
-  pname = "nrfconnect";
-  version = "4.0.1";
-
-  src = fetchurl {
-    url = "https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/desktop-software/nrf-connect-for-desktop/${lib.versions.major version}-${lib.versions.minor version}-${lib.versions.patch version}/nrfconnect-${version}-x86_64.appimage";
-    sha256 = "sha256-Mh4DrXn3DS5qOz3109lmXyFn28WenG6ZSvqFnUuc+rw=";
-    name = "${pname}-${version}.AppImage";
-  };
-
-  appimageContents = appimageTools.extractType2 {
-    inherit pname version src;
-  };
-
-in appimageTools.wrapType2 {
-  inherit pname version src;
-
-  extraPkgs = pkgs: with pkgs; [
-    segger-jlink
-  ];
-
-  extraInstallCommands = ''
-    mv $out/bin/${pname}-${version} $out/bin/${pname}
-    install -m 444 -D ${appimageContents}/nrfconnect.desktop $out/share/applications/nrfconnect.desktop
-    install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/nrfconnect.png \
-      $out/share/icons/hicolor/512x512/apps/nrfconnect.png
-    substituteInPlace $out/share/applications/nrfconnect.desktop \
-      --replace 'Exec=AppRun' 'Exec=${pname}'
-  '';
-
-  meta = with lib; {
-    description = "Nordic Semiconductor nRF Connect for Desktop";
-    homepage = "https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-desktop";
-    license = licenses.unfree;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ stargate01 ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/cd-dvd/ventoy/default.nix b/nixpkgs/pkgs/tools/cd-dvd/ventoy/default.nix
index 1983018788ea..cf3bd1fe6c52 100644
--- a/nixpkgs/pkgs/tools/cd-dvd/ventoy/default.nix
+++ b/nixpkgs/pkgs/tools/cd-dvd/ventoy/default.nix
@@ -50,7 +50,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ventoy";
-  version = "1.0.94";
+  version = "1.0.95";
 
   src =
     let
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
     in
     fetchurl {
       url = "https://github.com/ventoy/Ventoy/releases/download/v${version}/ventoy-${version}-linux.tar.gz";
-      hash = "sha256-dVcr0qDG95QC9ay1Sbhs9IxCGzpLvej2XRmje29fWhQ=";
+      hash = "sha256-Tsi541GAMrWBl5xLo/K+uEyaoaDSWvwp5RMzZ5V6RAU=";
     };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/compression/pigz/default.nix b/nixpkgs/pkgs/tools/compression/pigz/default.nix
index 3faab62a1e8e..79363eecade3 100644
--- a/nixpkgs/pkgs/tools/compression/pigz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pigz/default.nix
@@ -1,24 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, util-linux }:
+{ lib, stdenv, fetchFromGitHub, zlib, util-linux }:
 
 stdenv.mkDerivation rec {
   pname = "pigz";
-  version = "2.7";
+  version = "2.8";
 
   src = fetchFromGitHub {
       owner = "madler";
       repo = pname;
       rev = "refs/tags/v${version}";
-      sha256 = "sha256-RYp3vRwlI6S/lcib+3t7qLYFWv11GUnj1Cmxm9eaVro=";
+      sha256 = "sha256-PzdxyO4mCg2jE/oBk1MH+NUdWM95wIIIbncBg71BkmQ=";
   };
 
-  patches = [
-    # needed to build the pigzn test binary
-    (fetchpatch {
-      url = "https://github.com/madler/pigz/commit/67fd6e436f4f479aead529a719e24d6864cf1dfa.patch";
-      sha256 = "sha256-FkzLYob/WIVIB7eh03cdzpLy6SzoHLqEMsWyHdMTjbU=";
-    })
-  ];
-
   enableParallelBuilding = true;
 
   buildInputs = [ zlib ] ++ lib.optional stdenv.isLinux util-linux;
@@ -28,11 +20,15 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.isLinux;
   checkTarget = "tests";
   installPhase = ''
+    runHook preInstall
+
     install -Dm755 pigz "$out/bin/pigz"
     ln -s pigz "$out/bin/unpigz"
     install -Dm755 pigz.1 "$out/share/man/man1/pigz.1"
     ln -s pigz.1 "$out/share/man/man1/unpigz.1"
     install -Dm755 pigz.pdf "$out/share/doc/pigz/pigz.pdf"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix b/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix
index 46f237d87cf5..dfcf6aba9e08 100644
--- a/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bindfs/default.nix
@@ -1,25 +1,36 @@
-{ lib, stdenv, fetchurl, fuse, fuse3, pkg-config }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, fuse
+, fuse3
+}:
 
-stdenv.mkDerivation rec {
-  version = "1.17.3";
+stdenv.mkDerivation (finalAttrs: {
+  version = "1.17.4";
   pname = "bindfs";
 
   src = fetchurl {
-    url    = "https://bindfs.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-wWh2CRVywjJCwW6Hxb5+NRL0Q6rmNzKNjAEcBx6TAus=";
+    url = "https://bindfs.org/downloads/bindfs-${finalAttrs.version}.tar.gz";
+    hash = "sha256-b9Svm6LsK9tgPvjuoqnRLbLl/py+UrhkC0FXNKWfPcw=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
   buildInputs = if stdenv.isDarwin then [ fuse ] else [ fuse3 ];
+
   postFixup = ''
     ln -s $out/bin/bindfs $out/bin/mount.fuse.bindfs
   '';
 
   meta = {
+    changelog = "https://github.com/mpartel/bindfs/raw/${finalAttrs.version}/ChangeLog";
     description = "A FUSE filesystem for mounting a directory to another location";
-    homepage    = "https://bindfs.org";
-    license     = lib.licenses.gpl2Only;
+    homepage = "https://bindfs.org";
+    license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ lovek323 lovesegfault ];
-    platforms   = lib.platforms.unix;
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix b/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
index a2efc2e82c5e..d3ef37d6386f 100644
--- a/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "6.3.3";
+  version = "6.5";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "sha256-S+MAFXYCcNCBZCzAAjqL/ufLZXoqoFVkTmpW1oaVuW4=";
+    sha256 = "sha256-j1B6DN9qizcthi2+SUP+hMZtyyCI48/eLPs7F26sHBw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
index 5f3c8b22b888..3cbf3704fbe9 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
@@ -11,6 +11,7 @@
 , fmt
 , git
 , makeWrapper
+, nasm
 , pkg-config
 , which
 
@@ -23,14 +24,13 @@
 , boost179
 , bzip2
 , cryptsetup
-, cimg
 , cunit
 , doxygen
 , gperf
 , graphviz
 , gtest
 , icu
-, jsoncpp
+, libcap
 , libcap_ng
 , libnl
 , libxml2
@@ -225,10 +225,10 @@ let
   ]);
   inherit (ceph-python-env.python) sitePackages;
 
-  version = "17.2.5";
+  version = "18.2.0";
   src = fetchurl {
     url = "https://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-    hash = "sha256-NiJpwUeROvh0siSaRoRrDm+C0s61CvRiIrbd7JmRspo=";
+    hash = "sha256:0k9nl6xi5brva51rr14m7ig27mmmd7vrpchcmqc40q3c2khn6ns9";
   };
 in rec {
   ceph = stdenv.mkDerivation {
@@ -240,6 +240,7 @@ in rec {
       fmt
       git
       makeWrapper
+      nasm
       pkg-config
       python
       python.pkgs.python # for the toPythonPath function
@@ -259,14 +260,12 @@ in rec {
       boost
       bzip2
       ceph-python-env
-      cimg
       cryptsetup
       cunit
       gperf
       gtest
-      jsoncpp
       icu
-      libcap_ng
+      libcap
       libnl
       libxml2
       lttng-ust
@@ -287,6 +286,7 @@ in rec {
       zstd
     ] ++ lib.optionals stdenv.isLinux [
       keyutils
+      libcap_ng
       liburing
       libuuid
       linuxHeaders
@@ -314,22 +314,38 @@ in rec {
       # install target needs to be in PYTHONPATH for "*.pth support" check to succeed
       # set PYTHONPATH, so the build system doesn't silently skip installing ceph-volume and others
       export PYTHONPATH=${ceph-python-env}/${sitePackages}:$lib/${sitePackages}:$out/${sitePackages}
-      patchShebangs src/script src/spdk src/test src/tools
+      patchShebangs src/
     '';
 
     cmakeFlags = [
       "-DCMAKE_INSTALL_DATADIR=${placeholder "lib"}/lib"
 
-      "-DMGR_PYTHON_VERSION=${ceph-python-env.python.pythonVersion}"
       "-DWITH_CEPHFS_SHELL:BOOL=ON"
       "-DWITH_SYSTEMD:BOOL=OFF"
+      # `WITH_JAEGER` requires `thrift` as a depenedncy (fine), but the build fails with:
+      #     CMake Error at src/opentelemetry-cpp-stamp/opentelemetry-cpp-build-Release.cmake:49 (message):
+      #     Command failed: 2
+      #
+      #        'make' 'opentelemetry_trace' 'opentelemetry_exporter_jaeger_trace'
+      #
+      #     See also
+      #
+      #        /build/ceph-18.2.0/build/src/opentelemetry-cpp/src/opentelemetry-cpp-stamp/opentelemetry-cpp-build-*.log
+      # and that file contains:
+      #     /build/ceph-18.2.0/src/jaegertracing/opentelemetry-cpp/exporters/jaeger/src/TUDPTransport.cc: In member function 'virtual void opentelemetry::v1::exporter::jaeger::TUDPTransport::close()':
+      #     /build/ceph-18.2.0/src/jaegertracing/opentelemetry-cpp/exporters/jaeger/src/TUDPTransport.cc:71:7: error: '::close' has not been declared; did you mean 'pclose'?
+      #       71 |     ::THRIFT_CLOSESOCKET(socket_);
+      #          |       ^~~~~~~~~~~~~~~~~~
+      # Looks like `close()` is somehow not included.
+      # But the relevant code is already removed in `open-telemetry` 1.10: https://github.com/open-telemetry/opentelemetry-cpp/pull/2031
+      # So it's proably not worth trying to fix that for this Ceph version,
+      # and instead just disable Ceph's Jaeger support.
+      "-DWITH_JAEGER:BOOL=OFF"
       "-DWITH_TESTS:BOOL=OFF"
 
       # Use our own libraries, where possible
-      "-DWITH_SYSTEM_ARROW:BOOL=ON"
+      "-DWITH_SYSTEM_ARROW:BOOL=ON" # Only used if other options enable Arrow support.
       "-DWITH_SYSTEM_BOOST:BOOL=ON"
-      "-DWITH_SYSTEM_CIMG:BOOL=ON"
-      "-DWITH_SYSTEM_JSONCPP:BOOL=ON"
       "-DWITH_SYSTEM_GTEST:BOOL=ON"
       "-DWITH_SYSTEM_ROCKSDB:BOOL=ON"
       "-DWITH_SYSTEM_UTF8PROC:BOOL=ON"
@@ -337,8 +353,6 @@ in rec {
 
       # TODO breaks with sandbox, tries to download stuff with npm
       "-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF"
-      # no matching function for call to 'parquet::PageReader::Open(std::shared_ptr<arrow::io::InputStream>&, int64_t, arrow::Compression::type, parquet::MemoryPool*, parquet::CryptoContext*)'
-      "-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF"
       # WITH_XFS has been set default ON from Ceph 16, keeping it optional in nixpkgs for now
       ''-DWITH_XFS=${if optLibxfs != null then "ON" else "OFF"}''
     ] ++ lib.optional stdenv.isLinux "-DWITH_SYSTEM_LIBURING=ON";
diff --git a/nixpkgs/pkgs/tools/filesystems/dosfstools/default.nix b/nixpkgs/pkgs/tools/filesystems/dosfstools/default.nix
index cbc00b52bd54..eda54d341f9a 100644
--- a/nixpkgs/pkgs/tools/filesystems/dosfstools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/dosfstools/default.nix
@@ -22,6 +22,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/dosfstools/dosfstools/commit/2d3125c4a74895eae1f66b93287031d340324524.patch";
       sha256 = "nlIuRDsNjk23MKZL9cZ05odOfTXvsyQaKcv/xEr4c+U=";
     })
+    # reproducible builds fix backported from master
+    # (respect SOURCE_DATE_EPOCH)
+    # TODO: remove on the next release
+    (fetchpatch {
+      url = "https://github.com/dosfstools/dosfstools/commit/8da7bc93315cb0c32ad868f17808468b81fa76ec.patch";
+      sha256 = "sha256-Quegj5uYZgACgjSZef6cjrWQ64SToGQxbxyqCdl8C7o=";
+    })
   ];
 
   nativeBuildInputs = [ autoreconfHook pkg-config ]
diff --git a/nixpkgs/pkgs/tools/filesystems/garage/default.nix b/nixpkgs/pkgs/tools/filesystems/garage/default.nix
index 0ac025f37a32..4accc34b6242 100644
--- a/nixpkgs/pkgs/tools/filesystems/garage/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/garage/default.nix
@@ -83,13 +83,13 @@ in
 
     garage_0_7 = garage_0_7_3;
 
-    garage_0_8_3 = generic {
-      version = "0.8.3";
-      sha256 = "sha256-NxkFj76L+LpCWzOWbnN3zdhw9Q16uzPibDs+C+voM/0=";
-      cargoSha256 = "sha256-hbBuUjdlw//s6d24dPBu3R/BTJvmOW1B7tSIXNxLXlU=";
+    garage_0_8_4 = generic {
+      version = "0.8.4";
+      sha256 = "sha256-YgMw41ofM59h7OnHK1H8+Se5mZEdYypPIdkqbyX9qfs=";
+      cargoSha256 = "sha256-dEtksOVqy5wAPoqCuXJj3c4TB6UbR8PTaB70fbL6iR8=";
     };
 
-    garage_0_8 = garage_0_8_3;
+    garage_0_8 = garage_0_8_4;
 
     garage = garage_0_8;
   }
diff --git a/nixpkgs/pkgs/tools/filesystems/irods/common.nix b/nixpkgs/pkgs/tools/filesystems/irods/common.nix
index 0bc16aa7fc5d..27825fdcbeac 100644
--- a/nixpkgs/pkgs/tools/filesystems/irods/common.nix
+++ b/nixpkgs/pkgs/tools/filesystems/irods/common.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, bzip2, zlib, autoconf, automake, cmake, help2man, texinfo, libtool, cppzmq, libarchive
-, avro-cpp, boost, jansson, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2, nanodbc, fmt
-, nlohmann_json, spdlog }:
+, avro-cpp, boost, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2, nanodbc, fmt
+, nlohmann_json, spdlog, curl }:
 
 # Common attributes of irods packages
 
 {
   nativeBuildInputs = [ autoconf automake cmake help2man texinfo which gcc ];
-  buildInputs = [ bzip2 zlib libtool cppzmq libarchive avro-cpp jansson zeromq openssl pam libiodbc libkrb5 boost
-                  libcxx catch2 nanodbc fmt nlohmann_json spdlog ];
+  buildInputs = [ bzip2 zlib libtool cppzmq libarchive avro-cpp zeromq openssl pam libiodbc libkrb5 boost
+                  libcxx catch2 nanodbc fmt nlohmann_json spdlog curl ];
 
   cmakeFlags = [
     "-DIRODS_EXTERNALS_FULLPATH_CLANG=${stdenv.cc}"
@@ -15,7 +15,6 @@
     "-DIRODS_EXTERNALS_FULLPATH_ARCHIVE=${libarchive.lib}"
     "-DIRODS_EXTERNALS_FULLPATH_AVRO=${avro-cpp}"
     "-DIRODS_EXTERNALS_FULLPATH_BOOST=${boost}"
-    "-DIRODS_EXTERNALS_FULLPATH_JANSSON=${jansson}"
     "-DIRODS_EXTERNALS_FULLPATH_ZMQ=${zeromq}"
     "-DIRODS_EXTERNALS_FULLPATH_CPPZMQ=${cppzmq}"
     "-DIRODS_EXTERNALS_FULLPATH_CATCH2=${catch2}"
@@ -31,13 +30,10 @@
 
   postPatch = ''
     patchShebangs ./packaging ./scripts
-    substituteInPlace CMakeLists.txt \
-      --replace "DESTINATION usr/bin" "DESTINATION bin" \
-      --replace "INCLUDE_DIRS usr/include/" "INCLUDE_DIRS include/" \
-      --replace "DESTINATION usr/lib/" "DESTINATION lib/" \
-      --replace "{IRODS_EXTERNALS_FULLPATH_JSON}/include" "{IRODS_EXTERNALS_FULLPATH_JSON}/include/nlohmann"
     export cmakeFlags="$cmakeFlags
       -DCMAKE_INSTALL_PREFIX=$out
+      -DIRODS_HOME_DIRECTORY=$out
+      -DCMAKE_INSTALL_SBINDIR=$out/sbin
     "
   '';
 
diff --git a/nixpkgs/pkgs/tools/filesystems/irods/default.nix b/nixpkgs/pkgs/tools/filesystems/irods/default.nix
index c11e416f71a9..0b25f45c910d 100644
--- a/nixpkgs/pkgs/tools/filesystems/irods/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/irods/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, bzip2, zlib, autoconf, automake, cmake, help2man, texinfo, libtool, cppzmq
-, libarchive, avro-cpp_llvm, boost, jansson, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2
-, nanodbc_llvm, fmt, nlohmann_json, spdlog }:
+, libarchive, avro-cpp_llvm, boost, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2
+, nanodbc_llvm, fmt, nlohmann_json, spdlog, curl }:
 
 let
   avro-cpp = avro-cpp_llvm;
@@ -9,43 +9,33 @@ in
 let
   common = import ./common.nix {
     inherit lib stdenv bzip2 zlib autoconf automake cmake
-      help2man texinfo libtool cppzmq libarchive jansson
+      help2man texinfo libtool cppzmq libarchive
       zeromq openssl pam libiodbc libkrb5 gcc libcxx
       boost avro-cpp which catch2 nanodbc fmt nlohmann_json
-      spdlog;
+      spdlog curl;
   };
 in
 rec {
 
   # irods: libs and server package
-  irods = stdenv.mkDerivation (common // rec {
-    version = "4.2.11";
+  irods = stdenv.mkDerivation (finalAttrs: common // {
+    version = "4.3.0";
     pname = "irods";
 
     src = fetchFromGitHub {
       owner = "irods";
       repo = "irods";
-      rev = version;
-      sha256 = "0prcsiddk8n3h515jjapgfz1d6hjqywhrkcf6giqd7xc7b0slz44";
+      rev = finalAttrs.version;
+      sha256 = "sha256-rceDGFpfoFIByzDOtgNIo9JRoVd0syM21MjEKoZUQaE=";
       fetchSubmodules = true;
     };
 
-    # Patches:
-    # irods_root_path.patch : the root path is obtained by stripping 3 items of the path,
-    #                         but we don't use /usr with nix, so remove only 2 items.
-    patches = [ ./irods_root_path.patch ];
-
     # fix build with recent llvm versions
     env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-register -Wno-deprecated-declarations";
 
     postPatch = common.postPatch + ''
       patchShebangs ./test
       substituteInPlace plugins/database/CMakeLists.txt --replace "COMMAND cpp" "COMMAND ${gcc.cc}/bin/cpp"
-      substituteInPlace cmake/server.cmake --replace "DESTINATION usr/sbin" "DESTINATION sbin"
-      substituteInPlace cmake/server.cmake --replace "IRODS_DOC_DIR usr/share" "IRODS_DOC_DIR share"
-      substituteInPlace cmake/runtime_library.cmake --replace "DESTINATION usr/lib" "DESTINATION lib"
-      substituteInPlace cmake/development_library.cmake --replace "DESTINATION usr/lib" "DESTINATION lib"
-      substituteInPlace cmake/development_library.cmake --replace "DESTINATION usr/include" "DESTINATION include"
       for file in unit_tests/cmake/test_config/*.cmake
       do
         substituteInPlace $file --replace "CATCH2}/include" "CATCH2}/include/catch2"
@@ -56,7 +46,7 @@ rec {
         -DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,$out/lib
         "
 
-      substituteInPlace cmake/server.cmake --replace SETUID ""
+      substituteInPlace server/auth/CMakeLists.txt --replace SETUID ""
     '';
 
     meta = common.meta // {
@@ -66,19 +56,17 @@ rec {
 
 
   # icommands (CLI) package, depends on the irods package
-  irods-icommands = stdenv.mkDerivation (common // rec {
-    version = "4.2.11";
+  irods-icommands = stdenv.mkDerivation (finalAttrs: common // {
+    version = "4.3.0";
     pname = "irods-icommands";
 
     src = fetchFromGitHub {
       owner = "irods";
       repo = "irods_client_icommands";
-      rev = version;
-      sha256 = "0wgs585j2lp820py2pbizsk54xgz5id96fhxwwk9lqhbzxhfjhcg";
+      rev = finalAttrs.version;
+      sha256 = "sha256-90q1GPkoEUoiQXM6cA+DWwth7g8v93V471r9jm+l9aw=";
     };
 
-    patches = [ ./zmqcpp-deprecated-send_recv.patch ];
-
     buildInputs = common.buildInputs ++ [ irods ];
 
     postPatch = common.postPatch + ''
diff --git a/nixpkgs/pkgs/tools/filesystems/irods/irods_root_path.patch b/nixpkgs/pkgs/tools/filesystems/irods/irods_root_path.patch
deleted file mode 100644
index 58e618c663c0..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/irods/irods_root_path.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -r -u irods-4.2.0.orig/scripts/irods/paths.py irods-4.2.0/scripts/irods/paths.py
---- irods-4.2.0.orig/scripts/irods/paths.py	2016-11-15 06:23:55.000000000 +0000
-+++ irods-4.2.0/scripts/irods/paths.py	2016-12-21 15:17:07.437864606 +0000
-@@ -10,7 +10,7 @@
-     return os.path.join(root_directory(), 'var', 'lib', 'irods')
- 
- def config_directory():
--    return os.path.join(root_directory(), 'etc', 'irods')
-+    return os.path.join(os.path.abspath('/'), 'etc', 'irods')
- 
- def plugins_directory():
-     return os.path.join(root_directory(), 'usr', 'lib', 'irods', 'plugins')
-@@ -37,7 +37,7 @@
- 
- def version_path():
-     return os.path.join(
--        irods_directory(),
-+        home_directory(),
-         'VERSION.json')
- 
- def hosts_config_path():
-@@ -64,7 +64,7 @@
- 
- def log_directory():
-     return os.path.join(
--        irods_directory(),
-+        home_directory(),
-         'log')
- 
- def control_log_path():
-@@ -110,8 +110,7 @@
- def server_bin_directory():
-     return os.path.join(
-         root_directory(),
--        'usr',
--        'sbin')
-+        'bin')
- 
- def server_executable():
-     return os.path.join(
-@@ -132,7 +131,7 @@
-     return os.path.join(config_directory(), 'service_account.config')
- 
- def genosauth_path():
--    return os.path.join(irods_directory(), 'clients', 'bin', 'genOSAuth')
-+    return os.path.join(home_directory(), 'clients', 'bin', 'genOSAuth')
- 
- def irods_user_and_group_entries():
-     try:
diff --git a/nixpkgs/pkgs/tools/filesystems/irods/zmqcpp-deprecated-send_recv.patch b/nixpkgs/pkgs/tools/filesystems/irods/zmqcpp-deprecated-send_recv.patch
deleted file mode 100644
index 8c249dc4745b..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/irods/zmqcpp-deprecated-send_recv.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -r -u source/src/irods-grid.cpp source.new/src/irods-grid.cpp
---- source/src/irods-grid.cpp	1970-01-01 01:00:01.000000000 +0100
-+++ source.new/src/irods-grid.cpp	2020-05-05 16:34:35.566464346 +0200
-@@ -412,7 +412,7 @@
-             data_to_send.data(),
-             data_to_send.size() );
-         try {
--            if (!zmq_skt.send(req)) {
-+            if (!zmq_skt.send( req, zmq::send_flags::dontwait )) {
-                 std::cerr << "ZeroMQ encountered an error sending a message.\n";
-                 return errno;
-             }
-@@ -426,7 +426,7 @@
-         zmq::message_t rep;
-         // wait for the server reponse
-         try {
--            if (!zmq_skt.recv( &rep )) {
-+            if (!zmq_skt.recv( rep, zmq::recv_flags::dontwait )) {
-                 std::cerr << "ZeroMQ encountered an error receiving a message.\n";
-                 return errno;
-             }
diff --git a/nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix b/nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix
new file mode 100644
index 000000000000..0cf48dbe0b6b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, makeWrapper
+, jre
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "mcaselector";
+  version = "2.2.2";
+
+  src = fetchurl {
+    url = "https://github.com/Querz/mcaselector/releases/download/${finalAttrs.version}/mcaselector-${finalAttrs.version}.jar";
+    hash = "sha256-tOSdzLFxvEJ9LXliwfosMkgcrQLsrW7qDS8vrgPzQoI=";
+  };
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ jre makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib/mcaselector}
+    cp $src $out/lib/mcaselector/mcaselector.jar
+    makeWrapper ${jre}/bin/java $out/bin/mcaselector \
+      --add-flags "-jar $out/lib/mcaselector/mcaselector.jar"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/Querz/mcaselector";
+    description = "A tool to select chunks from Minecraft worlds for deletion or export";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    license = licenses.mit;
+    maintainers = [ maintainers.Scrumplex ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch b/nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
new file mode 100644
index 000000000000..a01822c0366e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
@@ -0,0 +1,31 @@
+From ccbe5c0401d6965a6daaa0b7bb022f63908c8942 Mon Sep 17 00:00:00 2001
+From: Philipp Rintz <git@rintz.net>
+Date: Mon, 28 Aug 2023 19:19:41 +0200
+Subject: [PATCH] uncommited
+
+---
+ pocket_updater.csproj | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/pocket_updater.csproj b/pocket_updater.csproj
+index 11f604c..410bd47 100644
+--- a/pocket_updater.csproj
++++ b/pocket_updater.csproj
+@@ -12,6 +12,7 @@
+     <Authors>Matt Pannella</Authors>
+     <Product>Analogue Pocket Updater Utility</Product>
+     <RepositoryUrl>https://github.com/mattpannella/pocket-updater-utility</RepositoryUrl>
++    <RuntimeIdentifier>@RuntimeIdentifier@</RuntimeIdentifier>
+   </PropertyGroup>
+   <ItemGroup>
+     <PackageReference Include="CommandLineParser" Version="2.9.1" />
+@@ -26,4 +27,4 @@
+   <ItemGroup>
+     <RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
+   </ItemGroup>
+-</Project>
+\ No newline at end of file
++</Project>
+-- 
+2.40.1
+
diff --git a/nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix b/nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix
new file mode 100644
index 000000000000..ef52b388ae8c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/pocket-updater-utility/default.nix
@@ -0,0 +1,59 @@
+{ pkgs ? import <nixpkgs> { system = builtins.currentSystem; }
+, stdenv ? pkgs.stdenv
+, lib ? pkgs.lib
+, fetchFromGitHub ? pkgs.fetchFromGitHub
+, buildDotnetModule ? pkgs.buildDotnetModule
+, dotnetCorePackages ? pkgs.dotnetCorePackages
+, openssl ? pkgs.openssl
+, zlib ? pkgs.zlib
+, targetPlatform ? pkgs.targetPlatform
+}:
+
+buildDotnetModule rec {
+  pname = "pocket-updater-utility";
+  version = "2.31.0";
+
+  src = fetchFromGitHub {
+    owner = "mattpannella";
+    repo = "${pname}";
+    rev = "${version}";
+    hash = "sha256-z90YITAW2Nv+Mq2q56As4PoHqGPEnvDUPH73bhz/xnw=";
+  };
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    zlib
+    openssl
+  ];
+
+  # See https://github.com/NixOS/nixpkgs/pull/196648/commits/0fb17c04fe34ac45247d35a1e4e0521652d9c494
+  patches = [ ./add-runtime-identifier.patch ];
+  postPatch = ''
+    substituteInPlace pocket_updater.csproj \
+      --replace @RuntimeIdentifier@ "${dotnetCorePackages.systemToDotnetRid targetPlatform.system}"
+  '';
+
+  projectFile = "pocket_updater.csproj";
+
+  nugetDeps = ./deps.nix;
+
+  selfContainedBuild = true;
+
+  executables = [ "pocket_updater" ];
+
+  dotnetFlags = [
+    "-p:PackageRuntime=${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system}"
+  ];
+
+  dotnet-sdk = dotnetCorePackages.sdk_6_0;
+  dotnet-runtime = dotnetCorePackages.runtime_6_0;
+
+  meta = with lib; {
+    homepage = "https://github.com/mattpannella/pocket-updater-utility";
+    description = "Analogue Pocket Updater Utility";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ p-rintz ];
+    mainProgram = "pocket_updater";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix b/nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix
new file mode 100644
index 000000000000..0e9f626012d9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/games/pocket-updater-utility/deps.nix
@@ -0,0 +1,9 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
+  (fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
+]
diff --git a/nixpkgs/pkgs/tools/games/scarab/default.nix b/nixpkgs/pkgs/tools/games/scarab/default.nix
index f3033b621abc..c96b472e7d91 100644
--- a/nixpkgs/pkgs/tools/games/scarab/default.nix
+++ b/nixpkgs/pkgs/tools/games/scarab/default.nix
@@ -16,13 +16,13 @@
 
 buildDotnetModule rec {
   pname = "scarab";
-  version = "1.34.0.0";
+  version = "2.1.0.0";
 
   src = fetchFromGitHub {
     owner = "fifty-six";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7SsByXV6HwZnT2VdjzeTZtRuktySxkXb7FulY5RPLEs=";
+    sha256 = "sha256-TbsCj30ZlZmm+i/k31eo9X+XE9Zu13uL9QZOGaRm9zs=";
   };
 
   nugetDeps = ./deps.nix;
diff --git a/nixpkgs/pkgs/tools/games/scarab/deps.nix b/nixpkgs/pkgs/tools/games/scarab/deps.nix
index 00a3cb2463da..a440529298e9 100644
--- a/nixpkgs/pkgs/tools/games/scarab/deps.nix
+++ b/nixpkgs/pkgs/tools/games/scarab/deps.nix
@@ -2,33 +2,48 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
-  (fetchNuGet { pname = "Avalonia"; version = "11.0.999-cibuild0036218-beta"; sha256 = "02nsmz69jc38rh73vb7gvagfxy1wipdmgc75ddgjag17xraip5r6"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia/11.0.999-cibuild0036218-beta/avalonia.11.0.999-cibuild0036218-beta.nupkg"; })
+  (fetchNuGet { pname = "Avalonia"; version = "11.0.0"; sha256 = "0wfbwrr8p5hg9f809d44gh2zfkfwnwayfw84vs33hh7ms0r380gd"; })
   (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; })
-  (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.19"; sha256 = "1vlhyjb2g98hh5gnisg4bdl9p93x8lmnkc97d24hpxgflcd7szs7"; })
-  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.999-cibuild0036218-beta"; sha256 = "1nxlmywaw6h9vqdr17l0ryyxiln50zhwhj1p2n38x4anawl33pjx"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.controls.colorpicker/11.0.999-cibuild0036218-beta/avalonia.controls.colorpicker.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.999-cibuild0036218-beta"; sha256 = "0qsbmipmnn1yfvs6ahniy0nyllfhdw07cas18icj2kqp8lj8km3a"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.controls.datagrid/11.0.999-cibuild0036218-beta/avalonia.controls.datagrid.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.999-cibuild0036218-beta"; sha256 = "0nrg18aqwibqdik89igvs67217306j27npnmlqqx8izcs0wx9z5x"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.desktop/11.0.999-cibuild0036218-beta/avalonia.desktop.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.999-cibuild0036218-beta"; sha256 = "1lwd3s19a7jyk78ann8rvxy3gkykg40r1wvqj6dv1353vbyamw2f"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.diagnostics/11.0.999-cibuild0036218-beta/avalonia.diagnostics.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Fonts.Inter"; version = "11.0.999-cibuild0036218-beta"; sha256 = "0wsppw75yq0n76d6in0cskqpydi2gsaivz0zy13z2d7himj9cz0f"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.fonts.inter/11.0.999-cibuild0036218-beta/avalonia.fonts.inter.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.999-cibuild0036218-beta"; sha256 = "114xibqkrwmmfq3p4xc7q719cgkgzml5cc0wl440c415nk551bj7"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.freedesktop/11.0.999-cibuild0036218-beta/avalonia.freedesktop.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.999-cibuild0036218-beta"; sha256 = "1j3h7rhrl341c142i1zvahklr9ayqp4x7j4b4v9y1bvw0jkxrl60"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.native/11.0.999-cibuild0036218-beta/avalonia.native.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "11.0.999-cibuild0036218-beta"; sha256 = "0c7j9dks4spfc4vkz334b72h3pk9grc76d7p3q52w89k3ccc80qq"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.reactiveui/11.0.999-cibuild0036218-beta/avalonia.reactiveui.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.999-cibuild0036218-beta"; sha256 = "1xyv0z4p7z85ydyylj3dyz428cm37y67c13qh5lrnsr14bsymvl9"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.remote.protocol/11.0.999-cibuild0036218-beta/avalonia.remote.protocol.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.999-cibuild0036218-beta"; sha256 = "107faba83cwfy9q1grgdapwjnw5afgnpi6w176jyi7r26nznq8xr"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.skia/11.0.999-cibuild0036218-beta/avalonia.skia.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.999-cibuild0036218-beta"; sha256 = "1dki4y2q6k3xkyr102kkh06qvxigh15qmn1s6fkp771qj4kg7j7i"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.themes.simple/11.0.999-cibuild0036218-beta/avalonia.themes.simple.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.999-cibuild0036218-beta"; sha256 = "1kp0db6svqgxjphjch6ln27d3n4jv96ha4ff89hn77pqf1xry4c5"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.win32/11.0.999-cibuild0036218-beta/avalonia.win32.11.0.999-cibuild0036218-beta.nupkg"; })
-  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.999-cibuild0036218-beta"; sha256 = "1ab5qx7pmqq7hpg8m6gdqvqsqn85m20p37va6z8qpg6vyvbmqlbr"; url = "https://pkgs.dev.azure.com/AvaloniaUI/aa84306f-2981-47b9-8206-edb3bed6250d/_packaging/f990ff61-c538-476f-9f8c-0e9691a4ee55/nuget/v3/flat2/avalonia.x11/11.0.999-cibuild0036218-beta/avalonia.x11.11.0.999-cibuild0036218-beta.nupkg"; })
+  (fetchNuGet { pname = "Avalonia.AvaloniaEdit"; version = "11.0.0"; sha256 = "12ibz472083iiz5zskd1ivigggbl0d9yv3nazgw17s97nmnl2lpj"; })
+  (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.28"; sha256 = "0d9hyc1zmyvzlb320arwrv12ncp45llq98hibv711b7ibm11dm7c"; })
+  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.0"; sha256 = "06wgzhxkivlaxkn8p61wainsprml2g1q4jmvy9fpn64qnfywjdn7"; })
+  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.0"; sha256 = "0qlcdx4w1pcljgs7sfbn5xmmnqwp2m0fqyswrgz6c8cvjzcfsjsj"; })
+  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.0"; sha256 = "08y31b357fax7c1ggwhjsfwgaj6zkm2abhpc6amlmk6ci4zn12lf"; })
+  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.0"; sha256 = "134xl19rfswnz75a1mhil9yqy8haqa788rmd1p1kk6ibjbhb3np9"; })
+  (fetchNuGet { pname = "Avalonia.Fonts.Inter"; version = "11.0.0"; sha256 = "1vbkk97jhy9qwix25jc875m98cp6vrl86029la55cbky9m1819am"; })
+  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.0"; sha256 = "042s8lc83lw6ygcsiza14wlsc09rgzw3ch2qaxkhlp73bh736ps3"; })
+  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.0"; sha256 = "1j7wpv81wqwh6zhfzc1f36vb5dp6s2ig45v8km9sp0q6f66zkrsh"; })
+  (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "11.0.0"; sha256 = "1fhp6f2aj2bmzlcj0s5r9i9rcxwakdg9gvjqvdqaq8s98d0s06qh"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.0"; sha256 = "1b5031k8slwiz7bncih67fjl6ny234yd4skqxk611l9zp5snjic2"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.0"; sha256 = "1ra1kd0kkblppr5zy7rzdbwllggrzvp9lkxblf9mg3y8rnp6fk83"; })
+  (fetchNuGet { pname = "Avalonia.Svg"; version = "11.0.0.1"; sha256 = "0a61xg6pcmjy90mmjv42d64av5a7q919qbrhnv6vd1rmm6hxv7zf"; })
+  (fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0.1"; sha256 = "1bywgrqdqc5wgcsabnhm8yssg78g9lw3p3sza5f8w5vdzmr116ff"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.0"; sha256 = "1qw76n78c14xl419yzabahbsrgymm850ql05gd4fh5naq2brksdm"; })
+  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.0"; sha256 = "1djp4m5yin4i2f9sjv4v3syv02fllwbfinzm9h0hm2abc2ccvrm3"; })
+  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.0"; sha256 = "1gd4zrjyw3hg3d48ivhxp0ca7ma13dnpr8y1wc7d51ddlrj3c86g"; })
   (fetchNuGet { pname = "Castle.Core"; version = "5.1.1"; sha256 = "1caf4878nvjid3cw3rw18p9cn53brfs5x8dkvf82xvcdwc3i0nd1"; })
   (fetchNuGet { pname = "ColorTextBlock.Avalonia"; version = "11.0.0-d1"; sha256 = "1vf5fp11zx21bsakbpf12j6mchafh749cs03w9cifb6ci98jchgh"; })
+  (fetchNuGet { pname = "ColorTextBlock.Avalonia"; version = "11.0.2"; sha256 = "0zvdgpg6r142zhldam5kcpmjpi0qjxsm40cy491gb9ynrj39hrhn"; })
   (fetchNuGet { pname = "coverlet.collector"; version = "1.3.0"; sha256 = "0k65d9hag6d59w1ixf4n5ihcphp04vrjmd99x5nhga81w1k9i20y"; })
+  (fetchNuGet { pname = "DryIoc.dll"; version = "5.4.1"; sha256 = "1dbaac5pi7mim4qil3lrqcpad9vbn261rznk5rw26kvngzcc65n6"; })
+  (fetchNuGet { pname = "DryIoc.Microsoft.DependencyInjection"; version = "6.2.0"; sha256 = "0iygbabd73ggzyq1ckbxifrh1kvzwlkr3x32ahamka7pv3982khb"; })
   (fetchNuGet { pname = "DynamicData"; version = "7.9.5"; sha256 = "1m9qx8g6na5ka6kd9vhg8gjmxrnkzb6v5cl5yqp1kdjsw4rcwy6x"; })
+  (fetchNuGet { pname = "ExCSS"; version = "4.1.4"; sha256 = "1y50xp6rihkydbf5l73mr3qq2rm6rdfjrzdw9h1dw9my230q5lpd"; })
+  (fetchNuGet { pname = "FakeItEasy"; version = "8.0.0-alpha.1.10"; sha256 = "0492cayij2ap7rc9l8rkmmch1rb0jqckaspqxrsy0myldfqc2lpq"; })
+  (fetchNuGet { pname = "Fizzler"; version = "1.2.1"; sha256 = "1w5jb1d0figbv68dydbnlcsfmqlc3sv9z1zxp7d79dg2dkarc4qm"; })
   (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; sha256 = "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"; })
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.3"; sha256 = "1f18ahwkaginrg0vwsi6s56lvnqvvxv7pzklfs5lnknasxy1a76z"; })
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.3"; sha256 = "052d8frpkj4ijs6fm6xp55xbv95b1s9biqwa0w8zp3rgm88m9236"; })
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.3"; sha256 = "043hv36bg5240znbm8x5la7py17m4jfzy57q3ka32f6zjld83j36"; })
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; sha256 = "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"; })
-  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2022.3.1"; sha256 = "0lkhyyz25q82ygnxy26lwy5cl8fvkdc13pcn433xpjj8akzbmgd6"; })
+  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.42"; sha256 = "0cvnc1qdfcjbqkh335bv4wp44zisb4hc69lq3zphiyzqfrjisnyb"; })
+  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.2.0"; sha256 = "0nx7nrzbg9gk9skdc9x330cbr5xbsly6z9gzxm46vywf55yp8vaj"; })
+  (fetchNuGet { pname = "Markdown.Avalonia"; version = "11.0.2"; sha256 = "1nx1f3pqlpffwwpdk8d6bbd27mz2q45k3gkc5dz6m2pfxi0ij6ak"; })
+  (fetchNuGet { pname = "Markdown.Avalonia.Html"; version = "11.0.2"; sha256 = "1xjz45lg9dcfwcdl0sbfy0145m6bd8y3b6kvwh96fnnj8ks6074q"; })
+  (fetchNuGet { pname = "Markdown.Avalonia.Svg"; version = "11.0.2"; sha256 = "1s5yazazpmhkc2nizzm46cnfwk7wwdd6gg2lzcs30k813i3621z3"; })
+  (fetchNuGet { pname = "Markdown.Avalonia.SyntaxHigh"; version = "11.0.2"; sha256 = "0di7r0wiif2lvgr0wlw1lj7b9j85yp1pf5hyhh4n9ciykklkkq0p"; })
   (fetchNuGet { pname = "Markdown.Avalonia.Tight"; version = "11.0.0-d1"; sha256 = "0ks9k3wqwvdssiwbcjc4gnrfn1r8x2dbp9amraxkmws5a7vbjdyk"; })
+  (fetchNuGet { pname = "Markdown.Avalonia.Tight"; version = "11.0.2"; sha256 = "1mz229r42f1p320xkjl45pdv72lycn9cqk46arycm9km45jgzzgl"; })
   (fetchNuGet { pname = "MessageBox.Avalonia"; version = "2.3.1-rc1"; sha256 = "13zvqg95wa5v5b8h8kl63ydpprxqyk6zgzqdh673y005s1y58w4a"; })
   (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; sha256 = "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; })
@@ -41,6 +56,10 @@
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "7.0.0"; sha256 = "121zs4jp8iimgbpzm3wsglhjwkc06irg1pxy8c1zcdlsg34cfq1p"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "7.0.0"; sha256 = "181d7mp9307fs17lyy42f8cxnjwysddmpsalky4m0pqxcimnr6g7"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "7.0.0"; sha256 = "1bqd3pqn5dacgnkq0grc17cgb2i0w8z1raw12nwm3p3zhrfcvgxf"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "7.0.0"; sha256 = "1gn7d18i1wfy13vrwhmdv1rmsb4vrk26kqdld4cgvh77yigj90xs"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "7.0.0"; sha256 = "0b90zkrsk5dw3wr749rbynhpxlg4bgqdnd7d5vdlw2g9c7zlhgx6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "7.0.0"; sha256 = "1b4km9fszid9vp2zb3gya5ni9fn8bq62bzaas2ck2r7gs0sdys80"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.7.1"; sha256 = "0yqxipj74ax2n76w9ccydppx78ym8m5fda88qnvj4670qjvl0kf8"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
@@ -52,10 +71,11 @@
   (fetchNuGet { pname = "Microsoft.Toolkit.HighPerformance"; version = "7.1.2"; sha256 = "18l950mq0l8s1z771l9p332ni7jryidjh4hi9p37l6p8frcnccxb"; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
   (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; })
-  (fetchNuGet { pname = "Moq"; version = "4.18.4"; sha256 = "0x439pcaqg8kv0an4cjbspw8d98gq144yrqwhnnh6xf9qjaris94"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
   (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "Projektanker.Icons.Avalonia"; version = "6.6.0-rc1.1"; sha256 = "04sac2grc1mbx1rfx29i16k0yrqh29c60njsj2mq8yrs1z2ky9jj"; })
+  (fetchNuGet { pname = "Projektanker.Icons.Avalonia.FontAwesome"; version = "6.6.0-rc1.1"; sha256 = "1mzdgds62f7apy8gajrpsa6fay89rzfl7f9mf6y573ani7a131xc"; })
   (fetchNuGet { pname = "PropertyChanged.SourceGenerator"; version = "1.0.8"; sha256 = "05ygdj1sizcw678vf459hzhz4ynz2s5s206vl99g5gy3d9kaham6"; })
   (fetchNuGet { pname = "ReactiveUI"; version = "18.3.1"; sha256 = "1lxkc8yk9glj0w9n5vry2dnwwvh8152ad2c5bivk8aciq64zidyn"; })
   (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
@@ -99,20 +119,36 @@
   (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+  (fetchNuGet { pname = "Semi.Avalonia"; version = "11.0.0"; sha256 = "1js7lk05y171y6hrh39ai6ddqn17x08ri2fdpz9iq0ic8iryrvxi"; })
+  (fetchNuGet { pname = "Serilog"; version = "3.0.1"; sha256 = "1sigmcsy6mvjk2lqlxdxj47f961p1wvc0b8d8nx84hwy7mfikxvi"; })
+  (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "7.0.0"; sha256 = "0qbdgjfr534jhrl87fjav46pbbrzj3izw3wd6hbz5gi1lrphmzar"; })
+  (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "4.1.0"; sha256 = "1rpkphmqfh3bv3m7v1zwz88wz4sirj4xqyff9ga0c6bqhblj6wii"; })
+  (fetchNuGet { pname = "Serilog.Sinks.Debug"; version = "2.0.0"; sha256 = "1i7j870l47gan3gpnnlzkccn5lbm7518cnkp25a3g5gp9l0dbwpw"; })
+  (fetchNuGet { pname = "Serilog.Sinks.File"; version = "5.0.0"; sha256 = "097rngmgcrdfy7jy8j7dq3xaq2qky8ijwg0ws6bfv5lx0f3vvb0q"; })
+  (fetchNuGet { pname = "SerilogAnalyzer"; version = "0.15.0"; sha256 = "0k83cyzl9520q282vp07zb8rs16a56axv7a31l3m5fb1afq2hv9l"; })
+  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0.1"; sha256 = "1iza1yvvvz5pfl2vx6fwlb0gj262gwva9fay6pb6kgiv70h7rmcg"; })
   (fetchNuGet { pname = "SkiaSharp"; version = "2.88.3"; sha256 = "1yq694myq2rhfp2hwwpyzcg1pzpxcp7j72wib8p9pw9dfj7008sv"; })
+  (fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.3"; sha256 = "0axz2zfyg0h3zis7rr86ikrm2jbxxy0gqb3bbawpgynf1k0fsi6a"; })
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.3"; sha256 = "0dajvr60nwvnv7s6kcqgw1w97zxdpz1c5lb7kcq7r0hi0l05ck3q"; })
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.3"; sha256 = "191ajgi6fnfqcvqvkayjsxasiz6l0bv3pps8vv9abbyc4b12qvph"; })
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.3"; sha256 = "1w5njksq3amrrp7fqxw89nv6ar2kgc5yx092i4rxv7hrjbd1aagx"; })
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.3"; sha256 = "03wwfbarsxjnk70qhqyd1dw65098dncqk2m0vksx92j70i7lry6q"; })
   (fetchNuGet { pname = "Splat"; version = "14.4.1"; sha256 = "03ycyjn2ii44npi015p4rk344xnjgdzz02cf63cmhx2ab8hv6p4b"; })
   (fetchNuGet { pname = "Splat"; version = "14.6.37"; sha256 = "1rj2ik4b4mxl2w2d8316a2afyfd23p6ysc5vczsis7bhxcjp1x2h"; })
+  (fetchNuGet { pname = "Splat"; version = "14.7.1"; sha256 = "1rs8bmwcvzg4yn05zglgk7vbmyi2flyyhjqn62sx1cjkrd9m0cs7"; })
   (fetchNuGet { pname = "Splat.Microsoft.Extensions.DependencyInjection"; version = "14.6.37"; sha256 = "1pqb0ij1kmzjx92j5slp579aqshsp499wd8vxbnm58z0ix4a7bn6"; })
+  (fetchNuGet { pname = "Splat.Serilog"; version = "14.7.1"; sha256 = "0xdw92jxarvpan9v8zja2710z2m03yam94qwar8j5axvnqbh8fhj"; })
+  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0.1"; sha256 = "00ly1pbm8a7s2k71gz7ikw42l25wfgabdx4bqrzdxysgnfaaa43d"; })
+  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.1"; sha256 = "0kyllnbya6zvhv8rg53b3zdndmdz9hak4k204gjzcnhkqsn8dcy6"; })
+  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.1"; sha256 = "1z487pnz12cy6554xl4nifj4y4a2l15yxz5d3rlsc3asb4qs5jvy"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
   (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.6.0"; sha256 = "1pbxzdz3pwqyybzv5ff2b7nrc281bhg7hq34w0fn1w3qfgrbwyw2"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
   (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
   (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
@@ -154,6 +190,7 @@
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
   (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
   (fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
+  (fetchNuGet { pname = "System.Reactive.Linq"; version = "5.0.0"; sha256 = "07p05v13yixbxhs84231k5l8jw3nji0j3zcqc6nsbcmh54jpjsrb"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
   (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
@@ -174,6 +211,7 @@
   (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
   (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
@@ -198,6 +236,8 @@
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.0"; sha256 = "0scb0lp7wbgcinaa4kqiqs7b8i5nx4ppfad81138jiwd1sl37pyp"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
@@ -209,6 +249,7 @@
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
   (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
   (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
   (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
   (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
diff --git a/nixpkgs/pkgs/tools/graphics/agi/default.nix b/nixpkgs/pkgs/tools/graphics/agi/default.nix
index 64e4a49445af..501522b27ea3 100644
--- a/nixpkgs/pkgs/tools/graphics/agi/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/agi/default.nix
@@ -14,11 +14,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "agi";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchzip {
-    url = "https://github.com/google/agi/releases/download/v${version}/agi-${version}-linux.zip";
-    sha256 = "sha256-vKq1pe4Z0blSvNgez+/MP2rA0+QfCyr3RsCGX4GMR08=";
+    url = "https://github.com/google/agi/releases/download/${version}/agi-${version}-linux.zip";
+    sha256 = "sha256-Yawl6InBYSWNw3clHyGAeC2PVfXEzWmbd6vcYrqAPO0=";
   };
 
   nativeBuildInputs = [
@@ -68,7 +68,7 @@ stdenvNoCC.mkDerivation rec {
     changelog = "https://github.com/google/agi/releases/tag/v${version}";
     platforms = [ "x86_64-linux" ];
     license = licenses.asl20;
-    maintainers = [ maintainers.ivar ];
+    maintainers = with maintainers; [ ivar kashw2 ];
     sourceProvenance = with sourceTypes; [
       binaryBytecode
       binaryNativeCode
diff --git a/nixpkgs/pkgs/tools/graphics/blockhash/default.nix b/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
index 4f63cf90a3ae..9d7b613bbe0b 100644
--- a/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/blockhash/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python3, pkg-config, imagemagick, wafHook }:
+{ lib, stdenv, fetchFromGitHub, python3, pkg-config, imagemagick, waf }:
 
 stdenv.mkDerivation rec {
   pname = "blockhash";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0x3lvhnkb4c3pyq6p81qnnqimz35wpippiac506dgjx3b1848v35";
   };
 
-  nativeBuildInputs = [ python3 pkg-config wafHook ];
+  nativeBuildInputs = [ python3 pkg-config waf.hook ];
   buildInputs = [ imagemagick ];
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/tools/graphics/fgallery/default.nix b/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
index 66f8d8d84100..7af5c6129f25 100644
--- a/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/fgallery/default.nix
@@ -10,16 +10,21 @@
 
 stdenv.mkDerivation rec {
   pname = "fgallery";
-  version = "1.8.2";
+  version = "1.9.1";
 
   src = fetchurl {
     url = "https://www.thregr.org/~wavexx/software/fgallery/releases/fgallery-${version}.zip";
-    sha256 = "18wlvqbxcng8pawimbc8f2422s8fnk840hfr6946lzsxr0ijakvf";
+    hash = "sha256-FvF0wkRe3wTPUG9/GEBxkaxvZ1B4wEd9kI9rURHKxn0=";
   };
 
   nativeBuildInputs = [ makeWrapper unzip ];
   buildInputs = (with perlPackages; [ perl ImageExifTool CpanelJSONXS ]);
 
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "/usr" $out
+  '';
+
   installPhase = ''
     mkdir -p "$out/bin"
     mkdir -p "$out/share/fgallery"
diff --git a/nixpkgs/pkgs/tools/graphics/maim/default.nix b/nixpkgs/pkgs/tools/graphics/maim/default.nix
index f4851c6bcabf..ce91e361a6eb 100644
--- a/nixpkgs/pkgs/tools/graphics/maim/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/maim/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
+    mainProgram = "maim";
     inherit (src.meta) homepage;
     description = "A command-line screenshot utility";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/graphics/stegsolve/default.nix b/nixpkgs/pkgs/tools/graphics/stegsolve/default.nix
index 56ad908d41a2..3f147ab0deca 100644
--- a/nixpkgs/pkgs/tools/graphics/stegsolve/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/stegsolve/default.nix
@@ -1,12 +1,19 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper, copyDesktopItems, makeDesktopItem }:
-
-stdenv.mkDerivation rec {
+{ lib
+, stdenvNoCC
+, fetchurl
+, jre
+, makeWrapper
+, copyDesktopItems
+, makeDesktopItem
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "stegsolve";
   version = "1.3";
 
   src = fetchurl {
     # No versioned binary is published :(
-    url = "http://www.caesum.com/handbook/Stegsolve.jar";
+    url = "https://web.archive.org/web/20230319054116if_/http://www.caesum.com/handbook/Stegsolve.jar";
     sha256 = "0np5zb28sg6yzkp1vic80pm8iiaamvjpbf5dxmi9kwvqcrh4jyq0";
   };
 
@@ -15,10 +22,10 @@ stdenv.mkDerivation rec {
   desktopItems = [
     (makeDesktopItem {
       type = "Application";
-      name = pname;
+      name = finalAttrs.pname;
       desktopName = "Stegsolve";
       comment = "A steganographic image analyzer, solver and data extractor for challanges";
-      exec = pname;
+      exec = finalAttrs.pname;
       categories = [ "Graphics" ];
     })
   ];
@@ -38,10 +45,15 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A steganographic image analyzer, solver and data extractor for challanges";
-    homepage = "http://www.caesum.com/handbook/stego.htm";
+    homepage = "https://www.wechall.net/forum/show/thread/527/Stegsolve_1.3/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
-    license = licenses.unfree;
+    license = {
+      fullName = "Cronos License";
+      url = "http://www.caesum.com/legal.php";
+      free = false;
+      redistributable = true;
+    };
     maintainers = with maintainers; [ emilytrau ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/graphics/structure-synth/default.nix b/nixpkgs/pkgs/tools/graphics/structure-synth/default.nix
deleted file mode 100644
index e61489fadf00..000000000000
--- a/nixpkgs/pkgs/tools/graphics/structure-synth/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, fetchurl, qt4, qmake4Hook, unzip, libGLU, makeWrapper }:
-
-stdenv.mkDerivation rec {
-  pname = "structure-synth";
-  version = "1.5.0";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/structuresynth/StructureSynth-Source-v${version}.zip";
-    sha256 = "1kiammx46719az6jzrav8yrwz82nk4m72ybj0kpbnvp9wfl3swbb";
-  };
-
-  buildInputs = [ qt4 libGLU ];
-  nativeBuildInputs = [ qmake4Hook makeWrapper unzip ];
-
-  # Thanks to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672000#15:
-  patches = [ ./gcc47.patch ];
-
-  enableParallelBuilding = true;
-
-  preConfigure = ''
-    ${qt4}/bin/qmake -project -after "CONFIG+=opengl" -after "QT+=xml opengl script" -after "unix:LIBS+=-lGLU"
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin;
-    mkdir -p $out/share/Examples $out/share/Misc;
-    cp "Structure Synth Source Code" $out/bin/structure-synth;
-    cp -r Examples/* $out/share/Examples;
-    cp -r Misc/* $out/share/Misc;
-  '';
-
-  # Structure Synth expects to see 'Examples' and 'Misc' directory in
-  # either $HOME or $PWD - so help it along by moving $PWD to 'share',
-  # where we just copied those two directories:
-  preFixup = ''
-    wrapProgram "$out/bin/structure-synth" --chdir "$out/share"
-  '';
-
-  meta = with lib; {
-    description = "Application for generating 3D structures by specifying a design grammar";
-    homepage = "https://structuresynth.sourceforge.net";
-    maintainers = with maintainers; [ hodapp ];
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/graphics/structure-synth/gcc47.patch b/nixpkgs/pkgs/tools/graphics/structure-synth/gcc47.patch
deleted file mode 100644
index 8726e89c8308..000000000000
--- a/nixpkgs/pkgs/tools/graphics/structure-synth/gcc47.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -rc "Structure Synth Source Code/SyntopiaCore/GLEngine/Raytracer/RayTracer.cpp" "Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer/RayTracer.cpp"
-*** "Structure Synth Source Code/SyntopiaCore/GLEngine/Raytracer/RayTracer.cpp"	2010-11-13 22:32:44.000000000 -0500
---- "Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer/RayTracer.cpp"	2018-06-24 14:23:30.794296776 -0400
-***************
-*** 1,5 ****
-  #include <QThread>

-! 

-  

-  #include "RayTracer.h"

-  

---- 1,5 ----
-  #include <QThread>

-! #include <GL/glu.h>

-  

-  #include "RayTracer.h"

-  

-diff -rc "Structure Synth Source Code/SyntopiaCore/GLEngine/Raytracer/VoxelStepper.cpp" "Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer/VoxelStepper.cpp"
-*** "Structure Synth Source Code/SyntopiaCore/GLEngine/Raytracer/VoxelStepper.cpp"	2010-09-08 21:25:30.000000000 -0400
---- "Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer/VoxelStepper.cpp"	2018-06-24 14:23:12.542868194 -0400
-***************
-*** 122,128 ****
-  						currentT = p;

-  

-  						// We do not intersect grid.

-! 						if (!found) return false;

-  				}

-  

-  				stepX = (dir.x() > 0) ? 1 : -1;

---- 122,128 ----
-  						currentT = p;

-  

-  						// We do not intersect grid.

-! 						if (!found) return NULL;

-  				}

-  

-  				stepX = (dir.x() > 0) ? 1 : -1;

-Only in Structure Synth Source Code2/SyntopiaCore/GLEngine/Raytracer: VoxelStepper.cpp.orig
-diff -rc "Structure Synth Source Code/SyntopiaCore/GLEngine/Sphere.h" "Structure Synth Source Code2/SyntopiaCore/GLEngine/Sphere.h"
-*** "Structure Synth Source Code/SyntopiaCore/GLEngine/Sphere.h"	2010-08-11 15:12:22.000000000 -0400
---- "Structure Synth Source Code2/SyntopiaCore/GLEngine/Sphere.h"	2018-06-24 14:23:30.793296807 -0400
-***************
-*** 2,7 ****
---- 2,8 ----
-  

-  #include "SyntopiaCore/Math/Vector3.h"

-  #include "Object3D.h"

-+ #include <GL/glu.h>

-  

-  namespace SyntopiaCore {

-  	namespace GLEngine {	

diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-cts/default.nix b/nixpkgs/pkgs/tools/graphics/vulkan-cts/default.nix
index bdbf573a016c..e448160f2a88 100644
--- a/nixpkgs/pkgs/tools/graphics/vulkan-cts/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-cts/default.nix
@@ -32,81 +32,29 @@ let
   # It also expects the version specified in the repository, which can be incompatible
   # with the version in nixpkgs (e.g. for SPIRV-Headers), so we don't want to patch in our packages.
   # The revisions are extracted from https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/fetch_sources.py#L290
-  amber = fetchFromGitHub {
-    owner = "google";
-    repo = "amber";
-    rev = "933ecb4d6288675a92eb1650e0f52b1d7afe8273";
-    hash = "sha256-v9z4gv/mTjaCkByZn6uDpMteQuIf0FzZXeKyoXfFjXo=";
-  };
-  esextractor = fetchFromGitHub {
-    owner = "Igalia";
-    repo = "ESExtractor";
-    rev = "v0.2.5";
-    hash = "sha256-A3lyTTarR1ZJrXcrLDR5D7H1kBwJNyrPPjEklRM9YBY=";
-  };
-  jsoncpp = fetchFromGitHub {
-    owner = "open-source-parsers";
-    repo = "jsoncpp";
-    rev = "9059f5cad030ba11d37818847443a53918c327b1";
-    hash = "sha256-m0tz8w8HbtDitx3Qkn3Rxj/XhASiJVkThdeBxIwv3WI=";
-  };
-  glslang = fetchFromGitHub {
-    owner = "KhronosGroup";
-    repo = "glslang";
-    rev = "cd2082e0584d4e39d11e3f401184e0d558ab304f";
-    hash = "sha256-j7O0j4E8lQ9tqAiuhnD/t6VL45OUvntsoKlhiuCXet4=";
-  };
-  spirv-tools = fetchFromGitHub {
-    owner = "KhronosGroup";
-    repo = "SPIRV-Tools";
-    rev = "01828dac778d08f4ebafd2e06bd419f6c84e5984";
-    hash = "sha256-i1rDMVpUiNdacDe20DsN67/rzK5V434EzfSv97y+xGU=";
-  };
-  spirv-headers = fetchFromGitHub {
-    owner = "KhronosGroup";
-    repo = "SPIRV-Headers";
-    rev = "1feaf4414eb2b353764d01d88f8aa4bcc67b60db";
-    hash = "sha256-VOq3r6ZcbDGGxjqC4IoPMGC5n1APUPUAs9xcRzxdyfk=";
-  };
-  video-parser = fetchFromGitHub {
-    owner = "nvpro-samples";
-    repo = "vk_video_samples";
-    rev = "7d68747d3524842afaf050c5e00a10f5b8c07904";
-    hash = "sha256-L5IYDm0bLq+NlNrzozu0VQx8zL1na6AhrkjZKxOWSnU=";
-  };
-  vulkan-docs = fetchFromGitHub {
-    owner = "KhronosGroup";
-    repo = "Vulkan-Docs";
-    rev = "9fff8b252a3688c0231fa78709084bbe677d3bf7";
-    hash = "sha256-KpKsKTY5xCSZ5Y92roa0fq/iqc1hVJNS7l87RFcxyRQ=";
-  };
+  # with the vk-cts-sources.py script.
+  sources = import ./sources.nix { inherit fetchurl fetchFromGitHub; };
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "vulkan-cts";
-  version = "1.3.6.0";
+  version = "1.3.6.3";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "VK-GL-CTS";
     rev = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-PWkY5PFoxKosteRgbo6aRqGFHBkoEPFcg6NN8EquD8U=";
+    hash = "sha256-jpKPmUduH3IuUYzBAZJFl/w1FqjGC8sXSTnet8YEZ0I=";
   };
 
   outputs = [ "out" "lib" ];
 
   prePatch = ''
-    mkdir -p external/ESExtractor external/renderdoc/src external/spirv-headers external/video-parser external/vulkan-docs
+    mkdir -p external/renderdoc/src
 
     cp -r ${renderdoc} external/renderdoc/src/renderdoc_app.h
 
-    cp -r ${amber} external/amber/src
-    cp -r ${esextractor} external/ESExtractor/src
-    cp -r ${jsoncpp} external/jsoncpp/src
-    cp -r ${glslang} external/glslang/src
-    cp -r ${spirv-tools} external/spirv-tools/src
-    cp -r ${spirv-headers} external/spirv-headers/src
-    cp -r ${video-parser} external/video-parser/src
-    cp -r ${vulkan-docs} external/vulkan-docs/src
+    ${sources.prePatch}
+
     chmod u+w -R external
   '';
 
@@ -120,8 +68,6 @@ stdenv.mkDerivation (finalAttrs: {
     libXau
     libXdmcp
     libxcb
-    spirv-headers
-    spirv-tools
     wayland
     wayland-protocols
     zlib
@@ -129,7 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [
     cmake
-    glslang
     makeWrapper
     ninja
     pkg-config
@@ -159,6 +104,8 @@ stdenv.mkDerivation (finalAttrs: {
       --add-flags "--deqp-archive-dir=$out/archive-dir"
   '';
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     description = "Khronos Vulkan Conformance Tests";
     homepage = "https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/vulkancts/README.md";
diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-cts/sources.nix b/nixpkgs/pkgs/tools/graphics/vulkan-cts/sources.nix
new file mode 100644
index 000000000000..24d2c9de387f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-cts/sources.nix
@@ -0,0 +1,73 @@
+# Autogenerated from vk-cts-sources.py
+{ fetchurl, fetchFromGitHub }:
+rec {
+  ESExtractor = fetchFromGitHub {
+    owner = "Igalia";
+    repo = "ESExtractor";
+    rev = "v0.2.5";
+    hash = "sha256-A3lyTTarR1ZJrXcrLDR5D7H1kBwJNyrPPjEklRM9YBY=";
+  };
+
+  amber = fetchFromGitHub {
+    owner = "google";
+    repo = "amber";
+    rev = "933ecb4d6288675a92eb1650e0f52b1d7afe8273";
+    hash = "sha256-v9z4gv/mTjaCkByZn6uDpMteQuIf0FzZXeKyoXfFjXo=";
+  };
+
+  glslang = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "glslang";
+    rev = "77417d5c9e0a5d4c79ddd0285d530b45f7259f0d";
+    hash = "sha256-BNgnhTl7/+nC5D7Jl7QME5+qIbm+I0Wh/tf9F4WhW3U=";
+  };
+
+  jsoncpp = fetchFromGitHub {
+    owner = "open-source-parsers";
+    repo = "jsoncpp";
+    rev = "9059f5cad030ba11d37818847443a53918c327b1";
+    hash = "sha256-m0tz8w8HbtDitx3Qkn3Rxj/XhASiJVkThdeBxIwv3WI=";
+  };
+
+  spirv-headers = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "SPIRV-Headers";
+    rev = "1feaf4414eb2b353764d01d88f8aa4bcc67b60db";
+    hash = "sha256-VOq3r6ZcbDGGxjqC4IoPMGC5n1APUPUAs9xcRzxdyfk=";
+  };
+
+  spirv-tools = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "SPIRV-Tools";
+    rev = "01828dac778d08f4ebafd2e06bd419f6c84e5984";
+    hash = "sha256-i1rDMVpUiNdacDe20DsN67/rzK5V434EzfSv97y+xGU=";
+  };
+
+  video-parser = fetchFromGitHub {
+    owner = "nvpro-samples";
+    repo = "vk_video_samples";
+    rev = "7d68747d3524842afaf050c5e00a10f5b8c07904";
+    hash = "sha256-L5IYDm0bLq+NlNrzozu0VQx8zL1na6AhrkjZKxOWSnU=";
+  };
+
+  vulkan-docs = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "Vulkan-Docs";
+    rev = "9fff8b252a3688c0231fa78709084bbe677d3bf7";
+    hash = "sha256-KpKsKTY5xCSZ5Y92roa0fq/iqc1hVJNS7l87RFcxyRQ=";
+  };
+
+
+  prePatch = ''
+    mkdir -p external/ESExtractor external/amber external/glslang external/jsoncpp external/spirv-headers external/spirv-tools external/video-parser external/vulkan-docs
+
+    cp -r ${ESExtractor} external/ESExtractor/src
+    cp -r ${amber} external/amber/src
+    cp -r ${glslang} external/glslang/src
+    cp -r ${jsoncpp} external/jsoncpp/src
+    cp -r ${spirv-headers} external/spirv-headers/src
+    cp -r ${spirv-tools} external/spirv-tools/src
+    cp -r ${video-parser} external/video-parser/src
+    cp -r ${vulkan-docs} external/vulkan-docs/src
+  '';
+}
diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-cts/update.sh b/nixpkgs/pkgs/tools/graphics/vulkan-cts/update.sh
new file mode 100755
index 000000000000..300fe230264e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-cts/update.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts curl jq
+
+set -euo pipefail
+
+rawVersion="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/KhronosGroup/VK-GL-CTS/releases" | jq -r  'map(select(.tag_name | startswith("vulkan-cts-"))) | .[0].tag_name')"
+basedir="$(git rev-parse --show-toplevel)"
+
+cd "$basedir"
+# Strip prefix
+version="$(echo "$rawVersion" | sed 's/vulkan-cts-//')"
+update-source-version vulkan-cts "$version"
+
+# Update imported sources
+tmpDir="$(mktemp -d)"
+trap "rm -rf $tmpDir" EXIT
+
+curl -s "https://raw.githubusercontent.com/KhronosGroup/VK-GL-CTS/$rawVersion/external/fetch_sources.py" -o "$tmpDir/fetch_sources.py"
+sed -i '/from ctsbuild.common import/d' "$tmpDir/fetch_sources.py"
+cd "$(dirname "$0")"
+PYTHONPATH="$tmpDir/" ./vk-cts-sources.py
diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-cts/vk-cts-sources.py b/nixpkgs/pkgs/tools/graphics/vulkan-cts/vk-cts-sources.py
new file mode 100755
index 000000000000..f3e42bd82e7a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-cts/vk-cts-sources.py
@@ -0,0 +1,93 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p nix-prefetch-github -p git
+#nix-shell -I nixpkgs=../../../../ -i python3 -p "python3.withPackages (ps: with ps; [ nix-prefetch-github ])" -p "git"
+
+import json
+import re
+import subprocess
+import sys
+
+import fetch_sources
+
+def get_github_hash(owner, repo, revision):
+    result = subprocess.run(
+        ["nix-prefetch-github", owner, repo, "--json", "--rev", revision],
+        check=True,
+        capture_output=True,
+        text=True,
+    )
+    j = json.loads(result.stdout)
+    # Remove False values
+    return {k: v for k, v in j.items() if v}
+
+def main():
+    pkgs = fetch_sources.PACKAGES
+    pkgs.sort(key = lambda pkg: pkg.baseDir)
+    existing_sources = {}
+
+    # Fetch hashes from existing sources file
+    with open("sources.nix") as f:
+        existing_file = f.read()
+
+    source_re = re.compile("(?P<name>[^ ]+) = fetchFromGitHub[^\n]*\n"
+        "[^\n]+\n" # owner
+        "[^\n]+\n" # repo
+        " *rev = \"(?P<rev>[^\"]+)\";\n"
+        " *hash = \"(?P<hash>[^\"]+)\";\n"
+    )
+
+    for m in source_re.finditer(existing_file):
+        if m.group("hash").startswith("sha"):
+            print(f"Found {m.group('name')}: {m.group('rev')} -> {m.group('hash')}")
+            existing_sources[m.group("name")] = (m.group("rev"), m.group("hash"))
+    print()
+
+
+    # Write new sources file
+    with open("sources.nix", "w") as f:
+        f.write("# Autogenerated from vk-cts-sources.py\n")
+        f.write("{ fetchurl, fetchFromGitHub }:\n")
+        f.write("rec {");
+
+        github_re = re.compile("https://github.com/(?P<owner>[^/]+)/(?P<repo>[^/]+).git")
+
+        for pkg in pkgs:
+            if isinstance(pkg, fetch_sources.GitRepo):
+                ms = github_re.match(pkg.httpsUrl)
+
+                # Check for known hash
+                hash = None
+                if pkg.baseDir in existing_sources:
+                    existing_src = existing_sources[pkg.baseDir]
+                    if existing_src[0] == pkg.revision:
+                        hash = existing_src[1]
+
+                if hash is None:
+                    print(f"Fetching {pkg.baseDir}: {pkg.revision}")
+                    hash = get_github_hash(ms.group("owner"), ms.group("repo"), pkg.revision)["hash"]
+                    print(f"Got {pkg.baseDir}: {pkg.revision} -> {hash}")
+
+                f.write(f"\n  {pkg.baseDir} = fetchFromGitHub {{\n");
+                f.write(f"    owner = \"{ms.group('owner')}\";\n");
+                f.write(f"    repo = \"{ms.group('repo')}\";\n");
+                f.write(f"    rev = \"{pkg.revision}\";\n");
+                f.write(f"    hash = \"{hash}\";\n");
+                f.write(f"  }};\n");
+
+        f.write("\n\n  prePatch = ''\n");
+        f.write("    mkdir -p");
+        for pkg in pkgs:
+            if isinstance(pkg, fetch_sources.GitRepo):
+                f.write(f" external/{pkg.baseDir}")
+        f.write("\n\n");
+
+        for pkg in pkgs:
+            if isinstance(pkg, fetch_sources.GitRepo):
+                f.write(f"    cp -r ${{{pkg.baseDir}}} external/{pkg.baseDir}/{pkg.extractDir}\n");
+
+        f.write("  '';\n");
+
+        f.write("}\n");
+
+if __name__ == "__main__":
+    main()
diff --git a/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock b/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock
index 1ca313c6cd54..86cbfcfc5d88 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/inputmethods/fusuma/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    fusuma (1.3.0)
+    fusuma (3.1.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix b/nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix
index 87e0ae14da8c..bcb624aa5841 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fusuma/gemset.nix
@@ -4,9 +4,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "150jc8jyqj3w4k13lf1ihqmm2sld1yawp4jwnf43jixnc9rmzx6f";
+      sha256 = "163an1yv8lasbdmdjsj2a4byq1rljg7vf5z86ip33xpb9l133xmm";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "3.1.0";
   };
 }
diff --git a/nixpkgs/pkgs/tools/inputmethods/hime/default.nix b/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
index 4c86fb04cf04..685ac169e065 100644
--- a/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/hime/default.nix
@@ -4,7 +4,6 @@
 , which
 , gtk2
 , gtk3
-, qt4
 , qt5
 , libXtst
 , lib
@@ -25,7 +24,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ which pkg-config unixtools.whereis ];
-  buildInputs = [ libXtst gtk2 gtk3 qt4 qt5.qtbase libchewing anthy ];
+  buildInputs = [ libXtst gtk2 gtk3 qt5.qtbase libchewing anthy ];
 
   preConfigure = "patchShebangs configure";
   configureFlags = [ "--disable-lib64" "--disable-qt5-immodule" ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
index 22294b19820a..0ce6215b4964 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
@@ -13,13 +13,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ibus-typing-booster";
-  version = "2.23.4";
+  version = "2.24.0";
 
   src = fetchFromGitHub {
     owner = "mike-fabian";
     repo = "ibus-typing-booster";
     rev = version;
-    hash = "sha256-QVOcIpqdMTGQgqhBBbkA1UKyVKNGqkWzOVCVSLC5ecA=";
+    hash = "sha256-C9RUkA/gb3jhRGfYXX6rzCnYenSkAVdNvR1+O0u9Av8=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook gobject-introspection ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus/ibus-qt.nix b/nixpkgs/pkgs/tools/inputmethods/ibus/ibus-qt.nix
deleted file mode 100644
index c119b1d35595..000000000000
--- a/nixpkgs/pkgs/tools/inputmethods/ibus/ibus-qt.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, stdenv, fetchurl, ibus, cmake, pkg-config, qt4, icu, doxygen }:
-
-stdenv.mkDerivation rec {
-  pname = "ibus-qt";
-  version = "1.3.4";
-
-  src = fetchurl {
-    url = "https://github.com/ibus/ibus-qt/releases/download/${version}/${pname}-${version}-Source.tar.gz";
-    sha256 = "sha256-HnsMy4i8NscCVFF28IcOZ2BoXozZfZzXk4CE9c7bL/E=";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config doxygen ];
-  buildInputs = [ ibus qt4 icu ];
-
-  cmakeFlags = [ "-DQT_PLUGINS_DIR=lib/qt4/plugins" ];
-
-  meta = with lib; {
-    homepage    = "https://github.com/ibus/ibus-qt/";
-    description = "Qt4 interface to the ibus input method";
-    platforms   = platforms.linux;
-    license     = licenses.gpl2Plus;
-    maintainers = with maintainers; [ gebner ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix b/nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix
index 198b1f8f9913..a0c92765c163 100644
--- a/nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/keymapper/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "keymapper";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "houmain";
     repo = "keymapper";
     rev = finalAttrs.version;
-    hash = "sha256-45/Y+uFmdjTdZuAX5we5QrcKH/PjC5fvXiNqJscyTGY=";
+    hash = "sha256-c0AiXr0dqlCNRlZxaEU9Tv7ZwPKajxY+eiI1zCb3hKs=";
   };
 
   # all the following must be in nativeBuildInputs
diff --git a/nixpkgs/pkgs/tools/inputmethods/uim/default.nix b/nixpkgs/pkgs/tools/inputmethods/uim/default.nix
index 4e52e6056867..70d3e8e8725c 100644
--- a/nixpkgs/pkgs/tools/inputmethods/uim/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/uim/default.nix
@@ -7,8 +7,7 @@
 , withGtk2 ? withGtk, gtk2 ? null
 , withGtk3 ? withGtk, gtk3 ? null
 , withQt ? true
-, withQt4 ? withQt, qt4 ? null
-, withQt5 ? false, qt5 ? null
+, withQt5 ? withQt, qt5 ? null
 , withLibnotify ? true, libnotify ? null
 , withSqlite ? true, sqlite ? null
 , withNetworking ? true, curl ? null, openssl ? null
@@ -21,13 +20,6 @@
 assert withGtk2 -> gtk2 != null;
 assert withGtk3 -> gtk3 != null;
 
-# TODO(@oxij): ./configure can't find both qmakes at the same time
-# this can be fixed by adding an alias qmake -> qmaka${version} in qmake derivation
-assert withQt4 -> !withQt5 && qt4 != null;
-assert withQt5 -> !withQt4 && qt5 != null;
-
-assert !withQt5; # fails to build with "Makefile.qmake: No such file or directory"
-
 assert withAnthy -> anthy != null;
 assert withLibnotify -> libnotify != null;
 assert withSqlite -> sqlite != null;
@@ -60,7 +52,6 @@ stdenv.mkDerivation rec {
   ++ lib.optional withAnthy anthy
   ++ lib.optional withGtk2 gtk2
   ++ lib.optional withGtk3 gtk3
-  ++ lib.optional withQt4 qt4
   ++ lib.optionals withQt5 [ qt5.qtbase.bin qt5.qtbase.dev ]
   ++ lib.optional withLibnotify libnotify
   ++ lib.optional withSqlite sqlite
@@ -114,10 +105,6 @@ stdenv.mkDerivation rec {
   ++ lib.optional withAnthy "--with-anthy-utf8"
   ++ lib.optional withGtk2 "--with-gtk2"
   ++ lib.optional withGtk3 "--with-gtk3"
-  ++ lib.optionals withQt4 [
-    "--with-qt4"
-    "--with-qt4-immodule"
-  ]
   ++ lib.optionals withQt5 [
     "--with-qt5"
     "--with-qt5-immodule"
diff --git a/nixpkgs/pkgs/tools/misc/broot/default.nix b/nixpkgs/pkgs/tools/misc/broot/default.nix
index 8c9994e479db..16222050f30a 100644
--- a/nixpkgs/pkgs/tools/misc/broot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.25.0";
+  version = "1.25.1";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TLphJr1DhJ30Mu3x3/9pNe1IiI9prafFMg1dDtbgqlE=";
+    hash = "sha256-CgWng5b0w6LGt2m9bx3IVMxOXwqYjgsIddTQdBnN/IY=";
   };
 
-  cargoHash = "sha256-dtNy3rWz6hMkatiV4z2gB4Z00gjtzREqjy7E48tmcdk=";
+  cargoHash = "sha256-xcUDg2vfGq4nmdbN6kFfWwbwaH/WqdLpIO0qrvQ7/t4=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/tools/misc/brotab/default.nix b/nixpkgs/pkgs/tools/misc/brotab/default.nix
index ce2effb25ce7..9a58c83ae303 100644
--- a/nixpkgs/pkgs/tools/misc/brotab/default.nix
+++ b/nixpkgs/pkgs/tools/misc/brotab/default.nix
@@ -25,6 +25,7 @@ python.pkgs.buildPythonApplication rec {
     flask
     psutil
     requests
+    setuptools
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/cc2538-bsl/default.nix b/nixpkgs/pkgs/tools/misc/cc2538-bsl/default.nix
index b09aaa9c3b3e..16c858fc5817 100644
--- a/nixpkgs/pkgs/tools/misc/cc2538-bsl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cc2538-bsl/default.nix
@@ -5,7 +5,7 @@ python3Packages.buildPythonPackage rec {
   version = "unstable-2022-08-03";
   format = "setuptools";
 
-  src = fetchFromGitHub rec {
+  src = fetchFromGitHub {
     owner = "JelmerT";
     repo = pname;
     rev = "538ea0deb99530e28fdf1b454e9c9d79d85a3970";
diff --git a/nixpkgs/pkgs/tools/misc/convimg/default.nix b/nixpkgs/pkgs/tools/misc/convimg/default.nix
index 8da5748ee21c..8492527f3037 100644
--- a/nixpkgs/pkgs/tools/misc/convimg/default.nix
+++ b/nixpkgs/pkgs/tools/misc/convimg/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "convimg";
-  version = "9.1";
+  version = "9.2";
 
   src = fetchFromGitHub {
     owner = "mateoconlechuga";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lcd9IL/xV6O81/HqZW+nA2eZXUbwS8nJ1jmjqVs8BR0=";
+    sha256 = "sha256-37nJyaUyC5aQ4h3sH+s8XOzyLh6zfzgIEDp+M6SERSg=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix b/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix
index f920e3afc696..0b7f78936ed9 100644
--- a/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ddccontrol/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddccontrol";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "ddccontrol";
     repo = "ddccontrol";
     rev = version;
-    sha256 = "sha256-Me7E5dUo3tnuXInWF19AmrcyKMtBlugVmvQHULMMMoA=";
+    sha256 = "sha256-0mvkIW0Xsi7co/INmlNeTclBxGoqoJliFanA/RFMaLM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix b/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
index e1ee9757fe89..b8a58ff400e2 100644
--- a/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
+++ b/nixpkgs/pkgs/tools/misc/debian-devscripts/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, xz, dpkg
+{lib, stdenv, fetchurl, fetchpatch, xz, dpkg
 , libxslt, docbook_xsl, makeWrapper, writeShellScript
 , python3Packages
 , perlPackages, curl, gnupg, diffutils, nano, pkg-config, bash-completion, help2man
@@ -19,6 +19,14 @@ in stdenv.mkDerivation rec {
     hash = "sha256-j0fUVTS/lPKFdgeMhksiJz2+E5koB07IK2uEj55EWG0=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "hardening-check-obey-binutils-env-vars.patch";
+      url = "https://github.com/Debian/devscripts/pull/2/commits/c6a018e0ef50a1b0cb4962a2f96dae7c6f21f1d4.patch";
+      hash = "sha256-UpS239JiAM1IYxNuJLdILq2h0xlR5t0Tzhj47xiMHww=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace scripts/Makefile --replace /usr/share/dpkg ${dpkg}/share/dpkg
     substituteInPlace scripts/debrebuild.pl --replace /usr/bin/perl ${perlPackages.perl}/bin/perl
diff --git a/nixpkgs/pkgs/tools/misc/dgoss/default.nix b/nixpkgs/pkgs/tools/misc/dgoss/default.nix
index 66474c88f5e7..3c5c2ff8bbab 100644
--- a/nixpkgs/pkgs/tools/misc/dgoss/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dgoss/default.nix
@@ -9,13 +9,13 @@
 
 resholve.mkDerivation rec {
   pname = "dgoss";
-  version = "0.3.18";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
-    owner = "aelsabbahy";
+    owner = "goss-org";
     repo = "goss";
-    rev = "v${version}";
-    sha256 = "01ssc7rnnwpyhjv96qy8drsskghbfpyxpsahk8s62lh8pxygynhv";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-dpMTUBMEG5tDi7E6ZRg1KHqIj5qDlvwfwJEgq/5z7RE=";
   };
 
   dontConfigure = true;
@@ -38,10 +38,11 @@ resholve.mkDerivation rec {
   };
 
   meta = with lib; {
-    homepage = "https://github.com/aelsabbahy/goss/blob/v${version}/extras/dgoss/README.md";
+    homepage = "https://github.com/goss-org/goss/blob/v${version}/extras/dgoss/README.md";
+    changelog = "https://github.com/goss-org/goss/releases/tag/v${version}";
     description = "Convenience wrapper around goss that aims to bring the simplicity of goss to docker containers";
     license = licenses.asl20;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ hyzual ];
+    maintainers = with maintainers; [ hyzual anthonyroussel ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
index 85e148049fa9..7daff3641a04 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
@@ -92,6 +92,7 @@ python3.pkgs.buildPythonApplication rec {
 
   patches = [
     ./ignore_links.patch
+    ./fix-test_fit.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/fix-test_fit.patch b/nixpkgs/pkgs/tools/misc/diffoscope/fix-test_fit.patch
new file mode 100644
index 000000000000..cd275ea9e91c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/fix-test_fit.patch
@@ -0,0 +1,58 @@
+From f1e9fa32c925fe7fb3cd825a02dcff52d305d845 Mon Sep 17 00:00:00 2001
+From: Andrew Marshall <andrew@johnandrewmarshall.com>
+Date: Mon, 28 Aug 2023 19:03:38 -0400
+Subject: [PATCH] Fix test_fit with file 5.45
+
+See also 435a8fe9a201a7e74e705e06cc56b66fa6cb4af9.
+---
+ tests/comparators/test_fit.py | 20 +++++++++++++-------
+ 1 file changed, 13 insertions(+), 7 deletions(-)
+
+diff --git a/tests/comparators/test_fit.py b/tests/comparators/test_fit.py
+index d8478c00..47258a3e 100644
+--- a/tests/comparators/test_fit.py
++++ b/tests/comparators/test_fit.py
+@@ -27,7 +27,11 @@
+ from diffoscope.comparators.utils.specialize import specialize
+ 
+ from ..utils.data import data, assert_diff, load_fixture
+-from ..utils.tools import skip_unless_tools_exist, skip_unless_tool_is_at_least
++from ..utils.tools import (
++    skip_unless_file_version_is_at_least,
++    skip_unless_tool_is_at_least,
++    skip_unless_tools_exist,
++)
+ from ..utils.nonexisting import assert_non_existing
+ 
+ cpio1 = load_fixture("test1.cpio")
+@@ -124,19 +128,21 @@ def test_nested_listing(nested_differences):
+ @skip_unless_tools_exist("cpio")
+ @skip_unless_tool_is_at_least("dumpimage", dumpimage_version, "2021.01")
+ @skip_unless_tools_exist("fdtdump")
++@skip_unless_file_version_is_at_least("5.45")
+ def test_nested_symlink(nested_differences):
+-    assert nested_differences[1].source1 == "dir/link"
+-    assert nested_differences[1].comment == "symlink"
+-    assert_diff(nested_differences[1], "symlink_expected_diff")
++    assert nested_differences[2].source1 == "dir/link"
++    assert nested_differences[2].comment == "symlink"
++    assert_diff(nested_differences[2], "symlink_expected_diff")
+ 
+ 
+ @skip_unless_tools_exist("cpio")
+ @skip_unless_tool_is_at_least("dumpimage", dumpimage_version, "2021.01")
+ @skip_unless_tools_exist("fdtdump")
++@skip_unless_file_version_is_at_least("5.45")
+ def test_nested_compressed_files(nested_differences):
+-    assert nested_differences[2].source1 == "dir/text"
+-    assert nested_differences[2].source2 == "dir/text"
+-    assert_diff(nested_differences[2], "text_ascii_expected_diff")
++    assert nested_differences[3].source1 == "dir/text"
++    assert nested_differences[3].source2 == "dir/text"
++    assert_diff(nested_differences[3], "text_ascii_expected_diff")
+ 
+ 
+ @skip_unless_tools_exist("cpio")
+-- 
+2.41.0
+
diff --git a/nixpkgs/pkgs/tools/misc/digitemp/default.nix b/nixpkgs/pkgs/tools/misc/digitemp/default.nix
index adf23e4bdf5e..2be4ac841afc 100644
--- a/nixpkgs/pkgs/tools/misc/digitemp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/digitemp/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://www.digitemp.com";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ zseri ];
+    maintainers = [ maintainers.fogti ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/entr/default.nix b/nixpkgs/pkgs/tools/misc/entr/default.nix
index 3c18345a0edf..a44a30a6dd7a 100644
--- a/nixpkgs/pkgs/tools/misc/entr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/entr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "entr";
-  version = "5.2";
+  version = "5.4";
 
   src = fetchurl {
     url = "https://eradman.com/entrproject/code/${pname}-${version}.tar.gz";
-    hash = "sha256-I34wnUawdSEMDky3ib/Qycd37d9sswNBw/49vMZYw4A=";
+    hash = "sha256-SR3e0sw/Hc2NJvSWpMezqZa5HHqyCIPKN1A3o5giH54=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/exa/default.nix b/nixpkgs/pkgs/tools/misc/exa/default.nix
deleted file mode 100644
index d22303e150c9..000000000000
--- a/nixpkgs/pkgs/tools/misc/exa/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ lib
-, gitSupport ? true
-, stdenv
-, fetchFromGitHub
-, rustPlatform
-, cmake
-, pandoc
-, pkg-config
-, zlib
-, Security
-, libiconv
-, installShellFiles
-}:
-
-rustPlatform.buildRustPackage {
-  pname = "exa";
-  version = "unstable-2023-03-01";
-
-  src = fetchFromGitHub {
-    owner = "ogham";
-    repo = "exa";
-    rev = "c697d066702ab81ce0684fedb4c638e0fc0473e8";
-    hash = "sha256-sSEnZLL0n7Aw72fPNJmyRxSLXCMC5uWwfTy2fpsuo6c=";
-  };
-
-  cargoHash = "sha256-/sxiQMWix4GR12IzuvXbx56mZhbcFpd+NJ49S2N+jzw=";
-
-  nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
-  buildInputs = [ zlib ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
-
-  buildNoDefaultFeatures = true;
-  buildFeatures = lib.optional gitSupport "git";
-
-  outputs = [ "out" "man" ];
-
-  postInstall = ''
-    pandoc --standalone -f markdown -t man man/exa.1.md > man/exa.1
-    pandoc --standalone -f markdown -t man man/exa_colors.5.md > man/exa_colors.5
-    installManPage man/exa.1 man/exa_colors.5
-    installShellCompletion \
-      --bash completions/bash/exa \
-      --fish completions/fish/exa.fish \
-      --zsh completions/zsh/_exa
-  '';
-
-  meta = with lib; {
-    description = "Replacement for 'ls' written in Rust";
-    longDescription = ''
-      exa is a modern replacement for ls. It uses colours for information by
-      default, helping you distinguish between many types of files, such as
-      whether you are the owner, or in the owning group. It also has extra
-      features not present in the original ls, such as viewing the Git status
-      for a directory, or recursing into directories with a tree view. exa is
-      written in Rust, so it’s small, fast, and portable.
-    '';
-    changelog = "https://github.com/ogham/exa/releases";
-    homepage = "https://the.exa.website";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ehegnes lilyball globin fortuneteller2k ];
-    mainProgram = "exa";
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/expect/default.nix b/nixpkgs/pkgs/tools/misc/expect/default.nix
index bd876371ae26..19ab5158a65b 100644
--- a/nixpkgs/pkgs/tools/misc/expect/default.nix
+++ b/nixpkgs/pkgs/tools/misc/expect/default.nix
@@ -41,6 +41,7 @@ tcl.mkTclDerivation rec {
     homepage = "https://expect.sourceforge.net/";
     license = licenses.publicDomain;
     platforms = platforms.unix;
+    mainProgram = "expect";
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/eza/default.nix b/nixpkgs/pkgs/tools/misc/eza/default.nix
index dc03e7fa0584..de77265d832e 100644
--- a/nixpkgs/pkgs/tools/misc/eza/default.nix
+++ b/nixpkgs/pkgs/tools/misc/eza/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "eza";
-  version = "0.10.9";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "eza-community";
     repo = "eza";
     rev = "v${version}";
-    hash = "sha256-ssP4jPO7Yt98ZCKOpQi7RwKfUBOHQ1dK5rzWxAJD9Jc=";
+    hash = "sha256-qA9oXAHJyEf5yI1AlofAKs5fNpNQev9FlY/GHNsfo2Q=";
   };
 
-  cargoHash = "sha256-XxqAAs44iZuqcAsixIqEgUHWytwS9umuM/KIPosrfRo=";
+  cargoHash = "sha256-xcw2fhEnUheDSJ5vE7Z1EqahVdCluClC7TmC1PFUUV4=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
   buildInputs = [ zlib ]
@@ -56,8 +56,10 @@ rustPlatform.buildRustPackage rec {
       written in Rust, so it’s small, fast, and portable.
     '';
     homepage = "https://github.com/eza-community/eza";
+    changelog = "https://github.com/eza-community/eza/releases/tag/v${version}";
     license = licenses.mit;
     mainProgram = "eza";
     maintainers = with maintainers; [ cafkafk ];
+    platforms = platforms.unix ++ platforms.windows;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/gh-markdown-preview/default.nix b/nixpkgs/pkgs/tools/misc/gh-markdown-preview/default.nix
index 6d148b31b86b..e4fe21fc0918 100644
--- a/nixpkgs/pkgs/tools/misc/gh-markdown-preview/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gh-markdown-preview/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gh-markdown-preview";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "yusukebe";
     repo = "gh-markdown-preview";
     rev = "v${version}";
-    hash = "sha256-Q+e3j+X/ZsLdkTBkuu028Rl4iw+oES2w6CDQiwN+CtU=";
+    hash = "sha256-UBveXL4/3GxxIVjqG0GuTbkGkzXFc/stew2s+dTj9BI=";
   };
 
   vendorHash = "sha256-O6Q9h5zcYAoKLjuzGu7f7UZY0Y5rL2INqFyJT2QZJ/E=";
diff --git a/nixpkgs/pkgs/tools/misc/goss/default.nix b/nixpkgs/pkgs/tools/misc/goss/default.nix
index 79d3cf377d73..ef3d60aa0756 100644
--- a/nixpkgs/pkgs/tools/misc/goss/default.nix
+++ b/nixpkgs/pkgs/tools/misc/goss/default.nix
@@ -1,26 +1,49 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ buildGoModule
+, fetchFromGitHub
+, goss
+, nix-update-script
+, lib
+, testers
+}:
 
 buildGoModule rec {
   pname = "goss";
-  version = "0.3.18";
+
+  # Don't forget to update dgoss to the same version.
+  version = "0.4.1";
 
   src = fetchFromGitHub {
-    owner = "aelsabbahy";
+    owner = "goss-org";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "01ssc7rnnwpyhjv96qy8drsskghbfpyxpsahk8s62lh8pxygynhv";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-dpMTUBMEG5tDi7E6ZRg1KHqIj5qDlvwfwJEgq/5z7RE=";
   };
 
-  vendorSha256 = "sha256-zlQMVn4w6syYmntxpeiIc1UTbFrIJzOMg0RVDCICTM8=";
+  vendorHash = "sha256-n+k7f9e2iqf4KrcDkzX0CWk+Bq2WE3dyUEid4PTP1FA=";
 
   CGO_ENABLED = 0;
   ldflags = [
     "-s" "-w" "-X main.version=v${version}"
   ];
 
+  checkFlags = [
+    # Prometheus tests are skipped upstream
+    # See https://github.com/goss-org/goss/blob/master/ci/go-test.sh
+    "-skip" "^TestPrometheus"
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion {
+      command = "goss --version";
+      package = goss;
+      version = "v${version}";
+    };
+    updateScript = nix-update-script { };
+  };
+
   meta = with lib; {
-    homepage = "https://github.com/aelsabbahy/goss/";
-    changelog = "https://github.com/aelsabbahy/goss/releases/tag/v${version}";
+    homepage = "https://github.com/goss-org/goss/";
+    changelog = "https://github.com/goss-org/goss/releases/tag/v${version}";
     description = "Quick and easy server validation";
     longDescription = ''
       Goss is a YAML based serverspec alternative tool for validating a server’s configuration.
@@ -29,6 +52,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ hyzual jk ];
+    maintainers = with maintainers; [ hyzual jk anthonyroussel ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/hsd/default.nix b/nixpkgs/pkgs/tools/misc/hsd/default.nix
new file mode 100644
index 000000000000..ebbba1de07d8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/hsd/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, buildNpmPackage
+, fetchFromGitHub
+, python3
+, unbound
+, darwin
+}:
+
+buildNpmPackage rec {
+  pname = "hsd";
+  version = "6.0.0";
+
+  src = fetchFromGitHub {
+    owner = "handshake-org";
+    repo = "hsd";
+    rev = "v${version}";
+    hash = "sha256-4dWCCybhcdrkLFqUVTajRMnhzNgjpXUN2a+TNIi+Dqo=";
+  };
+
+  npmDepsHash = "sha256-ZbBu9hnRsC9LrHozny3OlHhgcDbp6ACjXRV4UHneHQc=";
+
+  nativeBuildInputs = [
+    python3
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.cctools
+  ];
+
+  buildInputs = [
+    unbound
+  ];
+
+  dontNpmBuild = true;
+
+  meta = {
+    changelog = "https://github.com/handshake-org/hsd/blob/${src.rev}/CHANGELOG.md";
+    description = "Implementation of the Handshake protocol";
+    homepage = "https://github.com/handshake-org/hsd";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ d-xo ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/infracost/default.nix b/nixpkgs/pkgs/tools/misc/infracost/default.nix
index 90090d5f7ca3..26c0acdef4d0 100644
--- a/nixpkgs/pkgs/tools/misc/infracost/default.nix
+++ b/nixpkgs/pkgs/tools/misc/infracost/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "infracost";
-  version = "0.10.28";
+  version = "0.10.29";
 
   src = fetchFromGitHub {
     owner = "infracost";
     rev = "v${version}";
     repo = "infracost";
-    sha256 = "sha256-Gh/3uPkFEW6HBF4vbmZ00qaWD3FGTs7GUHRlfP3G5fY=";
+    sha256 = "sha256-xtxTIC7DNTvcDMXtFJOJkJGn78HdzCWVrBMS5Ksmtcc=";
   };
-  vendorHash = "sha256-mT214puF9gdrw0mfMPQQtZBdErW6MEJBIilKVo2ym30=";
+  vendorHash = "sha256-ZKRtUlrEk/W2qZSbsh0ddwmspH6quzzY0cFSQmO0i10=";
 
   ldflags = [ "-s" "-w" "-X github.com/infracost/infracost/internal/version.Version=v${version}" ];
 
@@ -62,6 +62,6 @@ buildGoModule rec {
       compare different deployment options upfront.
     '';
     license = licenses.asl20;
-    maintainers = with maintainers; [ davegallant jk ];
+    maintainers = with maintainers; [ davegallant jk kashw2 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/jfrog-cli/default.nix b/nixpkgs/pkgs/tools/misc/jfrog-cli/default.nix
index cfa7ad4f47ba..d9d4d193f7c0 100644
--- a/nixpkgs/pkgs/tools/misc/jfrog-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/jfrog-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "jfrog-cli";
-  version = "2.45.0";
+  version = "2.46.2";
 
   src = fetchFromGitHub {
     owner = "jfrog";
     repo = "jfrog-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NSkSE1NZIwCCSlCo7hGWq82JvH48uI8fV2RIZHwS5JI=";
+    hash = "sha256-NPRxBcXnY1l30RrFTgR+vqvRLdH564Daw/OIqRUhTss=";
   };
 
-  vendorHash = "sha256-fk+Lhmb+LgjSuGlDfHkentF10TOgqIxbZ1VVGmAmkME=";
+  vendorHash = "sha256-dMVXpqIDL6fQc9KYN4Co6vBCrpxocnwA3EkgMEme3aI=";
 
   postInstall = ''
     # Name the output the same way as the original build script does
diff --git a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
index 8cd311cd4e40..1e674fe36c4d 100644
--- a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
@@ -33,7 +33,7 @@ xorg,
 }:
 
 let
-  version = "1.39.1";
+  version = "1.39.3";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -82,7 +82,7 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
-        sha256 = "sha256-i4dAkpA0i/RSC0PpkEafbxriJy1Y9bW5YrZRjFaS8nw=";
+        sha256 = "sha256-6HK1t05amGd7H6MS9Lg+vJvWdOWi+ukqz5gY1IaPw9E=";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
diff --git a/nixpkgs/pkgs/tools/misc/parallel/default.nix b/nixpkgs/pkgs/tools/misc/parallel/default.nix
index 2a8866795cfc..c36393dab29d 100644
--- a/nixpkgs/pkgs/tools/misc/parallel/default.nix
+++ b/nixpkgs/pkgs/tools/misc/parallel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "parallel";
-  version = "20230622";
+  version = "20230822";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-3jokrXAhmKZCEVzrmygGJf1Jxt2IQrCGhf8FfGuEI44=";
+    sha256 = "sha256-S1lFmaPBE8KVLWsMG3zlRGAJjqIVrF9oUSAfme5r/F4=";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/tools/misc/pb/default.nix b/nixpkgs/pkgs/tools/misc/pb/default.nix
new file mode 100644
index 000000000000..84e92b79088b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pb/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildGoModule, fetchFromGitHub, testers, pb }:
+
+buildGoModule rec {
+  pname = "pb";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "parseablehq";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-MCWDCFW37OTy6Hd9pVem+gwKGdZ7htIXFbdUciqAjU8=";
+  };
+
+  vendorHash = "sha256-WDBjAAaeKeMJOwX8w9PLq9Y8IX2o5yzH2o+MNFSgYc4=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.Version=${version}"
+  ];
+
+  tags = [ "kqueue" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = pb;
+    command = "pb version";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/parseablehq/pb";
+    changelog = "https://github.com/parseablehq/pb/releases/tag/v${version}";
+    description = "CLI client for Parseable server";
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "pb";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/pc/default.nix b/nixpkgs/pkgs/tools/misc/pc/default.nix
index ecf0122f0869..6e9c23ee6d8a 100644
--- a/nixpkgs/pkgs/tools/misc/pc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pc/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ moody ];
     platforms = lib.platforms.unix;
+    mainProgram = "pc";
   };
 })
diff --git a/nixpkgs/pkgs/tools/misc/qjoypad/default.nix b/nixpkgs/pkgs/tools/misc/qjoypad/default.nix
index 018086e6dc7c..6770ec133d3c 100644
--- a/nixpkgs/pkgs/tools/misc/qjoypad/default.nix
+++ b/nixpkgs/pkgs/tools/misc/qjoypad/default.nix
@@ -10,8 +10,8 @@ mkDerivation rec {
     hash = "sha256:1w26ddxb1xirb7qjf7kv9llxzjhbhcb7warnxbx41qhbni46g26y";
   };
 
-  nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = [ libX11 libXtst qtbase qttools qtx11extras ];
+  nativeBuildInputs = [ pkg-config cmake qttools ];
+  buildInputs = [ libX11 libXtst qtbase qtx11extras ];
 
   meta = with lib; {
     description = "A program that lets you use gaming devices anywhere";
diff --git a/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix b/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
index 777e310ac44c..0302a423a4fb 100644
--- a/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
+++ b/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "riemann-c-client";
-  version = "1.10.5";
+  version = "2.1.1";
 
   src = fetchFromGitea {
     domain = "git.madhouse-project.org";
     owner = "algernon";
     repo = "riemann-c-client";
     rev = "riemann-c-client-${version}";
-    sha256 = "1w4wi5mr0vgbsx8pv9s08i409qqlfivsa979zyq4miyga1f3vqif";
+    sha256 = "sha256-FIhTT57g2uZBaH3EPNxNUNJn9n+0ZOhI6WMyF+xIr/Q=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/misc/ripdrag/default.nix b/nixpkgs/pkgs/tools/misc/ripdrag/default.nix
index 67151cd060e5..3417382bab91 100644
--- a/nixpkgs/pkgs/tools/misc/ripdrag/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ripdrag/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ripdrag";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "nik012003";
     repo = "ripdrag";
     rev = "v${version}";
-    hash = "sha256-SvGJb/XosR8T/bg7nhjXR15Ba1MLaerJvoetYDtgHiM=";
+    hash = "sha256-GWNu970nyD4E2mWghOtHnuvVYGhgZ87zNCNxSpxOsgQ=";
   };
 
-  cargoHash = "sha256-O/Xp+dZ+Pv1/yNS/KYbF2wQguq/udtJlRPeP4v3U0Vs=";
+  cargoHash = "sha256-aN+25hhE6LhI8M+enyzsfSTARIxbY36mdeP70rjBJQ8=";
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
 
diff --git a/nixpkgs/pkgs/tools/misc/rmtrash/default.nix b/nixpkgs/pkgs/tools/misc/rmtrash/default.nix
index 61b8ead738cf..793cd49d4188 100644
--- a/nixpkgs/pkgs/tools/misc/rmtrash/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rmtrash/default.nix
@@ -3,13 +3,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "rmtrash";
-  version = "1.14";
+  version = "1.15";
 
   src = fetchFromGitHub {
     owner = "PhrozenByte";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wfb2ykzlsxyqn9krfsis9jxhaxy3pxl71a4f15an1ngfndai694";
+    sha256 = "sha256-vCtIM6jAYfrAOopiTcb4M5GNtucVnK0XEEKbMq1Cbc4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/rot8/default.nix b/nixpkgs/pkgs/tools/misc/rot8/default.nix
new file mode 100644
index 000000000000..5747e72918a3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/rot8/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rot8";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "efernau";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-i+VLVA/XKZiFPEeFHR3CpZKi8CWA/tiaZJerciqQHJ0=";
+  };
+
+  cargoHash = "sha256-Zz3RK79pMBn9JcpOVHf8vrvQzOJuV7anm136HcTBhJE=";
+
+  meta = with lib; {
+    description = "screen rotation daemon for X11 and sway";
+    homepage = "https://github.com/efernau/rot8";
+    license = licenses.mit;
+    maintainers = [ maintainers.smona ];
+    mainProgram = pname;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
index aec20c138408..b84bc955c46a 100644
--- a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2023.5";
+  version = "2023.7";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    hash = "sha256-vXl7NrTNc0p6wMEmsd7aHs5CjFXkWj8PwR7avZIqnCA=";
+    hash = "sha256-OL1PEXGqPbMWFcCTkjRAUk+7zbGTQiwQqmgmkEgfgHE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/rustypaste-cli/default.nix b/nixpkgs/pkgs/tools/misc/rustypaste-cli/default.nix
index ce7794f0ada8..93b5340abcc5 100644
--- a/nixpkgs/pkgs/tools/misc/rustypaste-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rustypaste-cli/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rustypaste-cli";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "rustypaste-cli";
     rev = "v${version}";
-    hash = "sha256-5D3wojKFYL+hOwroe0grAQ524uOVI6fn1ENcP7IEEeA=";
+    hash = "sha256-FfAX7a94EY2Y+FHE33UdxbLbFlSq69flvx3uPYlvkT4=";
   };
 
-  cargoHash = "sha256-89cPYlQy3PUl1uTJSUMVgTaFX6dmY9Iwut507VzyDoM=";
+  cargoHash = "sha256-FVhOxJE1sI9Ka2teDU8xnbuDvtdIwubuE7+3ypo4+yQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/nixpkgs/pkgs/tools/misc/sfeed/default.nix b/nixpkgs/pkgs/tools/misc/sfeed/default.nix
index 02813960ea6c..2fa9d806933e 100644
--- a/nixpkgs/pkgs/tools/misc/sfeed/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sfeed/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "sfeed";
-  version = "1.8";
+  version = "1.9";
 
   src = fetchgit {
     url = "git://git.codemadness.org/sfeed";
     rev = version;
-    sha256 = "sha256-oosBwLCVZDy29RNxLXie0IPRUxAmT6qJlQGHypWScuk=";
+    sha256 = "sha256-VZChiJ1m2d0iEM5ATXMqCJVpHZcBIkqIorFvQlY0/mw=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/nixpkgs/pkgs/tools/misc/shopware-cli/default.nix b/nixpkgs/pkgs/tools/misc/shopware-cli/default.nix
index b553ab269d7c..c04ae27e9919 100644
--- a/nixpkgs/pkgs/tools/misc/shopware-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/shopware-cli/default.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "shopware-cli";
-  version = "0.2.6";
+  version = "0.2.8";
   src = fetchFromGitHub {
     repo = "shopware-cli";
     owner = "FriendsOfShopware";
     rev = version;
-    hash = "sha256-Ut/SKdnaJM4B6jXXcRS6UJ1qCEgnZy977qlZbH8S6qU=";
+    hash = "sha256-ThjSp7WBAWBUXDRN0mJvIb7uWTjYtVa53b+BoWCPuvo=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   nativeCheckInputs = [ git ];
 
-  vendorHash = "sha256-luA+tSePY8V+BQBTykv236mq4z3wQjLrjeYH2KQ0Mrc=";
+  vendorHash = "sha256-JRzF2eYHnFO/2Tqnc4DMMGSV8gDKDiu8ZjELcn/Wur0=";
 
   postInstall = ''
     export HOME="$(mktemp -d)"
diff --git a/nixpkgs/pkgs/tools/misc/slingshot/default.nix b/nixpkgs/pkgs/tools/misc/slingshot/default.nix
index 48ea7f24c040..1cf9fe854c3d 100644
--- a/nixpkgs/pkgs/tools/misc/slingshot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/slingshot/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "slingshot";
-  version = "0.2.3";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "caio-ishikawa";
     repo = "slingshot";
     rev = "v${version}";
-    hash = "sha256-PbcpvSBYoRs8TMkbbQjG284BWr+PSaTStPOg4a1GIrw=";
+    hash = "sha256-XI6uf54sEJ0htfY43aF8/X1/OF9m6peHUGDS+2nK3xA=";
   };
 
-  cargoHash = "sha256-Y0H88paBe2yyUyTdwxXO58YFDdH04kK+nHvi1qyYVF0=";
+  cargoHash = "sha256-NZyO6oXmgTUszp2Vc9iVAnCvM78/BJ8IfpeTrsOMvlo=";
 
   meta = with lib; {
     description = "Lightweight command line tool to quickly navigate across folders";
diff --git a/nixpkgs/pkgs/tools/misc/sqlite3-to-mysql/default.nix b/nixpkgs/pkgs/tools/misc/sqlite3-to-mysql/default.nix
index 9063fd1966b4..b8fc4fce50c9 100644
--- a/nixpkgs/pkgs/tools/misc/sqlite3-to-mysql/default.nix
+++ b/nixpkgs/pkgs/tools/misc/sqlite3-to-mysql/default.nix
@@ -1,57 +1,37 @@
 { lib
 , fetchFromGitHub
-, python3
+, python3Packages
 , nixosTests
 , testers
 , sqlite3-to-mysql
 , fetchPypi
+, mysql80
 }:
 
-let
-  py = python3.override {
-    packageOverrides = self: super: {
-      # sqlite3-to-mysql is incompatible with versions > 1.4.44 of sqlalchemy
-      sqlalchemy = super.sqlalchemy.overridePythonAttrs rec {
-        version = "1.4.44";
-        format = "setuptools";
-        src = fetchPypi {
-          pname = "SQLAlchemy";
-          inherit version;
-          hash = "sha256-LdpflnGa6Js+wPG3lpjYbrmuyx1U6ZCrs/3ZLAS0apA=";
-        };
-        disabledTestPaths = [
-           "test/aaa_profiling"
-           "test/ext/mypy"
-        ];
-      };
-    };
-    self = py;
-  };
-
-in
-with py.pkgs; buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "sqlite3-to-mysql";
-  version = "1.4.19";
+  version = "2.0.3";
   format = "pyproject";
 
+  disabled = python3Packages.pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "techouse";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-gtXwDLHl5f1sXLm+b8l08bY/XJkN+zVtd7m45K0CAYY=";
+    hash = "sha256-rlKJKthop9BQnqjTUq1hZM/NP69gPdEFTq1rU+CbpWA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  nativeBuildInputs = with python3Packages; [
+    hatchling
   ];
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3Packages; [
     click
     mysql-connector
-    pytimeparse
+    pytimeparse2
     pymysql
     pymysqlsa
-    six
     simplejson
     sqlalchemy
     sqlalchemy-utils
@@ -59,6 +39,7 @@ with py.pkgs; buildPythonApplication rec {
     tabulate
     unidecode
     packaging
+    mysql80
   ];
 
   # tests require a mysql server instance
diff --git a/nixpkgs/pkgs/tools/misc/srisum/default.nix b/nixpkgs/pkgs/tools/misc/srisum/default.nix
new file mode 100644
index 000000000000..04fe962f97ad
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/srisum/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "srisum";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "zkat";
+    repo = "srisum-rs";
+    rev = "v${version}";
+    hash = "sha256-Nw3uTGOcz1ivAm9X+PnOdNA937wuK3vtJQ0iJHlHVdw=";
+  };
+  cargoHash = "sha256-q6FGykY+HmU3/jMaGRO36OlYGVLG9mU8yZ8j/Shux3s=";
+
+  doInstallCheck = true;
+
+  meta = with lib; {
+    description = "A command-line utility to compute and check subresource integrity hashes";
+    homepage = "https://github.com/zkat/srisum-rs";
+    changelog = "https://github.com/zkat/srisum-rs/raw/v${version}/CHANGELOG.md";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ pjjw ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/star-history/default.nix b/nixpkgs/pkgs/tools/misc/star-history/default.nix
index 6c6ed54eec7e..a983834aa689 100644
--- a/nixpkgs/pkgs/tools/misc/star-history/default.nix
+++ b/nixpkgs/pkgs/tools/misc/star-history/default.nix
@@ -9,14 +9,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "star-history";
-  version = "1.0.13";
+  version = "1.0.14";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-WOdiBN/qyszAI4GNFB/RuZd9EV0uj9l5yUnryZ6cqSE=";
+    sha256 = "sha256-bdu0LLH6f5rLwzNw1wz0J9zEspYmAOlJYCWOdamWjyw=";
   };
 
-  cargoSha256 = "sha256-sET5Gf4vLJAvgdslT+bov9vzCKuTKCEJ0/+JR2GfhmY=";
+  cargoSha256 = "sha256-Z7zq93Orx7Mb2b9oZxAIPn6qObzYPGOx4N86naUvqtg=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/misc/staruml/default.nix b/nixpkgs/pkgs/tools/misc/staruml/default.nix
index e3ce07089413..41c47f7054c7 100644
--- a/nixpkgs/pkgs/tools/misc/staruml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/staruml/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   src =
     fetchurl {
-      url = "https://staruml-7a0.kxcdn.com/releases-v5/StarUML_${version}_amd64.deb";
+      url = "https://files.staruml.io/releases-v5/StarUML_${version}_amd64.deb";
       sha256 = "sha256-da1mY3OW24g6Ix0L57CBPbaMeSLzhOOjoBsyZszmNOc=";
     };
 
diff --git a/nixpkgs/pkgs/tools/misc/steampipe/default.nix b/nixpkgs/pkgs/tools/misc/steampipe/default.nix
index a9d8e5cbc832..1f74fbb0183e 100644
--- a/nixpkgs/pkgs/tools/misc/steampipe/default.nix
+++ b/nixpkgs/pkgs/tools/misc/steampipe/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.20.10";
+  version = "0.20.11";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "v${version}";
-    sha256 = "sha256-v0ZVyiFHiRsn6ARA7sLCfNfoljTFegCXb1/C4sY0vfg=";
+    sha256 = "sha256-idMVQyRpWc4ZT9GZvQvShwIY9I9t9MArfih57trhJvc=";
   };
 
   vendorHash = "sha256-VuUzo+afUazXH7jaR4Qm5Kfr6qiyHqdGLJWS3MX8oOA=";
diff --git a/nixpkgs/pkgs/tools/misc/szyszka/default.nix b/nixpkgs/pkgs/tools/misc/szyszka/default.nix
index 61bc41b269ba..58d839acf078 100755
--- a/nixpkgs/pkgs/tools/misc/szyszka/default.nix
+++ b/nixpkgs/pkgs/tools/misc/szyszka/default.nix
@@ -7,24 +7,26 @@
 , pango
 , atk
 , gdk-pixbuf
-, gtk3
+, gtk4
+, wrapGAppsHook
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "szyszka";
-  version = "2.0.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "qarmin";
-    repo = pname;
+    repo = "szyszka";
     rev = version;
-    sha256 = "sha256-TQwDvkWWlk09kVVaVI56isJi+X9UXWnoz+2PVyK9BGc=";
+    hash = "sha256-LkXGKDFKaY+mg53ZEO4h2br/4eRle/QbSQJTVEMpAoY=";
   };
 
-  cargoSha256 = "sha256-2uyMA2nIOPkc5+qImFn3eUVq2AxHu3Xj91TpkKswjao=";
+  cargoHash = "sha256-WJR1BogNnQoZeOt5yBFzjYNZS8OmE84R1FbQpHTb7V0=";
 
   nativeBuildInputs = [
     pkg-config
+    wrapGAppsHook
   ];
 
   buildInputs = [
@@ -33,13 +35,13 @@ rustPlatform.buildRustPackage rec {
     pango
     atk
     gdk-pixbuf
-    gtk3
+    gtk4
   ];
 
   meta = with lib; {
     description = "A simple but powerful and fast bulk file renamer";
     homepage = "https://github.com/qarmin/szyszka";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/tgpt/default.nix b/nixpkgs/pkgs/tools/misc/tgpt/default.nix
index 96b4ccce6bd8..4589eff9fcd6 100644
--- a/nixpkgs/pkgs/tools/misc/tgpt/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tgpt/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "tgpt";
-  version = "1.7.4";
+  version = "1.7.6";
 
   src = fetchFromGitHub {
     owner = "aandrew-me";
     repo = "tgpt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JOCoyGSIdHWa7/4fwSoaTFLqk5EE9Ni4UFCD7BvFeoQ=";
+    hash = "sha256-XPHWD9R6XdUU7gsI3rQ55DZx06Kaqgdkw08x+VsGc1g=";
   };
 
   vendorHash = "sha256-2I5JJWxM6aZx0eZu7taUTL11Y/5HIrXYC5aezrTbbsM=";
diff --git a/nixpkgs/pkgs/tools/misc/toybox/default.nix b/nixpkgs/pkgs/tools/misc/toybox/default.nix
index 7a062eb35efa..07ad33645849 100644
--- a/nixpkgs/pkgs/tools/misc/toybox/default.nix
+++ b/nixpkgs/pkgs/tools/misc/toybox/default.nix
@@ -12,13 +12,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "toybox";
-  version = "0.8.9";
+  version = "0.8.10";
 
   src = fetchFromGitHub {
     owner = "landley";
     repo = pname;
     rev = version;
-    sha256 = "sha256-3boPoq/wm0af0DqEWcUCUyCmVFopVMitRHJI1xsjAWM=";
+    sha256 = "sha256-MMkNLhQP3ztWoRYhCU/cNXE/M+/ny41OK1SA9oM/lZg=";
   };
 
   depsBuildBuild = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ buildPackages.stdenv.cc ];
diff --git a/nixpkgs/pkgs/tools/misc/trackma/default.nix b/nixpkgs/pkgs/tools/misc/trackma/default.nix
index 17bd117b22e9..86834e337d8c 100644
--- a/nixpkgs/pkgs/tools/misc/trackma/default.nix
+++ b/nixpkgs/pkgs/tools/misc/trackma/default.nix
@@ -24,27 +24,28 @@ let
 in
 python3.pkgs.buildPythonApplication rec {
   pname = "trackma";
-  version = "0.8.5";
+  version = "0.8.6";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "z411";
     repo = "trackma";
     rev = "v${version}";
-    sha256 = "sha256-BjZw/AYFlTYtgJTDFOALHx1d71ZQsYZ2TXnEUeQVvpw=";
+    sha256 = "qlkFQSJFjxkGd5WkNGfyAo64ys8VJLep/ZOL6icXQ4c=";
     fetchSubmodules = true; # for anime-relations submodule
   };
 
-  nativeBuildInputs = [ copyDesktopItems ]
+  nativeBuildInputs = [ copyDesktopItems python3.pkgs.poetry-core ]
     ++ lib.optionals withGTK [ wrapGAppsHook gobject-introspection ]
     ++ lib.optionals withQT [ qt5.wrapQtAppsHook ];
 
   buildInputs = lib.optionals withGTK [ glib gtk3 ];
 
-  propagatedBuildInputs = with python3.pkgs; ([ urllib3 ]
+  propagatedBuildInputs = with python3.pkgs; ([ requests ]
     ++ lib.optionals withQT [ pyqt5 ]
-    ++ lib.optionals withGTK [ pycairo ]
+    ++ lib.optionals withGTK [ pycairo pygobject3 ]
     ++ lib.optionals withCurses [ urwid ]
-    ++ lib.optionals stdenv.isLinux [ dbus-python pygobject3 pyinotify ]
+    ++ lib.optionals stdenv.isLinux [ pydbus pyinotify ]
     ++ lib.optionals (withGTK || withQT) [ pillow ]);
 
   dontWrapQtApps = true;
diff --git a/nixpkgs/pkgs/tools/misc/ttchat/default.nix b/nixpkgs/pkgs/tools/misc/ttchat/default.nix
index c01a10435528..46d366dee379 100644
--- a/nixpkgs/pkgs/tools/misc/ttchat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ttchat/default.nix
@@ -2,22 +2,21 @@
 
 buildGoModule rec {
   pname = "ttchat";
-  version = "0.1.7";
+  version = "0.1.10";
 
   src = fetchFromGitHub {
     owner = "atye";
     repo = "ttchat";
     rev = "v${version}";
-    sha256 = "sha256-+fPARVS1ILxrigHpvb+iNqz7Xw7+c/LmHJEeRxhCbhQ=";
+    hash = "sha256-Ezlqji/j6nyCzc1jrfB1MZR4ugKAa5D5CL6wfuP6PsY=";
   };
 
-  vendorSha256 = "sha256-XWCjnHg0P7FCuiMjCV6ijy60h0u776GyiIC/k/KMW38=";
+  vendorHash = "sha256-6GcbEGC1O+lcTO+GsaVXOO69yIHMPywXJy7OFX15/eI=";
 
   meta = with lib; {
     description = "Connect to a Twitch channel's chat from your terminal";
     homepage = "https://github.com/atye/ttchat";
     license = licenses.asl20;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ wolfangaukang ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/turbo/default.nix b/nixpkgs/pkgs/tools/misc/turbo/default.nix
index 3700b5a278a2..0928348666ea 100644
--- a/nixpkgs/pkgs/tools/misc/turbo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/turbo/default.nix
@@ -24,12 +24,12 @@
 , CoreFoundation
 }:
 let
-  version = "1.10.7";
+  version = "1.10.13";
   src = fetchFromGitHub {
     owner = "vercel";
     repo = "turbo";
     rev = "v${version}";
-    sha256 = "sha256-AkrwaaXUiFPZqOO1mX/1XBOZRFRtCdgI7glzdv8ZOfU=";
+    sha256 = "sha256-7bEHE/bHRVOXMP7+oo+4k8yn6d+LkXBi8JcDeR0ajww";
   };
 
   ffi = rustPlatform.buildRustPackage {
@@ -37,7 +37,7 @@ let
     inherit src version;
     cargoBuildFlags = [ "--package" "turborepo-ffi" ];
 
-    cargoHash = "sha256-j+r1irE0OGMfr9TAYhTOsFjBNzxjmF5/e7EebtshuG8=";
+    cargoHash = "sha256-CIKuW8qKJiqgDBPfuCIBcWUP41BHwAa1m9vmcQ9ZmAY=";
 
     RUSTC_BOOTSTRAP = 1;
     nativeBuildInputs = [
@@ -138,7 +138,7 @@ rustPlatform.buildRustPackage {
   ];
   RELEASE_TURBO_CLI = "true";
 
-  cargoHash = "sha256-GCo1PRB4JkHSXz7nBiKhJsC1xhMTlA136gGpUblPpVk=";
+  cargoHash = "sha256-rKdonANA6WvXPMpK8sC95hsX9Yb5zedeBezY4LWzsZE=";
 
   RUSTC_BOOTSTRAP = 1;
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/up/default.nix b/nixpkgs/pkgs/tools/misc/up/default.nix
index 7737c67faa23..d9ce59f96572 100644
--- a/nixpkgs/pkgs/tools/misc/up/default.nix
+++ b/nixpkgs/pkgs/tools/misc/up/default.nix
@@ -8,10 +8,10 @@ buildGoModule rec {
     owner = "akavel";
     repo = "up";
     rev = "v${version}";
-    sha256 = "1j8fi14fiwjscfzdfjqxgavjadwvcm5mqr8fb7hx3jmxs4kl58bp";
+    hash = "sha256-d6FCJ9G9ytHhWQ5lXEtlmzclt3odS9e+Y1ry6EiIDsk=";
   };
 
-  vendorSha256 = "1q8wfsfl3rz698ck5q5s5z6iw9k134fxxvwipcp2b052n998rcrx";
+  vendorHash = "sha256-PbOMUrKigCUuu5Hv3h0ZYSYezS+64DIZSubnQZ12HOE=";
 
   meta = with lib; {
     description = "Ultimate Plumber is a tool for writing Linux pipes with instant live preview";
diff --git a/nixpkgs/pkgs/tools/misc/ytmdl/default.nix b/nixpkgs/pkgs/tools/misc/ytmdl/default.nix
index d21320fc6315..9e20b1480e18 100644
--- a/nixpkgs/pkgs/tools/misc/ytmdl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ytmdl/default.nix
@@ -7,12 +7,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ytmdl";
-  version = "2022.03.16";
+  version = "2023.07.27";
 
   src = fetchPypi {
     inherit pname;
     version = builtins.replaceStrings [ ".0" ] [ "." ] version;
-    sha256 = "sha256-2lEOgwSi4fAVK+gJXvjWQDBWIb1cODFmUiq0FUfpyXA=";
+    sha256 = "sha256-sBRzbUR+zqS8Zzg/uU4bjJUr/n1/tb0K6u/FVTEIRsk=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix b/nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix
index 106fac53d682..57888630cd0f 100644
--- a/nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix
@@ -17,6 +17,11 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-rrn+ZTAsFs7UTP4xQL3Cy8G6RG7vwT0wMKnXHHIkB90=";
 
+  checkFlags = [
+    # https://github.com/containers/aardvark-dns/issues/379
+    "--skip=test::test::tests::test_backend_network_scoped_custom_dns_server"
+  ];
+
   passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/apc-temp-fetch/default.nix b/nixpkgs/pkgs/tools/networking/apc-temp-fetch/default.nix
index 02fbd8ae289b..7676465eb499 100644
--- a/nixpkgs/pkgs/tools/networking/apc-temp-fetch/default.nix
+++ b/nixpkgs/pkgs/tools/networking/apc-temp-fetch/default.nix
@@ -30,6 +30,6 @@ buildPythonApplication rec {
     description = "unified temperature fetcher interface to several UPS network adapters";
     homepage = "https://github.com/YZITE/APC_Temp_fetch";
     license = licenses.asl20;
-    maintainers = [ maintainers.zseri ];
+    maintainers = [ maintainers.fogti ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bitmask-vpn/default.nix b/nixpkgs/pkgs/tools/networking/bitmask-vpn/default.nix
index 7d0c09107d6e..c3e8538acb8d 100644
--- a/nixpkgs/pkgs/tools/networking/bitmask-vpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bitmask-vpn/default.nix
@@ -16,6 +16,7 @@
 , qmltermwidget
 , qtbase
 , qtdeclarative
+, qtgraphicaleffects
 , qtinstaller
 , qtquickcontrols
 , qtquickcontrols2
@@ -25,14 +26,14 @@
 , provider ? "riseup"
 }:
 let
-  version = "0.21.6";
+  version = "0.21.11";
 
   src = fetchFromGitLab {
     domain = "0xacab.org";
     owner = "leap";
     repo = "bitmask-vpn";
     rev = version;
-    sha256 = "sha256-LMz+ZgQVFGujoLA8rlyZ3VnW/NSlPipD5KwCe+cFtnY=";
+    sha256 = "sha256-mhmKG6Exxh64oeeeLezJYWEw61iIHLasHjLomd2L8P4=";
   };
 
   # bitmask-root is only used on GNU/Linux
@@ -98,7 +99,6 @@ buildGoModule rec {
     pkg-config
     python3Packages.wrapPython
     qmake
-    qtquickcontrols
     qtquickcontrols2
     qttools
     which
@@ -109,6 +109,9 @@ buildGoModule rec {
     qtbase
     qmltermwidget
     qtdeclarative
+    qtgraphicaleffects
+    qtquickcontrols
+    qtquickcontrols2
   ] ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
   # FIXME: building on Darwin currently fails
   # due to missing debug symbols for Qt,
diff --git a/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix b/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix
index fa920247180a..45b3afbf895e 100644
--- a/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/calendar-cli/default.nix
@@ -1,23 +1,25 @@
 { lib
 , python3
 , fetchFromGitHub
+, nixosTests
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "calendar-cli";
-  version = "0.14.1";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "tobixen";
     repo = "calendar-cli";
     rev = "v${version}";
-    hash = "sha256-VVE4+qoUam2szbMsdWetq6hyhXoE1V3Pw5j/bYbfGVQ=";
+    hash = "sha256-w35ySLnfxXZR/a7BrPLYqXs2kqkuYhh5PcgNxJqjDtE=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
     icalendar
     caldav
     pytz
+    pyyaml
     tzlocal
     click
     six
@@ -26,6 +28,10 @@ python3.pkgs.buildPythonApplication rec {
   # tests require networking
   doCheck = false;
 
+  passthru.tests = {
+    inherit (nixosTests) radicale;
+  };
+
   meta = with lib; {
     description = "Simple command-line CalDav client";
     homepage = "https://github.com/tobixen/calendar-cli";
diff --git a/nixpkgs/pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch b/nixpkgs/pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch
new file mode 100644
index 000000000000..dde8a174ca2a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch
@@ -0,0 +1,132 @@
+new file mode 100644
+index 000000000..eee1d09d6
+--- /dev/null
++++ b/scripts/libppp-compat.h
+@@ -0,0 +1,127 @@
++/* Copyright (C) Eivind Naess, eivnaes@yahoo.com */
++/* SPDX-License-Identifier: GPL-2.0-or-later */
++
++#ifndef __LIBPPP_COMPAT_H__
++#define __LIBPPP_COMPAT_H__
++
++/* Define USE_EAPTLS compile with EAP TLS support against older pppd headers,
++ * pppd >= 2.5.0 use PPP_WITH_EAPTLS and is defined in pppdconf.h */
++#define USE_EAPTLS 1
++
++/* Define INET6 to compile with IPv6 support against older pppd headers,
++ * pppd >= 2.5.0 use PPP_WITH_IPV6CP and is defined in pppdconf.h */
++#define INET6 1
++
++/* PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define.
++ * this silly macro magic is to work around that. */
++#undef VERSION
++#include <pppd/pppd.h>
++
++#ifndef PPPD_VERSION
++#define PPPD_VERSION VERSION
++#endif
++
++#include <pppd/fsm.h>
++#include <pppd/ccp.h>
++#include <pppd/eui64.h>
++#include <pppd/ipcp.h>
++#include <pppd/ipv6cp.h>
++#include <pppd/eap.h>
++#include <pppd/upap.h>
++
++#ifdef HAVE_PPPD_CHAP_H
++#include <pppd/chap.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_NEW_H
++#include <pppd/chap-new.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_MS_H
++#include <pppd/chap_ms.h>
++#endif
++
++#ifndef PPP_PROTO_CHAP
++#define PPP_PROTO_CHAP 0xc223
++#endif 
++
++#ifndef PPP_PROTO_EAP
++#define PPP_PROTO_EAP  0xc227
++#endif
++
++
++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
++
++static inline bool
++debug_on (void)
++{
++	return debug;
++}
++
++static inline const char
++*ppp_ipparam (void)
++{
++	return ipparam;
++}
++
++static inline int
++ppp_ifunit (void)
++{
++	return ifunit;
++}
++
++static inline const char *
++ppp_ifname (void)
++{
++	return ifname;
++}
++
++static inline int
++ppp_get_mtu (int idx)
++{
++	return netif_get_mtu(idx);
++}
++
++typedef enum ppp_notify
++{
++    NF_PID_CHANGE,
++    NF_PHASE_CHANGE,
++    NF_EXIT,
++    NF_SIGNALED,
++    NF_IP_UP,
++    NF_IP_DOWN,
++    NF_IPV6_UP,
++    NF_IPV6_DOWN,
++    NF_AUTH_UP,
++    NF_LINK_DOWN,
++    NF_FORK,
++    NF_MAX_NOTIFY
++} ppp_notify_t;
++
++typedef void (ppp_notify_fn) (void *ctx, int arg);
++
++static inline void
++ppp_add_notify (ppp_notify_t type, ppp_notify_fn *func, void *ctx)
++{
++	struct notifier **list[NF_MAX_NOTIFY] = {
++		[NF_PID_CHANGE  ] = &pidchange,
++		[NF_PHASE_CHANGE] = &phasechange,
++		[NF_EXIT        ] = &exitnotify,
++		[NF_SIGNALED    ] = &sigreceived,
++		[NF_IP_UP       ] = &ip_up_notifier,
++		[NF_IP_DOWN     ] = &ip_down_notifier,
++		[NF_IPV6_UP     ] = &ipv6_up_notifier,
++		[NF_IPV6_DOWN   ] = &ipv6_down_notifier,
++		[NF_AUTH_UP     ] = &auth_up_notifier,
++		[NF_LINK_DOWN   ] = &link_down_notifier,
++		[NF_FORK        ] = &fork_notifier,
++	};
++
++	struct notifier **notify = list[type];
++	if (notify) {
++		add_notifier(notify, func, ctx);
++	}
++}
++
++#endif /* #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) */
++#endif /* #if__LIBPPP_COMPAT_H__ */
diff --git a/nixpkgs/pkgs/tools/networking/connman/connman/default.nix b/nixpkgs/pkgs/tools/networking/connman/connman/default.nix
index 0f4e1aaf5fb3..3143818bac3c 100644
--- a/nixpkgs/pkgs/tools/networking/connman/connman/default.nix
+++ b/nixpkgs/pkgs/tools/networking/connman/connman/default.nix
@@ -59,28 +59,21 @@ let inherit (lib) optionals; in
 
 stdenv.mkDerivation rec {
   pname = "connman";
-  version = "1.41";
+  version = "1.42";
   src = fetchurl {
     url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz";
-    sha256 = "sha256-eftA9P3VUwxFqo5ZL7Froj02dPOpjPELiaZXbxmN5Yk=";
+    hash = "sha256-o+a65G/Age8una48qk92Sd6JLD3mIsICg6wMqBQjwqo=";
   };
 
   patches = [
-    (fetchpatch {
-      name = "pppd-2.5.0-compat.patch";
-      url = "https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=a48864a2e5d2a725dfc6eef567108bc13b43857f";
-      sha256 = "sha256-jB1qL13mceQ1riv3K+oFWw4VC7ohv/CcH9sjxZPXcG4=";
-    })
-    (fetchpatch {
-      name = "CVE-2023-28488.patch";
-      url = "https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=99e2c16ea1cced34a5dc450d76287a1c3e762138";
-      sha256 = "sha256-377CmsECji2w/c4bZXR+TxzTB7Lce0yo7KdK1oWfCVY=";
-    })
-  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    # simply the middle section of upstream commit a48864a2e5d2a725dfc6eef567108bc13b43857f
+    # dist tarball is broken, hence this patch as a workaround
+    ./create-libppp-compat.h.patch
+  ] ++ optionals stdenv.hostPlatform.isMusl [
     # Fix Musl build by avoiding a Glibc-only API.
     (fetchpatch {
       url = "https://git.alpinelinux.org/aports/plain/community/connman/libresolv.patch?id=e393ea84386878cbde3cccadd36a30396e357d1e";
-      sha256 = "1kg2nml7pdxc82h5hgsa3npvzdxy4d2jpz2f93pa97if868i8d43";
+      hash = "sha256-7Q1bp8rD/gGVYUqnIXqjr9vypR8jlC926p3KYWl9kLw=";
     })
   ];
 
@@ -190,7 +183,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A daemon for managing internet connections";
     homepage = "https://git.kernel.org/pub/scm/network/connman/connman.git/";
-    maintainers = [ maintainers.matejc ];
+    maintainers = with maintainers; [ eclairevoyant ];
     platforms = platforms.linux;
     license = licenses.gpl2Only;
   };
diff --git a/nixpkgs/pkgs/tools/networking/dae/default.nix b/nixpkgs/pkgs/tools/networking/dae/default.nix
index 666340d1fbe2..cc95bb4dc826 100644
--- a/nixpkgs/pkgs/tools/networking/dae/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dae/default.nix
@@ -1,29 +1,25 @@
 { lib
 , clang
 , fetchFromGitHub
-, symlinkJoin
 , buildGoModule
-, makeWrapper
-, v2ray-geoip
-, v2ray-domain-list-community
 }:
 buildGoModule rec {
   pname = "dae";
-  version = "0.2.4";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "daeuniverse";
     repo = "dae";
     rev = "v${version}";
-    hash = "sha256-MVmx37q5nbgaUehPJ2C2UjVyx48/U/vA3NeBx6Zcmg8=";
+    hash = "sha256-WiJqhXYehuUCLEuVbsQkmTntuH1srtePtZgYBSTbxiw=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-oeMAekLWRJzmkmge4LmrVSFRzHZ/dStX+CvLtuYOsog=";
+  vendorHash = "sha256-fb4PEMhV8+5zaRJyl+nYi2BHcOUDUVAwxce2xaRt5JA=";
 
   proxyVendor = true;
 
-  nativeBuildInputs = [ clang makeWrapper ];
+  nativeBuildInputs = [ clang ];
 
   ldflags = [
     "-s"
@@ -33,7 +29,7 @@ buildGoModule rec {
   ];
 
   preBuild = ''
-    make CFLAGS="-D__REMOVE_BPF_PRINTK -fno-stack-protector" \
+    make CFLAGS="-D__REMOVE_BPF_PRINTK -fno-stack-protector -Wno-unused-command-line-argument" \
     NOSTRIP=y \
     ebpf
   '';
@@ -41,15 +37,8 @@ buildGoModule rec {
   # network required
   doCheck = false;
 
-  assetsDrv = symlinkJoin {
-    name = "dae-assets";
-    paths = [ v2ray-geoip v2ray-domain-list-community ];
-  };
-
   postInstall = ''
     install -Dm444 install/dae.service $out/lib/systemd/system/dae.service
-    wrapProgram $out/bin/dae \
-      --suffix DAE_LOCATION_ASSET : $assetsDrv/share/v2ray
     substituteInPlace $out/lib/systemd/system/dae.service \
       --replace /usr/bin/dae $out/bin/dae
   '';
diff --git a/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix b/nixpkgs/pkgs/tools/networking/dnscrypt-proxy/default.nix
index 24c6f7f2d31b..5227a28c1bdd 100644
--- a/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnscrypt-proxy/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
-  pname = "dnscrypt-proxy2";
+  pname = "dnscrypt-proxy";
   version = "2.1.5";
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix b/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
index 8ca5199838e1..b23753e20412 100644
--- a/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
     description = "An integrated DNS, DHCP and TFTP server for small networks";
     homepage = "https://www.thekelleys.org.uk/dnsmasq/doc.html";
     license = licenses.gpl2;
+    mainProgram = "dnsmasq";
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ eelco fpletz globin ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/gobgp/default.nix b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
index bd780a107092..63f6c672d3cd 100644
--- a/nixpkgs/pkgs/tools/networking/gobgp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "3.17.0";
+  version = "3.18.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-LpQMRn0mINhixbS8GpYAqr0pjwbnQdUOs2BH3rkQ3hU=";
+    sha256 = "sha256-OAePH8q8YQJGundd0VwtLEl3UkRyuZYAx5rcN4DNft4=";
   };
 
   vendorHash = "sha256-Z7vYpDQIKc4elVBLiGtxF3D9pec4QNvWFLpux/29t1Y=";
diff --git a/nixpkgs/pkgs/tools/networking/godns/default.nix b/nixpkgs/pkgs/tools/networking/godns/default.nix
index 4f58c1db016d..edbeaa64cfa3 100644
--- a/nixpkgs/pkgs/tools/networking/godns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/godns/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "godns";
-  version = "2.9.8";
+  version = "2.9.9";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "godns";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Nfw3pDqdCeaUKi+MzNIuRTwJHSoUbkJfWRJTAGvkBOQ=";
+    hash = "sha256-R5f2h8bodP/9MP5gqGWBEbC/rLPEV4gEDoc5sMgmoLs=";
   };
 
   vendorHash = "sha256-iAU62/0MjzxwuMvIobhIZEqDJUpRqwEabnazH7jBRTE=";
diff --git a/nixpkgs/pkgs/tools/networking/hysteria/default.nix b/nixpkgs/pkgs/tools/networking/hysteria/default.nix
index 4b63992e85c5..2a1c685d8376 100644
--- a/nixpkgs/pkgs/tools/networking/hysteria/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hysteria/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "hysteria";
-  version = "1.3.5";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "apernet";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-gNAK+WOowBlEzUYX25cQxywerNlMIx7cqG1wV9iLS5s=";
+    rev = "e11762a196e4fcdbde728ef160bc3c6cfeb5bc6e";
+    hash = "sha256-9Fo/qKcoZg8OYH4cok18rweA1PAFULOCJGTdUB8fbAU=";
   };
 
-  vendorHash = "sha256-Ixfwqrg+4/dzJLj3q7NbgpUXFj4qGKT0QVFQV/X4pqw=";
+  vendorHash = "sha256-7un8oi6pKYiJGw6mbG35crndLg35y7VkoAnQKMJduh4=";
   proxyVendor = true;
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   postInstall = ''
-    mv $out/bin/cmd $out/bin/hysteria
+    mv $out/bin/app $out/bin/hysteria
   '';
 
   # Network required
diff --git a/nixpkgs/pkgs/tools/networking/ivpn/default.nix b/nixpkgs/pkgs/tools/networking/ivpn/default.nix
index e8e33f3bc73a..f5df7e6c3845 100644
--- a/nixpkgs/pkgs/tools/networking/ivpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ivpn/default.nix
@@ -7,7 +7,7 @@
 , openvpn
 , obfs4
 , iproute2
-, dnscrypt-proxy2
+, dnscrypt-proxy
 , iptables
 , gawk
 , util-linux
@@ -74,7 +74,7 @@ builtins.mapAttrs (pname: attrs: buildGoModule (attrs // rec {
         --replace 'wgToolBinaryPath = path.Join(installDir, "wireguard-tools/wg")' \
         'wgToolBinaryPath = "${wireguard-tools}/bin/wg"' \
         --replace 'dnscryptproxyBinPath = path.Join(installDir, "dnscrypt-proxy/dnscrypt-proxy")' \
-        'dnscryptproxyBinPath = "${dnscrypt-proxy2}/bin/dnscrypt-proxy"'
+        'dnscryptproxyBinPath = "${dnscrypt-proxy}/bin/dnscrypt-proxy"'
     '';
 
     postFixup = ''
diff --git a/nixpkgs/pkgs/tools/networking/juicity/default.nix b/nixpkgs/pkgs/tools/networking/juicity/default.nix
index c28060d403ee..286192a2a31d 100644
--- a/nixpkgs/pkgs/tools/networking/juicity/default.nix
+++ b/nixpkgs/pkgs/tools/networking/juicity/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGo121Module rec {
   pname = "juicity";
-  version = "0.2.1";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "juicity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+P7MFNhWI4aqCtcJhAw3/RtfOkh+b3v2v69pIOznc/8=";
+    hash = "sha256-UKEmPb5Kn2GlTriXFOavQ5o8bU9VqMzQZx4iyG5W7a0=";
   };
 
-  vendorHash = "sha256-KrkEqvgHyAoNAX93SE9yDuik60CvPeP+w0Xehi7lgi0=";
+  vendorHash = "sha256-KLyGgkZqkM8jn+Sqa4IjauvfL9QXp9W/eUcViDTGDtw=";
 
   proxyVendor = true;
 
diff --git a/nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix b/nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix
index 62b884fe6475..4dc276c023fc 100644
--- a/nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix
@@ -1,17 +1,17 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
-buildGoModule {
+buildGoModule rec {
   pname = "mtr-exporter";
-  version = "0.1.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "mgumz";
     repo = "mtr-exporter";
-    rev = "3ce854a53a44780d2294f59284d21b06aeae6940";
-    sha256 = "sha256-PZCSuvtTBD7yoUE1fR9Z/u3aa1BZgbrcj18smnWRYf4=";
+    rev = version;
+    hash = "sha256-vVYdIfogXHixf1/7+uGKSxbqVmr9NeCUuNVYE07HoBw=";
   };
 
-  vendorSha256 = "0njn0ac7j3lv8ax6jc3bg3hh96a42jal212qk6zxrd46nb5l1rj8";
+  vendorHash = null;
 
   meta = with lib; {
     description = ''
diff --git a/nixpkgs/pkgs/tools/networking/mu/default.nix b/nixpkgs/pkgs/tools/networking/mu/default.nix
index 06083f8e0fae..a46fc526e695 100644
--- a/nixpkgs/pkgs/tools/networking/mu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mu/default.nix
@@ -10,12 +10,15 @@
 , gmime3
 , texinfo
 , xapian
+, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
   pname = "mu";
   version = "1.10.7";
 
+  outputs = [ "out" "mu4e" ];
+
   src = fetchFromGitHub {
     owner = "djcb";
     repo = "mu";
@@ -23,6 +26,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-x1TsyTOK5U6/Y3QInm+XQ7T32X49iwa+4UnaHdiyqCI=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "add-mu4e-pkg.el";
+      url = "https://github.com/djcb/mu/commit/00f7053d51105eea0c72151f1a8cf0b6d8478e4e.patch";
+      hash = "sha256-21c7djmYTcqyyygqByo9vu/GsH8WMYcq8NOAvJsS5AQ=";
+    })
+  ];
+
   postPatch = ''
     # Fix mu4e-builddir (set it to $out)
     substituteInPlace mu4e/mu4e-config.el.in \
@@ -31,17 +42,23 @@ stdenv.mkDerivation rec {
       --replace "/bin/rm" "${coreutils}/bin/rm"
   '';
 
-  # AOT native-comp, mostly copied from pkgs/build-support/emacs/generic.nix
-  postInstall = lib.optionalString (emacs.withNativeCompilation or false) ''
-    mkdir -p $out/share/emacs/native-lisp
-    export EMACSLOADPATH=$out/share/emacs/site-lisp/mu4e:
-    export EMACSNATIVELOADPATH=$out/share/emacs/native-lisp:
+  postInstall = ''
+    rm --verbose $mu4e/share/emacs/site-lisp/mu4e/*.elc
+  '';
 
-    find $out/share/emacs -type f -name '*.el' -print0 \
-      | xargs -0 -I {} -n 1 -P $NIX_BUILD_CORES sh -c \
-          "emacs --batch --eval '(setq large-file-warning-threshold nil)' -f batch-native-compile {} || true"
-  '' + ''
-    emacs --batch -l package --eval "(package-generate-autoloads \"mu4e\" \"$out/share/emacs/site-lisp/mu4e\")"
+  # move only the mu4e info manual
+  # this has to be after preFixup otherwise the info manual may be moved back by _multioutDocs()
+  # we manually move the mu4e info manual instead of setting
+  # outputInfo to mu4e because we do not want to move the mu-guile
+  # info manual (if it exists)
+  postFixup = ''
+    moveToOutput share/info/mu4e.info.gz $mu4e
+    install-info $mu4e/share/info/mu4e.info.gz $mu4e/share/info/dir
+    if [[ -a ''${!outputInfo}/share/info/mu-guile.info.gz ]]; then
+      install-info --delete $mu4e/share/info/mu4e.info.gz ''${!outputInfo}/share/info/dir
+    else
+      rm --verbose --recursive ''${!outputInfo}/share/info
+    fi
   '';
 
   buildInputs = [ emacs glib gmime3 texinfo xapian ];
@@ -49,6 +66,7 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dguile=disabled"
     "-Dreadline=disabled"
+    "-Dlispdir=${placeholder "mu4e"}/share/emacs/site-lisp"
   ];
 
   nativeBuildInputs = [ pkg-config meson ninja ];
diff --git a/nixpkgs/pkgs/tools/networking/ndn-tools/default.nix b/nixpkgs/pkgs/tools/networking/ndn-tools/default.nix
index 1cbc6d403a9d..01c05a5d1ac7 100644
--- a/nixpkgs/pkgs/tools/networking/ndn-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ndn-tools/default.nix
@@ -7,7 +7,7 @@
 , openssl
 , pkg-config
 , sphinx
-, wafHook
+, waf
 }:
 
 stdenv.mkDerivation rec {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     EOF
   '';
 
-  nativeBuildInputs = [ pkg-config sphinx wafHook ];
+  nativeBuildInputs = [ pkg-config sphinx waf.hook ];
   buildInputs = [ libpcap ndn-cxx openssl ];
 
   wafConfigureFlags = [
diff --git a/nixpkgs/pkgs/tools/networking/nfdump/default.nix b/nixpkgs/pkgs/tools/networking/nfdump/default.nix
index ab15b8dac61b..cc0c9d151983 100644
--- a/nixpkgs/pkgs/tools/networking/nfdump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nfdump/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nfdump";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "phaag";
     repo = "nfdump";
     rev =  "refs/tags/v${version}";
-    hash = "sha256-ns/RG0kyu2b0UjcJKArcAjY+dI397ljhrUO8euS5Snk=";
+    hash = "sha256-etmelBCZQKscuVJt5dBtwQVjiZNUFLTu11Gw0jmYcAg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/oha/default.nix b/nixpkgs/pkgs/tools/networking/oha/default.nix
index 24eceb83bf87..24e70cb073d1 100644
--- a/nixpkgs/pkgs/tools/networking/oha/default.nix
+++ b/nixpkgs/pkgs/tools/networking/oha/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oha";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "hatoo";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-LGO2DAT538+g1q9K4elnV7uwzyqPsqmGd/m8DYCwwEo=";
+    sha256 = "sha256-vna0wmdcugrYLubnjSgBBeDW6ZHH3VToIJG0z8sB/ss=";
   };
 
-  cargoSha256 = "sha256-uw9cAog+MauWd0Dd1TMt6HZW4/OBNvjjrgD4EfB43Rc=";
+  cargoSha256 = "sha256-d6gK/+dsJYb/9HSOHOsly3b35dh0FZ+aNnDVVzcXiV0=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/networking/passh/default.nix b/nixpkgs/pkgs/tools/networking/passh/default.nix
index 6534d3a1d517..060272c01a2e 100644
--- a/nixpkgs/pkgs/tools/networking/passh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/passh/default.nix
@@ -1,18 +1,19 @@
 { lib, fetchFromGitHub, stdenv }:
-stdenv.mkDerivation rec {
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "passh";
   version = "2020-03-18";
 
   src = fetchFromGitHub {
     owner = "clarkwang";
-    repo = pname;
+    repo = finalAttrs.pname;
     rev = "7112e667fc9e65f41c384f89ff6938d23e86826c";
     sha256 = "1g0rx94vqg36kp46f8v4x6jcmvdk85ds6bkrpayq772hbdm1b5z5";
   };
 
   installPhase = ''
     mkdir -p $out/bin
-    cp passh $out/bin
+    cp ${finalAttrs.pname} $out/bin
   '';
 
   meta = with lib; {
@@ -20,6 +21,7 @@ stdenv.mkDerivation rec {
     description = "An sshpass alternative for non-interactive ssh auth";
     license = licenses.gpl3;
     maintainers = [ maintainers.lovesegfault ];
+    mainProgram = finalAttrs.pname;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/networking/saldl/default.nix b/nixpkgs/pkgs/tools/networking/saldl/default.nix
index d02acb3100a7..7f37e61f5117 100644
--- a/nixpkgs/pkgs/tools/networking/saldl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/saldl/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchFromGitHub
 , pkg-config
-, wafHook
+, waf
 , python3
 , asciidoc
 , docbook_xml_dtd_45
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     pkg-config
-    wafHook
+    waf.hook
     python3
     asciidoc
     docbook_xml_dtd_45
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
index cef81e1cbb57..55fc6289fe09 100644
--- a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.16.0";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    hash = "sha256-kJqJpYjgN49qV/JLfUfmd/f9UjhiM1HOwSONELl2bOk=";
+    hash = "sha256-h/2zHxgp8sXcUOpmtneoAX0hNt19pObfyGW3wIzQNxc=";
   };
 
-  cargoHash = "sha256-HzvNcESNalZp7+k9WH+ohARq0na8Q4NUctqrCOu6gwI=";
+  cargoHash = "sha256-MZGd1SyTSZ6y9W9h+M3Y5cwX6hLCFiuPZb307PRtvQk=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/networking/sing-box/default.nix b/nixpkgs/pkgs/tools/networking/sing-box/default.nix
index db1541eac1cd..07f1d2796f4b 100644
--- a/nixpkgs/pkgs/tools/networking/sing-box/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sing-box/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "sing-box";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "SagerNet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-i6Cpb4NQNsyIrMOihWYdR37BkSouSCWi3nxMnbODnZU=";
+    hash = "sha256-AB+JNac9553Viw/XVqLFAQnEOwweCz3ltyUbB1gYMmM=";
   };
 
-  vendorHash = "sha256-6Mx8kdZL7EguQoh1upuu6wGZckczDoGmRjOFCpv756s=";
+  vendorHash = "sha256-Je5852dIKjlTAym00V2gNz89Hrl8QygEfkybZlLVktY=";
 
   tags = [
     "with_quic"
diff --git a/nixpkgs/pkgs/tools/networking/veilid/Cargo.lock b/nixpkgs/pkgs/tools/networking/veilid/Cargo.lock
index ebd2d157cf31..2585bef885c7 100644
--- a/nixpkgs/pkgs/tools/networking/veilid/Cargo.lock
+++ b/nixpkgs/pkgs/tools/networking/veilid/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -64,9 +64,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
+checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
 dependencies = [
  "memchr",
 ]
@@ -87,24 +87,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
-name = "android-logd-logger"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d7b9303373a56714732e3371513edd14d12987d04ff4f48527444e804bc3ae"
-dependencies = [
- "bytes 1.4.0",
- "env_logger 0.10.0",
- "lazy_static",
- "libc",
- "log",
- "parking_lot 0.12.1",
- "redox_syscall 0.3.5",
- "thiserror",
- "time 0.3.25",
- "winapi",
-]
-
-[[package]]
 name = "android-tzdata"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -117,12 +99,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e"
 
 [[package]]
+name = "android_log-sys"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937"
+
+[[package]]
 name = "android_logger"
 version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8619b80c242aa7bd638b5c7ddd952addeecb71f69c75e33f1d47b2804f8f883a"
 dependencies = [
- "android_log-sys",
+ "android_log-sys 0.2.0",
+ "env_logger 0.10.0",
+ "log",
+ "once_cell",
+]
+
+[[package]]
+name = "android_logger"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c494134f746c14dc653a35a4ea5aca24ac368529da5370ecf41fe0341c35772f"
+dependencies = [
+ "android_log-sys 0.3.1",
  "env_logger 0.10.0",
  "log",
  "once_cell",
@@ -158,24 +158,23 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.3.2"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
- "is-terminal",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea"
 
 [[package]]
 name = "anstyle-parse"
@@ -197,9 +196,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle-wincon"
-version = "1.0.2"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
+checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
 dependencies = [
  "anstyle",
  "windows-sys 0.48.0",
@@ -213,9 +212,9 @@ checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "arboard"
-version = "3.2.0"
+version = "3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854"
+checksum = "ac57f2b058a76363e357c056e4f74f1945bf734d37b8b3ef49066c4787dde0fc"
 dependencies = [
  "clipboard-win",
  "core-graphics",
@@ -224,7 +223,6 @@ dependencies = [
  "objc",
  "objc-foundation",
  "objc_id",
- "once_cell",
  "parking_lot 0.12.1",
  "thiserror",
  "winapi",
@@ -432,7 +430,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -463,7 +461,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -610,9 +608,9 @@ dependencies = [
 
 [[package]]
 name = "backtrace"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
@@ -637,9 +635,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.2"
+version = "0.21.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53"
 
 [[package]]
 name = "base64ct"
@@ -732,7 +730,7 @@ checksum = "e0b121a9fe0df916e362fb3271088d071159cdf11db0e4182d02152850756eff"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -800,14 +798,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "bugsalot"
-version = "0.2.2"
-source = "git+https://github.com/crioux/bugsalot.git#336a7053faadf990b9362edf5752ef34fa1f9615"
-dependencies = [
- "libc",
-]
-
-[[package]]
 name = "bumpalo"
 version = "3.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -854,9 +844,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.82"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "libc",
 ]
@@ -923,9 +913,9 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "95ed24df0632f708f5f6d8082675bef2596f7084dee3dd55f632290bf35bfe0f"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -933,7 +923,7 @@ dependencies = [
  "num-traits",
  "time 0.1.45",
  "wasm-bindgen",
- "winapi",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -977,75 +967,51 @@ dependencies = [
  "atty",
  "bitflags 1.3.2",
  "strsim 0.8.0",
- "textwrap 0.11.0",
+ "textwrap",
  "unicode-width",
  "vec_map",
 ]
 
 [[package]]
 name = "clap"
-version = "3.2.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
-dependencies = [
- "atty",
- "bitflags 1.3.2",
- "clap_lex 0.2.4",
- "indexmap 1.9.3",
- "strsim 0.10.0",
- "termcolor",
- "textwrap 0.16.0",
-]
-
-[[package]]
-name = "clap"
-version = "4.3.23"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3"
+checksum = "6a13b88d2c62ff462f88e4a121f17a82c1af05693a2f192b5c38d14de73c19f6"
 dependencies = [
  "clap_builder",
  "clap_derive",
- "once_cell",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.3.23"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98"
+checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
 dependencies = [
  "anstream",
  "anstyle",
- "clap_lex 0.5.0",
+ "clap_lex",
  "strsim 0.10.0",
+ "terminal_size",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.3.12"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-dependencies = [
- "os_str_bytes",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
 
 [[package]]
 name = "clipboard-win"
@@ -1190,32 +1156,16 @@ checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
 
 [[package]]
 name = "core-foundation"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
-dependencies = [
- "core-foundation-sys 0.6.2",
- "libc",
-]
-
-[[package]]
-name = "core-foundation"
 version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
 dependencies = [
- "core-foundation-sys 0.8.4",
+ "core-foundation-sys",
  "libc",
 ]
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
-
-[[package]]
-name = "core-foundation-sys"
 version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
@@ -1227,7 +1177,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation 0.9.3",
+ "core-foundation",
  "core-graphics-types",
  "foreign-types",
  "libc",
@@ -1240,7 +1190,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation 0.9.3",
+ "core-foundation",
  "libc",
 ]
 
@@ -1329,17 +1279,18 @@ dependencies = [
 
 [[package]]
 name = "ctrlc"
-version = "3.4.0"
+version = "3.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e"
+checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf"
 dependencies = [
- "nix 0.26.2",
+ "nix 0.27.1",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "cursive"
 version = "0.20.0"
+source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
 dependencies = [
  "ahash 0.8.3",
  "async-std",
@@ -1359,20 +1310,21 @@ dependencies = [
 [[package]]
 name = "cursive-flexi-logger-view"
 version = "0.5.0"
+source = "git+https://gitlab.com/veilid/cursive-flexi-logger-view.git#7c931536b8c57339011bbe2ee604e431c91c0aa8"
 dependencies = [
  "arraydeque",
- "cursive",
  "cursive_core",
  "flexi_logger",
  "lazy_static",
  "log",
- "time 0.3.25",
+ "time 0.3.28",
  "unicode-width",
 ]
 
 [[package]]
 name = "cursive-macros"
 version = "0.1.0"
+source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1381,7 +1333,8 @@ dependencies = [
 
 [[package]]
 name = "cursive_buffered_backend"
-version = "0.6.1-pre"
+version = "0.6.1"
+source = "git+https://gitlab.com/veilid/cursive-buffered-backend.git#a0f5242882b0d42a0b18baa68b2d8d6dcaa6dee4"
 dependencies = [
  "cursive_core",
  "enumset",
@@ -1394,6 +1347,7 @@ dependencies = [
 [[package]]
 name = "cursive_core"
 version = "0.3.7"
+source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
 dependencies = [
  "ahash 0.8.3",
  "ansi-parser",
@@ -1408,7 +1362,7 @@ dependencies = [
  "owning_ref",
  "serde_json",
  "serde_yaml",
- "time 0.3.25",
+ "time 0.3.28",
  "tokio",
  "toml 0.7.6",
  "unicode-segmentation",
@@ -1450,7 +1404,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1506,7 +1460,7 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1528,14 +1482,14 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core 0.20.3",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "dashmap"
-version = "5.5.0"
+version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if 1.0.0",
  "hashbrown 0.14.0",
@@ -1710,7 +1664,7 @@ checksum = "ccb14d927583dd5c2eac0f2cf264fc4762aefe1ae14c47a8a20fc1939d3a5fc0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1753,7 +1707,7 @@ dependencies = [
  "darling 0.20.3",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1787,9 +1741,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
+checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
 dependencies = [
  "errno-dragonfly",
  "libc",
@@ -1833,28 +1787,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "failure"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
-dependencies = [
- "backtrace",
- "failure_derive",
-]
-
-[[package]]
-name = "failure_derive"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
 name = "fallible-iterator"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1937,7 +1869,7 @@ dependencies = [
  "regex",
  "rustversion",
  "thiserror",
- "time 0.3.25",
+ "time 0.3.28",
 ]
 
 [[package]]
@@ -1990,12 +1922,12 @@ dependencies = [
 
 [[package]]
 name = "fs4"
-version = "0.5.4"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cef5c93884e5cef757f63446122c2f420713c3e03f85540d09485b9415983b4a"
+checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47"
 dependencies = [
- "libc",
- "winapi",
+ "rustix 0.38.11",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2069,7 +2001,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -2182,9 +2114,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.3"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
 
 [[package]]
 name = "glob"
@@ -2249,9 +2181,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.20"
+version = "0.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
 dependencies = [
  "bytes 1.4.0",
  "fnv",
@@ -2292,15 +2224,6 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
-dependencies = [
- "ahash 0.8.3",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
@@ -2311,17 +2234,9 @@ dependencies = [
 
 [[package]]
 name = "hashlink"
-version = "0.8.2"
-dependencies = [
- "hashbrown 0.13.2",
- "serde",
-]
-
-[[package]]
-name = "hashlink"
-version = "0.8.3"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "312f66718a2d7789ffef4f4b7b213138ed9f1eb3aa1d0d82fc99f88fb3ffd26f"
+checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
 dependencies = [
  "hashbrown 0.14.0",
 ]
@@ -2492,7 +2407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
 dependencies = [
  "android_system_properties",
- "core-foundation-sys 0.8.4",
+ "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
@@ -2546,17 +2461,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "igd"
-version = "0.12.1"
-dependencies = [
- "attohttpc",
- "log",
- "rand 0.8.5",
- "url",
- "xmltree",
-]
-
-[[package]]
 name = "image"
 version = "0.24.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2628,9 +2532,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
  "cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
 ]
 
 [[package]]
@@ -2663,17 +2564,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
 
 [[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi 0.3.2",
- "rustix 0.38.8",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "itertools"
 version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2690,20 +2580,6 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "jni"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c"
-dependencies = [
- "cesu8",
- "combine",
- "jni-sys",
- "log",
- "thiserror",
- "walkdir",
-]
-
-[[package]]
-name = "jni"
 version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
@@ -2757,28 +2633,18 @@ dependencies = [
 ]
 
 [[package]]
-name = "keychain-services"
-version = "0.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fd01702fbd22eee99431f553959f86d558cfc1dbf7f98b8df159be14e29a349"
-dependencies = [
- "core-foundation 0.6.4",
- "failure",
- "failure_derive",
-]
-
-[[package]]
 name = "keyring-manager"
 version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c023f807de9a2f26e86c6ec3b5a3e0ea5681301999dcda9e262069ab3efb63e"
 dependencies = [
  "byteorder",
  "cfg-if 1.0.0",
- "core-foundation 0.9.3",
- "core-foundation-sys 0.8.4",
- "directories 4.0.1",
+ "core-foundation",
+ "core-foundation-sys",
+ "directories 5.0.1",
  "fs4",
- "jni 0.20.0",
- "keychain-services",
+ "jni",
  "lazy_static",
  "log",
  "ndk",
@@ -2795,6 +2661,8 @@ dependencies = [
 [[package]]
 name = "keyvaluedb"
 version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8833bc9e937f44bac0e8d129b3ccda60dee6ca5fa2757d7e05a5e04503df02fb"
 dependencies = [
  "smallvec",
 ]
@@ -2802,6 +2670,8 @@ dependencies = [
 [[package]]
 name = "keyvaluedb-memorydb"
 version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14fdc324ae658318df46f62e64159c5662b94bcc99f9b6403d47d20ca7768b21"
 dependencies = [
  "keyvaluedb",
  "parking_lot 0.12.1",
@@ -2810,6 +2680,8 @@ dependencies = [
 [[package]]
 name = "keyvaluedb-sqlite"
 version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6bad95a1ad34c10ad4823fae1cb655be7fec022de642c95fbfafad360ba2f54"
 dependencies = [
  "hex",
  "keyvaluedb",
@@ -2821,6 +2693,8 @@ dependencies = [
 [[package]]
 name = "keyvaluedb-web"
 version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26cc6bb420f98cdd63a72c95eaa06947cdbd04e60a8d296b87f466196bacf068"
 dependencies = [
  "async-lock",
  "flume",
@@ -2829,7 +2703,7 @@ dependencies = [
  "keyvaluedb",
  "keyvaluedb-memorydb",
  "log",
- "parking_lot 0.11.2",
+ "parking_lot 0.12.1",
  "send_wrapper 0.6.0",
  "wasm-bindgen",
  "web-sys",
@@ -2985,9 +2859,9 @@ checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef"
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
 
 [[package]]
 name = "memoffset"
@@ -3098,7 +2972,7 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f"
 dependencies = [
- "android_logger",
+ "android_logger 0.11.3",
  "libc",
  "log",
  "ndk",
@@ -3233,16 +3107,26 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if 1.0.0",
  "libc",
  "memoffset 0.7.1",
  "pin-utils",
- "static_assertions",
+]
+
+[[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.4.0",
+ "cfg-if 1.0.0",
+ "libc",
 ]
 
 [[package]]
@@ -3310,9 +3194,9 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -3441,9 +3325,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.31.1"
+version = "0.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
 dependencies = [
  "memchr",
 ]
@@ -3571,12 +3455,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "os_str_bytes"
-version = "6.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
-
-[[package]]
 name = "oslog"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3713,19 +3591,20 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
 
 [[package]]
 name = "pest"
-version = "2.7.2"
+version = "2.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a"
+checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33"
 dependencies = [
+ "memchr",
  "thiserror",
  "ucd-trie",
 ]
 
 [[package]]
 name = "pest_derive"
-version = "2.7.2"
+version = "2.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853"
+checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a"
 dependencies = [
  "pest",
  "pest_generator",
@@ -3733,22 +3612,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.2"
+version = "2.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929"
+checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.2"
+version = "2.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48"
+checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f"
 dependencies = [
  "once_cell",
  "pest",
@@ -3757,12 +3636,12 @@ dependencies = [
 
 [[package]]
 name = "petgraph"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 1.9.3",
+ "indexmap 2.0.0",
 ]
 
 [[package]]
@@ -3812,14 +3691,14 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.12"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -3845,9 +3724,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "platforms"
-version = "3.0.2"
+version = "3.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
+checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8"
 
 [[package]]
 name = "png"
@@ -4128,14 +4007,14 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.3"
+version = "1.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.3.6",
- "regex-syntax 0.7.4",
+ "regex-automata 0.3.8",
+ "regex-syntax 0.7.5",
 ]
 
 [[package]]
@@ -4149,13 +4028,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.6"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.7.4",
+ "regex-syntax 0.7.5",
 ]
 
 [[package]]
@@ -4166,9 +4045,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
 name = "resolv-conf"
@@ -4232,7 +4111,7 @@ dependencies = [
  "netlink-packet-utils",
  "netlink-proto",
  "netlink-sys",
- "nix 0.26.2",
+ "nix 0.26.4",
  "thiserror",
  "tokio",
 ]
@@ -4246,7 +4125,7 @@ dependencies = [
  "bitflags 2.4.0",
  "fallible-iterator",
  "fallible-streaming-iterator",
- "hashlink 0.8.3",
+ "hashlink",
  "libsqlite3-sys",
  "smallvec",
 ]
@@ -4298,9 +4177,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.8"
+version = "0.38.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
+checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453"
 dependencies = [
  "bitflags 2.4.0",
  "errno",
@@ -4311,9 +4190,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.20.8"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
+checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"
 dependencies = [
  "log",
  "ring",
@@ -4327,7 +4206,7 @@ version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.3",
 ]
 
 [[package]]
@@ -4353,9 +4232,9 @@ dependencies = [
 
 [[package]]
 name = "schemars"
-version = "0.8.12"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f"
+checksum = "763f8cd0d4c71ed8389c90cb8100cba87e763bd01a8e614d4f0af97bcd50a161"
 dependencies = [
  "dyn-clone",
  "schemars_derive",
@@ -4365,9 +4244,9 @@ dependencies = [
 
 [[package]]
 name = "schemars_derive"
-version = "0.8.12"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c"
+checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4424,8 +4303,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation 0.9.3",
- "core-foundation-sys 0.8.4",
+ "core-foundation",
+ "core-foundation-sys",
  "libc",
  "security-framework-sys",
 ]
@@ -4436,7 +4315,7 @@ version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
- "core-foundation-sys 0.8.4",
+ "core-foundation-sys",
  "libc",
 ]
 
@@ -4463,9 +4342,9 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.183"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
 dependencies = [
  "serde_derive",
 ]
@@ -4491,13 +4370,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.183"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -4530,7 +4409,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -4602,7 +4481,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -4745,14 +4624,14 @@ checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369"
 dependencies = [
  "log",
  "termcolor",
- "time 0.3.25",
+ "time 0.3.28",
 ]
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
@@ -4879,9 +4758,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.29"
+version = "2.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4895,25 +4774,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
-name = "synstructure"
-version = "0.12.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "unicode-xid",
-]
-
-[[package]]
 name = "sysinfo"
 version = "0.28.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b4c2f3ca6693feb29a89724516f016488e9aafc7f37264f898593ee4b942f31b"
 dependencies = [
  "cfg-if 1.0.0",
- "core-foundation-sys 0.8.4",
+ "core-foundation-sys",
  "libc",
  "ntapi",
  "once_cell",
@@ -4929,7 +4796,7 @@ dependencies = [
  "cfg-if 1.0.0",
  "fastrand 2.0.0",
  "redox_syscall 0.3.5",
- "rustix 0.38.8",
+ "rustix 0.38.11",
  "windows-sys 0.48.0",
 ]
 
@@ -4943,38 +4810,42 @@ dependencies = [
 ]
 
 [[package]]
-name = "textwrap"
-version = "0.11.0"
+name = "terminal_size"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
- "unicode-width",
+ "rustix 0.37.23",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "textwrap"
-version = "0.16.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
 
 [[package]]
 name = "thiserror"
-version = "1.0.47"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
+checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.47"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
+checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -5011,9 +4882,9 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.25"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"
+checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
 dependencies = [
  "deranged",
  "itoa",
@@ -5032,9 +4903,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
 
 [[package]]
 name = "time-macros"
-version = "0.2.11"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
+checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
 dependencies = [
  "time-core",
 ]
@@ -5092,7 +4963,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -5204,7 +5075,7 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
 dependencies = [
  "async-trait",
  "axum",
- "base64 0.21.2",
+ "base64 0.21.3",
  "bytes 1.4.0",
  "futures-core",
  "futures-util",
@@ -5289,7 +5160,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e"
 dependencies = [
  "crossbeam-channel",
- "time 0.3.25",
+ "time 0.3.28",
  "tracing-subscriber",
 ]
 
@@ -5301,7 +5172,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -5560,12 +5431,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
 name = "unicode_categories"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5595,9 +5460,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
 dependencies = [
  "form_urlencoded",
  "idna 0.4.0",
@@ -5641,15 +5506,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 
 [[package]]
+name = "veilid-bugsalot"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9ee584edf237fac328b891dd06c21e7914a1db3762907edc366a13803451fe3"
+
+[[package]]
 name = "veilid-cli"
-version = "0.1.10"
+version = "0.2.1"
 dependencies = [
  "arboard",
  "async-std",
  "async-tungstenite 0.8.0",
- "bugsalot",
  "cfg-if 1.0.0",
- "clap 4.3.23",
+ "clap 4.4.2",
  "config",
  "crossbeam-channel",
  "cursive",
@@ -5673,12 +5543,13 @@ dependencies = [
  "thiserror",
  "tokio",
  "tokio-util",
+ "veilid-bugsalot",
  "veilid-tools",
 ]
 
 [[package]]
 name = "veilid-core"
-version = "0.1.10"
+version = "0.2.1"
 dependencies = [
  "argon2",
  "async-io",
@@ -5690,7 +5561,6 @@ dependencies = [
  "async_executors",
  "backtrace",
  "blake3",
- "bugsalot",
  "capnp",
  "capnpc",
  "cfg-if 1.0.0",
@@ -5710,11 +5580,9 @@ dependencies = [
  "futures-util",
  "generic-array 0.14.7",
  "getrandom 0.2.10",
- "hashlink 0.8.2",
  "hex",
  "ifstructs",
- "igd",
- "jni 0.21.1",
+ "jni",
  "jni-sys",
  "js-sys",
  "json",
@@ -5724,12 +5592,13 @@ dependencies = [
  "keyvaluedb-web",
  "lazy_static",
  "libc",
+ "lock_api",
  "lz4_flex",
  "ndk",
  "ndk-glue",
  "netlink-packet-route",
  "netlink-sys",
- "nix 0.26.2",
+ "nix 0.26.4",
  "num-traits",
  "once_cell",
  "owning_ref",
@@ -5762,6 +5631,9 @@ dependencies = [
  "tracing-subscriber",
  "tracing-wasm",
  "trust-dns-resolver",
+ "veilid-bugsalot",
+ "veilid-hashlink",
+ "veilid-igd",
  "veilid-tools",
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -5781,7 +5653,7 @@ dependencies = [
 
 [[package]]
 name = "veilid-flutter"
-version = "0.1.10"
+version = "0.2.1"
 dependencies = [
  "allo-isolate",
  "async-std",
@@ -5791,7 +5663,7 @@ dependencies = [
  "ffi-support",
  "futures-util",
  "hostname",
- "jni 0.21.1",
+ "jni",
  "lazy_static",
  "opentelemetry",
  "opentelemetry-otlp",
@@ -5809,16 +5681,38 @@ dependencies = [
 ]
 
 [[package]]
+name = "veilid-hashlink"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a3dabbda02cfe176635dcaa18a021416ff2eb4d0b47a913e3fdc7f62049d7b1"
+dependencies = [
+ "hashbrown 0.14.0",
+ "serde",
+]
+
+[[package]]
+name = "veilid-igd"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28428a3f826ed334f995522e554d7c8c1a5a0e0a0248fc795a31022ddf436c9d"
+dependencies = [
+ "attohttpc",
+ "log",
+ "rand 0.8.5",
+ "url",
+ "xmltree",
+]
+
+[[package]]
 name = "veilid-server"
-version = "0.1.10"
+version = "0.2.1"
 dependencies = [
  "ansi_term",
  "async-std",
  "async-tungstenite 0.23.0",
  "backtrace",
- "bugsalot",
  "cfg-if 1.0.0",
- "clap 3.2.25",
+ "clap 4.4.2",
  "color-eyre",
  "config",
  "console-subscriber",
@@ -5830,7 +5724,7 @@ dependencies = [
  "hostname",
  "json",
  "lazy_static",
- "nix 0.26.2",
+ "nix 0.27.1",
  "opentelemetry",
  "opentelemetry-otlp",
  "opentelemetry-semantic-conventions",
@@ -5853,6 +5747,7 @@ dependencies = [
  "tracing-opentelemetry",
  "tracing-subscriber",
  "url",
+ "veilid-bugsalot",
  "veilid-core",
  "wg",
  "windows-service",
@@ -5860,9 +5755,9 @@ dependencies = [
 
 [[package]]
 name = "veilid-tools"
-version = "0.1.10"
+version = "0.2.1"
 dependencies = [
- "android-logd-logger",
+ "android_logger 0.13.3",
  "async-lock",
  "async-std",
  "async_executors",
@@ -5874,7 +5769,8 @@ dependencies = [
  "flume",
  "fn_name",
  "futures-util",
- "jni 0.21.1",
+ "getrandom 0.2.10",
+ "jni",
  "jni-sys",
  "js-sys",
  "lazy_static",
@@ -5882,7 +5778,7 @@ dependencies = [
  "log",
  "ndk",
  "ndk-glue",
- "nix 0.26.2",
+ "nix 0.26.4",
  "once_cell",
  "oslog",
  "paranoid-android",
@@ -5911,7 +5807,7 @@ dependencies = [
 
 [[package]]
 name = "veilid-wasm"
-version = "0.1.10"
+version = "0.2.1"
 dependencies = [
  "cfg-if 1.0.0",
  "console_error_panic_hook",
@@ -6011,7 +5907,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
  "wasm-bindgen-shared",
 ]
 
@@ -6045,7 +5941,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -6109,9 +6005,9 @@ dependencies = [
 
 [[package]]
 name = "webpki"
-version = "0.22.0"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
+checksum = "f0e74f82d49d545ad128049b7e88f6576df2da6b02e9ce565c6f533be576957e"
 dependencies = [
  "ring",
  "untrusted",
@@ -6407,9 +6303,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "winnow"
-version = "0.5.14"
+version = "0.5.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97"
+checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
 dependencies = [
  "memchr",
 ]
@@ -6559,7 +6455,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.31",
 ]
 
 [[package]]
diff --git a/nixpkgs/pkgs/tools/networking/veilid/default.nix b/nixpkgs/pkgs/tools/networking/veilid/default.nix
index 7dada12bb85b..7a859c7283f4 100644
--- a/nixpkgs/pkgs/tools/networking/veilid/default.nix
+++ b/nixpkgs/pkgs/tools/networking/veilid/default.nix
@@ -10,20 +10,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "veilid";
-  version = "0.1.10";
+  version = "0.2.1";
 
   src = fetchFromGitLab {
     owner = "veilid";
     repo = pname;
     rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "sha256-43VCv0MqRIqKioM5Uj3sap9SvGnjgrZFxGPG98hk1v0=";
+    sha256 = "sha256-ebWY/1LTLwi1YFHliPDracdF0WLfY047jUtQ/1w9Rjw=";
   };
 
   cargoLock = {
      lockFile = ./Cargo.lock;
      outputHashes = {
-       "bugsalot-0.2.2" = "sha256-9zLzK22dOB7w+ejk1SfkA98z4rEzrB6mAVUpPFuDUnY=";
+       "cursive-0.20.0" = "sha256-jETyRRnzt7OMkTo4LRfeRr37oPJpn9R2soxkH7tzGy8=";
+       "cursive-flexi-logger-view-0.5.0" = "sha256-zFpfVFNZNNdNMdpJbaT4O2pMYccGEAGnvYzpRziMwfQ=";
+       "cursive_buffered_backend-0.6.1" = "sha256-+sTJnp570HupwaJxV2x+oKyLwNmqQ4HqOH2P1s9Hhw8=";
      };
    };
 
diff --git a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
index 08ef1fdae272..58f63b7a74ba 100644
--- a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.wireguard.com/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ericsagnes zx2c4 globin ma27 d-xo ];
+    mainProgram = "wg";
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix b/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
index 1a3d3ed7a355..44dc0bdd3a09 100644
--- a/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   version = "0.0.2";
 
   src = fetchFromGitHub {
-    owner = "zseri";
+    owner = "fogti";
     repo = "zs-apc-spdu-ctl";
     rev = "v${version}";
     sha256 = "TMV9ETWBVeXq6tZ2e0CrvHBXoyKfOLCQurjBdf/iw/M=";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "APC SPDU control utility";
     license = licenses.mit;
-    maintainers = with maintainers; [ zseri ];
+    maintainers = [ maintainers.fogti ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix b/nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix
index b6b4c985dfea..a33d25561e2e 100644
--- a/nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zs-wait4host/default.nix
@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation rec {
     description = "Wait for a host to come up/go down";
     homepage = "https://ytrizja.de/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ zseri ];
+    maintainers = [ maintainers.fogti ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/nix/fh/default.nix b/nixpkgs/pkgs/tools/nix/fh/default.nix
new file mode 100644
index 000000000000..e4368e58012b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/nix/fh/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, stdenv
+, darwin
+, gcc
+, libcxx
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fh";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "DeterminateSystems";
+    repo = "fh";
+    rev = "v${version}";
+    hash = "sha256-9dWd0syDzoyjnhVoOCazRVA4pAAXud+cxggVlxXzJFg=";
+  };
+
+  cargoHash = "sha256-GzS/grxiMlrpJ2OG5BSne4RmSMUXXjKiwYyW4Aj69gc=";
+
+  nativeBuildInputs = [
+    rustPlatform.bindgenHook
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+    gcc.cc.lib
+  ];
+
+  env = lib.optionalAttrs stdenv.isDarwin {
+    NIX_CFLAGS_COMPILE = "-I${lib.getDev libcxx}/include/c++/v1";
+  };
+
+  meta = with lib; {
+    description = "The official FlakeHub CLI";
+    homepage = "https://github.com/DeterminateSystems/fh";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ figsoda ];
+    mainProgram = "fh";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/nix/zon2nix/default.nix b/nixpkgs/pkgs/tools/nix/zon2nix/default.nix
index 967255d82aa5..78b7d601906c 100644
--- a/nixpkgs/pkgs/tools/nix/zon2nix/default.nix
+++ b/nixpkgs/pkgs/tools/nix/zon2nix/default.nix
@@ -1,36 +1,37 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, makeBinaryWrapper
 , zig_0_11
 , nix
 }:
 
 stdenv.mkDerivation rec {
   pname = "zon2nix";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
-    owner = "figsoda";
+    owner = "nix-community";
     repo = "zon2nix";
     rev = "v${version}";
-    hash = "sha256-VzlLoToZ+5beHt9mFsuCxlSZ8RrBodPO6YKtsugAaik=";
+    hash = "sha256-pS0D+wdebtpNaGpDee9aBwEKTDvNU56VXer9uzULXcM=";
   };
 
   nativeBuildInputs = [
-    makeBinaryWrapper
     zig_0_11.hook
   ];
 
-  postInstall = ''
-    wrapProgram $out/bin/zon2nix \
-      --prefix PATH : ${lib.makeBinPath [ nix ]}
-  '';
+  zigBuildFlags = [
+    "-Dnix=${lib.getExe nix}"
+  ];
+
+  zigCheckFlags = [
+    "-Dnix=${lib.getExe nix}"
+  ];
 
   meta = with lib; {
     description = "Convert the dependencies in `build.zig.zon` to a Nix expression";
-    homepage = "https://github.com/figsoda/zon2nix";
-    changelog = "https://github.com/figsoda/zon2nix/blob/${src.rev}/CHANGELOG.md";
+    homepage = "https://github.com/nix-community/zon2nix";
+    changelog = "https://github.com/nix-community/zon2nix/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = with maintainers; [ figsoda ];
     inherit (zig_0_11.meta) platforms;
diff --git a/nixpkgs/pkgs/tools/package-management/harmonia/default.nix b/nixpkgs/pkgs/tools/package-management/harmonia/default.nix
index 38638b0d52e2..4760514bebe4 100644
--- a/nixpkgs/pkgs/tools/package-management/harmonia/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/harmonia/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "harmonia";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "refs/tags/${pname}-v${version}";
-    hash = "sha256-ZnhidXSBSkgKgVF5ayJF+b8Sq8Ahl010GfvVgYHJcis=";
+    hash = "sha256-LzStxaqoez144LhqLjLP3yNgCj/HFqKSy+JcAW/FwM8=";
   };
 
-  cargoHash = "sha256-2kqXTvI1uwfcwblPLV2o2v77HzRJbqO5jKbMILvvxA8=";
+  cargoHash = "sha256-4DXIMsT69PhxqZX1j2aJ/XDLjvX76WbzEN0yxrnP9v0=";
 
   nativeBuildInputs = [
     pkg-config nix
diff --git a/nixpkgs/pkgs/tools/package-management/pdm/default.nix b/nixpkgs/pkgs/tools/package-management/pdm/default.nix
index 41b79f1e0173..15489ce50a99 100644
--- a/nixpkgs/pkgs/tools/package-management/pdm/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/pdm/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , fetchPypi
 , nix-update-script
+, runtimeShell
 }:
 let
   python = python3.override {
@@ -30,13 +31,13 @@ in
 with python.pkgs;
 buildPythonApplication rec {
   pname = "pdm";
-  version = "2.8.2";
+  version = "2.9.1";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-uUjQC/YgaCsKxMgNIoyzBaKwFQ5JfuaTHaMOPMMFv9w=";
+    hash = "sha256-/IAU3S/7cnF5qOwCQ8+sntOp3EU0i+HX+X0fKQrWD8s=";
   };
 
   nativeBuildInputs = [
@@ -83,6 +84,8 @@ buildPythonApplication rec {
 
   preCheck = ''
     export HOME=$TMPDIR
+    substituteInPlace tests/cli/test_run.py \
+      --replace "/bin/bash" "${runtimeShell}"
   '';
 
   disabledTests = [
diff --git a/nixpkgs/pkgs/tools/package-management/poetry/default.nix b/nixpkgs/pkgs/tools/package-management/poetry/default.nix
index d1dd48c0aad8..beb1a98bb6a1 100644
--- a/nixpkgs/pkgs/tools/package-management/poetry/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/poetry/default.nix
@@ -10,34 +10,13 @@ let
       poetry = self.callPackage ./unwrapped.nix { };
 
       # version overrides required by poetry and its plugins
-      cachecontrol = super.cachecontrol.overridePythonAttrs (old: rec {
-        version = "0.12.14";
-        format = "setuptools";
-        src = fetchFromGitHub {
-          owner = "ionrock";
-          repo = "cachecontrol";
-          rev = "v${version}";
-          hash = "sha256-BuBaKP7OAYoT+SPVhtE6l9U/KmN21OKTL6poV5a6+0c=";
-        };
-        nativeCheckInputs = old.nativeCheckInputs ++ [
-          self.lockfile
-        ];
-      });
-      keyring = super.keyring.overridePythonAttrs (old: rec {
-        version = "23.13.1";
-        src = fetchPypi {
-          inherit (old) pname;
-          inherit version;
-          hash = "sha256-ui4VqbNeIZCNCq9OCkesxS1q4zRE3w2itJ1BpG721ng=";
-        };
-      });
       poetry-core = super.poetry-core.overridePythonAttrs (old: rec {
-        version = "1.6.1";
+        version = "1.7.0";
         src = fetchFromGitHub {
           owner = "python-poetry";
           repo = "poetry-core";
           rev = version;
-          hash = "sha256-Gc22Y2T4uO39jiOqEUFeOfnVCbknuDjmzFPZgk2eY74=";
+          hash = "sha256-OfY2zc+5CgOrgbiPVnvMdT4h1S7Aek8S7iThl6azmsk=";
         };
       });
     } // (plugins self);
diff --git a/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix b/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
index 24433f3601eb..d040c32c4834 100644
--- a/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
+++ b/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "poetry-plugin-export";
-  version = "1.4.0";
+  version = "1.5.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-okI91Z9u5w7IHpPb9jL4Hb8+MkYJEF2qm0mqqCdyKbk=";
+    hash = "sha256-bX7Mqpe7SYQQVrPNVOl8Bwmeiq7owIiUhw0sp5+Gwck=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix b/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix
index ab00788facc3..b9ac5d4ada01 100644
--- a/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix
+++ b/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-up.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , buildPythonPackage
 , poetry-core
 , pytestCheckHook
@@ -10,24 +9,16 @@
 
 buildPythonPackage rec {
   pname = "poetry-plugin-up";
-  version = "0.3.0";
+  version = "0.4.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "MousaZeidBaker";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-QDfXgLkwh5rfyNZv0S7+cq6ubldXsbuCiTr6VYx8ZQs=";
+    hash = "sha256-ENw+6DdQkRLnAlIuIEdZzIsFP7ILqA9WatlVZYNJSxw=";
   };
 
-  patches = [
-    # https://github.com/MousaZeidBaker/poetry-plugin-up/pull/24
-    (fetchpatch {
-      url = "https://github.com/MousaZeidBaker/poetry-plugin-up/commit/31d78c547896efd27c2be0956a982638f32b07f8.patch";
-      hash = "sha256-CkZgX/ES+VkfxBofxWeparXNjsdP4qcQ1I32zaBBmWo=";
-    })
-  ];
-
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/nixpkgs/pkgs/tools/package-management/poetry/unwrapped.nix b/nixpkgs/pkgs/tools/package-management/poetry/unwrapped.nix
index 839b1882aa05..dd1305501916 100644
--- a/nixpkgs/pkgs/tools/package-management/poetry/unwrapped.nix
+++ b/nixpkgs/pkgs/tools/package-management/poetry/unwrapped.nix
@@ -4,17 +4,15 @@
 , pythonOlder
 , fetchFromGitHub
 , installShellFiles
+, pythonRelaxDepsHook
 , build
 , cachecontrol
 , cleo
 , crashtest
 , dulwich
-, filelock
-, html5lib
 , installer
 , jsonschema
 , keyring
-, lockfile
 , packaging
 , pexpect
 , pkginfo
@@ -27,7 +25,6 @@
 , shellingham
 , tomlkit
 , trove-classifiers
-, urllib3
 , virtualenv
 , xattr
 , tomli
@@ -44,20 +41,26 @@
 
 buildPythonPackage rec {
   pname = "poetry";
-  version = "1.5.1";
+  version = "1.6.1";
   format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-1zqfGzSI5RDACSNcz0tLA4VKMFwE5uD/YqOkgpzg2nQ=";
+    hash = "sha256-/OvYT4Vix1t5Yx/Tx0z3E9L9qJ4OdI4maQqUVl8H524=";
   };
 
   nativeBuildInputs = [
     installShellFiles
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    # only pinned to avoid dependency on Rust
+    "jsonschema"
   ];
 
   propagatedBuildInputs = [
@@ -66,12 +69,9 @@ buildPythonPackage rec {
     cleo
     crashtest
     dulwich
-    filelock
-    html5lib
     installer
     jsonschema
     keyring
-    lockfile
     packaging
     pexpect
     pkginfo
@@ -84,7 +84,6 @@ buildPythonPackage rec {
     shellingham
     tomlkit
     trove-classifiers
-    urllib3
     virtualenv
   ] ++ lib.optionals (stdenv.isDarwin) [
     xattr
@@ -130,6 +129,7 @@ buildPythonPackage rec {
     "load"
     "vcs"
     "prereleases_if_they_are_compatible"
+    "test_builder_setup_generation_runs_with_pip_editable"
     "test_executor"
     # requires git history to work correctly
     "default_with_excluded_data"
diff --git a/nixpkgs/pkgs/tools/security/cloudfox/default.nix b/nixpkgs/pkgs/tools/security/cloudfox/default.nix
index 8a3d8b10d159..df34f3e18bf7 100644
--- a/nixpkgs/pkgs/tools/security/cloudfox/default.nix
+++ b/nixpkgs/pkgs/tools/security/cloudfox/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "cloudfox";
-  version = "1.12.0";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "BishopFox";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-pUOraiYJsbQqOSYRMRzxcAcsBIz/2VBRnsKo1eHVSkQ=";
+    hash = "sha256-r9YIJ+PRUA1stKTL39+/T+m1WMkocpjfzG8Y9knnFU4=";
   };
 
   vendorHash = "sha256-nSisRurpareGI4EHENayMhsYOKL1hE1wVw2Ueiqii4U=";
diff --git a/nixpkgs/pkgs/tools/security/crowdsec/default.nix b/nixpkgs/pkgs/tools/security/crowdsec/default.nix
index 5ef11a7b60eb..10a8291a54d4 100644
--- a/nixpkgs/pkgs/tools/security/crowdsec/default.nix
+++ b/nixpkgs/pkgs/tools/security/crowdsec/default.nix
@@ -23,8 +23,12 @@ buildGoModule rec {
   ldflags = [
     "-s"
     "-w"
-    "-X github.com/crowdsecurity/crowdsec/pkg/cwversion.Version=v${version}"
-    "-X github.com/crowdsecurity/crowdsec/pkg/cwversion.BuildDate=1970-01-01_00:00:00"
+    "-X github.com/crowdsecurity/go-cs-lib/pkg/version.Version=v${version}"
+    "-X github.com/crowdsecurity/go-cs-lib/pkg/version.BuildDate=1970-01-01_00:00:00"
+    "-X github.com/crowdsecurity/go-cs-lib/pkg/version.Tag=${src.rev}"
+    "-X github.com/crowdsecurity/crowdsec/pkg/cwversion.Codename=alphaga"
+    "-X github.com/crowdsecurity/crowdsec/pkg/csconfig.defaultConfigDir=/etc/crowdsec"
+    "-X github.com/crowdsecurity/crowdsec/pkg/csconfig.defaultDataDir=/var/lib/crowdsec/data"
   ];
 
   postBuild = "mv $GOPATH/bin/{crowdsec-cli,cscli}";
diff --git a/nixpkgs/pkgs/tools/security/exploitdb/default.nix b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
index 7b60deeb699c..41055fdba551 100644
--- a/nixpkgs/pkgs/tools/security/exploitdb/default.nix
+++ b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2023-08-30";
+  version = "2023-09-08";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-EWxZvr0VbSN8aysDQmqA/d/V5bxy4z1wx2PtC5RVAuI=";
+    hash = "sha256-5KH6B205WBJLyIAifWB7uA/LPy6dJC/xaryD6XsZCyc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/hashcat/default.nix b/nixpkgs/pkgs/tools/security/hashcat/default.nix
index 0fec2a9ec992..5a2304b5fd0b 100644
--- a/nixpkgs/pkgs/tools/security/hashcat/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashcat/default.nix
@@ -43,6 +43,8 @@ stdenv.mkDerivation rec {
     "VERSION_TAG=${version}"
     "USE_SYSTEM_OPENCL=1"
     "USE_SYSTEM_XXHASH=1"
+  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform == stdenv.buildPlatform) [
+    "IS_APPLE_SILICON='${if stdenv.hostPlatform.isAarch64 then "1" else "0"}'"
   ];
 
   enableParallelBuilding = true;
@@ -76,6 +78,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://hashcat.net/hashcat/";
     license     = licenses.mit;
     platforms   = platforms.unix;
-    maintainers = with maintainers; [ kierdavis zimbatm ];
+    maintainers = with maintainers; [ felixalbrigtsen kierdavis zimbatm ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/kpcli/default.nix b/nixpkgs/pkgs/tools/security/kpcli/default.nix
index 7c1c840363d5..3ca03ee3ca10 100644
--- a/nixpkgs/pkgs/tools/security/kpcli/default.nix
+++ b/nixpkgs/pkgs/tools/security/kpcli/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, perl, perlPackages }:
 
 stdenv.mkDerivation rec {
-  version = "3.8.1";
+  version = "4.0";
   pname = "kpcli";
 
   src = fetchurl {
     url = "mirror://sourceforge/kpcli/${pname}-${version}.pl";
-    sha256 = "sha256-bIT4Y5JFeZv5stXOKXxBtdTsB4n39fqeh2dVaBbqRyw=";
+    sha256 = "sha256-UYnX2tad3Jg00kdX5WHStI6u2pyts+SZlgj/jv4o/TU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/kubescape/default.nix b/nixpkgs/pkgs/tools/security/kubescape/default.nix
index 9054fdbfdd59..b5661ccbcd3c 100644
--- a/nixpkgs/pkgs/tools/security/kubescape/default.nix
+++ b/nixpkgs/pkgs/tools/security/kubescape/default.nix
@@ -2,21 +2,23 @@
 , buildGoModule
 , fetchFromGitHub
 , installShellFiles
+, kubescape
+, testers
 }:
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "kubescape";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-rZlM+SerEE2RNxnituPK5JB7Al0/KtFyGHg3UeCfDNk=";
+    hash = "sha256-FKWR3pxFtJBEa14Mn3RKsLvrliHaj6TuF4F2JLtw2qA=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-gRLCkjW8yY5FT2J7tNZQwEbhrdUMrj4Xwybe/coX0UY=";
+  vendorHash = "sha256-zcv8oYm6srwkwT3pUECtTewyqVVpCIcs3i0VRTRft68=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -61,14 +63,11 @@ buildGoModule rec {
       --zsh <($out/bin/kubescape completion zsh)
   '';
 
-  doInstallCheck = true;
-
-  installCheckPhase = ''
-    runHook preInstallCheck
-    $out/bin/kubescape --help
-    $out/bin/kubescape version | grep "v${version}"
-    runHook postInstallCheck
-  '';
+  passthru.tests.version = testers.testVersion {
+    package = kubescape;
+    command = "kubescape version";
+    version = "v${version}";
+  };
 
   meta = with lib; {
     description = "Tool for testing if Kubernetes is deployed securely";
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
index f62588de9e48..7705961e5b1a 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.3.31"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.3.32"
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
index f608b1b2fd48..c3be1dbeb83d 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: a97e8a0e2a3b15f3b3710f04def1178139ae0fa2
-  ref: refs/tags/6.3.31
+  revision: d644909dcaa8814f9d8ef53d18bf7fa63d197897
+  ref: refs/tags/6.3.32
   specs:
-    metasploit-framework (6.3.31)
+    metasploit-framework (6.3.32)
       actionpack (~> 7.0)
       activerecord (~> 7.0)
       activesupport (~> 7.0)
@@ -462,4 +462,4 @@ DEPENDENCIES
   metasploit-framework!
 
 BUNDLED WITH
-   2.4.17
+   2.4.19
diff --git a/nixpkgs/pkgs/tools/security/metasploit/default.nix b/nixpkgs/pkgs/tools/security/metasploit/default.nix
index 9cfc107eceef..402a977db21e 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/default.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.3.31";
+  version = "6.3.32";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-X0QJ4edzqLh01qAhmpcdiuk8xdAkccoJAZmxeTh3q48=";
+    sha256 = "sha256-3aiHBaYxrpe/KSF2LiafcANIgWvZEp1kgRXry3/uWvY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
index d713e28fc444..553a62f79628 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
@@ -654,12 +654,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "a97e8a0e2a3b15f3b3710f04def1178139ae0fa2";
-      sha256 = "13xbfww7kccr044wlw94s32krsca3nbrl8d0srsbia3kwzhhji2z";
+      rev = "d644909dcaa8814f9d8ef53d18bf7fa63d197897";
+      sha256 = "1xjsxrzwpsqmh5j9s4nrdf0lh0vhkwk2wxi156zrgbiilq2qga6x";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.3.31";
+    version = "6.3.32";
   };
   metasploit-model = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/security/nuclei/default.nix b/nixpkgs/pkgs/tools/security/nuclei/default.nix
index 344ba03a361e..33df3a04656a 100644
--- a/nixpkgs/pkgs/tools/security/nuclei/default.nix
+++ b/nixpkgs/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.9.13";
+  version = "2.9.14";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-mjb7U7F4OZ9nRjtLjZk1s7T+n/VqV/RPMbnGodxRVUE=";
+    hash = "sha256-73MOUzIWA2sO6Y+Xku7f7DlUtsoa0GpfaqJzpEHCV/M=";
   };
 
-  vendorHash = "sha256-/1F2aY3cRLRz06s1KXQ6bt7UgaZgiXEjS/5stGi7xIw=";
+  vendorHash = "sha256-H4QBt00WSvCJi7P6gh4JBDCLSZwt/H5LWcahusdQoRE=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/security/omapd/default.nix b/nixpkgs/pkgs/tools/security/omapd/default.nix
deleted file mode 100644
index c2d911372eb0..000000000000
--- a/nixpkgs/pkgs/tools/security/omapd/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchurl, qt4, gdb, zlib }:
-
-stdenv.mkDerivation rec {
-  pname = "omapd";
-  version = "0.9.2";
-
-  src = fetchurl {
-    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/omapd/${pname}-${version}.tgz";
-    sha256 = "0d7lgv957jhbsav60j50jhdy3rpcqgql74qsniwnnpm3yqj9p0xc";
-  };
-
-  patches = [ ./zlib.patch ];
-
-  buildInputs = [ qt4 zlib gdb ];
-
-  buildPhase = ''
-    (cd plugins/RAMHashTables; qmake; make)
-    qmake
-    make
-  '';
-
-  installPhase = ''
-    install -vD omapd $out/bin/omapd
-    install -vD omapd.conf $out/etc/omapd.conf
-    install -vD plugins/libRAMHashTables.so $out/usr/lib/omapd/plugins/libRAMHashTables.so
-    ln -s $out/usr/lib/omapd/plugins $out/bin/plugins
-  '';
-
-  meta = with lib; {
-    homepage = "https://code.google.com/archive/p/omapd/";
-    description = "IF-MAP Server that implements the IF-MAP v1.1 and v2.0 specifications published by the Trusted Computing Group (TCG)";
-    license = licenses.gpl3;
-    maintainers = [ ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/security/omapd/zlib.patch b/nixpkgs/pkgs/tools/security/omapd/zlib.patch
deleted file mode 100644
index dc0644f2a016..000000000000
--- a/nixpkgs/pkgs/tools/security/omapd/zlib.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff -uNr omapd-0.9.2-old/omapd.pro omapd-0.9.2/omapd.pro
---- omapd-0.9.2-old/omapd.pro	2015-08-03 09:46:47.463420480 +0200
-+++ omapd-0.9.2/omapd.pro	2015-08-03 09:48:32.238657105 +0200
-@@ -37,4 +37,4 @@
-     clientconfiguration.h \
-     managementserver.h \
-     json.h
--INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/zlib
-+LIBS += -lz
diff --git a/nixpkgs/pkgs/tools/security/sirikali/default.nix b/nixpkgs/pkgs/tools/security/sirikali/default.nix
new file mode 100644
index 000000000000..a3e67a2b76a5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/sirikali/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, stdenv
+, qtbase
+, libpwquality
+, hicolor-icon-theme
+, fetchFromGitHub
+, wrapQtAppsHook
+, cmake
+, pkg-config
+, libgcrypt
+, cryfs
+, encfs
+, fscrypt-experimental
+, gocryptfs
+, securefs
+, sshfs
+, libsecret
+, kwallet
+, withKWallet ? true
+, withLibsecret ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sirikali";
+  version = "1.5.1";
+
+  src = fetchFromGitHub {
+    owner = "mhogomchungu";
+    repo = "sirikali";
+    rev = version;
+    hash = "sha256-1bY8cCMMK4Jie4+9c7eUEBrPEYDaOqFHZ5252TPSotA=";
+  };
+
+  buildInputs = [
+    qtbase
+    libpwquality
+    hicolor-icon-theme
+    libgcrypt
+    cryfs
+    encfs
+    fscrypt-experimental
+    gocryptfs
+    securefs
+    sshfs
+  ]
+  ++ lib.optionals withKWallet [ libsecret ]
+  ++ lib.optionals withLibsecret [ kwallet ]
+  ;
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+    cmake
+    pkg-config
+  ];
+
+  qtWrapperArgs = [
+    ''--prefix PATH : ${lib.makeBinPath [
+      cryfs
+      encfs
+      fscrypt-experimental
+      gocryptfs
+      securefs
+      sshfs
+    ]}''
+  ];
+
+  postPatch = ''
+    substituteInPlace "src/engines.cpp" --replace "/sbin/" "/run/wrappers/bin/"
+  '';
+
+  doCheck = true;
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=RELEASE"
+    "-DINTERNAL_LXQT_WALLET=false"
+    "-DNOKDESUPPORT=${if withKWallet then "false" else "true"}"
+    "-DNOSECRETSUPPORT=${if withLibsecret then "false" else "true"}"
+    "-DQT5=true"
+  ];
+
+  meta = with lib; {
+    description = "A Qt/C++ GUI front end to sshfs, ecryptfs-simple, cryfs, gocryptfs, securefs, fscrypt and encfs";
+    homepage = "https://github.com/mhogomchungu/sirikali";
+    changelog = "https://github.com/mhogomchungu/sirikali/blob/${src.rev}/changelog";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ linuxissuper ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/slsa-verifier/default.nix b/nixpkgs/pkgs/tools/security/slsa-verifier/default.nix
index 8fa46df32fac..6e4d70787d84 100644
--- a/nixpkgs/pkgs/tools/security/slsa-verifier/default.nix
+++ b/nixpkgs/pkgs/tools/security/slsa-verifier/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "slsa-verifier";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "slsa-framework";
     repo = "slsa-verifier";
     rev = "v${version}";
-    hash = "sha256-qhBMWYyd2S8ZKAqwMkXWTP84kLt3f4471JOPrfScFek=";
+    hash = "sha256-2/4ExhMWXIKpkYQIodEsajA7q9zb4tOT9QUGunAutl0=";
   };
 
-  vendorHash = "sha256-9EY7zhvDgZsNQA7iNu1zueJxpTA6cLwjpQYjUdUy6do=";
+  vendorHash = "sha256-TwPbxoNu9PYAFEbUT5htyUY1RbkGow712ARJW6y496E=";
 
   CGO_ENABLED = 0;
   GO111MODULE = "on";
diff --git a/nixpkgs/pkgs/tools/security/sshchecker/default.nix b/nixpkgs/pkgs/tools/security/sshchecker/default.nix
index 5dfc37dcf6cf..6ed76d0dd4e2 100644
--- a/nixpkgs/pkgs/tools/security/sshchecker/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshchecker/default.nix
@@ -11,10 +11,10 @@ buildGoModule rec {
     owner = "lazytools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "139b850h1w0392k8jcgj22jscsl2l60b5kk0n8378b6g57ikmis0";
+    hash = "sha256-QMc64ynPLHQGsmDOsoChgmqmpRDyMYmmSAPwAEFBK40=";
   };
 
-  vendorSha256 = "19hdaf7d6lvwrl5rc1srrjsjx57g25cy4lvw0vvs6j52impdk6ak";
+  vendorHash = "sha256-U5nZbo2iSKP3BnxT4lkR75QutcxZB5YLzXxT045TDaY=";
 
   meta = with lib; {
     description = "Dedicated SSH brute-forcing tool";
diff --git a/nixpkgs/pkgs/tools/security/subjs/default.nix b/nixpkgs/pkgs/tools/security/subjs/default.nix
index 65d3f18be794..60ed306145a7 100644
--- a/nixpkgs/pkgs/tools/security/subjs/default.nix
+++ b/nixpkgs/pkgs/tools/security/subjs/default.nix
@@ -11,10 +11,10 @@ buildGoModule rec {
     owner = "lc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01cip5rf35dnh3l325p03y6axyqdpf48ry4zcwiyd7hlfsglbk3j";
+    hash = "sha256-csxFn3YUnuYjZ5/4jIi7DfuujB/gFjHogLaV4XK5kQU=";
   };
 
-  vendorSha256 = "1y01k8pvv7y9zb15wbk068cvkx0g83484jak2dvcvghqcf5j1fr1";
+  vendorHash = "sha256-Ibsgi2MYvs12E1NJgshAD/S5GTJgLl7C+smfvS+aAfg=";
 
   ldflags = [ "-s" "-w" "-X main.AppVersion=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/security/sudo-rs/default.nix b/nixpkgs/pkgs/tools/security/sudo-rs/default.nix
new file mode 100644
index 000000000000..6730cdf1869f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/sudo-rs/default.nix
@@ -0,0 +1,83 @@
+{ lib
+, bash
+, fetchFromGitHub
+, fetchpatch
+, installShellFiles
+, pam
+, pandoc
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sudo-rs";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "memorysafety";
+    repo = "sudo-rs";
+    rev = "v${version}";
+    hash = "sha256-Kk5D3387hdl6eGWTSV003r+XajuDh6YgHuqYlj9NnaQ=";
+  };
+  cargoHash = "sha256-yeMK37tOgJcs9pW3IclpR5WMXx0gMDJ2wcmInxJYbQ8=";
+
+  nativeBuildInputs = [ installShellFiles pandoc ];
+
+  buildInputs = [ pam ];
+
+  patches = [
+    (fetchpatch {
+      # @R-VdP's patch to work with NixOS' suid wrappers
+      name = "Skip self_check when executed as root.patch";
+      url = "https://github.com/R-VdP/sudo-rs/commit/a44541dcb36b94f938daaed66b3ff06cfc1c2b40.patch";
+      hash = "sha256-PdmOqp/NDjFy8ve4jEOi58e0N9xUnaVKioQwdC5Jf1U=";
+    })
+  ];
+
+  # Don't attempt to generate the docs in a (pan)Docker container
+  postPatch = ''
+    substituteInPlace util/generate-docs.sh \
+      --replace "/usr/bin/env bash" ${lib.getExe bash} \
+      --replace util/pandoc.sh pandoc
+  '';
+
+  postInstall = ''
+    ./util/generate-docs.sh
+    installManPage target/docs/man/*
+  '';
+
+  checkFlags = map (t: "--skip=${t}") [
+    # Those tests make path assumptions
+    "common::command::test::test_build_command_and_args"
+    "common::context::tests::test_build_context"
+    "common::resolve::test::canonicalization"
+    "common::resolve::tests::test_resolve_path"
+    "system::tests::kill_test"
+
+    # Assumes $SHELL is an actual shell
+    "su::context::tests::su_to_root"
+
+    # Attempts to access /etc files from the build sandbox
+    "system::audit::test::secure_open_is_predictable"
+
+    # Assume there is a `daemon` user and group
+    "system::interface::test::test_unix_group"
+    "system::interface::test::test_unix_user"
+    "system::tests::test_get_user_and_group_by_id"
+
+    # This expects some PATH_TZINFO environment var
+    "env::environment::tests::test_tzinfo"
+
+    # Unsure why those are failing
+    "env::tests::test_environment_variable_filtering"
+    "su::context::tests::invalid_shell"
+  ];
+
+  meta = with lib; {
+    description = "A memory safe implementation of sudo and su.";
+    homepage = "https://github.com/memorysafety/sudo-rs";
+    changelog = "${meta.homepage}/blob/v${version}/CHANGELOG.md";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ nicoo ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/trufflehog/default.nix b/nixpkgs/pkgs/tools/security/trufflehog/default.nix
index d5eea9398073..8a4b1cf54d46 100644
--- a/nixpkgs/pkgs/tools/security/trufflehog/default.nix
+++ b/nixpkgs/pkgs/tools/security/trufflehog/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.54.1";
+  version = "3.54.3";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wHgteAxFCnGY31Yda1qIxy4TLM51Lk+yy2BIHgfIzik=";
+    hash = "sha256-nd0Qog4bwtAlXtDIXdE/mTSEBbBBUWT4FJkyl32PCVI=";
   };
 
   vendorHash = "sha256-zYvKhhwN5TtJQxkkcY5U9LtTdMb97ucfksxpTMKH/Zc=";
diff --git a/nixpkgs/pkgs/tools/security/vals/default.nix b/nixpkgs/pkgs/tools/security/vals/default.nix
index c835de3444cb..cdde5375dc5b 100644
--- a/nixpkgs/pkgs/tools/security/vals/default.nix
+++ b/nixpkgs/pkgs/tools/security/vals/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vals";
-  version = "0.27.0";
+  version = "0.27.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "variantdev";
     repo = pname;
-    sha256 = "sha256-EYp+c3MbkdMIyo/2kHsKg9hjByqm6VdNxLcsl4dJrcg=";
+    sha256 = "sha256-2Wjp1Q7c4CrhCnPTQUyrzVPL89XYOp2bnySQril/RQc=";
   };
 
-  vendorHash = "sha256-iNwQUwcF6iKYdqvy4t5xgOvNdhR+Vx+J5UHZzkNOed4=";
+  vendorHash = "sha256-J0fhxfGDJKZfRWPPockIAUENCPffQlQmwjkgls+ocoE=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix b/nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix
index 384571bde265..4979f9141438 100644
--- a/nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix
@@ -8,16 +8,16 @@
 }:
 buildGoModule rec {
   pname = "vault-ssh-plus";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "isometry";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-D38G947/1//AMmWghgw0TDzNcd4LUcCuyLBhRP7YFJY=";
+    hash = "sha256-J2fb1sRjBxLegFVwyEIRVolaLnXvziPrlidd/n/+tU8=";
   };
 
-  vendorHash = "sha256-tNdr2xyxri7mj1bP6oVx1DGzwrzg84TpPCY0kHNkXLw=";
+  vendorHash = "sha256-Casouw2fNg/hywx7A37VCVzQ8Gfnvf5qm6upOTUQZvA=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/tools/security/vaultwarden/Cargo.lock b/nixpkgs/pkgs/tools/security/vaultwarden/Cargo.lock
index cf215aa07ad3..cf74b7f88648 100644
--- a/nixpkgs/pkgs/tools/security/vaultwarden/Cargo.lock
+++ b/nixpkgs/pkgs/tools/security/vaultwarden/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c"
 dependencies = [
  "memchr",
 ]
@@ -58,20 +58,21 @@ dependencies = [
 
 [[package]]
 name = "argon2"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95c2fcf79ad1932ac6269a738109997a83c227c09b75842ae564dc8ede6a861c"
+checksum = "b2e554a8638bdc1e4eae9984845306cc95f8a9208ba8d49c3859fd958b46774d"
 dependencies = [
  "base64ct",
  "blake2",
+ "cpufeatures",
  "password-hash",
 ]
 
 [[package]]
 name = "async-channel"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
 dependencies = [
  "concurrent-queue",
  "event-listener",
@@ -80,9 +81,9 @@ dependencies = [
 
 [[package]]
 name = "async-compression"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b0122885821398cc923ece939e24d1056a2384ee719432397fa9db87230ff11"
+checksum = "62b74f44609f0f91493e3082d3734d98497e094777144380ea4db9f9905dd5b6"
 dependencies = [
  "brotli",
  "flate2",
@@ -101,7 +102,7 @@ dependencies = [
  "async-lock",
  "async-task",
  "concurrent-queue",
- "fastrand",
+ "fastrand 1.9.0",
  "futures-lite",
  "slab",
 ]
@@ -135,7 +136,7 @@ dependencies = [
  "log",
  "parking",
  "polling",
- "rustix 0.37.22",
+ "rustix 0.37.23",
  "slab",
  "socket2 0.4.9",
  "waker-fn",
@@ -143,9 +144,9 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "2.7.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
 dependencies = [
  "event-listener",
 ]
@@ -163,7 +164,7 @@ dependencies = [
  "cfg-if",
  "event-listener",
  "futures-lite",
- "rustix 0.37.22",
+ "rustix 0.37.23",
  "signal-hook",
  "windows-sys",
 ]
@@ -214,7 +215,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -225,13 +226,13 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
 
 [[package]]
 name = "async-trait"
-version = "0.1.70"
+version = "0.1.73"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79fa67157abdfd688a259b6648808757db9347af834624f27ec646da976aee5d"
+checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -299,9 +300,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
 
 [[package]]
 name = "blake2"
@@ -331,7 +332,7 @@ dependencies = [
  "async-lock",
  "async-task",
  "atomic-waker",
- "fastrand",
+ "fastrand 1.9.0",
  "futures-lite",
  "log",
 ]
@@ -413,9 +414,12 @@ checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cfg-if"
@@ -541,9 +545,9 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.8"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
  "libc",
 ]
@@ -624,12 +628,12 @@ dependencies = [
 
 [[package]]
 name = "dashmap"
-version = "5.4.0"
+version = "5.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
+checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d"
 dependencies = [
  "cfg-if",
- "hashbrown 0.12.3",
+ "hashbrown 0.14.0",
  "lock_api",
  "once_cell",
  "parking_lot_core",
@@ -648,6 +652,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f"
 
 [[package]]
+name = "deranged"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929"
+
+[[package]]
 name = "devise"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -673,11 +683,11 @@ version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "35b50dba0afdca80b187392b24f2499a88c336d5a8493e4b4ccfb608708be56a"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
  "proc-macro2",
  "proc-macro2-diagnostics",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -686,7 +696,7 @@ version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f7a532c1f99a0f596f6960a60d1e119e91582b24b39e2d83a190e61262c3ef0c"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
  "byteorder",
  "chrono",
  "diesel_derives",
@@ -709,7 +719,7 @@ dependencies = [
  "diesel_table_macro_syntax",
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -739,7 +749,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
 dependencies = [
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -761,9 +771,9 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "email-encoding"
@@ -807,15 +817,15 @@ dependencies = [
 
 [[package]]
 name = "equivalent"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
 dependencies = [
  "errno-dragonfly",
  "libc",
@@ -857,6 +867,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "fastrand"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+
+[[package]]
 name = "fern"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -974,7 +990,7 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
  "futures-core",
  "futures-io",
  "memchr",
@@ -991,7 +1007,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -1061,7 +1077,7 @@ checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
@@ -1090,9 +1106,9 @@ dependencies = [
 
 [[package]]
 name = "governor"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c390a940a5d157878dd057c78680a33ce3415bcd05b4799509ea44210914b4d5"
+checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4"
 dependencies = [
  "cfg-if",
  "dashmap",
@@ -1198,9 +1214,9 @@ dependencies = [
 
 [[package]]
 name = "html5gum"
-version = "0.5.3"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b4d5b6f92743baff720caafecfa172651b233609b0e2c80617cdb043dac73d"
+checksum = "4c4e556171a058ba117bbe88b059fb37b6289023e007d2903ea6dca3a3cbff14"
 dependencies = [
  "jetscii",
 ]
@@ -1235,9 +1251,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "hyper"
@@ -1403,20 +1419,20 @@ checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.2",
+ "rustix 0.38.8",
  "windows-sys",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.8"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "jetscii"
@@ -1484,7 +1500,7 @@ dependencies = [
  "base64 0.21.2",
  "email-encoding",
  "email_address",
- "fastrand",
+ "fastrand 1.9.0",
  "futures-io",
  "futures-util",
  "hostname",
@@ -1543,9 +1559,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
 
 [[package]]
 name = "lock_api"
@@ -1559,9 +1575,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 dependencies = [
  "value-bag",
 ]
@@ -1591,10 +1607,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "mach"
-version = "0.3.2"
+name = "mach2"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8"
 dependencies = [
  "libc",
 ]
@@ -1611,7 +1627,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
 dependencies = [
- "regex-automata",
+ "regex-automata 0.1.10",
 ]
 
 [[package]]
@@ -1684,7 +1700,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
 dependencies = [
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
  "windows-sys",
 ]
 
@@ -1787,7 +1803,7 @@ checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -1802,9 +1818,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
 dependencies = [
  "autocfg",
 ]
@@ -1845,9 +1861,9 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "openssl"
-version = "0.10.55"
+version = "0.10.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
+checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
@@ -1866,7 +1882,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -1877,18 +1893,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "111.26.0+1.1.1u"
+version = "111.27.0+1.1.1v"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efc62c9f12b22b8f5208c23a7200a442b2e5999f8bdf80233852122b5a4f6f37"
+checksum = "06e8f197c82d7511c5b014030c9b1efeda40d7d5f99d23b4ceed3524a5e63f02"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.90"
+version = "0.9.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
+checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac"
 dependencies = [
  "cc",
  "libc",
@@ -1954,31 +1970,31 @@ dependencies = [
 
 [[package]]
 name = "paste"
-version = "1.0.13"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4b27ab7be369122c218afc2079489cdcb4b517c0a3fc386ff11e1fedfcc2b35"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "pear"
-version = "0.2.4"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ec95680a7087503575284e5063e14b694b7a9c0b065e5dceec661e0497127e8"
+checksum = "61a386cd715229d399604b50d1361683fe687066f42d56f54be995bc6868f71c"
 dependencies = [
  "inlinable_string",
  "pear_codegen",
- "yansi",
+ "yansi 1.0.0-rc.1",
 ]
 
 [[package]]
 name = "pear_codegen"
-version = "0.2.4"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9661a3a53f93f09f2ea882018e4d7c88f6ff2956d809a276060476fd8c879d3c"
+checksum = "da9f0f13dac8069c139e8300a6510e3f4143ecf5259c60b116a9b271b4ca0d54"
 dependencies = [
  "proc-macro2",
  "proc-macro2-diagnostics",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -1998,9 +2014,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
 
 [[package]]
 name = "pest"
-version = "2.7.0"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f73935e4d55e2abf7f130186537b19e7a4abc886a0252380b59248af473a3fc9"
+checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a"
 dependencies = [
  "thiserror",
  "ucd-trie",
@@ -2008,9 +2024,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.0"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b"
+checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853"
 dependencies = [
  "pest",
  "pest_generator",
@@ -2018,22 +2034,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.0"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190"
+checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.0"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0"
+checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48"
 dependencies = [
  "once_cell",
  "pest",
@@ -2086,9 +2102,9 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
 
 [[package]]
 name = "pin-utils"
@@ -2135,24 +2151,24 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.63"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "proc-macro2-diagnostics"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "606c4ba35817e2922a308af55ad51bab3645b59eae5c570d4a6cf07e36bd493b"
+checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
  "version_check",
- "yansi",
+ "yansi 1.0.0-rc.1",
 ]
 
 [[package]]
@@ -2173,16 +2189,16 @@ dependencies = [
 
 [[package]]
 name = "quanta"
-version = "0.9.3"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8"
+checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab"
 dependencies = [
  "crossbeam-utils",
  "libc",
- "mach",
+ "mach2",
  "once_cell",
  "raw-cpuid",
- "wasi 0.10.2+wasi-snapshot-preview1",
+ "wasi",
  "web-sys",
  "winapi",
 ]
@@ -2195,9 +2211,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.29"
+version = "1.0.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
 dependencies = [
  "proc-macro2",
 ]
@@ -2269,33 +2285,34 @@ dependencies = [
 
 [[package]]
 name = "ref-cast"
-version = "1.0.17"
+version = "1.0.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85d07b1a5f16b5548f4255a978c94259971aff73f39e8d67e8250e8b2f6667c3"
+checksum = "61ef7e18e8841942ddb1cf845054f8008410030a3997875d9e49b7a363063df1"
 dependencies = [
  "ref-cast-impl",
 ]
 
 [[package]]
 name = "ref-cast-impl"
-version = "1.0.17"
+version = "1.0.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a930b010d9effee5834317bb7ff406b76af7724348fd572b38705b4bd099fa92"
+checksum = "2dfaf0c85b766276c797f3791f5bc6d5bd116b41d53049af2789666b0c0bc9fa"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
 name = "regex"
-version = "1.8.4"
+version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
+checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.7.2",
+ "regex-automata 0.3.6",
+ "regex-syntax 0.7.4",
 ]
 
 [[package]]
@@ -2308,6 +2325,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "regex-automata"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.7.4",
+]
+
+[[package]]
 name = "regex-syntax"
 version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2315,9 +2343,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.2"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
 
 [[package]]
 name = "reqwest"
@@ -2390,9 +2418,9 @@ dependencies = [
 
 [[package]]
 name = "rmp"
-version = "0.8.11"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f"
+checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20"
 dependencies = [
  "byteorder",
  "num-traits",
@@ -2401,9 +2429,9 @@ dependencies = [
 
 [[package]]
 name = "rmpv"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de8813b3a2f95c5138fe5925bfb8784175d88d6bff059ba8ce090aa891319754"
+checksum = "2e0e0214a4a2b444ecce41a4025792fc31f77c7bb89c46d253953ea8c65701ec"
 dependencies = [
  "num-traits",
  "rmp",
@@ -2444,7 +2472,7 @@ dependencies = [
  "tokio-util",
  "ubyte",
  "version_check",
- "yansi",
+ "yansi 0.5.1",
 ]
 
 [[package]]
@@ -2458,7 +2486,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rocket_http",
- "syn 2.0.23",
+ "syn 2.0.28",
  "unicode-xid",
 ]
 
@@ -2529,9 +2557,9 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
 name = "rustix"
-version = "0.37.22"
+version = "0.37.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8818fa822adcc98b18fedbb3632a6a33213c070556b5aa7c4c8cc21cff565c4c"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
@@ -2543,22 +2571,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.2"
+version = "0.38.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aabcb0461ebd01d6b79945797c27f8529082226cb630a9865a71870ff63532a4"
+checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.3",
+ "linux-raw-sys 0.4.5",
  "windows-sys",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.2"
+version = "0.21.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f"
+checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
 dependencies = [
  "log",
  "ring",
@@ -2577,9 +2605,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-webpki"
-version = "0.100.1"
+version = "0.101.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
+checksum = "261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0"
 dependencies = [
  "ring",
  "untrusted",
@@ -2587,15 +2615,15 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.13"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "same-file"
@@ -2632,9 +2660,9 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
@@ -2648,9 +2676,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework"
-version = "2.9.1"
+version = "2.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -2661,9 +2689,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -2671,15 +2699,15 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
 
 [[package]]
 name = "serde"
-version = "1.0.166"
+version = "1.0.183"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8"
+checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
 dependencies = [
  "serde_derive",
 ]
@@ -2696,20 +2724,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.166"
+version = "1.0.183"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6"
+checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.99"
+version = "1.0.104"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
+checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
 dependencies = [
  "itoa",
  "ryu",
@@ -2781,9 +2809,9 @@ dependencies = [
 
 [[package]]
 name = "signal-hook"
-version = "0.3.15"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
 dependencies = [
  "libc",
  "signal-hook-registry",
@@ -2827,9 +2855,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
 
 [[package]]
 name = "socket2"
@@ -2906,9 +2934,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.23"
+version = "2.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2930,36 +2958,35 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.6.0"
+version = "3.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651"
 dependencies = [
- "autocfg",
  "cfg-if",
- "fastrand",
+ "fastrand 2.0.0",
  "redox_syscall",
- "rustix 0.37.22",
+ "rustix 0.38.8",
  "windows-sys",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -2983,10 +3010,11 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.22"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd"
+checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"
 dependencies = [
+ "deranged",
  "itoa",
  "libc",
  "num_threads",
@@ -3003,9 +3031,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
 
 [[package]]
 name = "time-macros"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
+checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
 dependencies = [
  "time-core",
 ]
@@ -3027,11 +3055,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.29.1"
+version = "1.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
+checksum = "40de3a2ba249dcb097e01be5e67a5ff53cf250397715a071a81543e8a832a920"
 dependencies = [
- "autocfg",
  "backtrace",
  "bytes",
  "libc",
@@ -3040,7 +3067,7 @@ dependencies = [
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.4.9",
+ "socket2 0.5.3",
  "tokio-macros",
  "windows-sys",
 ]
@@ -3053,7 +3080,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -3127,9 +3154,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.5"
+version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240"
+checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -3148,9 +3175,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.11"
+version = "0.19.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7"
+checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
 dependencies = [
  "indexmap 2.0.0",
  "serde",
@@ -3198,7 +3225,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -3327,9 +3354,9 @@ dependencies = [
 
 [[package]]
 name = "ucd-trie"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "uncased"
@@ -3349,9 +3376,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "unicode-normalization"
@@ -3394,9 +3421,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 
 [[package]]
 name = "uuid"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d023da39d1fde5a8a3fe1f3e01ca9632ada0a63e9797de55a879d6e2236277be"
+checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
 dependencies = [
  "getrandom",
 ]
@@ -3513,12 +3540,6 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
@@ -3544,7 +3565,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
  "wasm-bindgen-shared",
 ]
 
@@ -3578,7 +3599,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.28",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -3756,9 +3777,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
 
 [[package]]
 name = "winnow"
-version = "0.4.7"
+version = "0.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448"
+checksum = "5504cc7644f4b593cbc05c4a55bf9bd4e94b867c3c0bd440934174d50482427d"
 dependencies = [
  "memchr",
 ]
@@ -3789,6 +3810,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
+name = "yansi"
+version = "1.0.0-rc.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377"
+
+[[package]]
 name = "yubico"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/nixpkgs/pkgs/tools/security/vaultwarden/default.nix b/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
index cfe65eb332c1..e7d620a1bc20 100644
--- a/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
+++ b/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
@@ -9,13 +9,13 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "vaultwarden";
-  version = "1.29.1";
+  version = "1.29.2";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    hash = "sha256-uASoPZRBQ9IKJHtMGeeZzmr0fCYDWl56EzaJVj6LwMk=";
+    hash = "sha256-ByMPS68GBOvjB/RpoLAvgE+NcbbIa1qfU1TQ4yhbH+I=";
   };
 
   cargoLock = {
diff --git a/nixpkgs/pkgs/tools/security/vaultwarden/webvault.nix b/nixpkgs/pkgs/tools/security/vaultwarden/webvault.nix
index d9d1379277c2..585c1b5c5162 100644
--- a/nixpkgs/pkgs/tools/security/vaultwarden/webvault.nix
+++ b/nixpkgs/pkgs/tools/security/vaultwarden/webvault.nix
@@ -7,13 +7,13 @@
 }:
 
 let
-  version = "2023.5.0";
+  version = "2023.7.1";
 
   bw_web_builds = fetchFromGitHub {
     owner = "dani-garcia";
     repo = "bw_web_builds";
     rev = "v${version}";
-    hash = "sha256-dH+d206nDaUrX2FcpPTegAtlQvquxk+tfQt3vJQlOjw=";
+    hash = "sha256-B7FGLKuwxldlHnIIzQbDjZT9cs5+lixo/fBtlexNLQc=";
   };
 in buildNpmPackage rec {
   pname = "vaultwarden-webvault";
@@ -23,10 +23,10 @@ in buildNpmPackage rec {
     owner = "bitwarden";
     repo = "clients";
     rev = "web-v${lib.removeSuffix "b" version}";
-    hash = "sha256-ELKpGSY4ZbgSk4vJnTiB+IOa8RQU8Ahy3A1mYsKtthU=";
+    hash = "sha256-HEEUboaIY/Zi/wUhp9y7oIOuQl6csjo97eygTLPNfNo=";
   };
 
-  npmDepsHash = "sha256-G8DEYPjEP3L4s0pr5n2ZTj8kkT0E7Po1BKhZ2hUdJuY=";
+  npmDepsHash = "sha256-8Epkvjzllt//kdrKT4jUDOhj47Fnb0qSFU1qJthL2Mo=";
 
   postPatch = ''
     ln -s ${bw_web_builds}/{patches,resources} ..
diff --git a/nixpkgs/pkgs/tools/security/weggli/default.nix b/nixpkgs/pkgs/tools/security/weggli/default.nix
new file mode 100644
index 000000000000..85083e2cf22b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/weggli/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, testers
+, weggli
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "weggli";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "weggli-rs";
+    repo = "weggli";
+    rev = "v${version}";
+    hash = "sha256-6XSedsTUjcZzFXaNitsXlUBpxC6TYVMCB+AfH3x7c5E=";
+  };
+
+  cargoSha256 = "sha256-Cj/m4GRaqI/lHYFruj047B7FdGoVl/wC8I2o1dzhOTs=";
+
+  passthru.tests.version = testers.testVersion {
+    package = weggli;
+    command = "weggli -V";
+    version = "weggli ${version}";
+  };
+
+  meta = with lib; {
+    description = "Weggli is a fast and robust semantic search tool for C and C++ codebases";
+    homepage = "https://github.com/weggli-rs/weggli";
+    changelog = "https://github.com/weggli-rs/weggli/releases/tag/v${version}";
+    mainProgram = "weggli";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ arturcygan mfrw ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix b/nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix
index faa280575e1e..4c15908eab19 100644
--- a/nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix
+++ b/nixpkgs/pkgs/tools/system/auto-cpufreq/default.nix
@@ -2,16 +2,16 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "auto-cpufreq";
-  version = "1.7.1";
+  version = "1.9.9";
 
   src = fetchFromGitHub {
     owner = "AdnanHodzic";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1r27ydv258c6pc82za0wq8q8fj0j3r50c8wxc6r7dwr6wx8q3asx";
+    sha256 = "sha256-D/5pwE2V+yXj92ECOUcl/dajMDbvVdz9YNJrl2Pzvts=";
   };
 
-  propagatedBuildInputs = with python3Packages; [ click distro psutil ];
+  propagatedBuildInputs = with python3Packages; [ setuptools-git-versioning click distro psutil ];
 
   doCheck = false;
   pythonImportsCheck = [ "auto_cpufreq" ];
@@ -25,6 +25,8 @@ python3Packages.buildPythonPackage rec {
 
     # patch to prevent script copying and to disable install
     ./prevent-install-and-copy.patch
+    # patch to prevent update
+    ./prevent-update.patch
   ];
 
   postInstall = ''
@@ -34,15 +36,14 @@ python3Packages.buildPythonPackage rec {
     # systemd service
     mkdir -p $out/lib/systemd/system
     cp ${src}/scripts/auto-cpufreq.service $out/lib/systemd/system
-    substituteInPlace $out/lib/systemd/system/auto-cpufreq.service --replace "/usr/local" $out
   '';
 
   meta = with lib; {
+    mainProgram = "${pname}";
     homepage = "https://github.com/AdnanHodzic/auto-cpufreq";
     description = "Automatic CPU speed & power optimizer for Linux";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.Technical27 ];
-    mainProgram = "auto-cpufreq";
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/auto-cpufreq/fix-version-output.patch b/nixpkgs/pkgs/tools/system/auto-cpufreq/fix-version-output.patch
index 69293a4c3dc2..fad9f091da40 100644
--- a/nixpkgs/pkgs/tools/system/auto-cpufreq/fix-version-output.patch
+++ b/nixpkgs/pkgs/tools/system/auto-cpufreq/fix-version-output.patch
@@ -1,37 +1,33 @@
+diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
+index 99397a9..f3ef28f 100755
 --- a/auto_cpufreq/core.py
 +++ b/auto_cpufreq/core.py
-@@ -68,32 +68,8 @@ dist_name = distro.id()
+@@ -144,26 +144,10 @@ except PermissionError:
  
  # display running version of auto-cpufreq
  def app_version():
--
--    print("auto-cpufreq version:")
--
++    print("auto-cpufreq version: @version@")
++    print("Git commit: v@version@")
+ 
+-    print("auto-cpufreq version: ", end="")
+ 
 -    # snap package
 -    if os.getenv("PKG_MARKER") == "SNAP":
--        print(getoutput("echo Snap: $SNAP_VERSION"))
+-        print(getoutput("echo \(Snap\) $SNAP_VERSION"))
 -    # aur package
 -    elif dist_name in ["arch", "manjaro", "garuda"]:
 -        aur_pkg_check = call("pacman -Qs auto-cpufreq > /dev/null", shell=True)
 -        if aur_pkg_check == 1:
--            print(
--                "Git commit:",
--                check_output(["git", "describe", "--always"]).strip().decode(),
--            )
+-            print(get_formatted_version())
 -        else:
 -            print(getoutput("pacman -Qi auto-cpufreq | grep Version"))
 -    else:
 -        # source code (auto-cpufreq-installer)
 -        try:
--            print(
--                "Git commit:",
--                check_output(["git", "describe", "--always"]).strip().decode(),
--            )
+-            print(get_formatted_version())
 -        except Exception as e:
 -            print(repr(e))
 -            pass
-+    print("auto-cpufreq version: @version@")
-+    print("Git commit: v@version@")
- 
- 
- def app_res_use():
+ def verify_update():
+     # Specify the repository and package name
+     # IT IS IMPORTANT TO  THAT IF THE REPOSITORY STRUCTURE IS CHANGED, THE FOLLOWING FUNCTION NEEDS TO BE UPDATED ACCORDINGLY
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch b/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
index 41bd3dc5916e..9b5bffb5591e 100644
--- a/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
+++ b/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
@@ -1,8 +1,8 @@
 diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
-index 83d0d64..04b5035 100644
+index 99397a9..48a377a 100755
 --- a/auto_cpufreq/core.py
 +++ b/auto_cpufreq/core.py
-@@ -204,35 +204,13 @@ def get_current_gov():
+@@ -350,30 +334,13 @@ def get_current_gov():
  
  
  def cpufreqctl():
@@ -15,14 +15,8 @@ index 83d0d64..04b5035 100644
 -        pass
 -    else:
 -        # deploy cpufreqctl.auto-cpufreq script
--        if os.path.isfile("/usr/bin/cpufreqctl"):
--            shutil.copy(
--                SCRIPTS_DIR / "cpufreqctl.sh", "/usr/bin/cpufreqctl.auto-cpufreq"
--            )
--        else:
--            shutil.copy(
--                SCRIPTS_DIR / "cpufreqctl.sh", "/usr/bin/cpufreqctl.auto-cpufreq"
--            )
+-        if not os.path.isfile("/usr/local/bin/cpufreqctl.auto-cpufreq"):
+-            shutil.copy(SCRIPTS_DIR / "cpufreqctl.sh", "/usr/local/bin/cpufreqctl.auto-cpufreq")
 +    # scripts are already in the correct place
 +    pass
  
@@ -35,14 +29,15 @@ index 83d0d64..04b5035 100644
 -    if os.getenv("PKG_MARKER") == "SNAP":
 -        pass
 -    else:
--        if os.path.isfile("/usr/bin/cpufreqctl.auto-cpufreq"):
--            os.remove("/usr/bin/cpufreqctl.auto-cpufreq")
+-        if os.path.isfile("/usr/local/bin/cpufreqctl.auto-cpufreq"):
+-            os.remove("/usr/local/bin/cpufreqctl.auto-cpufreq")
+-
 +    # no need to restore
 +    pass
  
- 
  def footer(l=79):
-@@ -276,76 +254,13 @@ def remove_complete_msg():
+     print("\n" + "-" * l + "\n")
+@@ -400,30 +367,8 @@ def remove_complete_msg():
  
  
  def deploy_daemon():
@@ -51,62 +46,58 @@ index 83d0d64..04b5035 100644
 -    # deploy cpufreqctl script func call
 -    cpufreqctl()
 -
--    print("* Turn off bluetooth on boot")
--    btconf = Path("/etc/bluetooth/main.conf")
--    try:
--        orig_set = "AutoEnable=true"
--        change_set = "AutoEnable=false"
--        with btconf.open(mode="r+") as f:
--            content = f.read()
--            f.seek(0)
--            f.truncate()
--            f.write(content.replace(orig_set, change_set))
--    except Exception as e:
--        print(f"\nERROR:\nWas unable to turn off bluetooth on boot\n{repr(e)}")
+-    # turn off bluetooth on boot
+-    bluetooth_disable()
 -
 -    auto_cpufreq_stats_path.touch(exist_ok=True)
 -
 -    print("\n* Deploy auto-cpufreq install script")
--    shutil.copy(
--        SCRIPTS_DIR / "auto-cpufreq-install.sh", "/usr/bin/auto-cpufreq-install"
--    )
+-    shutil.copy(SCRIPTS_DIR / "auto-cpufreq-install.sh", "/usr/local/bin/auto-cpufreq-install")
 -
 -    print("\n* Deploy auto-cpufreq remove script")
--    shutil.copy(SCRIPTS_DIR / "auto-cpufreq-remove.sh", "/usr/bin/auto-cpufreq-remove")
+-    shutil.copy(SCRIPTS_DIR / "auto-cpufreq-remove.sh", "/usr/local/bin/auto-cpufreq-remove")
+-
+-    # output warning if gnome power profile is running
+-    gnome_power_detect_install()
+-    gnome_power_svc_disable()
 -
--    call("/usr/bin/auto-cpufreq-install", shell=True)
+-    # output warning if TLP service is detected
+-    tlp_service_detect()
+-
+-    call("/usr/local/bin/auto-cpufreq-install", shell=True)
 +    # prevent needless copying and system changes
 +    pass
  
  
+ def deploy_daemon_performance():
+@@ -463,40 +408,7 @@ def deploy_daemon_performance():
+ 
  # remove auto-cpufreq daemon
- def remove():
+ def remove_daemon():
 -
 -    # check if auto-cpufreq is installed
--    if not os.path.exists("/usr/bin/auto-cpufreq-remove"):
+-    if not os.path.exists("/usr/local/bin/auto-cpufreq-remove"):
 -        print("\nauto-cpufreq daemon is not installed.\n")
 -        sys.exit(1)
 -
 -    print("\n" + "-" * 21 + " Removing auto-cpufreq daemon " + "-" * 22 + "\n")
 -
--    print("* Turn on bluetooth on boot")
--    btconf = "/etc/bluetooth/main.conf"
--    try:
--        orig_set = "AutoEnable=true"
--        change_set = "AutoEnable=false"
--        with open(btconf, "r+") as f:
--            content = f.read()
--            f.seek(0)
--            f.truncate()
--            f.write(content.replace(change_set, orig_set))
--    except Exception as e:
--        print(f"\nERROR:\nWas unable to turn on bluetooth on boot\n{repr(e)}")
--
--    # run auto-cpufreq daemon install script
--    call("/usr/bin/auto-cpufreq-remove", shell=True)
+-    # turn on bluetooth on boot
+-    bluetooth_enable()
+-
+-    # output warning if gnome power profile is stopped
+-    gnome_power_rm_reminder()
+-    gnome_power_svc_enable()
+-
+-    # run auto-cpufreq daemon remove script
+-    call("/usr/local/bin/auto-cpufreq-remove", shell=True)
 -
 -    # remove auto-cpufreq-remove
--    os.remove("/usr/bin/auto-cpufreq-remove")
+-    os.remove("/usr/local/bin/auto-cpufreq-remove")
+-
+-    # delete override pickle if it exists
+-    if os.path.exists(governor_override_state):
+-        os.remove(governor_override_state)
 -
 -    # delete stats file
 -    if auto_cpufreq_stats_path.exists():
@@ -117,52 +108,56 @@ index 83d0d64..04b5035 100644
 -
 -    # restore original cpufrectl script
 -    cpufreqctl_restore()
--
 +    pass
  
- def gov_check():
-     for gov in get_avail_gov():
-diff --git a/scripts/cpufreqctl.sh b/scripts/cpufreqctl.sh
-index 63a2b5b..e157efe 100755
---- a/scripts/cpufreqctl.sh
-+++ b/scripts/cpufreqctl.sh
-@@ -467,35 +467,21 @@ fi
  
- if [ $OPTION = "--install" ]
- then
--  echo 'installing helpers...'
--  cp $0 /usr/bin/
--  echo 'installing policy...'
--  cp $(dirname "$(readlink -f "$0")")/konkor.cpufreq.policy /usr/share/polkit-1/actions/
--  echo 'installing fonts...'
--  mkdir -p /usr/share/fonts/truetype/cpufreq
--  cp $(dirname "$(readlink -f "$0")")/fonts/cpufreq.ttf /usr/share/fonts/truetype/cpufreq/
--  echo "done"
-+  echo "install is disabled in the nix package"
-   exit
- fi
- if [ $OPTION = "--update-fonts" ]
- then
--  fc-cache -f
-+  echo "update-fonts is disabled in the nix package"
-   exit
- fi
- if [ $OPTION = "--uninstall" ]
- then
--  echo 'uninstalling cpufreqctl helper...'
--  rm /usr/bin/cpufreqctl
--  echo 'uninstalling policy...'
--  rm /usr/share/polkit-1/actions/konkor.cpufreq.policy
--  echo 'uninstalling fonts...'
--  rm -rf /usr/share/fonts/truetype/cpufreq
--  echo "done"
-+  echo "uninstall is disabled in the nix package"
-   exit
- fi
- if [ $OPTION = "--reset" ]
- then
--  echo 'reset to default values...'
--  dconf reset -f "/org/gnome/shell/extensions/cpufreq/"
-+  echo "reset is disabled in the nix package"
-   exit
- fi
+ def gov_check():
+
+diff --git a/bin/auto-cpufreq b/bin/auto-cpufreq
+index b89d925..b73974c 100755
+--- a/bin/auto-cpufreq
++++ b/bin/auto-cpufreq
+@@ -189,41 +189,9 @@
+             print("https://github.com/AdnanHodzic/auto-cpufreq/#donate")
+             footer()
+         elif install:
+-            if os.getenv("PKG_MARKER") == "SNAP":
+-                root_check()
+-                running_daemon_check()
+-                gnome_power_detect_snap()
+-                tlp_service_detect_snap()
+-                bluetooth_notif_snap()
+-                gov_check()
+-                run("snapctl set daemon=enabled", shell=True)
+-                run("snapctl start --enable auto-cpufreq", shell=True)
+-                deploy_complete_msg()
+-            else:
+-                root_check()
+-                running_daemon_check()
+-                gov_check()
+-                deploy_daemon()
+-                deploy_complete_msg()
++            print("install is disabled in the nix package")
+         elif remove:
+-            if os.getenv("PKG_MARKER") == "SNAP":
+-                root_check()
+-                run("snapctl set daemon=disabled", shell=True)
+-                run("snapctl stop --disable auto-cpufreq", shell=True)
+-                if auto_cpufreq_stats_path.exists():
+-                    if auto_cpufreq_stats_file is not None:
+-                        auto_cpufreq_stats_file.close()
+-
+-                    auto_cpufreq_stats_path.unlink()
+-                # ToDo: 
+-                # {the following snippet also used in --update, update it there too(if required)}
+-                # * undo bluetooth boot disable
+-                gnome_power_rm_reminder_snap()
+-                remove_complete_msg()
+-            else:
+-                root_check()
+-                remove_daemon()
+-                remove_complete_msg()
++            print("remove is disabled in the nix package")
+         elif update:
+             root_check()
+             if os.getenv("PKG_MARKER") == "SNAP":
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-update.patch b/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-update.patch
new file mode 100644
index 000000000000..10da9fec9785
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/auto-cpufreq/prevent-update.patch
@@ -0,0 +1,60 @@
+diff --git a/requirements.txt b/requirements.txt
+index f492cac..e61d1a4 100755
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -2,4 +2,3 @@
+ psutil
+ click
+ distro
+-requests
+
+diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
+index 99397a9..697fb68 100755
+--- a/auto_cpufreq/core.py
++++ b/auto_cpufreq/core.py
+@@ -18,7 +18,6 @@ from math import isclose
+ from pathlib import Path
+ from shutil import which
+ from subprocess import getoutput, call, run, check_output, DEVNULL
+-import requests
+ import re
+ 
+ # execution timestamp used in countdown func
+
+diff --git a/bin/auto-cpufreq b/bin/auto-cpufreq
+index b89d925..b73974c 100755
+--- a/bin/auto-cpufreq
++++ b/bin/auto-cpufreq
+@@ -193,31 +193,7 @@
+         elif remove:
+             print("remove is disabled in the nix package")
+         elif update:
+-            root_check()
+-            if os.getenv("PKG_MARKER") == "SNAP":
+-                print("Detected auto-cpufreq was installed using snap")
+-                # refresh snap directly using this command
+-
+-                print("Please update using snap package manager, i.e: `sudo snap refresh auto-cpufreq`.")
+-                #check for AUR 
+-            elif subprocess.run(["bash", "-c", "command -v yay >/dev/null 2>&1"]).returncode == 0 or subprocess.run(["bash", "-c", "command -v pacman >/dev/null 2>&1"]).returncode == 0:
+-                print("Arch-based distribution with AUR support detected. Please refresh auto-cpufreq using your AUR helper.")
+-            else:
+-                verify_update()
+-                ans = input ("Do you want to update auto-cpufreq to the latest release? [y/n]: ")
+-                valid_options = ['y', 'Y', 'yes', 'YES', 'Yes']
+-                if ans.lower() in valid_options:
+-                    remove_daemon()
+-                    remove_complete_msg()
+-                    new_update()
+-                else:
+-                    print("incorrect input\n")
+-                    print("Aborted")
+-                print("enabling daemon")
+-                run(["auto-cpufreq", "--install"])
+-                print("auto-cpufreq is installed with the latest version")
+-                app_version()
+-            
++            print("update is disabled in the nix package")            
+
+
+ if __name__ == "__main__":
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix b/nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix
index fd124d8cf8f5..deed778823f8 100644
--- a/nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix
+++ b/nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "automatic-timezoned";
-  version = "1.0.121";
+  version = "1.0.124";
 
   src = fetchFromGitHub {
     owner = "maxbrunet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-B3Ndu6Zyq7tsVOvQqtnBB7Fs8CbxrogeV5LF20u17IQ=";
+    sha256 = "sha256-zfQ9CVMsPAeGcEMhOX7k6am/9+JjsJTk0NOvXqewDmw=";
   };
 
-  cargoHash = "sha256-2rVqwmWn59ytLRrMFS1m97CXlJ/FneV7QSMdvqjzmw8=";
+  cargoHash = "sha256-NAA4zvjGpsVlmESO60dKbBbUbVcxGh9YNDVALCxXc1E=";
 
   meta = with lib; {
     description = "Automatically update system timezone based on location";
diff --git a/nixpkgs/pkgs/tools/system/bfs/default.nix b/nixpkgs/pkgs/tools/system/bfs/default.nix
index 5a11a1740b27..7df1cbd6bd07 100644
--- a/nixpkgs/pkgs/tools/system/bfs/default.nix
+++ b/nixpkgs/pkgs/tools/system/bfs/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "bfs";
-  version = "2.6.3";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     repo = "bfs";
     owner = "tavianator";
     rev = version;
-    sha256 = "sha256-XsbD5WYa05tldwBylr6CLwARo61/g4IN686pkCpGGM4=";
+    sha256 = "sha256-/CiQUK6nmu3MtkG5PMQPn05qIO/M0Oy/LdBI/8oFdqA=";
   };
 
   buildInputs = [ oniguruma ] ++ lib.optionals stdenv.isLinux [ libcap acl ];
 
   # Disable LTO on darwin. See https://github.com/NixOS/nixpkgs/issues/19098
   preConfigure = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace Makefile --replace "-flto -DNDEBUG" "-DNDEBUG"
+    substituteInPlace Makefile --replace "-flto" ""
   '';
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/tools/system/mediawriter/default.nix b/nixpkgs/pkgs/tools/system/mediawriter/default.nix
index e4012ca6778c..800133a0b378 100644
--- a/nixpkgs/pkgs/tools/system/mediawriter/default.nix
+++ b/nixpkgs/pkgs/tools/system/mediawriter/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mediawriter";
-  version = "5.0.6";
+  version = "5.0.7";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = "MediaWriter";
     rev = "refs/tags/${version}";
-    hash = "sha256-M8tnFwpM94xrcgw87yRG2kUZ2y5C0M4ptPokK+2B+xk=";
+    hash = "sha256-dznvldk2FGCQGnVbo9tv+gH1cqRvoRqm/e+0MUVcI9I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/system/netdata/default.nix b/nixpkgs/pkgs/tools/system/netdata/default.nix
index e61f3673bc87..e3dbabe1f52e 100644
--- a/nixpkgs/pkgs/tools/system/netdata/default.nix
+++ b/nixpkgs/pkgs/tools/system/netdata/default.nix
@@ -17,14 +17,14 @@
 
 stdenv.mkDerivation rec {
   # Don't forget to update go.d.plugin.nix as well
-  version = "1.42.1";
+  version = "1.42.2";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    hash = "sha256-uVr897LF5F+ZGz2rzrTBLhoOOFE+BrE69xztQM8Lq8Q=";
+    hash = "sha256-8L8PhPgNIHvw+Dcx2D6OE8fp2+GEYOc9wEIoPJSqXME=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/tools/system/sleuthkit/default.nix b/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
index 0acc0e601699..175ec98fe220 100644
--- a/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
+++ b/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
@@ -12,14 +12,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "4.12.0";
+  version = "4.12.1";
   pname = "sleuthkit";
 
   sleuthsrc = fetchFromGitHub {
     owner = "sleuthkit";
     repo = "sleuthkit";
     rev = "${pname}-${version}";
-    hash = "sha256-NX7LNtor7UQJ6HCDz9wGpxbqrLQTTH9+543hOaQOAz4=";
+    hash = "sha256-q51UY2lIcLijycNaq9oQIwUXpp/1mfc3oPN4syOPF44=";
   };
 
   # Fetch libraries using a fixed output derivation
diff --git a/nixpkgs/pkgs/tools/system/ttop/default.nix b/nixpkgs/pkgs/tools/system/ttop/default.nix
index 06dba4607297..c09f028d006e 100644
--- a/nixpkgs/pkgs/tools/system/ttop/default.nix
+++ b/nixpkgs/pkgs/tools/system/ttop/default.nix
@@ -1,24 +1,35 @@
-{ lib, nimPackages, fetchFromGitHub }:
+{ lib, nimPackages, fetchFromGitHub, testers }:
 
 nimPackages.buildNimPackage (finalAttrs: {
   pname = "ttop";
-  version = "1.0.1";
+  version = "1.2.3";
   nimBinOnly = true;
 
   src = fetchFromGitHub {
     owner = "inv2004";
     repo = "ttop";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-x4Uczksh6p3XX/IMrOFtBxIleVHdAPX9e8n32VAUTC4=";
+    hash = "sha256-YrPlE+vCA1ffV1y9QCh2W66L78HZfDRbGOflkwWLqGA=";
   };
 
-  buildInputs = with nimPackages; [ asciigraph illwill parsetoml zippy ];
+  buildInputs = with nimPackages; [ asciigraph illwill jsony parsetoml zippy ];
 
-  meta = with lib;
-    finalAttrs.src.meta // {
-      description = "Top-like system monitoring tool";
-      license = licenses.mit;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ sikmir ];
+  nimFlags = [
+    "-d:NimblePkgVersion=${finalAttrs.version}"
+  ];
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = finalAttrs.finalPackage;
     };
+  };
+
+  meta = with lib; {
+    description = "Top-like system monitoring tool";
+    homepage = "https://github.com/inv2004/ttop";
+    changelog = "https://github.com/inv2004/ttop/releases/tag/${finalAttrs.src.rev}";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ figsoda sikmir ];
+  };
 })
diff --git a/nixpkgs/pkgs/tools/system/xe/default.nix b/nixpkgs/pkgs/tools/system/xe/default.nix
index 2464f624a28e..f31cdaab4c5a 100644
--- a/nixpkgs/pkgs/tools/system/xe/default.nix
+++ b/nixpkgs/pkgs/tools/system/xe/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xe";
-  version = "0.11";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner = "chneukirchen";
     repo = "xe";
     rev = "v${version}";
-    sha256 = "04jr8f6jcijr0bsmn8ajm0aj35qh9my3xjsaq64h8lwg5bpyn29x";
+    sha256 = "sha256-yek6flBhgjSeN3M695BglUfcbnUGp3skzWT2W/BxW8Y=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/tools/text/base16384/default.nix b/nixpkgs/pkgs/tools/text/base16384/default.nix
index 624ab070df7c..c9937fa5cd69 100644
--- a/nixpkgs/pkgs/tools/text/base16384/default.nix
+++ b/nixpkgs/pkgs/tools/text/base16384/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "base16384";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "fumiama";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-nHr7S3UrNaR/5YGwfDUxVXqTkaT3EYzA8CaS0lWZxN0=";
+    hash = "sha256-S9DA9C+6OJcSLJTSLRo9rolJO9yVQ0FOE7uwbvmJiGk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/text/discount/default.nix b/nixpkgs/pkgs/tools/text/discount/default.nix
index 7422b445d818..7cfdb018ef75 100644
--- a/nixpkgs/pkgs/tools/text/discount/default.nix
+++ b/nixpkgs/pkgs/tools/text/discount/default.nix
@@ -26,7 +26,10 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   postFixup = lib.optionalString stdenv.isDarwin ''
-    install_name_tool -id $out/lib/libmarkdown.dylib $out/lib/libmarkdown.dylib
+    install_name_tool -id "$out/lib/libmarkdown.dylib" "$out/lib/libmarkdown.dylib"
+    for exe in $out/bin/*; do
+      install_name_tool -change libmarkdown.dylib "$out/lib/libmarkdown.dylib" "$exe"
+    done
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix b/nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix
index f8ff4adf5a4a..9a25407d7116 100644
--- a/nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix
+++ b/nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix
@@ -9,12 +9,12 @@ let
       let is_extension = gawkextlib != null;
       in stdenv.mkDerivation rec {
         pname = "gawkextlib-${name}";
-        version = "unstable-2019-11-21";
+        version = "unstable-2022-10-20";
 
         src = fetchgit {
           url = "git://git.code.sf.net/p/gawkextlib/code";
-          rev = "f70f10da2804e4fd0a0bac57736e9c1cf21e345d";
-          sha256 = "0r8fz89n3l4dfszs1980yqj0ah95430lj0y1lb7blfkwxa6c2xik";
+          rev = "f6c75b4ac1e0cd8d70c2f6c7a8d58b4d94cfde97";
+          sha256 = "sha256-0p3CrQ3TBl7UcveZytK/9rkAzn69RRM2GwY2eCeqlkg=";
         };
 
         postPatch = ''
@@ -83,11 +83,12 @@ let
       name = "gd";
       extraBuildInputs = [ gd ];
     };
-    haru = buildExtension {
-      inherit gawkextlib;
-      name = "haru";
-      extraBuildInputs = [ libharu ];
-    };
+    # Build has been broken: https://github.com/NixOS/nixpkgs/issues/191072
+    # haru = buildExtension {
+    #   inherit gawkextlib;
+    #   name = "haru";
+    #   extraBuildInputs = [ libharu ];
+    # };
     json = buildExtension {
       inherit gawkextlib;
       name = "json";
diff --git a/nixpkgs/pkgs/tools/text/grin/default.nix b/nixpkgs/pkgs/tools/text/grin/default.nix
index ffa80baf6eac..3e3763d9ef71 100644
--- a/nixpkgs/pkgs/tools/text/grin/default.nix
+++ b/nixpkgs/pkgs/tools/text/grin/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, fetchpatch, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
   pname = "grin";
@@ -9,10 +9,21 @@ python3Packages.buildPythonApplication rec {
     owner = "matthew-brett";
     repo = pname;
     rev = "1.3.0";
-    sha256 = "057d05vzx4sf415vnh3qj2g351xhb3illjxjs9mdl3nsnb5r84kv";
+    hash = "sha256-exKUy7LaDtpq0rJLSuNYsIcynpB4QLtLIE6T/ncB7RQ=";
   };
 
-  buildInputs = with python3Packages; [ nose ];
+  patches = [
+    # https://github.com/matthew-brett/grin/pull/4
+    (fetchpatch {
+      name = "replace-nose-with-nose3.patch";
+      url = "https://github.com/matthew-brett/grin/commit/ba473fa4f5da1b337ee80d7d31772a4e41ffa62d.patch";
+      hash = "sha256-CnWHynKSsXYjSsTLdPuwpcIndrCdq3cQYS8teg5EM0A=";
+    })
+  ];
+
+  nativeCheckInputs = with python3Packages; [
+    nose3
+  ];
 
   meta = {
     homepage = "https://github.com/matthew-brett/grin";
diff --git a/nixpkgs/pkgs/tools/text/gtree/default.nix b/nixpkgs/pkgs/tools/text/gtree/default.nix
index 17e04df84453..11bffaac3548 100644
--- a/nixpkgs/pkgs/tools/text/gtree/default.nix
+++ b/nixpkgs/pkgs/tools/text/gtree/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gtree";
-  version = "1.9.6";
+  version = "1.9.8";
 
   src = fetchFromGitHub {
     owner = "ddddddO";
     repo = "gtree";
     rev = "v${version}";
-    hash = "sha256-eU5mMUDUh5eMzd4oLc0XOHapt1hhODWXQJ+OJAy3tWc=";
+    hash = "sha256-S0sI+IXilq8U275GExS54IQ3tPNI6iTCqMl/yzbRO/c=";
   };
 
   vendorHash = "sha256-QxcDa499XV43p8fstENOtfe3iZ176R5/Ub5iovXlYIM=";
diff --git a/nixpkgs/pkgs/tools/text/jotdown/default.nix b/nixpkgs/pkgs/tools/text/jotdown/default.nix
index 4f2c72031f13..e39209cfe106 100644
--- a/nixpkgs/pkgs/tools/text/jotdown/default.nix
+++ b/nixpkgs/pkgs/tools/text/jotdown/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jotdown";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "hellux";
     repo = "jotdown";
     rev = version;
-    hash = "sha256-UnrX6T5pjrxHE5feW287613vX5uqkdeFw2F14evzfmk=";
+    hash = "sha256-XouI3PHKPtX+3GkhMvdRfwJkCoofMgCY/NXB0tnLyUc=";
   };
 
-  cargoHash = "sha256-tbyDCJvTVzuTkfprOY537owOXz+OuNkuyCrOx77/j2o=";
+  cargoHash = "sha256-PvKXVP90GOAgz4Sc37B4hli7rbNHVZbksVAo+uy2yEU=";
 
   meta = with lib; {
     description = "A minimal Djot CLI";
diff --git a/nixpkgs/pkgs/tools/text/miller/default.nix b/nixpkgs/pkgs/tools/text/miller/default.nix
index 6ea68a6a1e5f..3a4198fa630e 100644
--- a/nixpkgs/pkgs/tools/text/miller/default.nix
+++ b/nixpkgs/pkgs/tools/text/miller/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "miller";
-  version = "6.8.0";
+  version = "6.9.0";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "sha256-AgKkB/c7rSgk2jS017vjaLPKdiWJ5y/1K5RM6c9RWQg=";
+    sha256 = "sha256-g2Jnqo3U9acyqohGpcEEogq871qJQTc7k0/oIawAQW8=";
   };
 
-  vendorHash = "sha256-4/BB4RaCXEgtGpBJGtccEAz9diogWTA4BxVLkOOlNMw=";
+  vendorHash = "sha256-/1/FTQL3Ki8QzL+1J4Ah8kwiJyGPd024di/1MC8gtkE=";
 
   subPackages = [ "cmd/mlr" ];
 
diff --git a/nixpkgs/pkgs/tools/text/mpage/default.nix b/nixpkgs/pkgs/tools/text/mpage/default.nix
index b48f89d66180..5033d53fedaa 100644
--- a/nixpkgs/pkgs/tools/text/mpage/default.nix
+++ b/nixpkgs/pkgs/tools/text/mpage/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mpage";
-  version = "2.5.7";
+  version = "2.5.8";
 
   src = fetchurl {
     url = "https://www.mesa.nl/pub/mpage/mpage-${version}.tgz";
-    sha256 = "1zn37r5xrvjgjbw2bdkc0r7s6q8b1krmcryzj0yf0dyxbx79rasi";
+    sha256 = "sha256-I1HpHSV5SzWN9mGPF6cBOijTUOwgQI/gb4Ej3EZz/pM=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/text/papeer/default.nix b/nixpkgs/pkgs/tools/text/papeer/default.nix
index 7ae7f690cb8b..9bca2da6ffce 100644
--- a/nixpkgs/pkgs/tools/text/papeer/default.nix
+++ b/nixpkgs/pkgs/tools/text/papeer/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "papeer";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "lapwat";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-oXhAiw2oYefmF+a8DqjP2f3AY0+WZ1ZdiNG9bEhSQ84=";
+    hash = "sha256-Kdy660FuPjXYF/uqndljmIvA6r+lo3D86W9pK6KqXl0=";
   };
 
   vendorHash = "sha256-3QRSdkx9p0H+zPB//bpWCBKKjKjrx0lHMk5lFm+U7pA=";
diff --git a/nixpkgs/pkgs/tools/text/xml/xmlstarlet/default.nix b/nixpkgs/pkgs/tools/text/xml/xmlstarlet/default.nix
index 8f382d3bcd5d..99c97452fe58 100644
--- a/nixpkgs/pkgs/tools/text/xml/xmlstarlet/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/xmlstarlet/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     description = "A command line tool for manipulating and querying XML data";
     homepage = "https://xmlstar.sourceforge.net/";
     license = lib.licenses.mit;
+    mainProgram = "xmlstarlet";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix b/nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix
index 362f2fca84d9..a797f2b8dab5 100644
--- a/nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix
+++ b/nixpkgs/pkgs/tools/text/zstxtns-utils/default.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation rec {
     description = "utilities to deal with text based name service databases";
     homepage = "https://ytrizja.de/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ zseri ];
+    maintainers = [ maintainers.fogti ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
index 8326fabad510..12c132a81d1c 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
@@ -7,6 +7,7 @@ gem 'asciidoctor-html5s'
 gem 'asciidoctor-mathematical'
 gem 'asciidoctor-multipage'
 gem 'asciidoctor-pdf'
+gem 'asciidoctor-reducer'
 gem 'asciidoctor-revealjs'
 gem 'coderay'
 gem 'pygments.rb'
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
index 90081826f702..da7c2fccb1b6 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
@@ -42,6 +42,8 @@ GEM
       prawn-table (~> 0.2.0)
       prawn-templates (~> 0.1.0)
       treetop (~> 1.6.0)
+    asciidoctor-reducer (1.0.5)
+      asciidoctor (~> 2.0)
     asciidoctor-revealjs (5.0.1)
       asciidoctor (>= 2.0.0, < 3.0.0)
     asciimath (2.0.5)
@@ -127,6 +129,7 @@ DEPENDENCIES
   asciidoctor-mathematical
   asciidoctor-multipage
   asciidoctor-pdf
+  asciidoctor-reducer
   asciidoctor-revealjs
   coderay
   pygments.rb
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
index 50ee906262ee..ba9c21631a90 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
@@ -17,6 +17,7 @@ bundlerApp rec {
     "asciidoctor-epub3"
     "asciidoctor-multipage"
     "asciidoctor-pdf"
+    "asciidoctor-reducer"
     "asciidoctor-revealjs"
   ];
 
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
index 0a88d0285c45..ac3fb75898fb 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
@@ -137,6 +137,17 @@
     };
     version = "2.3.9";
   };
+  asciidoctor-reducer = {
+    dependencies = ["asciidoctor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1708fi4bxjpkdszm6a4naa0qcsl0vqnhcklryn2sysl24zaz07h5";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
   asciidoctor-revealjs = {
     dependencies = ["asciidoctor"];
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix b/nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix
index 9f33ae6006e2..522dbad6d51e 100644
--- a/nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hayagriva";
-  version = "0.3.0";
+  version = "0.3.2";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-zp7YfMmp16YRWNcOf5aVt1vXnL+23+DyFeFn7Gow7wM=";
+    hash = "sha256-4HX0X8HDn0/D9mcruCVKeIs9ryCxYagW5eJ/DSqtprY=";
   };
 
-  cargoHash = "sha256-jsVd4vyST563HiXvqCfiZ2oUhNXF4E8Y2HBLl5AtvRw=";
+  cargoHash = "sha256-JvRWdoZ5/jG09ex7avkE3JUcdMGIsfirSx9PDyAtVfU=";
 
   buildFeatures = [ "cli" ];
 
diff --git a/nixpkgs/pkgs/tools/typesetting/sile/default.nix b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
index 122f4304838b..22ac034c1225 100644
--- a/nixpkgs/pkgs/tools/typesetting/sile/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
@@ -45,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.14.10";
+  version = "0.14.11";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "05jqr9lqy33zgi1wb0gn3j9w78sswznwbpaaz8i3jvrs1l1wd2i0";
+    sha256 = "sha256-JXlgiK1XyZZSe5QXz06zwEAnVYhiIZhhIaBmfxAgRS4=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
index dd1822de4925..ff4adcb78d28 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -7,6 +7,7 @@
 , brotli, cairo, pixman, xorg, clisp, biber, woff2, xxHash
 , makeWrapper, shortenPerlShebang, useFixedHashes, asymptote
 , biber-ms
+, tlpdb
 }:
 
 # Useful resource covering build options:
@@ -22,6 +23,20 @@ let
   assertFixedHash = name: src:
     if ! useFixedHashes || src ? outputHash then src else throw "The TeX Live package '${src.pname}' must have a fixed hash before building '${name}'.";
 
+  # list of packages whose binaries are built in core, core-big
+  # generated manually by inspecting ${core}/bin
+  corePackages = [ "afm2pl" "aleph" "autosp" "axodraw2" "bibtex" "cjkutils"
+    "ctie" "cweb" "detex" "dtl" "dvi2tty" "dvicopy" "dvidvi" "dviljk"
+    "dviout-util" "dvipdfmx" "dvipos" "dvips" "fontware" "gregoriotex"
+    "gsftopk" "hitex" "kpathsea" "lacheck" "lcdftypetools" "m-tx" "makeindex"
+    "mfware" "musixtnt" "omegaware" "patgen" "pdftex" "pdftosrc" "pmx"
+    "ps2eps" "ps2pk" "psutils"  "ptex" "seetexk" "synctex" "t1utils" "tex"
+    "tex4ht" "texlive-scripts-extra" "texware" "tie" "tpic2pdftex" "ttfutils"
+    "uptex" "velthuis" "vlna" "web" "xml2pmx" ];
+  coreBigPackages = [ "metafont" "mflua" "metapost" "luatex" "luahbtex"
+    "xetex" ] ++ lib.optional withLuaJIT "luajittex";
+  binPackages = lib.getAttrs (corePackages ++ coreBigPackages) tlpdb;
+
   common = {
     src = fetchurl {
       urls = [
@@ -53,21 +68,42 @@ let
 
     configureFlags = [
       "--with-banner-add=/nixos.org"
-      "--disable-missing" "--disable-native-texlive-build"
+      "--disable-missing" # terminate if a requested program or feature must be
+                          # disabled, e.g., due to missing libraries
+      "--disable-native-texlive-build" # do not build for the TeX Live binary distribution
       "--enable-shared" # "--enable-cxx-runtime-hack" # static runtime
       "--enable-tex-synctex"
+      "--disable-texlive" # do not build the texlive (TeX Live scripts) package
+      "--disable-linked-scripts" # do not install the linked scripts
       "-C" # use configure cache to speed up
     ]
       ++ withSystemLibs [
       # see "from TL tree" vs. "Using installed"  in configure output
       "zziplib" "mpfr" "gmp"
       "pixman" "potrace" "gd" "freetype2" "libpng" "libpaper" "zlib"
-    ];
-
-    # clean broken links to stuff not built
-    cleanBrokenLinks = ''
-      for f in "$out"/bin/*; do
-        if [[ ! -x "$f" ]]; then rm "$f"; fi
+    ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
+      "BUILDCC=${buildPackages.stdenv.cc.targetPrefix}cc";
+
+    # move binaries to corresponding split outputs, based on content of texlive.tlpdb
+    binToOutput = lib.listToAttrs
+      (lib.concatMap
+        (n: map (v: { name = v; value = builtins.replaceStrings [ "-" ] [ "_" ] n; }) binPackages.${n}.binfiles or [ ])
+        (builtins.attrNames binPackages));
+
+    moveBins = ''
+      for bin in "$out/bin"/* ; do
+        bin="''${bin##*/}"
+        package="''${binToOutput[$bin]}"
+        if [[ -n "$package" ]] ; then
+          if [[ -z "''${!package}" ]] ; then
+            echo "WARNING: missing output '$package' for binary '$bin', leaving in 'out'"
+          else
+            mkdir -p "''${!package}"/bin
+            mv "$out/bin/$bin" "''${!package}"/bin/
+          fi
+        else
+          echo "WARNING: no output known for binary '$bin', leaving in 'out'"
+        fi
       done
     '';
   };
@@ -76,7 +112,6 @@ let
   withLuaJIT = !(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV;
 in rec { # un-indented
 
-inherit (common) cleanBrokenLinks;
 texliveYear = year;
 
 
@@ -84,18 +119,21 @@ core = stdenv.mkDerivation rec {
   pname = "texlive-bin";
   inherit version;
 
-  inherit (common) src prePatch;
+  __structuredAttrs = true;
+
+  inherit (common) binToOutput src prePatch;
 
-  outputs = [ "out" "doc" "dev" ];
+  outputs = [ "out" "dev" "man" "info" ]
+    ++ (builtins.map (builtins.replaceStrings [ "-" ] [ "_" ]) corePackages);
 
   nativeBuildInputs = [
     pkg-config
-  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) (with texlive.bin.core; [
     # configure: error: tangle was not found but is required when cross-compiling.
     # dev (himktables) is used when building hitex to generate the additional source file hitables.c
-    texlive.bin.core
-    texlive.bin.core.dev
-  ];
+    web/*tangle*/ cweb/*ctangle*/ omegaware/*otangle*/ tie/*tie*/ # see "Building TeX Live" 6.4.2 Cross problems
+    dev/*himktables*/
+  ]);
 
   buildInputs = [
     /*teckit*/ zziplib mpfr gmp
@@ -113,7 +151,9 @@ core = stdenv.mkDerivation rec {
 
   preConfigure = ''
     rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \
-      libs/{lua53,luajit,mpfr,pixman,zlib,zziplib}
+      libs/{lua53,luajit,mpfr,pixman,pplib,teckit,zlib,zziplib} \
+      texk/{bibtex-x,chktex,dvipng,dvisvgm,upmendex,xdvik} \
+      utils/{asymptote,texdoctk,xindy,xpdfopen}
     mkdir WorkDir
     cd WorkDir
   '';
@@ -122,7 +162,6 @@ core = stdenv.mkDerivation rec {
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   configureFlags = common.configureFlags
-    ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "BUILDCC=${buildPackages.stdenv.cc.targetPrefix}cc" ]
     ++ [ "--without-x" ] # disable xdvik and xpdfopen
     ++ map (what: "--disable-${what}") [
       "chktex"
@@ -137,53 +176,18 @@ core = stdenv.mkDerivation rec {
   doCheck = false; # triptest fails, likely due to missing TEXMF tree
   preCheck = "patchShebangs ../texk/web2c";
 
-  installTargets = [ "install" "texlinks" ];
+  installTargets = [ "install" ];
 
   # TODO: perhaps improve texmf.cnf search locations
   postInstall =
-    /* links format -> engine will be regenerated in texlive.combine
-       note: for unlinking, the texlinks patch is irrelevant, so we use
-       the included texlinks.sh to avoid the dependency on bin.texlinks */ ''
-    PATH="$out/bin:$PATH" sh ../texk/texlive/linked_scripts/texlive-extra/texlinks.sh --cnffile "$out/share/texmf-dist/web2c/fmtutil.cnf" --unlink "$out/bin"
-  '' + /* a few texmf-dist files are useful; take the rest from pkgs */ ''
-    mv "$out/share/texmf-dist/web2c/texmf.cnf" .
-    rm -r "$out/share/texmf-dist"
-    mkdir -p "$out"/share/texmf-dist/{web2c,scripts/texlive/TeXLive}
-    mv ./texmf.cnf "$out/share/texmf-dist/web2c/"
-    cp ../texk/tests/TeXLive/*.pm "$out/share/texmf-dist/scripts/texlive/TeXLive/"
-    cp ../texk/texlive/linked_scripts/scripts.lst "$out/share/texmf-dist/scripts/texlive/"
-  '' +
-    (let extraScripts =
-          ''
-            tex4ht/ht.sh
-            tex4ht/htcontext.sh
-            tex4ht/htcopy.pl
-            tex4ht/htlatex.sh
-            tex4ht/htmex.sh
-            tex4ht/htmove.pl
-            tex4ht/httex.sh
-            tex4ht/httexi.sh
-            tex4ht/htxelatex.sh
-            tex4ht/htxetex.sh
-            tex4ht/mk4ht.pl
-            tex4ht/xhlatex.sh
-          '';
-      in
-        ''
-          echo -e 'texmf_scripts="$texmf_scripts\n${extraScripts}"' \
-            >> "$out/share/texmf-dist/scripts/texlive/scripts.lst"
-        '')
-  + /* doc location identical with individual TeX pkgs */ ''
-    mkdir -p "$doc/doc"
-    mv "$out"/share/{man,info} "$doc"/doc
-  '' + /* remove manpages for utils that live in texlive.texlive-scripts to avoid a conflict in buildEnv */ ''
-    (cd "$doc"/doc/man/man1; rm {fmtutil-sys.1,fmtutil.1,mktexfmt.1,mktexmf.1,mktexpk.1,mktextfm.1,texhash.1,updmap-sys.1,updmap.1})
+       /* remove redundant texmf-dist (content provided by TeX Live packages) */
+  ''
+    rm -fr "$out"/share/texmf-dist
   '' + /* install himktables in separate output for use in cross compilation */ ''
      mkdir -p $dev/bin
      cp texk/web2c/.libs/himktables $dev/bin/himktables
-  '' + cleanBrokenLinks;
+  '' + common.moveBins;
 
-  setupHook = ./setup-hook.sh; # TODO: maybe texmf-nix -> texmf (and all references)
   passthru = { inherit version buildInputs; };
 
   meta = with lib; {
@@ -196,12 +200,15 @@ core = stdenv.mkDerivation rec {
 };
 
 
-inherit (core-big) metafont mflua metapost luatex luahbtex luajittex xetex;
-core-big = stdenv.mkDerivation { #TODO: upmendex
+inherit (core-big) metafont mflua metapost luatex luahbtex xetex;
+luajittex = core.big.luajittex or null;
+core-big = stdenv.mkDerivation {
   pname = "texlive-core-big.bin";
   inherit version;
 
-  inherit (common) src prePatch;
+  __structuredAttrs = true;
+
+  inherit (common) binToOutput src prePatch;
 
   patches = [
     # improves reproducibility of fmt files. This patch has been proposed upstream,
@@ -241,92 +248,46 @@ core-big = stdenv.mkDerivation { #TODO: upmendex
   inherit (core) nativeBuildInputs depsBuildBuild;
   buildInputs = core.buildInputs ++ [ core cairo harfbuzz icu graphite2 libX11 ];
 
+  /* deleting the unused packages speeds up configure by a considerable margin
+     and ensures we do not rebuild existing libraries by mistake */
+  preConfigure = ''
+    rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \
+      libs/{mpfr,pixman,xpdf,zlib,zziplib} \
+      texk/{afm2pl,bibtex-x,chktex,cjkutils,detex,dtl,dvi2tty,dvidvi,dviljk,dviout-util} \
+      texk/{dvipdfm-x,dvipng,dvipos,dvipsk,dvisvgm,gregorio,gsftopk,kpathsea} \
+      texk/{lcdf-typetools,makeindexk,makejvf,mendexk,musixtnt,ps2pk,psutils,ptexenc} \
+      texk/{seetexk,tex4htk,texlive,ttf2pk2,ttfdump,xdvik} \
+      utils/{asymptote,autosp,axodraw2,devnag,lacheck,m-tx,pmx,ps2eps,t1utils,texdoctk} \
+      utils/{tpic2pdftex,vlna,xindy,xml2pmx,xpdfopen}
+    mkdir WorkDir
+    cd WorkDir
+  '';
+
   configureFlags = common.configureFlags
     ++ withSystemLibs [ "kpathsea" "ptexenc" "cairo" "harfbuzz" "icu" "graphite2" ]
     ++ map (prog: "--disable-${prog}") # don't build things we already have
-      ([ "tex" "ptex" "eptex" "uptex" "euptex" "aleph" "pdftex"
+      # list from texk/web2c/configure
+      ([ "tex" "ptex" "eptex" "uptex" "euptex" "aleph" "hitex" "pdftex"
         "web-progs" "synctex"
-      ] ++ lib.optionals (!withLuaJIT) [ "luajittex" "luajithbtex" "mfluajit" ]);
-
-  configureScript = ":";
+      ] ++ lib.optionals (!withLuaJIT) [ "luajittex" "luajithbtex" "mfluajit" ])
+    /* disable all packages, re-enable upmendex, web2c packages */
+    ++ [ "--disable-all-pkgs" "--enable-upmendex" "--enable-web2c" ]
+    /* kpathsea requires specifying the kpathsea location manually */
+    ++ [ "--with-kpathsea-includes=${core.dev}/include" ];
 
-  # we use static libtexlua, because it's only used by a single binary
-  postConfigure = let
-    luajit = lib.optionalString withLuaJIT ",luajit";
-  in
-  lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform)
-  # without this, the native builds attempt to use the binary
-  # ${target-triple}-gcc, but we need to use the wrapper script.
-  ''
-    export BUILDCC=${buildPackages.stdenv.cc}/bin/cc
-  ''
-  +
-  ''
-    mkdir ./WorkDir && cd ./WorkDir
-    for path in libs/{pplib,teckit,lua53${luajit}} texk/web2c; do
-      (
-        if [[ "$path" =~ "libs/lua" ]]; then
-          extraConfig="--enable-static --disable-shared"
-        else
-          extraConfig=""
-        fi
-  '' + lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform)
-    # results of the tests performed by the configure scripts are
-    # toolchain-dependent, so native components and cross components cannot use
-    # the same cached test results.
-    # Disable the caching for components with native subcomponents.
-  ''
-        if [[ "$path" =~ "libs/luajit" ]] || [[ "$path" =~ "texk/web2c" ]]; then
-          extraConfig="$extraConfig --cache-file=/dev/null"
-        fi
-  ''
-  +
-  ''
-        mkdir -p "$path" && cd "$path"
-        "../../../$path/configure" $configureFlags $extraConfig
-
-        if [[ "$path" =~ "libs/luajit" ]] || [[ "$path" =~ "libs/pplib" ]]; then
-          # ../../../texk/web2c/mfluadir/luapeg/lpeg.h:29:10: fatal error: 'lua.h' file not found
-          # ../../../texk/web2c/luatexdir/luamd5/md5lib.c:197:10: fatal error: 'utilsha.h' file not found
-          make ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}}
-        fi
-      )
-    done
-  '';
+  configureScript = "../configure";
 
-  preBuild = "cd texk/web2c";
   enableParallelBuilding = true;
 
   doCheck = false; # fails
 
-  # now distribute stuff into outputs, roughly as upstream TL
-  # (uninteresting stuff remains in $out, typically duplicates from `core`)
-  outputs = [
-    "out"
-    "metafont"
-    "mflua"
-    "metapost"
-    "luatex"
-    "luahbtex"
-    "luajittex"
-    "xetex"
-  ];
-  postInstall = ''
-    for output in $(getAllOutputNames); do
-      mkdir -p "''${!output}/bin"
-    done
-
-    mv "$out/bin"/{inimf,mf,mf-nowin} "$metafont/bin/"
-    mv "$out/bin"/mflua{,-nowin} "$mflua/bin/"
-    mv "$out/bin"/{*tomp,mfplain,*mpost} "$metapost/bin/"
-    mv "$out/bin"/{luatex,texlua,texluac} "$luatex/bin/"
-    mv "$out/bin"/luahbtex "$luahbtex/bin/"
-    mv "$out/bin"/xetex "$xetex/bin/"
-    cp ../../libs/teckit/teckit_compile "$xetex/bin/"
-  '' + lib.optionalString withLuaJIT ''
-    mv "$out/bin"/mfluajit{,-nowin} "$mflua/bin/"
-    mv "$out/bin"/{luajittex,luajithbtex,texluajit,texluajitc} "$luajittex/bin/"
-  '' ;
+  outputs = [ "out" "dev" "man" "info" ]
+    ++ (builtins.map (builtins.replaceStrings [ "-" ] [ "_" ]) coreBigPackages)
+    # some outputs of metapost, omegaware are for ptex/uptex
+    ++ [ "ptex" "uptex" ]
+    # unavoidable duplicates from core
+    ++ [ "ctie" "cweb" "omegaware" "texlive_scripts_extra" "tie" "web" ];
+  postInstall = common.moveBins;
 };
 
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
index 2e9572f168a5..c1e98d710b95 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
@@ -118,8 +118,13 @@ let
       {
         passthru = commonPassthru // { tlType = "bin"; };
         inherit meta;
-        # shebang interpreters
-        buildInputs = (args.extraBuildInputs or [ ]) ++ [ bash perl ] ++ (lib.attrVals (args.scriptExts or [ ]) extToInput);
+        # shebang interpreters and compiled binaries
+        buildInputs = let outName = builtins.replaceStrings [ "-" ] [ "_" ] pname; in
+          [ texliveBinaries.core.${outName} or null
+            texliveBinaries.${pname} or null
+            texliveBinaries.core-big.${outName} or null ]
+          ++ (args.extraBuildInputs or [ ]) ++ [ bash perl ]
+          ++ (lib.attrVals (args.scriptExts or [ ]) extToInput);
         nativeBuildInputs = extraNativeBuildInputs;
         # absolute scripts folder
         scriptsFolder = lib.optionalString (run ? outPath) (run.outPath + "/scripts/" + args.scriptsFolder or pname);
@@ -127,8 +132,6 @@ let
         inherit (args) binfiles;
         binlinks = builtins.attrNames (args.binlinks or { });
         bintargets = builtins.attrValues (args.binlinks or { });
-        binfolders = [ (lib.getBin texliveBinaries.core) ] ++
-          lib.optional (texliveBinaries ? ${pname}) (lib.getBin texliveBinaries.${pname});
         # build scripts
         patchScripts = ./patch-scripts.sed;
         makeBinContainers = ./make-bin-containers.sh;
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
index 96bc6f61e4f0..60e7043e332d 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -19,6 +19,7 @@ let
       withIcu = true; withGraphite2 = true;
     };
     inherit useFixedHashes;
+    tlpdb = overriddenTlpdb;
   };
 
   # function for creating a working environment from a set of TL packages
@@ -36,7 +37,7 @@ let
   overriddenTlpdb = let
     overrides = import ./tlpdb-overrides.nix {
       inherit
-        lib bin tlpdb tlpdbxz tl
+        stdenv lib bin tlpdb tlpdbxz tl
         installShellFiles
         coreutils findutils gawk getopt ghostscript_headless gnugrep
         gnumake gnupg gnused gzip ncurses perl python3 ruby zip;
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh b/nixpkgs/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
index c293970ac7f9..af49ae22e19f 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/make-bin-containers.sh
@@ -20,14 +20,12 @@ for binname in $binfiles ; do
 
   output="$out/bin/$binname"
 
-  # look for existing binary from bin.core or bin.${pname}
-  for folder in $binfolders ; do
-    target="$folder"/bin/"$binname"
-    if [[ -f "$target" && -x "$target" ]] ; then
-      ln -s "$(realpath "$target")" "$output"
-      continue 2
-    fi
-  done
+  # look for existing binary from bin.*
+  target="$(PATH="$HOST_PATH" command -v "$binname" || :)"
+  if [[ -n "$target" && -x "$target" ]] ; then
+    ln -s "$(realpath "$target")" "$output"
+    continue
+  fi
 
   # look for scripts
   # the explicit list of extensions avoid non-scripts such as $binname.cmd, $binname.jar, $binname.pm
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/setup-hook.sh b/nixpkgs/pkgs/tools/typesetting/tex/texlive/setup-hook.sh
deleted file mode 100644
index 5faef7fe5df5..000000000000
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/setup-hook.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-addTeXMFPath () {
-    if test -d "$1/share/texmf-nix"; then
-        export TEXINPUTS="${TEXINPUTS}${TEXINPUTS:+:}$1/share/texmf-nix//:"
-    fi
-}
-
-addEnvHooks "$targetOffset" addTeXMFPath
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
index 4d2ce46ed475..6b974c721437 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
@@ -1,4 +1,4 @@
-{ lib, tlpdb, bin, tlpdbxz, tl
+{ stdenv, lib, tlpdb, bin, tlpdbxz, tl
 , installShellFiles
 , coreutils, findutils, gawk, getopt, ghostscript_headless, gnugrep
 , gnumake, gnupg, gnused, gzip, ncurses, perl, python3, ruby, zip
@@ -13,7 +13,9 @@ let
     # so we remove them from binfiles, and add back the ones texlinks purposefully ignore (e.g. mptopdf)
     removeFormatLinks = lib.mapAttrs (_: attrs:
       if (attrs ? formats && attrs ? binfiles)
-      then let formatLinks = lib.catAttrs "name" (lib.filter (f: f.name != f.engine) attrs.formats);
+      # TLPDB reports erroneously that various metafont binaries like "mf" are format links to engines
+      # like "mf-nowin"; core-big provides both binaries and links so we simply skip them here
+      then let formatLinks = lib.catAttrs "name" (lib.filter (f: f.name != f.engine && ! lib.hasSuffix "-nowin" f.engine) attrs.formats);
                binNotFormats = lib.subtractLists formatLinks attrs.binfiles;
            in if binNotFormats != [] then attrs // { binfiles = binNotFormats; } else removeAttrs attrs [ "binfiles" ]
       else attrs);
@@ -104,10 +106,6 @@ in lib.recursiveUpdate orig rec {
 
   # remove man
   texlive-scripts.binfiles = lib.remove "man" orig.texlive-scripts.binfiles;
-
-  # upmendex is "TODO" in bin.nix
-  uptex.binfiles = lib.remove "upmendex" orig.uptex.binfiles;
-
   # xindy is broken on some platforms unfortunately
   xindy.binfiles = if bin ? xindy
     then lib.subtractLists [ "xindy.mem" "xindy.run" ] orig.xindy.binfiles
@@ -122,12 +120,6 @@ in lib.recursiveUpdate orig rec {
   epstopdf.binlinks.repstopdf = "epstopdf";
   pdfcrop.binlinks.rpdfcrop = "pdfcrop";
 
-  ptex.binlinks = {
-    pdvitomp = bin.metapost + "/bin/pdvitomp";
-    pmpost = bin.metapost + "/bin/pmpost";
-    r-pmpost = bin.metapost + "/bin/r-pmpost";
-  };
-
   texdef.binlinks = {
     latexdef = "texdef";
   };
@@ -143,13 +135,6 @@ in lib.recursiveUpdate orig rec {
     kpsexpand = "kpsetool";
   };
 
-  # metapost binaries are in bin.metapost instead of bin.core
-  uptex.binlinks = {
-    r-upmpost = bin.metapost + "/bin/r-upmpost";
-    updvitomp = bin.metapost + "/bin/updvitomp";
-    upmpost = bin.metapost + "/bin/upmpost";
-  };
-
   #### add PATH dependencies without wrappers
   # TODO deduplicate this code
   a2ping.postFixup = ''
@@ -340,6 +325,11 @@ in lib.recursiveUpdate orig rec {
 
   #### misc
 
+  # RISC-V: https://github.com/LuaJIT/LuaJIT/issues/628
+  luajittex.binfiles = lib.optionals
+    (!(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV)
+    orig.luajittex.binfiles;
+
   # tlpdb lists license as "unknown", but the README says lppl13: http://mirrors.ctan.org/language/arabic/arabi-add/README
   arabi-add.license = [  "lppl13c" ];
 
@@ -362,7 +352,7 @@ in lib.recursiveUpdate orig rec {
         mkdir -p support/texdoc
         touch support/texdoc/NEWS
 
-        TEXMFCNF="${bin.core}"/share/texmf-dist/web2c TEXMF="$out" TEXDOCS=. TEXMFVAR=. \
+        TEXMFCNF="${lib.head tl.kpathsea.pkgs}/web2c" TEXMF="$out" TEXDOCS=. TEXMFVAR=. \
           "${bin.luatex}"/bin/texlua "$out"/scripts/texdoc/texdoc.tlu \
           -c texlive_tlpdb=texlive.tlpdb -lM texdoc
 
@@ -372,7 +362,7 @@ in lib.recursiveUpdate orig rec {
 
     # install zsh completion
     postFixup = ''
-      TEXMFCNF="${bin.core}"/share/texmf-dist/web2c TEXMF="$scriptsFolder/../.." \
+      TEXMFCNF="${lib.head tl.kpathsea.pkgs}"/web2c TEXMF="$scriptsFolder/../.." \
         texlua "$out"/bin/texdoc --print-completion zsh > "$TMPDIR"/_texdoc
       substituteInPlace "$TMPDIR"/_texdoc \
         --replace 'compdef __texdoc texdoc' '#compdef texdoc' \
diff --git a/nixpkgs/pkgs/tools/typesetting/typst-live/default.nix b/nixpkgs/pkgs/tools/typesetting/typst-live/default.nix
index f9d0e2cd18c7..bb705c5ce96a 100644
--- a/nixpkgs/pkgs/tools/typesetting/typst-live/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/typst-live/default.nix
@@ -1,24 +1,22 @@
 { lib
 , rustPlatform
-, fetchFromGitHub
+, fetchCrate
 , stdenv
 , darwin
 , makeWrapper
 , typst
 }:
 
-rustPlatform.buildRustPackage {
+rustPlatform.buildRustPackage rec {
   pname = "typst-live";
-  version = "unstable-2023-05-27";
+  version = "0.6.0";
 
-  src = fetchFromGitHub {
-    owner = "ItsEthra";
-    repo = "typst-live";
-    rev = "10a2da57b93f8d6e4eaa0bfcec1e68e46b916868";
-    hash = "sha256-42QzqbyIjPn0C4coCU81gtlI7v5XJStlsDZvnLlwpYs=";
+  src = fetchCrate {
+    inherit pname version;
+    hash = "sha256-8YndEqhIESC3Cbe4klQfkVqesNFeZ2g1oRd1VoVrMnE=";
   };
 
-  cargoHash = "sha256-M5jYSLw5oquAq2gGWZOJvx5/CGAl2Rg+G94V6ivAOzc=";
+  cargoHash = "sha256-62tBefXek6W01RfdPczXBuYhrLK+wG1YQ7va7FQmAhA=";
 
   nativeBuildInputs = [
     makeWrapper
@@ -38,5 +36,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/ItsEthra/typst-live";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "typst-live";
   };
 }
diff --git a/nixpkgs/pkgs/tools/wayland/gtklock/default.nix b/nixpkgs/pkgs/tools/wayland/gtklock/default.nix
index c5146532e442..0b583ad8743e 100644
--- a/nixpkgs/pkgs/tools/wayland/gtklock/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/gtklock/default.nix
@@ -1,12 +1,14 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, wrapGAppsHook
 , pam
 , scdoc
 , gtk3
 , pkg-config
 , gtk-layer-shell
 , glib
+, librsvg
 , wayland
 , wayland-scanner
 }:
@@ -22,13 +24,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-Jh+BmtKGaLgAcTXc44ydV83dp/W4wzByehUWyeyBoFI=";
   };
 
-  strictDeps = true;
-
   nativeBuildInputs = [
     scdoc
     pkg-config
     wayland-scanner
     glib
+    wrapGAppsHook
   ];
 
   buildInputs = [
@@ -36,6 +37,7 @@ stdenv.mkDerivation rec {
     gtk3
     pam
     gtk-layer-shell
+    librsvg
   ];
 
   installFlags = [
diff --git a/nixpkgs/pkgs/tools/wayland/wleave/default.nix b/nixpkgs/pkgs/tools/wayland/wleave/default.nix
new file mode 100644
index 000000000000..74d1c0b3bc58
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/wleave/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, at-spi2-atk
+, pkg-config
+, glib
+, gtk3
+, gtk-layer-shell
+, installShellFiles
+, scdoc
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wleave";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "AMNatty";
+    repo = "wleave";
+    rev = version;
+    hash = "sha256-qo9HnaWYsNZH1J8lAyKSwAOyvlCvIsh9maioatjtGkg=";
+  };
+
+  cargoHash = "sha256-6Gppf1upWoMi+gcRSeQ1txSglAaBbpOXKs2LoJhslPQ=";
+
+  nativeBuildInputs = [
+    pkg-config
+    installShellFiles
+    scdoc
+  ];
+
+  buildInputs = [
+    at-spi2-atk
+    gtk3
+    gtk-layer-shell
+    glib
+  ];
+
+  postInstall = ''
+    for f in man/*.scd; do
+      local page="man/$(basename "$f" .scd)"
+      scdoc < "$f" > "$page"
+      installManPage "$page"
+    done
+
+    installShellCompletion --cmd wleave \
+      --bash <(cat completions/wleave.bash) \
+      --fish <(cat completions/wleave.fish) \
+      --zsh <(cat completions/_wleave)
+  '';
+
+  meta = with lib; {
+    description = "A Wayland-native logout script written in GTK3";
+    homepage = "https://github.com/AMNatty/wleave";
+    license = licenses.mit;
+    mainProgram = "wleave";
+    maintainers = with maintainers; [ ludovicopiero ];
+    platforms = platforms.linux;
+  };
+}