summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-10-14 00:02:47 +0000
committerGitHub <noreply@github.com>2023-10-14 00:02:47 +0000
commit45a3496bff0e0feeebd8c47a83f034156b535064 (patch)
tree1467aa16fcd70bb84c37711c166c4202eaa2fda8 /pkgs
parent83cb70d8c1f57519f31fde0d67fd47a164d04cc3 (diff)
parent1abaa2a9a9952d950968d4ba4f1820891780b061 (diff)
downloadnixpkgs-45a3496bff0e0feeebd8c47a83f034156b535064.tar
nixpkgs-45a3496bff0e0feeebd8c47a83f034156b535064.tar.gz
nixpkgs-45a3496bff0e0feeebd8c47a83f034156b535064.tar.bz2
nixpkgs-45a3496bff0e0feeebd8c47a83f034156b535064.tar.lz
nixpkgs-45a3496bff0e0feeebd8c47a83f034156b535064.tar.xz
nixpkgs-45a3496bff0e0feeebd8c47a83f034156b535064.tar.zst
nixpkgs-45a3496bff0e0feeebd8c47a83f034156b535064.zip
Merge staging-next into staging
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix35
-rw-r--r--pkgs/applications/editors/jetbrains/linux.nix24
-rwxr-xr-xpkgs/applications/editors/jetbrains/update_ides.py1
-rw-r--r--pkgs/applications/editors/jetbrains/versions.json24
-rw-r--r--pkgs/applications/editors/orbiton/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/qq/default.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/qq/sources.nix8
-rwxr-xr-xpkgs/applications/networking/instant-messengers/qq/update.sh31
-rw-r--r--pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/twitch-tui/default.nix2
-rw-r--r--pkgs/applications/networking/kubo/default.nix6
-rw-r--r--pkgs/applications/networking/kubo/test-repoVersion.nix13
-rw-r--r--pkgs/by-name/wa/wayidle/package.nix27
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/default.nix23
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/jcef.nix46
-rw-r--r--pkgs/development/libraries/igraph/default.nix4
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix4
-rw-r--r--pkgs/development/python-modules/markdown-it-py/default.nix2
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix4
-rw-r--r--pkgs/development/python-modules/textual/default.nix35
-rw-r--r--pkgs/development/tools/rust/probe-rs/default.nix6
-rw-r--r--pkgs/games/blobwars/blobwars-2.00-glibc-2.38.patch11
-rw-r--r--pkgs/games/blobwars/default.nix2
-rw-r--r--pkgs/servers/althttpd/default.nix6
-rw-r--r--pkgs/tools/security/ronin/Gemfile.lock93
-rw-r--r--pkgs/tools/security/ronin/gemset.nix195
-rw-r--r--pkgs/tools/wayland/wlr-randr/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix2
28 files changed, 441 insertions, 191 deletions
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index a278a05fe33..d2a83f07ed5 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -7,7 +7,6 @@
 , gdb
 , zlib
 , python3
-, icu
 , lldb
 , dotnet-sdk_7
 , maven
@@ -17,6 +16,7 @@
 , openssl
 , expat
 , libxcrypt-legacy
+, fontconfig
 , vmopts ? null
 }:
 
@@ -252,8 +252,6 @@ let
     (mkJetBrainsProduct {
       inherit pname version src wmClass jdk buildNumber;
       product = "Rider";
-      # icu is required by Rider.Backend
-      extraLdPath = [ icu ];
       meta = with lib; {
         homepage = "https://www.jetbrains.com/rider/";
         inherit description license platforms;
@@ -268,15 +266,28 @@ let
         maintainers = with maintainers; [ raphaelr ];
       };
     }).overrideAttrs (attrs: {
-      postPatch = lib.optionalString (!stdenv.isDarwin) (attrs.postPatch + ''
-        interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
-        patchelf --set-interpreter $interp \
-          lib/ReSharperHost/linux-x64/Rider.Backend \
-          plugins/dotCommon/DotFiles/linux-x64/JetBrains.Profiler.PdbServer
-
-        rm -rf lib/ReSharperHost/linux-x64/dotnet
-        ln -s ${dotnet-sdk_7} lib/ReSharperHost/linux-x64/dotnet
-      '');
+      nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ lib.optionals (stdenv.isLinux) [
+        autoPatchelfHook
+      ];
+      buildInputs = (attrs.buildInputs or [ ]) ++ lib.optionals (stdenv.isLinux) [
+        stdenv.cc.cc
+        zlib
+        fontconfig  # plugins/dotTrace/DotFiles/linux-x64/libSkiaSharp.so
+      ];
+      dontAutoPatchelf = true;
+      postFixup = (attrs.postFixup or "") + lib.optionalString (stdenv.isLinux) ''
+        (
+          cd $out/rider
+
+          # Remove dotnet copy first so it's not considered by autoPatchElf
+          rm -rf lib/ReSharperHost/linux-x64/dotnet
+          autoPatchelf \
+            lib/ReSharperHost/linux-x64/ \
+            plugins/dotCommon/DotFiles/linux-x64/ \
+            plugins/dotTrace/DotFiles/linux-x64/
+          ln -s ${dotnet-sdk_7} lib/ReSharperHost/linux-x64/dotnet
+        )
+      '';
     });
 
   buildRubyMine = { pname, version, src, license, description, wmClass, buildNumber, ... }:
diff --git a/pkgs/applications/editors/jetbrains/linux.nix b/pkgs/applications/editors/jetbrains/linux.nix
index 2d6cbf5b872..c5490e01b51 100644
--- a/pkgs/applications/editors/jetbrains/linux.nix
+++ b/pkgs/applications/editors/jetbrains/linux.nix
@@ -89,6 +89,21 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
     if [ -d "plugins/remote-dev-server" ]; then
       patch -p1 < ${./JetbrainsRemoteDev.patch}
     fi
+
+    vmopts_file=bin/linux/${vmoptsName}
+    if [[ ! -f $vmopts_file ]]; then
+      vmopts_file=bin/${vmoptsName}
+      if [[ ! -f $vmopts_file ]]; then
+        echo "ERROR: $vmopts_file not found"
+        exit 1
+      fi
+    fi
+    echo -Djna.library.path=${lib.makeLibraryPath ([
+      libsecret e2fsprogs libnotify
+      # Required for Help -> Collect Logs
+      # in at least rider and goland
+      udev
+    ])} >> $vmopts_file
   '';
 
   installPhase = ''
@@ -106,14 +121,7 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
 
     wrapProgram  "$out/$pname/bin/${loName}.sh" \
       --prefix PATH : "$out/libexec/${pname}:${lib.makeBinPath [ jdk coreutils gnugrep which git python3 ]}" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath ([
-        # Some internals want libstdc++.so.6
-        stdenv.cc.cc.lib libsecret e2fsprogs
-        libnotify
-        # Required for Help -> Collect Logs
-        # in at least rider and goland
-        udev
-      ] ++ extraLdPath)}" \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath extraLdPath}" \
       ${lib.concatStringsSep " " extraWrapperArgs} \
       --set-default JDK_HOME "$jdk" \
       --set-default ANDROID_JAVA_HOME "$jdk" \
diff --git a/pkgs/applications/editors/jetbrains/update_ides.py b/pkgs/applications/editors/jetbrains/update_ides.py
index 9008906bde7..c15f6d7f2c3 100755
--- a/pkgs/applications/editors/jetbrains/update_ides.py
+++ b/pkgs/applications/editors/jetbrains/update_ides.py
@@ -31,6 +31,7 @@ def download_channels():
     return {
         channel["@name"]: channel
         for product in products
+        if "channel" in product
         for channel in one_or_more(product["channel"])
     }
 
diff --git a/pkgs/applications/editors/jetbrains/versions.json b/pkgs/applications/editors/jetbrains/versions.json
index 1a1f17c54e9..7e19b333ea4 100644
--- a/pkgs/applications/editors/jetbrains/versions.json
+++ b/pkgs/applications/editors/jetbrains/versions.json
@@ -108,10 +108,10 @@
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.tar.gz",
-      "version": "2023.2 EAP",
-      "sha256": "1f67e1a82f5cbb7c84382c7f251ae06b1e2699fa7d2fa4129e23ec2e43251687",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-232.9921.62.tar.gz",
-      "build_number": "232.9921.62"
+      "version": "2023.3 EAP",
+      "sha256": "3dd8e99b066164efc11e86e3289e444c5238dfce8e9142fe2d3a8c340eeeb175",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.8264.22.tar.gz",
+      "build_number": "233.8264.22"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
@@ -231,10 +231,10 @@
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.dmg",
-      "version": "2023.2 EAP",
-      "sha256": "dfde444bff011783cb4a5aa2aafae8ea989874c19535b01da8214df5eb3174fb",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-232.9921.62.dmg",
-      "build_number": "232.9921.62"
+      "version": "2023.3 EAP",
+      "sha256": "889ed748efbd44b76da03186efac063baf36c2208d919550dd97cf2dae8f40e3",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.8264.22.dmg",
+      "build_number": "233.8264.22"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
@@ -354,10 +354,10 @@
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.dmg",
-      "version": "2023.2 EAP",
-      "sha256": "35d44a4f72c027283843aaa6409de701d14274cdc5a614c3fdc53121383f9389",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-232.9921.62-aarch64.dmg",
-      "build_number": "232.9921.62"
+      "version": "2023.3 EAP",
+      "sha256": "9c4f26089697f6cb394e971dac8ef4fe974b5ecffd63311fcf0be66d4b4aec59",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.8264.22-aarch64.dmg",
+      "build_number": "233.8264.22"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
diff --git a/pkgs/applications/editors/orbiton/default.nix b/pkgs/applications/editors/orbiton/default.nix
index b541f7a9049..a4822d43154 100644
--- a/pkgs/applications/editors/orbiton/default.nix
+++ b/pkgs/applications/editors/orbiton/default.nix
@@ -4,13 +4,13 @@
 
 buildGoModule rec {
   pname = "orbiton";
-  version = "2.65.1";
+  version = "2.65.2";
 
   src = fetchFromGitHub {
     owner = "xyproto";
     repo = "orbiton";
     rev = "v${version}";
-    hash = "sha256-ebtzhir6nBnIawkJJq+BgXv/5CbXtbhujXkMBzQEsNY=";
+    hash = "sha256-wuRbn3zQlyqba21tKLVCRfs8QgreWQ+FBFDw6myoYbk=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/instant-messengers/qq/default.nix b/pkgs/applications/networking/instant-messengers/qq/default.nix
index 54a2e9e6c01..af5cf167a62 100644
--- a/pkgs/applications/networking/instant-messengers/qq/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qq/default.nix
@@ -23,23 +23,23 @@
 }:
 
 let
-  version = "3.2.1-17153";
-  _hash = "b69de82d";
+  sources = import ./sources.nix;
   srcs = {
     x86_64-linux = fetchurl {
-      url = "https://dldir1.qq.com/qqfile/qq/QQNT/${_hash}/linuxqq_${version}_amd64.deb";
-      hash = "sha256-+GjTjv0K2vnlkb46KhMvRRFWuIEBz23Lg3QhiA7QzkA=";
+      url = "https://dldir1.qq.com/qqfile/qq/QQNT/${sources.urlhash}/linuxqq_${sources.version}_amd64.deb";
+      hash = sources.amd64_hash;
     };
     aarch64-linux = fetchurl {
-      url = "https://dldir1.qq.com/qqfile/qq/QQNT/${_hash}/linuxqq_${version}_arm64.deb";
-      hash = "sha256-BtmmVpKZF15aU7RRmXl9g5leg2jz5sT4vYXluq9aIYk=";
+      url = "https://dldir1.qq.com/qqfile/qq/QQNT/${sources.urlhash}/linuxqq_${sources.version}_arm64.deb";
+      hash = sources.arm64_hash;
     };
   };
   src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 in
 stdenv.mkDerivation {
   pname = "qq";
-  inherit version src;
+  version = sources.version;
+  inherit src;
 
   nativeBuildInputs = [
     autoPatchelfHook
@@ -98,6 +98,8 @@ stdenv.mkDerivation {
     )
   '';
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     homepage = "https://im.qq.com/linuxqq/";
     description = "Messaging app";
diff --git a/pkgs/applications/networking/instant-messengers/qq/sources.nix b/pkgs/applications/networking/instant-messengers/qq/sources.nix
new file mode 100644
index 00000000000..68c615e3812
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/qq/sources.nix
@@ -0,0 +1,8 @@
+# Generated by ./update.sh - do not update manually!
+# Last updated: 2023-09-26
+{
+  version = "3.2.1-17153";
+  urlhash = "b69de82d";
+  arm64_hash = "sha256-BtmmVpKZF15aU7RRmXl9g5leg2jz5sT4vYXluq9aIYk=";
+  amd64_hash = "sha256-+GjTjv0K2vnlkb46KhMvRRFWuIEBz23Lg3QhiA7QzkA=";
+}
diff --git a/pkgs/applications/networking/instant-messengers/qq/update.sh b/pkgs/applications/networking/instant-messengers/qq/update.sh
new file mode 100755
index 00000000000..312fc210857
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/qq/update.sh
@@ -0,0 +1,31 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash --pure --keep GITHUB_TOKEN -p nix git curl cacert nix-prefetch-git jq
+
+set -euo pipefail
+
+cd $(readlink -e $(dirname "${BASH_SOURCE[0]}"))
+
+payload=$(curl https://im.qq.com/rainbow/linuxQQDownload | grep -oP "var params= \K\{.*\}(?=;)")
+amd64_url=$(jq -r .x64DownloadUrl.deb <<< "$payload")
+arm64_url=$(jq -r .armDownloadUrl.deb <<< "$payload")
+
+urlhash=$(grep -oP "(?<=QQNT/)[a-e0-9]+(?=/linuxqq)" <<< "$amd64_url")
+version=$(grep -oP "(?<=/linuxqq_).*(?=_amd64.deb)" <<< "$amd64_url")
+
+amd64_hash=$(nix-prefetch-url $amd64_url)
+arm64_hash=$(nix-prefetch-url $arm64_url)
+
+# use friendlier hashes
+amd64_hash=$(nix hash to-sri --type sha256 "$amd64_hash")
+arm64_hash=$(nix hash to-sri --type sha256 "$arm64_hash")
+
+cat >sources.nix <<EOF
+# Generated by ./update.sh - do not update manually!
+# Last updated: $(date +%F)
+{
+  version = "$version";
+  urlhash = "$urlhash";
+  arm64_hash = "$arm64_hash";
+  amd64_hash = "$amd64_hash";
+}
+EOF
diff --git a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index 5755327aec7..b62b22882ed 100644
--- a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -2,13 +2,13 @@
 
 (if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv).mkDerivation rec {
   pname = "signalbackup-tools";
-  version = "20231003";
+  version = "20231011-1";
 
   src = fetchFromGitHub {
     owner = "bepaald";
     repo = pname;
     rev = version;
-    hash = "sha256-fMVLmuhdccYzsOgVvViaICmbXgU0o3Fu0K85hbao4YI=";
+    hash = "sha256-AwlhKF7Tsx20v6t4P6j7E4XPlg9Nq+BSYOFVY+3byos=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix b/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
index d4877da6942..6ca9bdc0e76 100644
--- a/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
+++ b/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
@@ -4,6 +4,7 @@
 , rustPlatform
 , pkg-config
 , openssl
+, CoreServices
 , Security
 }:
 
@@ -27,6 +28,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [
     openssl
   ] ++ lib.optionals stdenv.isDarwin [
+    CoreServices
     Security
   ];
 
diff --git a/pkgs/applications/networking/kubo/default.nix b/pkgs/applications/networking/kubo/default.nix
index 4f57c481cfe..75c69596ddd 100644
--- a/pkgs/applications/networking/kubo/default.nix
+++ b/pkgs/applications/networking/kubo/default.nix
@@ -2,6 +2,7 @@
 , buildGoModule
 , fetchurl
 , nixosTests
+, callPackage
 }:
 
 buildGoModule rec {
@@ -29,7 +30,10 @@ buildGoModule rec {
 
   subPackages = [ "cmd/ipfs" ];
 
-  passthru.tests.kubo = nixosTests.kubo;
+  passthru.tests = {
+    inherit (nixosTests) kubo;
+    repoVersion = callPackage ./test-repoVersion.nix {};
+  };
 
   vendorHash = null;
 
diff --git a/pkgs/applications/networking/kubo/test-repoVersion.nix b/pkgs/applications/networking/kubo/test-repoVersion.nix
new file mode 100644
index 00000000000..25fd8fcfbf4
--- /dev/null
+++ b/pkgs/applications/networking/kubo/test-repoVersion.nix
@@ -0,0 +1,13 @@
+{ runCommand, kubo }:
+
+runCommand "kubo-test-repoVersion" { } ''
+  export IPFS_PATH="$TMPDIR"
+  "${kubo}/bin/ipfs" init --empty-repo
+  declared_repo_version='${kubo.repoVersion}'
+  actual_repo_version="$(cat "$IPFS_PATH/version")"
+  if [ "$declared_repo_version" != "$actual_repo_version" ]; then
+    echo "kubo.repoVersion is not set correctly. It should be $actual_repo_version but is $declared_repo_version."
+    exit 1
+  fi
+  touch "$out"
+''
diff --git a/pkgs/by-name/wa/wayidle/package.nix b/pkgs/by-name/wa/wayidle/package.nix
new file mode 100644
index 00000000000..e563137c1df
--- /dev/null
+++ b/pkgs/by-name/wa/wayidle/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromSourcehut
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wayidle";
+  version = "0.1.1";
+
+  src = fetchFromSourcehut {
+    owner = "~whynothugo";
+    repo = "wayidle";
+    rev = "v${version}";
+    hash = "sha256-6wULrwGnXLdrX/THanJThbykKjNKpGukw9dj0jX0/dM=";
+  };
+
+  cargoHash = "sha256-zF2s3XSXnN7jVtv/0axzHiIJd/cb6wMYAOQILXp1U5U=";
+
+  meta = with lib; {
+    description = "Execute a program when a Wayland compositor reports being N seconds idle";
+    homepage = "https://git.sr.ht/~whynothugo/wayidle";
+    license = licenses.isc;
+    maintainers = with maintainers; [ tomfitzhenry ];
+    mainProgram = "wayidle";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 377f66ca97b..9d5e53700c1 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -27,6 +27,13 @@
 , udev
 }:
 
+let
+  arch = {
+    "aarch64-linux" = "aarch64";
+    "x86_64-linux" = "x64";
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+  cpu = stdenv.hostPlatform.parsed.cpu.name;
+in
 openjdk17.overrideAttrs (oldAttrs: rec {
   pname = "jetbrains-jdk-jcef";
   javaVersion = "17.0.7";
@@ -57,22 +64,22 @@ openjdk17.overrideAttrs (oldAttrs: rec {
   buildPhase = ''
     runHook preBuild
 
-    mkdir -p jcef_linux_x64/jmods
-    cp ${jetbrains.jcef}/* jcef_linux_x64/jmods
+    mkdir -p jcef_linux_${arch}/jmods
+    cp ${jetbrains.jcef}/* jcef_linux_${arch}/jmods
 
     sed \
         -e "s/OPENJDK_TAG=.*/OPENJDK_TAG=${openjdkTag}/" \
         -e "s/SOURCE_DATE_EPOCH=.*//" \
         -e "s/export SOURCE_DATE_EPOCH//" \
         -i jb/project/tools/common/scripts/common.sh
-    sed -i "s/STATIC_CONF_ARGS/STATIC_CONF_ARGS \$configureFlags/" jb/project/tools/linux/scripts/mkimages_x64.sh
+    sed -i "s/STATIC_CONF_ARGS/STATIC_CONF_ARGS \$configureFlags/" jb/project/tools/linux/scripts/mkimages_${arch}.sh
     sed \
         -e "s/create_image_bundle \"jb/#/" \
         -e "s/echo Creating /exit 0 #/" \
-        -i jb/project/tools/linux/scripts/mkimages_x64.sh
+        -i jb/project/tools/linux/scripts/mkimages_${arch}.sh
 
     patchShebangs .
-    ./jb/project/tools/linux/scripts/mkimages_x64.sh ${build} ${if debugBuild then "fd" else "jcef"}
+    ./jb/project/tools/linux/scripts/mkimages_${arch}.sh ${build} ${if debugBuild then "fd" else "jcef"}
 
     runHook postBuild
   '';
@@ -84,9 +91,9 @@ openjdk17.overrideAttrs (oldAttrs: rec {
   in ''
     runHook preInstall
 
-    mv build/linux-x86_64-server-${buildType}/images/jdk/man build/linux-x86_64-server-${buildType}/images/jbrsdk${jcefSuffix}-${javaVersion}-linux-x64${debugSuffix}-b${build}
-    rm -rf build/linux-x86_64-server-${buildType}/images/jdk
-    mv build/linux-x86_64-server-${buildType}/images/jbrsdk${jcefSuffix}-${javaVersion}-linux-x64${debugSuffix}-b${build} build/linux-x86_64-server-${buildType}/images/jdk
+    mv build/linux-${cpu}-server-${buildType}/images/jdk/man build/linux-${cpu}-server-${buildType}/images/jbrsdk${jcefSuffix}-${javaVersion}-linux-${arch}${debugSuffix}-b${build}
+    rm -rf build/linux-${cpu}-server-${buildType}/images/jdk
+    mv build/linux-${cpu}-server-${buildType}/images/jbrsdk${jcefSuffix}-${javaVersion}-linux-${arch}${debugSuffix}-b${build} build/linux-${cpu}-server-${buildType}/images/jdk
   '' + oldAttrs.installPhase + "runHook postInstall";
 
   postInstall = ''
diff --git a/pkgs/development/compilers/jetbrains-jdk/jcef.nix b/pkgs/development/compilers/jetbrains-jdk/jcef.nix
index 165c9bea58e..a36eae8be52 100644
--- a/pkgs/development/compilers/jetbrains-jdk/jcef.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/jcef.nix
@@ -73,6 +73,23 @@ let rpath = lib.makeLibraryPath [
 ];
 
 buildType = if debugBuild then "Debug" else "Release";
+platform = {
+  "aarch64-linux" = "linuxarm64";
+  "x86_64-linux" = "linux64";
+}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+arches = {
+  "linuxarm64" = {
+    depsArch = "arm64";
+    projectArch = "arm64";
+    targetArch = "arm64";
+  };
+  "linux64" = {
+    depsArch = "amd64";
+    projectArch = "x86_64";
+    targetArch = "x86_64";
+  };
+}.${platform};
+inherit (arches) depsArch projectArch targetArch;
 
 in stdenv.mkDerivation rec {
   pname = "jcef-jetbrains";
@@ -92,12 +109,15 @@ in stdenv.mkDerivation rec {
     hash = "sha256-3HuW8upR/bZoK8euVti2KpCZh9xxfqgyHmgoG1NjxOI=";
   };
   cef-bin = let
-    fileName = "cef_binary_111.2.1+g870da30+chromium-111.0.5563.64_linux64_minimal";
-    urlName = builtins.replaceStrings ["+"] ["%2B"] fileName;
-  in fetchzip rec {
-    name = fileName;
+    name = "cef_binary_111.2.1+g870da30+chromium-111.0.5563.64_${platform}_minimal";
+    hash = {
+      "linuxarm64" = "sha256-gCDIfWsysXE8lHn7H+YM3Jag+mdbWwTQpJf0GKdXEVs=";
+      "linux64" = "sha256-r+zXTmDN5s/bYLvbCnHufYdXIqQmCDlbWgs5pdOpLTw=";
+    }.${platform};
+    urlName = builtins.replaceStrings ["+"] ["%2B"] name;
+  in fetchzip {
     url = "https://cef-builds.spotifycdn.com/${urlName}.tar.bz2";
-    hash = "sha256-r+zXTmDN5s/bYLvbCnHufYdXIqQmCDlbWgs5pdOpLTw=";
+    inherit name hash;
   };
   clang-fmt = fetchurl {
     url = "https://storage.googleapis.com/chromium-clang-format/dd736afb28430c9782750fc0fd5f0ed497399263";
@@ -128,7 +148,7 @@ in stdenv.mkDerivation rec {
     mkdir jcef_build
     cd jcef_build
 
-    cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_BUILD_TYPE=${buildType} ..
+    cmake -G "Ninja" -DPROJECT_ARCH="${projectArch}" -DCMAKE_BUILD_TYPE=${buildType} ..
 
     runHook postConfigure
   '';
@@ -137,7 +157,7 @@ in stdenv.mkDerivation rec {
 
   postBuild = ''
     export JCEF_ROOT_DIR=$(realpath ..)
-    ../tools/compile.sh linux64 Release
+    ../tools/compile.sh ${platform} Release
   '';
 
   # Mostly taken from jb/tools/common/create_modules.sh
@@ -148,8 +168,8 @@ in stdenv.mkDerivation rec {
     export OUT_NATIVE_DIR=$JCEF_ROOT_DIR/jcef_build/native/${buildType}
     export JB_TOOLS_DIR=$(realpath ../jb/tools)
     export JB_TOOLS_OS_DIR=$JB_TOOLS_DIR/linux
-    export OUT_CLS_DIR=$(realpath ../out/linux64)
-    export TARGET_ARCH=x86_64 DEPS_ARCH=amd64
+    export OUT_CLS_DIR=$(realpath ../out/${platform})
+    export TARGET_ARCH=${targetArch} DEPS_ARCH=${depsArch}
     export OS=linux
     export JOGAMP_DIR="$JCEF_ROOT_DIR"/third_party/jogamp/jar
 
@@ -183,7 +203,11 @@ in stdenv.mkDerivation rec {
     jar uf gluegen-rt.jar module-info.class
     rm module-info.class module-info.java
     mkdir lib
+  ''
+  # see https://github.com/JetBrains/jcef/commit/f3b787e3326c1915d663abded7f055c0866f32ec
+  + lib.optionalString (platform != "linuxarm64") ''
     extract_jar "$JOGAMP_DIR"/gluegen-rt-natives-"$OS"-"$DEPS_ARCH".jar lib natives/"$OS"-"$DEPS_ARCH"
+  '' + ''
 
     cd ../jogl
     cp "$JOGAMP_DIR"/gluegen-rt.jar .
@@ -193,7 +217,11 @@ in stdenv.mkDerivation rec {
     jar uf jogl-all.jar module-info.class
     rm module-info.class module-info.java
     mkdir lib
+  ''
+  # see https://github.com/JetBrains/jcef/commit/f3b787e3326c1915d663abded7f055c0866f32ec
+  + lib.optionalString (platform != "linuxarm64") ''
     extract_jar "$JOGAMP_DIR"/jogl-all-natives-"$OS"-"$DEPS_ARCH".jar lib natives/"$OS"-"$DEPS_ARCH"
+  '' + ''
 
     cd ../jcef
     cp "$OUT_CLS_DIR"/jcef.jar .
diff --git a/pkgs/development/libraries/igraph/default.nix b/pkgs/development/libraries/igraph/default.nix
index dc49780b329..21396a6bdaf 100644
--- a/pkgs/development/libraries/igraph/default.nix
+++ b/pkgs/development/libraries/igraph/default.nix
@@ -37,6 +37,10 @@ stdenv.mkDerivation (finalAttrs: {
 
   postPatch = ''
     echo "${finalAttrs.version}" > IGRAPH_VERSION
+  ''
+  # https://github.com/igraph/igraph/issues/2340
+  + lib.optionalString stdenv.isDarwin ''
+    sed -i "/safelocale/d" tests/CMakeLists.txt
   '';
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index 72e2289569c..dd7c1eec672 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.17.0";
+  version = "0.17.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xtonZVaUVjxUNCl2jJnBlP8wh4s92VeD958x9dZM19U=";
+    hash = "sha256-zoZIxp9+4FVPLCiikKussC34rwWBQzWMDlZx9S7NnqQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/markdown-it-py/default.nix b/pkgs/development/python-modules/markdown-it-py/default.nix
index 8b1d4a48829..ed3df6f804e 100644
--- a/pkgs/development/python-modules/markdown-it-py/default.nix
+++ b/pkgs/development/python-modules/markdown-it-py/default.nix
@@ -6,6 +6,7 @@
 , flit-core
 , linkify-it-py
 , markdown
+, mdit-py-plugins
 , mdurl
 , mistletoe
 , mistune
@@ -69,6 +70,7 @@ buildPythonPackage rec {
   passthru.optional-dependencies = {
     compare = [ commonmark markdown mistletoe mistune panflute ];
     linkify = [ linkify-it-py ];
+    plugins = [ mdit-py-plugins ];
     rtd = [ attrs myst-parser pyyaml sphinx sphinx-copybutton sphinx-design sphinx-book-theme ];
   };
 
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
index 887c5446d53..eaf7d30efb5 100644
--- a/pkgs/development/python-modules/mpi4py/default.nix
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "mpi4py";
-  version = "3.1.4";
+  version = "3.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-F4WPLrxiMiDQEg0fqNQo0DPd50nEvDWzPYGmatf5NIA=";
+    hash = "sha256-pwbnbbklUTXC+10e9Uy097DkrZ4zy62n3idiYgXyoVM=";
   };
 
   passthru = {
diff --git a/pkgs/development/python-modules/textual/default.nix b/pkgs/development/python-modules/textual/default.nix
index e4be329b0a9..6b7598a386b 100644
--- a/pkgs/development/python-modules/textual/default.nix
+++ b/pkgs/development/python-modules/textual/default.nix
@@ -1,15 +1,9 @@
 { lib
-, aiohttp
 , buildPythonPackage
-, click
 , fetchFromGitHub
 , importlib-metadata
 , jinja2
-, linkify-it-py
 , markdown-it-py
-, mdit-py-plugins
-, mkdocs-exclude
-, msgpack
 , poetry-core
 , pytest-aiohttp
 , pytestCheckHook
@@ -17,13 +11,14 @@
 , rich
 , syrupy
 , time-machine
+, tree-sitter
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "textual";
-  version = "0.37.1";
-  format = "pyproject";
+  version = "0.40.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -31,7 +26,7 @@ buildPythonPackage rec {
     owner = "Textualize";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-4ehq36j2n2wRMgos5x4LQ0QeELpWAOgpgTxEWjqFLJs=";
+    hash = "sha256-+3bxc0ryHtbEJkB+EqjJhW+yWJWxMkxlSav4v6D3/gw=";
   };
 
   nativeBuildInputs = [
@@ -39,18 +34,19 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    aiohttp
-    click
     importlib-metadata
-    linkify-it-py
     markdown-it-py
-    mdit-py-plugins
-    mkdocs-exclude
-    msgpack
     rich
-  ] ++ lib.optionals (pythonOlder "3.11") [
     typing-extensions
-  ];
+  ] ++ markdown-it-py.optional-dependencies.plugins
+    ++ markdown-it-py.optional-dependencies.linkify;
+
+  passthru.optional-dependencies = {
+    syntax = [
+      tree-sitter
+      # tree-sitter-languages
+    ];
+  };
 
   nativeCheckInputs = [
     jinja2
@@ -58,7 +54,7 @@ buildPythonPackage rec {
     pytestCheckHook
     syrupy
     time-machine
-  ];
+  ] ++ passthru.optional-dependencies.syntax;
 
   disabledTestPaths = [
     # snapshot tests require syrupy<4
@@ -69,6 +65,9 @@ buildPythonPackage rec {
     # Assertion issues
     "test_textual_env_var"
     "test_softbreak_split_links_rendered_correctly"
+
+    # requires tree-sitter-languages which is not packaged in nixpkgs
+    "test_register_language"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/tools/rust/probe-rs/default.nix b/pkgs/development/tools/rust/probe-rs/default.nix
index ae30c18bd83..4bb0a4de6a1 100644
--- a/pkgs/development/tools/rust/probe-rs/default.nix
+++ b/pkgs/development/tools/rust/probe-rs/default.nix
@@ -11,14 +11,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "probe-rs";
-  version = "0.21.0";
+  version = "0.21.1";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-3L4dvEIPxbNYh+Z5G1iccqLLYi13RTRaFnOD4U/zNtE=";
+    hash = "sha256-UmQwz9Ejb5+epwGKsglV3QdWGqOEH/3DRqvKtfm14kg=";
   };
 
-  cargoHash = "sha256-peCXG9TrsnBqQOy+pgRNGstn0bwKNCdWQ3Jn5r0fcOI=";
+  cargoHash = "sha256-awa84xvIRrEhuPm4N2xt5bsYy2wbLjJokrKoAxCYvR4=";
 
   cargoBuildFlags = [ "--features=cli" ];
 
diff --git a/pkgs/games/blobwars/blobwars-2.00-glibc-2.38.patch b/pkgs/games/blobwars/blobwars-2.00-glibc-2.38.patch
new file mode 100644
index 00000000000..4fe3e373afd
--- /dev/null
+++ b/pkgs/games/blobwars/blobwars-2.00-glibc-2.38.patch
@@ -0,0 +1,11 @@
+--- a/src/headers.h
++++ b/src/headers.h
+@@ -56,7 +56,7 @@ extern DECLSPEC int SDLCALL SDL_GetGamma(float *red, float *green, float *blue);
+ #define textdomain(x) while(false)
+ #endif
+ 
+-#if !defined(OpenBSD) && !defined(FreeBSD) && !defined(__APPLE__)
++#if !defined(OpenBSD) && !defined(FreeBSD) && !defined(__APPLE__) && !(defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 38)
+ static inline void strlcat(char *dest, const char *src, size_t n) { strncat(dest, src, n - 1); }
+ static inline void strlcpy(char *dest, const char *src, size_t n) { strncpy(dest, src, n); dest[n - 1] = 0; }
+ #endif
diff --git a/pkgs/games/blobwars/default.nix b/pkgs/games/blobwars/default.nix
index b0951064c24..dd94fc10969 100644
--- a/pkgs/games/blobwars/default.nix
+++ b/pkgs/games/blobwars/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "c406279f6cdf2aed3c6edb8d8be16efeda0217494acd525f39ee2bd3e77e4a99";
   };
 
+  patches = [ ./blobwars-2.00-glibc-2.38.patch ];
+
   nativeBuildInputs = [ pkg-config gettext ];
   buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf zlib ];
   env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error" ];
diff --git a/pkgs/servers/althttpd/default.nix b/pkgs/servers/althttpd/default.nix
index 1f3271be6ab..49d552f48dc 100644
--- a/pkgs/servers/althttpd/default.nix
+++ b/pkgs/servers/althttpd/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "althttpd";
-  version = "unstable-2022-08-12";
+  version = "unstable-2023-08-12";
 
   src = fetchfossil {
     url = "https://sqlite.org/althttpd/";
-    rev = "823a1d985d4bacaa";
-    sha256 = "sha256-yfVsOfqtHw9ftnK5B4RWeRR/ygfsTEDm7fFSaVxsCas=";
+    rev = "c0bdc68e6c56ef25";
+    sha256 = "sha256-VoDR5MlVlvar9wYA0kUhvDQVjxDwsZlqrNR3u4Tqw5c=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/ronin/Gemfile.lock b/pkgs/tools/security/ronin/Gemfile.lock
index 74d82289194..4157e599413 100644
--- a/pkgs/tools/security/ronin/Gemfile.lock
+++ b/pkgs/tools/security/ronin/Gemfile.lock
@@ -1,37 +1,47 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activemodel (7.0.6)
-      activesupport (= 7.0.6)
-    activerecord (7.0.6)
-      activemodel (= 7.0.6)
-      activesupport (= 7.0.6)
-    activesupport (7.0.6)
+    activemodel (7.1.0)
+      activesupport (= 7.1.0)
+    activerecord (7.1.0)
+      activemodel (= 7.1.0)
+      activesupport (= 7.1.0)
+      timeout (>= 0.4.0)
+    activesupport (7.1.0)
+      base64
+      bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
+      connection_pool (>= 2.2.5)
+      drb
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
+      mutex_m
       tzinfo (~> 2.0)
-    addressable (2.8.4)
+    addressable (2.8.5)
       public_suffix (>= 2.0.2, < 6.0)
-    async (2.6.2)
+    async (2.6.4)
       console (~> 1.10)
       fiber-annotation
       io-event (~> 1.1)
       timers (~> 4.1)
-    async-io (1.35.0)
+    async-io (1.36.0)
       async
+    base64 (0.1.1)
+    bigdecimal (3.1.4)
     chars (0.3.2)
     combinatorics (0.4.4)
     command_kit (0.4.0)
     command_mapper (0.3.1)
     concurrent-ruby (1.2.2)
     connection_pool (2.4.1)
-    console (1.18.0)
+    console (1.23.2)
       fiber-annotation
       fiber-local
     date (3.3.3)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
+    drb (2.1.1)
+      ruby2_keywords
     fake_io (0.1.0)
     fiber-annotation (0.2.0)
     fiber-local (1.0.0)
@@ -41,9 +51,10 @@ GEM
     i18n (1.14.1)
       concurrent-ruby (~> 1.0)
     io-console (0.6.0)
-    io-event (1.2.2)
-    irb (1.7.4)
-      reline (>= 0.3.6)
+    io-event (1.3.2)
+    irb (1.8.1)
+      rdoc
+      reline (>= 0.3.8)
     mechanize (2.9.1)
       addressable (~> 2.8)
       domain_name (~> 0.5, >= 0.5.20190701)
@@ -55,29 +66,30 @@ GEM
       rubyntlm (~> 0.6, >= 0.6.3)
       webrick (~> 1.7)
       webrobots (~> 0.1.2)
-    mime-types (3.4.1)
+    mime-types (3.5.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2023.0218.1)
+    mime-types-data (3.2023.1003)
     mini_portile2 (2.8.4)
-    minitest (5.18.1)
+    minitest (5.20.0)
     mustermann (3.0.0)
       ruby2_keywords (~> 0.0.1)
+    mutex_m (0.1.2)
     net-ftp (0.2.0)
       net-protocol
       time
     net-http-digest_auth (1.4.1)
     net-http-persistent (4.0.2)
       connection_pool (~> 2.2)
-    net-imap (0.3.6)
+    net-imap (0.4.1)
       date
       net-protocol
     net-pop (0.1.2)
       net-protocol
     net-protocol (0.2.1)
       timeout
-    net-smtp (0.3.3)
+    net-smtp (0.4.0)
       net-protocol
-    nokogiri (1.15.3)
+    nokogiri (1.15.4)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
     nokogiri-diff (0.2.0)
@@ -86,17 +98,21 @@ GEM
     nokogiri-ext (0.1.0)
       nokogiri (~> 1.0)
     open_namespace (0.4.1)
+    psych (5.1.0)
+      stringio
     public_suffix (5.0.3)
     racc (1.7.1)
-    rack (2.2.7)
-    rack-protection (3.0.6)
-      rack
+    rack (2.2.8)
+    rack-protection (3.1.0)
+      rack (~> 2.2, >= 2.2.4)
     rack-user_agent (0.5.3)
       rack (>= 1.5)
       woothee (>= 1.0.0)
-    reline (0.3.6)
+    rdoc (6.5.0)
+      psych (>= 4.0.0)
+    reline (0.3.9)
       io-console (~> 0.5)
-    ronin (2.0.4)
+    ronin (2.0.5)
       async-io (~> 1.0)
       open_namespace (~> 0.4)
       ronin-code-asm (~> 1.0)
@@ -107,11 +123,11 @@ GEM
       ronin-fuzzer (~> 0.1)
       ronin-payloads (~> 0.1, >= 0.1.1)
       ronin-repos (~> 0.1)
-      ronin-support (~> 1.0, >= 1.0.1)
+      ronin-support (~> 1.0, >= 1.0.3)
       ronin-vulns (~> 0.1, >= 0.1.2)
       ronin-web (~> 1.0, >= 1.0.1)
       rouge (~> 3.0)
-      wordlist (~> 1.0, >= 1.0.2)
+      wordlist (~> 1.0, >= 1.0.3)
     ronin-code-asm (1.0.0)
       ruby-yasm (~> 0.3)
     ronin-code-sql (2.1.0)
@@ -120,15 +136,15 @@ GEM
       command_kit (~> 0.4)
       irb (~> 1.0)
       reline (~> 0.1)
-    ronin-db (0.1.1)
+    ronin-db (0.1.2)
       ronin-core (~> 0.1)
       ronin-db-activerecord (~> 0.1)
       ronin-support (~> 1.0)
       sqlite3 (~> 1.0)
-    ronin-db-activerecord (0.1.1)
+    ronin-db-activerecord (0.1.2)
       activerecord (~> 7.0)
       uri-query_params (~> 0.6)
-    ronin-exploits (1.0.2)
+    ronin-exploits (1.0.3)
       ronin-code-sql (~> 2.0)
       ronin-core (~> 0.1)
       ronin-payloads (~> 0.1, >= 0.1.1)
@@ -141,7 +157,7 @@ GEM
       combinatorics (~> 0.4)
       ronin-core (~> 0.1)
       ronin-support (~> 1.0)
-    ronin-payloads (0.1.3)
+    ronin-payloads (0.1.4)
       ronin-code-asm (~> 1.0)
       ronin-core (~> 0.1)
       ronin-post_ex (~> 0.1)
@@ -153,13 +169,13 @@ GEM
       ronin-core (~> 0.1)
     ronin-repos (0.1.1)
       ronin-core (~> 0.1)
-    ronin-support (1.0.2)
+    ronin-support (1.0.3)
       addressable (~> 2.0)
       chars (~> 0.3, >= 0.3.2)
       combinatorics (~> 0.4)
       hexdump (~> 1.0)
       uri-query_params (~> 0.8)
-    ronin-vulns (0.1.3)
+    ronin-vulns (0.1.4)
       ronin-core (~> 0.1)
       ronin-support (~> 1.0, >= 1.0.1)
     ronin-web (1.0.2)
@@ -188,17 +204,18 @@ GEM
       command_mapper (~> 0.1)
     ruby2_keywords (0.0.5)
     rubyntlm (0.6.3)
-    sinatra (3.0.6)
+    sinatra (3.1.0)
       mustermann (~> 3.0)
       rack (~> 2.2, >= 2.2.4)
-      rack-protection (= 3.0.6)
+      rack-protection (= 3.1.0)
       tilt (~> 2.0)
     spidr (0.7.0)
       nokogiri (~> 1.3)
-    sqlite3 (1.6.3)
+    sqlite3 (1.6.6)
       mini_portile2 (~> 2.8.0)
+    stringio (3.0.8)
     tdiff (0.3.4)
-    tilt (2.2.0)
+    tilt (2.3.0)
     time (0.2.2)
       date
     timeout (0.4.0)
@@ -212,7 +229,7 @@ GEM
     webrick (1.8.1)
     webrobots (0.1.2)
     woothee (1.13.0)
-    wordlist (1.0.2)
+    wordlist (1.1.0)
 
 PLATFORMS
   ruby
@@ -225,4 +242,4 @@ DEPENDENCIES
   ronin
 
 BUNDLED WITH
-   2.4.10
+   2.3.26
diff --git a/pkgs/tools/security/ronin/gemset.nix b/pkgs/tools/security/ronin/gemset.nix
index 2171841a426..fdb3c9225d0 100644
--- a/pkgs/tools/security/ronin/gemset.nix
+++ b/pkgs/tools/security/ronin/gemset.nix
@@ -5,32 +5,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "072iv0d3vpbp0xijg4jj99sjil1rykmqfj9addxj76bm5mbzwcaj";
+      sha256 = "01jrk2i6vp8jcll65d03mqmp1ibxa0ip7bdg5157fkm5syblzsqw";
       type = "gem";
     };
-    version = "7.0.6";
+    version = "7.1.0";
   };
   activerecord = {
-    dependencies = ["activemodel" "activesupport"];
+    dependencies = ["activemodel" "activesupport" "timeout"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l0rn43bhyzlfa4wwcfz016vb4lkzvl0jf5zibkjy4sppxxixzrq";
+      sha256 = "1lpcbgqbrb3yfk3i66mnxa5i36r0ig9dwzksjbm15i30rndr27p5";
       type = "gem";
     };
-    version = "7.0.6";
+    version = "7.1.0";
   };
   activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cjsf26656996hv48wgv2mkwxf0fy1qc68ikgzq7mzfq2mmvmayk";
+      sha256 = "1xpwx7hw7mgmjk3w3g8bkz5jfapixhgn3ihly0xkpyvgp1shp8h1";
       type = "gem";
     };
-    version = "7.0.6";
+    version = "7.1.0";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
+      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.5";
   };
   async = {
     dependencies = ["console" "fiber-annotation" "io-event" "timers"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gk3mbwrzyrc1a5669x8cw83qkddjyg42dxwdx3xb4rf7rwnzdx3";
+      sha256 = "02ng89h9s4wwpncyqbkm9n26swp4q45dkvqsb2fpmkan32zn48ji";
       type = "gem";
     };
-    version = "2.6.2";
+    version = "2.6.4";
   };
   async-io = {
     dependencies = ["async"];
@@ -60,10 +60,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cx4kgyr8yhg0rfcasmny9sbxjxvf07dmcw85yzismadfli1sndz";
+      sha256 = "11lgd7276rgy651zwbzvbsz8q0k09ljgngyhsppy7kvkjzj25n58";
       type = "gem";
     };
-    version = "1.35.0";
+    version = "1.36.0";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cydk9p2cv25qysm0sn2pb97fcpz1isa7n3c8xm1gd99li8x6x8c";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07y615s8yldk3k13lmkhpk1k190lcqvmxmnjwgh4bzjan9xrc36y";
+      type = "gem";
+    };
+    version = "3.1.4";
   };
   chars = {
     groups = ["default"];
@@ -131,10 +151,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "133csy1c80wh144hzr0pwcwg7i553pqn2byzsdw6kq5s0kg0pg8m";
+      sha256 = "150wdj94qg8c95b9v1g7ak5a9g159wxfanclpihrz9p9qbv1ga0w";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.23.2";
   };
   date = {
     groups = ["default"];
@@ -157,6 +177,17 @@
     };
     version = "0.5.20190701";
   };
+  drb = {
+    dependencies = ["ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9c2qiam82y3caapa2x157j1lkk9954hrjg3p22hxcsk8fli3vb";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
   fake_io = {
     groups = ["default"];
     platforms = [];
@@ -234,21 +265,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j36a76mbcvp5516liiv01z5gz3f64waiqgskj1zrxqbwyirx5h7";
+      sha256 = "1m2x5m2m8fa83p5890byf46qb4s1073vn3z6gan9jmbq2a5w0iy8";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.3.2";
   };
   irb = {
-    dependencies = ["reline"];
+    dependencies = ["rdoc" "reline"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158ca10kj3qqnql5g8f1g2arsnhgdl79mg74manpf8ldkwjjn3n8";
+      sha256 = "17p6arsklbzh2hvwwr8i4cfrpa7vhk8q88fhickhwmn7m80lxdw7";
       type = "gem";
     };
-    version = "1.7.4";
+    version = "1.8.1";
   };
   mechanize = {
     dependencies = ["addressable" "domain_name" "http-cookie" "mime-types" "net-http-digest_auth" "net-http-persistent" "nokogiri" "rubyntlm" "webrick" "webrobots"];
@@ -267,20 +298,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
+      sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5";
       type = "gem";
     };
-    version = "3.4.1";
+    version = "3.5.1";
   };
   mime-types-data = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pky3vzaxlgm9gw5wlqwwi7wsw3jrglrfflrppvvnsrlaiz043z9";
+      sha256 = "0yjv0apysnrhbc70ralinfpcqn9382lxr643swp7a5sdwpa9cyqg";
       type = "gem";
     };
-    version = "3.2023.0218.1";
+    version = "3.2023.1003";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -297,10 +328,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kg9wh7jlc9zsr3hkhpzkbn0ynf4np5ap9m2d8xdrb8shy0y6pmb";
+      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
       type = "gem";
     };
-    version = "5.18.1";
+    version = "5.20.0";
   };
   mustermann = {
     dependencies = ["ruby2_keywords"];
@@ -313,6 +344,16 @@
     };
     version = "3.0.0";
   };
+  mutex_m = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkxnp7p44kvs460bbbgjarr7xy1j8kjjmhwkg1kypj9wgmwb6qa";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   net-ftp = {
     dependencies = ["net-protocol" "time"];
     groups = ["default"];
@@ -351,10 +392,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k1qyjr9lkk5y3483k6wk6d9h1jx4v5hzby1mf0pj3b4kr2arxbm";
+      sha256 = "0d0r31b79appz95dd63wmasly1qjz3hn58ffxw6ix4mqk49jcbq2";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.1";
   };
   net-pop = {
     dependencies = ["net-protocol"];
@@ -384,10 +425,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
+      sha256 = "1rx3758w0bmbr21s2nsc6llflsrnp50fwdnly3ixra4v53gbhzid";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.4.0";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -395,10 +436,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jw8a20a9k05fpz3q24im19b97idss3179z76yn5scc5b8lk2rl7";
+      sha256 = "0k9w2z0953mnjrsji74cshqqp08q7m1r6zhadw1w0g34xzjh3a74";
       type = "gem";
     };
-    version = "1.15.3";
+    version = "1.15.4";
   };
   nokogiri-diff = {
     dependencies = ["nokogiri" "tdiff"];
@@ -432,6 +473,17 @@
     };
     version = "0.4.1";
   };
+  psych = {
+    dependencies = ["stringio"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1msambb54r3d1sg6smyj4k2pj9h9lz8jq4jamip7ivcyv32a85vz";
+      type = "gem";
+    };
+    version = "5.1.0";
+  };
   public_suffix = {
     groups = ["default"];
     platforms = [];
@@ -457,10 +509,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16w217k9z02c4hqizym8dkj6bqmmzx4qdvqpnskgzf174a5pwdxk";
+      sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv";
       type = "gem";
     };
-    version = "2.2.7";
+    version = "2.2.8";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -468,10 +520,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kpm67az1wxlg76h620in2r7agfyhv177ps268j5ggsanzddzih8";
+      sha256 = "0xsz78hccgza144n37bfisdkzpr2c8m0xl6rnlzgxdbsm1zrkg7r";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.1.0";
   };
   rack-user_agent = {
     dependencies = ["rack" "woothee"];
@@ -484,16 +536,27 @@
     };
     version = "0.5.3";
   };
+  rdoc = {
+    dependencies = ["psych"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05r2cxscapr9saqjw8dlp89as7jvc2mlz1h5kssrmkbz105qmfcm";
+      type = "gem";
+    };
+    version = "6.5.0";
+  };
   reline = {
     dependencies = ["io-console"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rgsfxm3sb9mgsxa7gks40wy4sb41w33j30y6izmih70ss34x4dh";
+      sha256 = "0187pj9k7d8kdvzjk6r6mf7z7wy18saxxhn7x7pqc840w6h4s0ja";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.3.9";
   };
   ronin = {
     dependencies = ["async-io" "open_namespace" "ronin-code-asm" "ronin-code-sql" "ronin-core" "ronin-db" "ronin-exploits" "ronin-fuzzer" "ronin-payloads" "ronin-repos" "ronin-support" "ronin-vulns" "ronin-web" "rouge" "wordlist"];
@@ -501,10 +564,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ssh8hijpiw4m9pazr3gqqrlsk8bsjk200fp0m15lbnjv4hc713b";
+      sha256 = "0v1v1xb2brgajhh1w38qs4lhnmgygymh1q0q63xpwq32w7a5k7s3";
       type = "gem";
     };
-    version = "2.0.4";
+    version = "2.0.5";
   };
   ronin-code-asm = {
     dependencies = ["ruby-yasm"];
@@ -545,10 +608,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x2mmwbmhc2fh4lk7nx6jbp894mg4aa6n35pkiaf8n527kksa9cd";
+      sha256 = "0fiqdk1rnqk86icx27z531yc1qjs2n41nw9p361980wg0j8b4hsj";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.2";
   };
   ronin-db-activerecord = {
     dependencies = ["activerecord" "uri-query_params"];
@@ -556,10 +619,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vygs09ib2dsna1w2lgv4f1qxa6q1niyqvihy4f49f9ppk52mwhh";
+      sha256 = "0igw9syk4psdmijji0cx1dhrv76r1abji8fzdndnrn5h819b2fm3";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.2";
   };
   ronin-exploits = {
     dependencies = ["ronin-code-sql" "ronin-core" "ronin-payloads" "ronin-post_ex" "ronin-repos" "ronin-support" "ronin-vulns" "uri-query_params"];
@@ -567,10 +630,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "078p7fkrgzkjip11wgcvifc5xwcysfy3r1qsh5pid97ysp1qg477";
+      sha256 = "1g2ilmmn6vccjn1i72wyakvjlh0b1qrgnw2nshl9f50j7yj93xpn";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   ronin-fuzzer = {
     dependencies = ["combinatorics" "ronin-core" "ronin-support"];
@@ -589,10 +652,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15n2nfrrf695i2fk1vr3f84sgnnhn6v2dhdmfxzrdknr5fckvbic";
+      sha256 = "1gsgbw90xmwwnpc8i873wwgia56hcjkhlyjpxl7s4yvd7ml7pj0f";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.1.4";
   };
   ronin-post_ex = {
     dependencies = ["fake_io" "hexdump" "ronin-core"];
@@ -622,10 +685,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ds32mk7s96gsi3q0m2ljgl122glalya1cbjx1xjjq8wbrbsxdjr";
+      sha256 = "0k2vs6mkcyx0h7k3rjs2bwqimhkfa2m50ll8rgm7zygxz3f6gny3";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   ronin-vulns = {
     dependencies = ["ronin-core" "ronin-support"];
@@ -633,10 +696,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xw029nfxnbjs9nhnb0fgyhksismswap393zm3cnjjw46d643jl8";
+      sha256 = "1p00xrj71436g301b0wnq23ps89x4g9mmzvkghw9sqyfazgc829f";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.1.4";
   };
   ronin-web = {
     dependencies = ["mechanize" "nokogiri" "nokogiri-diff" "nokogiri-ext" "open_namespace" "ronin-core" "ronin-support" "ronin-web-server" "ronin-web-spider" "ronin-web-user_agents"];
@@ -728,10 +791,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q0ghxfqgjhg2dq9699mn5qx6m6q2cgldg312kh41pzwwy71a7hx";
+      sha256 = "00541cnypsh1mnilfxxqlz6va9afrixf9m1asn4wzjp5m59777p8";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.1.0";
   };
   spidr = {
     dependencies = ["nokogiri"];
@@ -750,10 +813,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h95kr5529qv786mfk8r2jjdsdi6v7v3k3dpz69mrcc9i0vpdd37";
+      sha256 = "15415lmz69jbzl6nch4q5l2jxv054676nk6y0vgy0g3iklmjrxvc";
       type = "gem";
     };
-    version = "1.6.3";
+    version = "1.6.6";
+  };
+  stringio = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ix96dxbjqlpymdigb4diwrifr0bq7qhsrng95fkkp18av326nqk";
+      type = "gem";
+    };
+    version = "3.0.8";
   };
   tdiff = {
     groups = ["default"];
@@ -770,10 +843,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7";
+      sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.3.0";
   };
   time = {
     dependencies = ["date"];
@@ -883,9 +956,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "133v1v0b8l7v7vdvyhxa2szaf1nb4hsfcqflx1avax93ah3n7ikn";
+      sha256 = "06d4nj2nd172sn5yjw9qmpz7zqnymadbsxph741yx2h9va8q0qgd";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.1.0";
   };
 }
diff --git a/pkgs/tools/wayland/wlr-randr/default.nix b/pkgs/tools/wayland/wlr-randr/default.nix
index b6f69992fec..d9f7bc246cd 100644
--- a/pkgs/tools/wayland/wlr-randr/default.nix
+++ b/pkgs/tools/wayland/wlr-randr/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wlr-randr";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-iJSHCQbom+V0TrtEYrjMrMkdc6PoZrjhtcgebZYjQjI=";
+    hash = "sha256-u5fsM+DCefPTXEg+ByTs0wyOlEfCj5OUeJydX6RRvo4=";
   };
 
   strictDeps = true;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index eecc26f31db..551b33f3e37 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6978,7 +6978,7 @@ with pkgs;
   keymapper = callPackage ../tools/inputmethods/keymapper { };
 
   twitch-tui = callPackage ../applications/networking/instant-messengers/twitch-tui {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk_11_0.frameworks) Security CoreServices;
   };
 
   gebaar-libinput = callPackage ../tools/inputmethods/gebaar-libinput { stdenv = gcc10StdenvCompat; };