about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix17
-rw-r--r--pkgs/applications/misc/snowsql/default.nix7
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json12
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/linkerd/edge.nix6
-rw-r--r--pkgs/applications/networking/cluster/temporal/default.nix6
-rw-r--r--pkgs/applications/networking/diswall/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.json10
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix5
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix28
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/todoman/default.nix3
-rw-r--r--pkgs/applications/radio/rtl-sdr/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/wezterm/default.nix20
-rw-r--r--pkgs/applications/version-management/git-chglog/default.nix6
-rw-r--r--pkgs/applications/version-management/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/gitmux/default.nix6
-rw-r--r--pkgs/applications/version-management/gitoxide/default.nix6
-rw-r--r--pkgs/applications/version-management/glitter/default.nix6
-rw-r--r--pkgs/applications/video/hdhomerun-config-gui/default.nix4
-rw-r--r--pkgs/applications/virtualization/quickgui/default.nix48
-rw-r--r--pkgs/applications/window-managers/miriway/default.nix15
-rw-r--r--pkgs/build-support/node/fetch-npm-deps/default.nix4
-rw-r--r--pkgs/build-support/vm/deb/deb-closure.pl2
-rw-r--r--pkgs/data/fonts/nanum/default.nix4
-rw-r--r--pkgs/data/fonts/sarasa-gothic/default.nix4
-rw-r--r--pkgs/data/fonts/spleen/default.nix4
-rw-r--r--pkgs/data/misc/clash-geoip/default.nix4
-rw-r--r--pkgs/data/misc/spdx-license-list-data/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/warpinator/default.nix4
-rw-r--r--pkgs/desktops/deepin/artwork/deepin-wallpapers/default.nix45
-rw-r--r--pkgs/desktops/deepin/core/dde-polkit-agent/default.nix61
-rw-r--r--pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix51
-rw-r--r--pkgs/desktops/deepin/default.nix5
-rw-r--r--pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix8
-rw-r--r--pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch46
-rw-r--r--pkgs/development/androidndk-pkgs/androidndk-pkgs.nix3
-rw-r--r--pkgs/development/compilers/ligo/default.nix5
-rw-r--r--pkgs/development/compilers/ocaml/generic.nix2
-rw-r--r--pkgs/development/compilers/rust/clippy.nix13
-rw-r--r--pkgs/development/compilers/rust/rustc.nix6
-rw-r--r--pkgs/development/interpreters/love/0.10.nix4
-rw-r--r--pkgs/development/libraries/clucene-core/2.x.nix4
-rw-r--r--pkgs/development/libraries/clucene-core/fix-darwin.patch13
-rw-r--r--pkgs/development/libraries/clucene-core/pthread-include.patch14
-rw-r--r--pkgs/development/libraries/cyclonedds/0001-Use-full-path-in-pkgconfig.patch (renamed from pkgs/development/libraries/cyclondds/0001-Use-full-path-in-pkgconfig.patch)0
-rw-r--r--pkgs/development/libraries/cyclonedds/default.nix (renamed from pkgs/development/libraries/cyclondds/default.nix)2
-rw-r--r--pkgs/development/libraries/duckdb/default.nix40
-rw-r--r--pkgs/development/libraries/example-robot-data/default.nix4
-rw-r--r--pkgs/development/libraries/imlib2/default.nix4
-rw-r--r--pkgs/development/libraries/librsync/default.nix5
-rw-r--r--pkgs/development/libraries/librtlsdr/default.nix39
-rw-r--r--pkgs/development/libraries/liburing/0001-Add-custom-error-function-for-tests.patch66
-rw-r--r--pkgs/development/libraries/liburing/0002-test-Use-t_error-instead-of-glibc-s-error.patch109
-rw-r--r--pkgs/development/libraries/liburing/0003-examples-Use-t_error-instead-of-glibc-s-error.patch226
-rw-r--r--pkgs/development/libraries/liburing/default.nix13
-rw-r--r--pkgs/development/libraries/pinocchio/default.nix4
-rw-r--r--pkgs/development/libraries/wangle/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/simple-diff/default.nix28
-rw-r--r--pkgs/development/python-modules/aiohomekit/default.nix4
-rw-r--r--pkgs/development/python-modules/aioruuvigateway/default.nix6
-rw-r--r--pkgs/development/python-modules/ansible-lint/default.nix4
-rwxr-xr-xpkgs/development/python-modules/atlassian-python-api/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicebus/default.nix4
-rw-r--r--pkgs/development/python-modules/biopython/default.nix4
-rw-r--r--pkgs/development/python-modules/datadog/default.nix39
-rw-r--r--pkgs/development/python-modules/devito/default.nix4
-rw-r--r--pkgs/development/python-modules/duo-client/default.nix11
-rw-r--r--pkgs/development/python-modules/entrance/default.nix4
-rw-r--r--pkgs/development/python-modules/flake8-bugbear/default.nix4
-rw-r--r--pkgs/development/python-modules/gradient_statsd/default.nix36
-rw-r--r--pkgs/development/python-modules/ibis-framework/default.nix4
-rw-r--r--pkgs/development/python-modules/lupupy/default.nix4
-rw-r--r--pkgs/development/python-modules/mautrix/default.nix4
-rw-r--r--pkgs/development/python-modules/motionblinds/default.nix4
-rw-r--r--pkgs/development/python-modules/mypy-boto3-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/neo/default.nix5
-rw-r--r--pkgs/development/python-modules/oci/default.nix4
-rw-r--r--pkgs/development/python-modules/py3status/default.nix47
-rw-r--r--pkgs/development/python-modules/pymicrobot/default.nix5
-rw-r--r--pkgs/development/python-modules/pyomo/default.nix4
-rw-r--r--pkgs/development/python-modules/python-cinderclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-glanceclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-novaclient/default.nix4
-rw-r--r--pkgs/development/python-modules/pytibber/default.nix4
-rw-r--r--pkgs/development/python-modules/pyunifiprotect/default.nix4
-rw-r--r--pkgs/development/python-modules/quantities/default.nix20
-rw-r--r--pkgs/development/python-modules/railroad-diagrams/default.nix4
-rw-r--r--pkgs/development/python-modules/rokuecp/default.nix7
-rw-r--r--pkgs/development/python-modules/sybil/default.nix4
-rw-r--r--pkgs/development/python-modules/txtorcon/default.nix43
-rw-r--r--pkgs/development/python-modules/types-pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix4
-rw-r--r--pkgs/development/python-modules/webauthn/default.nix4
-rw-r--r--pkgs/development/python-modules/yfinance/default.nix4
-rw-r--r--pkgs/development/tools/apksigcopier/default.nix4
-rw-r--r--pkgs/development/tools/bingo/default.nix4
-rw-r--r--pkgs/development/tools/inferno/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-llvm-lines/default.nix6
-rw-r--r--pkgs/games/anki/bin.nix8
-rw-r--r--pkgs/games/mrrescue/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/linux-firmware/source.nix6
-rw-r--r--pkgs/os-specific/linux/firmware/rtw89-firmware/default.nix35
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/linux-6.2.nix18
-rw-r--r--pkgs/os-specific/linux/microcode/iucode-tool.nix3
-rw-r--r--pkgs/servers/caddy/default.nix4
-rw-r--r--pkgs/servers/domoticz/default.nix5
-rw-r--r--pkgs/servers/etcd/3.4.nix6
-rw-r--r--pkgs/servers/http/envoy/0001-nixpkgs-use-system-Python.patch (renamed from pkgs/servers/http/envoy/use-system-python.patch)26
-rw-r--r--pkgs/servers/http/envoy/0002-nixpkgs-use-system-Go.patch94
-rw-r--r--pkgs/servers/http/envoy/bump-brotli.patch15
-rw-r--r--pkgs/servers/http/envoy/default.nix29
-rw-r--r--pkgs/servers/http/envoy/fix-aarch64-wamr.patch38
-rw-r--r--pkgs/servers/http/envoy/protobuf.patch53
-rw-r--r--pkgs/servers/http/go-camo/default.nix6
-rw-r--r--pkgs/servers/http/tengine/check-resolv-conf.patch8
-rw-r--r--pkgs/servers/http/tengine/default.nix4
-rw-r--r--pkgs/servers/jackett/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix4
-rw-r--r--pkgs/servers/mautrix-telegram/default.nix16
-rw-r--r--pkgs/servers/monitoring/icinga2/default.nix4
-rw-r--r--pkgs/servers/monitoring/mackerel-agent/default.nix6
-rw-r--r--pkgs/servers/mqtt/nanomq/default.nix28
-rw-r--r--pkgs/servers/web-apps/discourse/default.nix56
-rw-r--r--pkgs/servers/web-apps/discourse/how_to_update.md24
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock10
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix16
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock6
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile3
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock9
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix15
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/no-git-version.patch8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile291
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock221
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix328
-rwxr-xr-xpkgs/servers/web-apps/discourse/update.py4
-rw-r--r--pkgs/shells/murex/default.nix6
-rw-r--r--pkgs/tools/X11/keynav/default.nix6
-rw-r--r--pkgs/tools/admin/awscli2/default.nix4
-rw-r--r--pkgs/tools/admin/wander/default.nix6
-rw-r--r--pkgs/tools/backup/dar/default.nix2
-rw-r--r--pkgs/tools/graphics/nip2/default.nix4
-rw-r--r--pkgs/tools/inputmethods/evscript/default.nix17
-rw-r--r--pkgs/tools/misc/czkawka/default.nix7
-rw-r--r--pkgs/tools/misc/hyfetch/default.nix4
-rw-r--r--pkgs/tools/misc/vtm/default.nix4
-rw-r--r--pkgs/tools/networking/clash-meta/default.nix44
-rw-r--r--pkgs/tools/networking/mozwire/default.nix12
-rw-r--r--pkgs/tools/networking/openssh/default.nix20
-rw-r--r--pkgs/tools/networking/ppp/default.nix12
-rw-r--r--pkgs/tools/networking/q/default.nix6
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix2
-rw-r--r--pkgs/tools/networking/traceroute/default.nix4
-rw-r--r--pkgs/tools/networking/xrootd/default.nix4
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix4
-rw-r--r--pkgs/tools/security/commix/default.nix4
-rw-r--r--pkgs/tools/security/fulcio/default.nix6
-rw-r--r--pkgs/tools/security/openpgp-card-tools/default.nix6
-rw-r--r--pkgs/tools/security/rbw/default.nix58
-rw-r--r--pkgs/tools/system/erdtree/default.nix1
-rw-r--r--pkgs/tools/system/rocm-smi/default.nix2
-rw-r--r--pkgs/tools/system/zram-generator/default.nix27
-rw-r--r--pkgs/tools/virtualization/ovftool/default.nix128
-rw-r--r--pkgs/tools/virtualization/ovftool/installCheckPhase.ovabin0 -> 75264 bytes
-rw-r--r--pkgs/top-level/aliases.nix4
-rw-r--r--pkgs/top-level/all-packages.nix23
-rw-r--r--pkgs/top-level/linux-kernels.nix11
-rw-r--r--pkgs/top-level/ocaml-packages.nix2
201 files changed, 2227 insertions, 1194 deletions
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index 00a1a5f16e10c..6746ae4c0bb81 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -1741,6 +1741,23 @@ let
         meta.license = lib.licenses.mit;
       };
 
+      matthewpi.caddyfile-support = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "caddyfile-support";
+          publisher = "matthewpi";
+          version = "0.2.4";
+          sha256 = "sha256-7D7fNlI55MxD6M8ml/dzBAMwCGCEkC+9aKhreZCVMv4=";
+        };
+        meta = {
+          description = "Rich Caddyfile support for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=matthewpi.caddyfile-support";
+          homepage = "https://github.com/caddyserver/vscode-caddyfile";
+          changelog = "https://marketplace.visualstudio.com/items/matthewpi.caddyfile-support/changelog";
+          license = lib.licenses.mit;
+          maintainers = with lib.maintainers; [ matthewpi ];
+        };
+      };
+
       mattn.lisp = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "lisp";
diff --git a/pkgs/applications/misc/snowsql/default.nix b/pkgs/applications/misc/snowsql/default.nix
index 90aab7987b389..b6198a9095985 100644
--- a/pkgs/applications/misc/snowsql/default.nix
+++ b/pkgs/applications/misc/snowsql/default.nix
@@ -5,21 +5,22 @@
 , patchelf
 , makeWrapper
 , openssl
+, libxcrypt
 }:
 
 stdenv.mkDerivation rec {
   pname = "snowsql";
   majorVersion = "1.2";
-  version = "${majorVersion}.21";
+  version = "${majorVersion}.23";
 
   src = fetchurl {
     url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/${majorVersion}/linux_x86_64/snowflake-snowsql-${version}-1.x86_64.rpm";
-    sha256 = "10pzxqk71amvaz951jl666ia6v0z22bgpvr108l3q62950hhhwmn";
+    sha256 = "16zx30l3g5i5ndgxsqlkmkrfzswbczpb3jcya3psq5170i8cfm8f";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
 
-  libPath = lib.makeLibraryPath [ openssl ];
+  libPath = lib.makeLibraryPath [ openssl libxcrypt ];
 
   buildCommand = ''
     mkdir -p $out/bin/
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index c4f2257d1b2a2..2179722a6e872 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,6 +1,6 @@
 { newScope, config, stdenv, fetchurl, makeWrapper
 , llvmPackages_14, ed, gnugrep, coreutils, xdg-utils
-, glib, gtk3, gnome, gsettings-desktop-schemas, gn, fetchgit
+, glib, gtk3, gtk4, gnome, gsettings-desktop-schemas, gn, fetchgit
 , libva, pipewire, wayland
 , gcc, nspr, nss, runCommand
 , lib, libkrb5
@@ -178,7 +178,7 @@ in stdenv.mkDerivation {
 
   buildCommand = let
     browserBinary = "${chromiumWV}/libexec/chromium/chromium";
-    libPath = lib.makeLibraryPath [ libva pipewire wayland gtk3 libkrb5 ];
+    libPath = lib.makeLibraryPath [ libva pipewire wayland gtk3 gtk4 libkrb5 ];
 
   in with lib; ''
     mkdir -p "$out/bin"
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 5fb50dc6fec86..f933a704c2118 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -32,15 +32,15 @@
     }
   },
   "dev": {
-    "version": "112.0.5582.0",
-    "sha256": "139g5cpqxvh6bf2x3aqs4md379rwrx143f8lcsym8hgpqdwq5sfk",
-    "sha256bin64": "1npksnnxcni62wx517xy64ysk3ja868gw48vgx4q8xc93g15n89c",
+    "version": "112.0.5596.2",
+    "sha256": "03s6phrqv3a6vdkig9npkvnpgc8hcfb6fqgxlmlcmhrf9cszvycg",
+    "sha256bin64": "1an3gmxcfkzfx30ympli8r7p3xp93i8zmvrayvgddvb8xszrbc3c",
     "deps": {
       "gn": {
-        "version": "2023-01-30",
+        "version": "2023-02-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "84c8431f3e03cc6226c59dd49637c15ea31169a1",
-        "sha256": "15dqiy1bf1cixqg23bqpfb8mrlcxqbarjwzajc5hjmivykrjn2s3"
+        "rev": "edf6ef4b06b42c58292faea78498aff76bdf68ed",
+        "sha256": "1l3wz5rxg6q4923gxwx7hrrbx8123i7iniw8ihajp7v4qz27xbcp"
       }
     }
   },
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 644f7e734bf79..0238fc61bcfaf 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -21,11 +21,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "5.6.2867.62";
+  version = "5.7.2921.53";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_amd64.deb";
-    sha256 = "sha256-p5okCdvEBurL1UgqLMBhCd4caPbiOA1WZrI9TC5j6og=";
+    sha256 = "sha256-qkKCoHJCRji3XfXk71n4BfjFyQpXZ+BariHmbYPAuv8=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/cluster/linkerd/edge.nix b/pkgs/applications/networking/cluster/linkerd/edge.nix
index a124d633b37de..4b22db60660a9 100644
--- a/pkgs/applications/networking/cluster/linkerd/edge.nix
+++ b/pkgs/applications/networking/cluster/linkerd/edge.nix
@@ -2,7 +2,7 @@
 
 (callPackage ./generic.nix { }) {
   channel = "edge";
-  version = "23.2.1";
-  sha256 = "0qjl6qxfg6bj22fwm2y01if5dqp2w79y45ibrg46r33pf6gbwjxj";
-  vendorSha256 = "sha256-YxWBjbE3aBFfCbQeSTfQv5QzP5n4IRHHqNrFwrJPQ7g=";
+  version = "23.2.2";
+  sha256 = "1ylimwxp5b7dp14kjl5jimpjiqh5vh83cfah226kxndb6k64i7h8";
+  vendorSha256 = "sha256-UWzWBZBzoq4Mzqk3ukvGAcXqiSeJV/V3K2V1GOA9vwc=";
 }
diff --git a/pkgs/applications/networking/cluster/temporal/default.nix b/pkgs/applications/networking/cluster/temporal/default.nix
index 6a2c39de113c1..9fe3edcbb99c8 100644
--- a/pkgs/applications/networking/cluster/temporal/default.nix
+++ b/pkgs/applications/networking/cluster/temporal/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "temporal";
-  version = "1.19.1";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "temporalio";
     repo = "temporal";
     rev = "v${version}";
-    hash = "sha256-j2+K/ZDDNakofrToxhyA1gh534l3Eq6G/fNXE0ktceY=";
+    hash = "sha256-YZzGAOPCljTMmyt1t0gjbgn+IelntCo/275+SjOJiJE=";
   };
 
-  vendorHash = "sha256-KkgyL37VJy1DhfCB5RJpjczBPbzQwt1xsovQ0xCXGr4=";
+  vendorHash = "sha256-UMqkgQsnOxFcXgbm+oi3JGjqmbwaKEh6s5bzivGVAM8=";
 
   excludedPackages = [ "./build" ];
 
diff --git a/pkgs/applications/networking/diswall/default.nix b/pkgs/applications/networking/diswall/default.nix
index 0a8ac4456416a..ceeeae75a18f4 100644
--- a/pkgs/applications/networking/diswall/default.nix
+++ b/pkgs/applications/networking/diswall/default.nix
@@ -5,20 +5,20 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "diswall";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "dis-works";
     repo = "diswall-rs";
     rev = "v${version}";
-    sha256 = "sha256-3FTqT3IL48lYmGoB9u76RQSgZPbaq7IkOyQjyxwpkWA=";
+    sha256 = "sha256-54iNbMZ+j6ioBTb/okyWZqqe4p6IyapZwc6VdtiAkLs=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Security
   ];
 
-  cargoSha256 = "sha256-sb6s4Oc3W+I9DB0SGyZINxyWHCSpkakiEeQUatEpeEU=";
+  cargoHash = "sha256-stpJNDC+dQQNZdZTihbQWZ66wgdQ+oz8s3Ogb1wxnxY=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.json b/pkgs/applications/networking/instant-messengers/element/pin.json
index ccb7ecd1537f7..bf1458c264ebf 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.json
+++ b/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -1,7 +1,7 @@
 {
-  "version": "1.11.22",
-  "desktopSrcHash": "UJesD6cshsf/NK2ZTzOtAUfH+8JcGP9oCLFhkgfM0E0=",
-  "desktopYarnHash": "0bq24rjf63rkq3jphv7raqaz2fnibmj41z905k5f3l4ln835ndfv",
-  "webSrcHash": "B2clSJgKkjvQdIXQgi3bBPaVTDKOjeNBOvkAtcPOkFI=",
-  "webYarnHash": "182fh1ayh1y98kbg4mn8fxqvljs19b02j4ivvjszm55dcpwfp1df"
+  "version": "1.11.23",
+  "desktopSrcHash": "Q3kyAiBvedTy4jiBkYmEJeonRf6HesdpKgmtOT2sYwI=",
+  "desktopYarnHash": "8lHIkUkFAo7m8XjfnFSAkp4mIKyrXOsnbstRIPXI+vE=",
+  "webSrcHash": "JOfuzo0DQ0v2rC80/HkucLgc2xsCb3eujaH0fg7j0nI=",
+  "webYarnHash": "0Cb7TuRFHcQvYbnVAnXOIwt6NXa7ITrMPJnmbUFaPNU="
 }
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index 9feb5ff10a077..713069ff95a3a 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -37,6 +37,11 @@ stdenv.mkDerivation {
       url = "https://github.com/desktop-app/tg_owt/pull/101/commits/86d2bcd7afb8706663d29e30f65863de5a626142.patch";
       hash = "sha256-iWS0mB8R0vqPU/0qf6Ax54UCAKYDVCPac2mi/VHbFm0=";
     })
+    # additional fix for GCC 12 + musl
+    (fetchpatch {
+      url = "https://git.alpinelinux.org/aports/plain/community/tg_owt/gcc12.patch?id=8120df03fa3b6db5b8ff92c7a52b680290ad6e20";
+      hash = "sha256-ikgxUH1e7pz0n0pKUemrPXXa4UkECX+w467M9gU68zs=";
+    })
   ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index c6ce7c8f593a7..7c0b8dc0747e8 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -2,42 +2,45 @@
 , stdenv
 , fetchFromGitHub
 , ocamlPackages
-, fontschumachermisc
-, xset
-, makeWrapper
 , ncurses
-, gnugrep
 , copyDesktopItems
 , makeDesktopItem
+, wrapGAppsHook
+, glib
+, gsettings-desktop-schemas
+, zlib
 , enableX11 ? true
+, Cocoa
 }:
 
 stdenv.mkDerivation rec {
   pname = "unison";
-  version = "2.52.1";
+  version = "2.53.0";
 
   src = fetchFromGitHub {
     owner = "bcpierce00";
     repo = "unison";
     rev = "v${version}";
-    sha256 = "sha256-taA8eZ/wOe9uMccXVYfe34/XzWgqYKA3tLZnIOahOrQ=";
+    sha256 = "sha256-4Lyn1UecpVIhoEXIFu35XK4aoAfYGPCZ9L4ZY7224yo=";
   };
 
   strictDeps = true;
 
-  nativeBuildInputs = [ makeWrapper ocamlPackages.ocaml ]
+  nativeBuildInputs = [ glib wrapGAppsHook ocamlPackages.ocaml ]
     ++ lib.optional enableX11 copyDesktopItems;
-  buildInputs = [ ncurses ];
+  buildInputs = [ gsettings-desktop-schemas ncurses zlib ]
+    ++ lib.optional stdenv.isDarwin Cocoa;
 
   preBuild = lib.optionalString enableX11 ''
-    sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${ocamlPackages.lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml
+    sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${ocamlPackages.lablgtk3}"/lib/ocaml/*/site-lib/lablgtk3)|" src/Makefile.OCaml
+    sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${ocamlPackages.cairo2}"/lib/ocaml/*/site-lib/cairo2)|" src/Makefile.OCaml
   '' + ''
     echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile
   '';
 
   makeFlags = [
     "INSTALLDIR=$(out)/bin/"
-    "UISTYLE=${if enableX11 then "gtk2" else "text"}"
+    "UISTYLE=${if enableX11 then "gtk3" else "text"}"
   ] ++ lib.optional (!ocamlPackages.ocaml.nativeCompilers) "NATIVE=false";
 
   preInstall = ''
@@ -45,11 +48,6 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = lib.optionalString enableX11 ''
-    for i in $(cd $out/bin && ls); do
-      wrapProgram $out/bin/$i \
-        --run "[ -n \"\$DISPLAY\" ] && (${xset}/bin/xset q | ${gnugrep}/bin/grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")"
-    done
-
     install -D $src/icons/U.svg $out/share/icons/hicolor/scalable/apps/unison.svg
   '';
 
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index 65fab41df9491..c8829981e4a3b 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -17,14 +17,14 @@
 let
   pname = "qownnotes";
   appname = "QOwnNotes";
-  version = "23.2.0";
+  version = "23.2.4";
 in
 stdenv.mkDerivation {
   inherit pname appname version;
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
-    sha256 = "sha256-S5m78E1wrWBu/bMmNUmv/ZprebyYPC9NDfINU2C/i8w=";
+    sha256 = "sha256-ZliVhnO9fK/6k4Ga86ZSmhzQ3YKziAab19oZs9Pteic=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/todoman/default.nix b/pkgs/applications/office/todoman/default.nix
index 50db368073d14..7794116ecd46d 100644
--- a/pkgs/applications/office/todoman/default.nix
+++ b/pkgs/applications/office/todoman/default.nix
@@ -67,6 +67,7 @@ python3.pkgs.buildPythonApplication rec {
     # Testing of the CLI part and output
     "test_color_due_dates"
     "test_color_flag"
+    "test_datetime_serialization"  # Will be fixed in versions after 4.1.0
     "test_default_command"
     "test_main"
     "test_missing_cache_dir"
@@ -74,8 +75,6 @@ python3.pkgs.buildPythonApplication rec {
     "test_xdg_existant"
     # Tests are sensitive to performance
     "test_sorting_fields"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_sorting_fields"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/applications/radio/rtl-sdr/default.nix b/pkgs/applications/radio/rtl-sdr/default.nix
index d8180750c7a1c..722a0565e0de5 100644
--- a/pkgs/applications/radio/rtl-sdr/default.nix
+++ b/pkgs/applications/radio/rtl-sdr/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     owner = "librtlsdr";
     repo = "librtlsdr";
     rev = "v${version}";
-    sha256 = "1fgxlkgmdchbrf0nn98ivjr6css5hak3608nr4xrf2qzf7xy2kdk";
+    hash = "sha256-s03h+3EfC5c7yRYBM6aCRWtmstwRJWuBywuyVt+k/bk=";
   };
 
   postPatch = ''
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake ];
 
-  buildInputs = [ libusb1 ];
+  propagatedBuildInputs = [ libusb1 ];
 
   cmakeFlags = lib.optionals stdenv.isLinux [
     "-DINSTALL_UDEV_RULES=ON"
diff --git a/pkgs/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix
index cece7cb8a01e6..74de8d0707501 100644
--- a/pkgs/applications/terminal-emulators/wezterm/default.nix
+++ b/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -2,6 +2,7 @@
 , rustPlatform
 , lib
 , fetchFromGitHub
+, fetchpatch
 , ncurses
 , perl
 , pkg-config
@@ -40,12 +41,12 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-1gnP2Dn4nkhxelUsXMay2VGvgvMjkdEKhFK5AAST++s=";
   };
 
-  # Rust 1.65 does better at enum packing (according to
-  # 40e08fafe2f6e5b0c70d55996a0814d6813442ef), but Nixpkgs doesn't have 1.65
-  # yet (still in staging), so skip these tests for now.
-  checkFlags = [
-    "--skip=escape::action_size"
-    "--skip=surface::line::storage::test::memory_usage"
+  patches = [
+    # fix build with rust 1.67
+    (fetchpatch {
+      url = "https://github.com/wez/wezterm/commit/36519f0d90e1875fb4b3f11f6cbf94c7d716ef78.patch";
+      sha256 = "sha256-sOGFmDan1uO1xOBCpvlGrSotjfw01MjRg0KVqa5omig=";
+    })
   ];
 
   postPatch = ''
@@ -122,9 +123,7 @@ rustPlatform.buildRustPackage rec {
     };
     terminfo = runCommand "wezterm-terminfo"
       {
-        nativeBuildInputs = [
-          ncurses
-        ];
+        nativeBuildInputs = [ ncurses ];
       } ''
       mkdir -p $out/share/terminfo $out/nix-support
       tic -x -o $out/share/terminfo ${src}/termwiz/data/wezterm.terminfo
@@ -132,10 +131,9 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust";
+    description = "GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust";
     homepage = "https://wezfurlong.org/wezterm";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
-    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/git-chglog/default.nix b/pkgs/applications/version-management/git-chglog/default.nix
index 6259bad880639..ad0d64a6ef62a 100644
--- a/pkgs/applications/version-management/git-chglog/default.nix
+++ b/pkgs/applications/version-management/git-chglog/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "git-chglog";
-  version = "0.15.2";
+  version = "0.15.4";
 
   src = fetchFromGitHub {
     owner = "git-chglog";
     repo = "git-chglog";
     rev = "v${version}";
-    sha256 = "sha256-VB3JYXz50B/SkA/q1iET7p5uhArrF8JyhAWhcxLVsg8=";
+    sha256 = "sha256-rTJn2vUrEnmG2japqCxHv3BR9MpmMfpMLO2FBP6ONbw=";
   };
 
-  vendorHash = "sha256-/5s9Dvce0JWu8DaUlrtnkN6N5esEmkFvOgq0tVLZGnM=";
+  vendorHash = "sha256-skhEHpSnxOTZrL8XLlQZL3s224mg8XRINKJnatYCQko=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=v${version}" ];
 
diff --git a/pkgs/applications/version-management/git-machete/default.nix b/pkgs/applications/version-management/git-machete/default.nix
index 9667e7bd2feef..885f6d1355e93 100644
--- a/pkgs/applications/version-management/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-machete/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.15.0";
+  version = "3.15.2";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-HSgCvHjSOrMPsdOPtgFUeK6b0ioVnwTtg2oHGg4BrZw=";
+    hash = "sha256-hIm3JDLXUTwjuVfAHvZBWFBJNOAVWyfl/X4A6B0OoXg=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/gitmux/default.nix b/pkgs/applications/version-management/gitmux/default.nix
index 008d161ce2479..412730c144b46 100644
--- a/pkgs/applications/version-management/gitmux/default.nix
+++ b/pkgs/applications/version-management/gitmux/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gitmux";
-  version = "0.7.12";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "arl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-JPrXq4+53cem0TVnm1/AJz/mYcEKaYzqhptJU4V2U0o=";
+    sha256 = "sha256-Q0V4nUW/oL7YP7/UEcITLls6uCz5OKqqZymJ9eXHGac=";
   };
 
-  vendorHash = "sha256-V6xe+19NiHYIIN4rgkyzdP4eGnRXo0aW4fVbdlIcvig=";
+  vendorHash = "sha256-talZSkf8lQXwXKdkQliHFv2K+42BFtcg13oB5Szkff0=";
 
   # GitHub source does contain a regression test for the module
   # but it requires networking as it git clones a repo from github
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
index df72a64aaa36f..708703b64d2d3 100644
--- a/pkgs/applications/version-management/gitoxide/default.nix
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -13,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitoxide";
-  version = "0.20.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "gitoxide";
     rev = "v${version}";
-    sha256 = "sha256-8+4AEX4NPflhAB1rZHaz0XPycoL5T3z20ZKlNRdUEdw=";
+    sha256 = "sha256-PetU/cUWFZWl1OoSObI7wwqJLexWPTP6ynNSyPXjvMc=";
   };
 
-  cargoSha256 = "sha256-ybsrrJFH4xKcxRQCI+ypfp5biCrlIidAog01SFCx1ms=";
+  cargoHash = "sha256-A7gwC9EQ+5GVciGsL9uPbZ6nThPfku3ZNH8qQwfI0QQ=";
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ curl ] ++ (if stdenv.isDarwin
diff --git a/pkgs/applications/version-management/glitter/default.nix b/pkgs/applications/version-management/glitter/default.nix
index 5786ebc8a6507..c99403889d54a 100644
--- a/pkgs/applications/version-management/glitter/default.nix
+++ b/pkgs/applications/version-management/glitter/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "glitter";
-  version = "1.6.3";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "milo123459";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xrQqeRJfBEcjX0tkULg+94R7+mWWn6QeKIfZiDp+Vt8=";
+    sha256 = "sha256-sMAHVXpgAhZYUpl75JRtKhTqt/sQkSkoEzk7aGV1vcQ=";
   };
 
-  cargoSha256 = "sha256-GQ7Bns+FPj4jl2dBXnMrmcKIYcZTLZc1WvaHgKGj/gU=";
+  cargoSha256 = "sha256-CaWpGNP7Jsv/3dks0LVbZXoD/9HqJmOzaD0ejT5xSqA=";
 
   nativeCheckInputs = [
     git
diff --git a/pkgs/applications/video/hdhomerun-config-gui/default.nix b/pkgs/applications/video/hdhomerun-config-gui/default.nix
index 58516191fa35d..12689bedcbd38 100644
--- a/pkgs/applications/video/hdhomerun-config-gui/default.nix
+++ b/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hdhomerun-config-gui";
-  version = "20221031";
+  version = "20221205";
 
   src = fetchurl {
     url = "https://download.silicondust.com/hdhomerun/hdhomerun_config_gui_${version}.tgz";
-    sha256 = "17zf0hzw68b0xdkh1maqhl96jb7171mbhd29y64as29nps9x4fmz";
+    sha256 = "sha256-vzrSk742Ca2I8Uk0uGo44SxpEoVY1QBn62Ahwz8E7p8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/virtualization/quickgui/default.nix b/pkgs/applications/virtualization/quickgui/default.nix
new file mode 100644
index 0000000000000..9c4de021f2560
--- /dev/null
+++ b/pkgs/applications/virtualization/quickgui/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "quickgui";
+  version = "1.2.8";
+
+  src = fetchurl {
+    url = "https://github.com/quickemu-project/quickgui/releases/download/v${version}/quickgui_${version}-1_lunar1.0_amd64.deb";
+    sha256 = "sha256-crnV7OWH5UbkMM/TxTIOlXmvqBgjFmQG7RxameMOjH0=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+  ];
+
+  buildInputs = [
+    wrapGAppsHook
+  ];
+
+  unpackCmd = "dpkg-deb -x $curSrc source";
+
+  installPhase = ''
+    runHook preInstall
+
+    mv usr $out
+    substituteInPlace $out/share/applications/quickgui.desktop \
+      --replace "/usr" $out
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A Flutter frontend for quickemu";
+    homepage = "https://github.com/quickemu-project/quickgui";
+    changelog = "https://github.com/quickemu-project/quickgui/releases/tag/v${version}";
+    maintainers = [ lib.maintainers.heyimnova ];
+    platforms = lib.platforms.linux;
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+    mainProgram = "quickgui";
+  };
+}
diff --git a/pkgs/applications/window-managers/miriway/default.nix b/pkgs/applications/window-managers/miriway/default.nix
index a7048e83dae0b..fd3e82e43aa50 100644
--- a/pkgs/applications/window-managers/miriway/default.nix
+++ b/pkgs/applications/window-managers/miriway/default.nix
@@ -11,24 +11,15 @@
 
 stdenv.mkDerivation rec {
   pname = "miriway";
-  version = "unstable-2022-12-18";
+  version = "unstable-2023-02-18";
 
   src = fetchFromGitHub {
     owner = "Miriway";
     repo = "Miriway";
-    rev = "d294c303cb99b7becb0d6686be9a09f0a1f57596";
-    hash = "sha256-H+IZgI1IQxNl5yAygbDKXkyXajGHV/mp9gEqZcp0TeE=";
+    rev = "1363ae0452c5093f84418bc65354e93796caec65";
+    hash = "sha256-hQ2z3GlTJG9qewJLkPpoRMSn0D7xCLyl+1O+G4NnedA=";
   };
 
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace "\''${CMAKE_INSTALL_PREFIX}/bin" "\''${CMAKE_INSTALL_BINDIR}" \
-      --replace "/usr/share" "\''${CMAKE_INSTALL_DATADIR}" \
-      --replace "/etc" "\''${CMAKE_INSTALL_SYSCONFDIR}"
-
-    sed -i -e '/project(/a include(GNUInstallDirs)' CMakeLists.txt
-  '';
-
   strictDeps = true;
 
   nativeBuildInputs = [
diff --git a/pkgs/build-support/node/fetch-npm-deps/default.nix b/pkgs/build-support/node/fetch-npm-deps/default.nix
index 7d6277df987f3..d87071d8559f0 100644
--- a/pkgs/build-support/node/fetch-npm-deps/default.nix
+++ b/pkgs/build-support/node/fetch-npm-deps/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, rustPlatform, makeWrapper, Security, gnutar, gzip, testers, fetchurl, prefetch-npm-deps, fetchNpmDeps }:
+{ lib, stdenvNoCC, rustPlatform, makeWrapper, Security, gnutar, gzip, nix, testers, fetchurl, prefetch-npm-deps, fetchNpmDeps }:
 
 {
   prefetch-npm-deps = rustPlatform.buildRustPackage {
@@ -20,7 +20,7 @@
     buildInputs = lib.optional stdenvNoCC.isDarwin Security;
 
     postInstall = ''
-      wrapProgram "$out/bin/prefetch-npm-deps" --prefix PATH : ${lib.makeBinPath [ gnutar gzip ]}
+      wrapProgram "$out/bin/prefetch-npm-deps" --prefix PATH : ${lib.makeBinPath [ gnutar gzip nix ]}
     '';
 
     passthru.tests =
diff --git a/pkgs/build-support/vm/deb/deb-closure.pl b/pkgs/build-support/vm/deb/deb-closure.pl
index fe23025df1d8d..2d331e18dfeb4 100644
--- a/pkgs/build-support/vm/deb/deb-closure.pl
+++ b/pkgs/build-support/vm/deb/deb-closure.pl
@@ -156,7 +156,7 @@ foreach my $pkgName (@order) {
     $cleanedName =~ s/~//g;
 
     print "    (fetchurl {\n";
-    print "      url = $urlPrefix/$cdata->{Filename};\n";
+    print "      url = \"$urlPrefix/$cdata->{Filename}\";\n";
     print "      sha256 = \"$cdata->{SHA256}\";\n";
     print "      name = \"$cleanedName\";\n" if $cleanedName ne $origName;
     print "    })\n";
diff --git a/pkgs/data/fonts/nanum/default.nix b/pkgs/data/fonts/nanum/default.nix
index 8f432edf41965..64575a1310290 100644
--- a/pkgs/data/fonts/nanum/default.nix
+++ b/pkgs/data/fonts/nanum/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nanum";
-  version = "20170925";
+  version = "20200506";
 
   src = fetchurl {
     url = "mirror://ubuntu/pool/universe/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
-    hash = "sha256-GlVXH9YUU3wHMkNoz5miBv7N2oUEbwUXlcVoElQ9++4=";
+    hash = "sha256-FXgDdIGYFRJQo898sDrvhE5AjpyYhJ3YieGRhGqsrUs=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/fonts/sarasa-gothic/default.nix b/pkgs/data/fonts/sarasa-gothic/default.nix
index 9b04a87a7ecc3..b0e341cf88f16 100644
--- a/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sarasa-gothic";
-  version = "0.40.0";
+  version = "0.40.1";
 
   src = fetchurl {
     # Use the 'ttc' files here for a smaller closure size.
     # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
     url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
-    hash = "sha256-i8W1PLFPXR7ftRt51LmKZEqc22ms7RGFW9cKMUsMRhk=";
+    hash = "sha256-cpgFOhmFSyJA2yhGCCud9jF3LEboiRKyfb3NPiRzJdQ=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/data/fonts/spleen/default.nix b/pkgs/data/fonts/spleen/default.nix
index ec2a1da084897..89d189f4f8b13 100644
--- a/pkgs/data/fonts/spleen/default.nix
+++ b/pkgs/data/fonts/spleen/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spleen";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchurl {
     url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
-    hash = "sha256-fvWcTgKkXp3e1ryhi1Oc3w8OtJ5svLJXhY2lasXapiI=";
+    hash = "sha256-AOGgGJLye0Yg3QTlNZPgRdtRim8atn+ZIm8aPpUnivY=";
   };
 
   nativeBuildInputs = [ xorg.mkfontscale ];
diff --git a/pkgs/data/misc/clash-geoip/default.nix b/pkgs/data/misc/clash-geoip/default.nix
index c138ac710d57b..7c28c82e86467 100644
--- a/pkgs/data/misc/clash-geoip/default.nix
+++ b/pkgs/data/misc/clash-geoip/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "clash-geoip";
-  version = "20230112";
+  version = "20230212";
 
   src = fetchurl {
     url = "https://github.com/Dreamacro/maxmind-geoip/releases/download/${version}/Country.mmdb";
-    sha256 = "sha256-mMu+U3gtoZmi6LrTMTqsNZKZ+w4J6LZ16Aorneyy7P8=";
+    sha256 = "sha256-Tnma6tpET4Vrm5G8KmLpsVnpD2JIKts56kZQsBIbRZ8=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/data/misc/spdx-license-list-data/default.nix b/pkgs/data/misc/spdx-license-list-data/default.nix
index 93405fb788ef8..2cbcad3fb8808 100644
--- a/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spdx-license-list-data";
-  version = "3.19";
+  version = "3.20";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    hash = "sha256-qT9Q6Mntnt9lOhYmGFJlkDyAHQ0CGQpWr1rLF08FGeg=";
+    hash = "sha256-qMVUP1EpeeO+i5RfnAt/Idz+pR9dVyCT4Ss9lEJgj6k=";
   };
 
   # List of file formats to package.
diff --git a/pkgs/desktops/cinnamon/warpinator/default.nix b/pkgs/desktops/cinnamon/warpinator/default.nix
index 7bdfb469c3461..a488baab0071f 100644
--- a/pkgs/desktops/cinnamon/warpinator/default.nix
+++ b/pkgs/desktops/cinnamon/warpinator/default.nix
@@ -15,7 +15,7 @@
 
 python3.pkgs.buildPythonApplication rec  {
   pname = "warpinator";
-  version = "1.4.4";
+  version = "1.4.5";
 
   format = "other";
 
@@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec  {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-oHJOwdCvHnPalTHb5E3mNDYBaR9ZvlV1F6ux7nejBlc=";
+    hash = "sha256-5mMV4WinpFR9ihgoQsgIXre0VpBdg9S8GjSkx+7ocLg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/artwork/deepin-wallpapers/default.nix b/pkgs/desktops/deepin/artwork/deepin-wallpapers/default.nix
new file mode 100644
index 0000000000000..74a8786abe346
--- /dev/null
+++ b/pkgs/desktops/deepin/artwork/deepin-wallpapers/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dde-api
+}:
+
+stdenv.mkDerivation rec {
+  pname = "deepin-wallpapers";
+  version = "1.7.10";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-D7DXyPh74VlYn5vKUzDh/P/xoskxs8N/BEg5ZemXRwk=";
+  };
+
+  nativeBuildInputs = [ dde-api ];
+
+  postPatch = ''
+    patchShebangs blur_image.sh
+
+    substituteInPlace blur_image.sh \
+      --replace /usr/lib/deepin-api/image-blur ${dde-api}/lib/deepin-api/image-blur
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/wallpapers/deepin
+    cp deepin/* $out/share/wallpapers/deepin
+    mkdir -p $out/share/wallpapers/image-blur
+    cp image-blur/* $out/share/wallpapers/image-blur
+    mkdir -p $out/share/backgrounds
+    ln -s $out/share/wallpapers/deepin/desktop.jpg  $out/share/backgrounds/default_background.jpg
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "deepin-wallpapers provides wallpapers of dde";
+    homepage = "https://github.com/linuxdeepin/deepin-wallpapers";
+    license = with licenses; [ gpl3Plus cc-by-sa-30 ];
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix b/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix
new file mode 100644
index 0000000000000..a1acab05cf1a5
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dtkwidget
+, qt5integration
+, qt5platform-plugins
+, dde-qt-dbus-factory
+, pkg-config
+, cmake
+, qttools
+, wrapQtAppsHook
+, polkit-qt
+, qtbase
+}:
+stdenv.mkDerivation rec {
+  pname = "dde-polkit-agent";
+  version = "5.5.22";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-4wAqMymLPxKXbfAx2PtkEGfwenphPxBZn+qCdcyqNc0=";
+  };
+
+  postPatch = ''
+    substituteInPlace AuthDialog.cpp \
+      --replace "/usr/share/dde-session-shell/dde-session-shell.conf" "/etc/dde-session-shell/dde-session-shell.conf"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qttools
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkwidget
+    qt5platform-plugins
+    dde-qt-dbus-factory
+    polkit-qt
+  ];
+
+  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
+  qtWrapperArgs = [
+    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
+  ];
+
+  postFixup = ''
+    wrapQtApp $out/lib/polkit-1-dde/dde-polkit-agent
+  '';
+
+  meta = with lib; {
+    description = "PolicyKit agent for Deepin Desktop Environment";
+    homepage = "https://github.com/linuxdeepin/dde-polkit-agent";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix b/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix
new file mode 100644
index 0000000000000..f9b4e7592fb85
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qttools
+, wrapQtAppsHook
+, dtkwidget
+, dde-polkit-agent
+, libsecret
+, libgnome-keyring
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dpa-ext-gnomekeyring";
+  version = "5.0.11";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-mXaGwbtEwaqfOT0izK64zX4s3VFmsRpUGOVm6oSEhn8=";
+  };
+
+  postPatch = ''
+    substituteInPlace gnomekeyringextention.cpp \
+      --replace "/usr/share/dpa-ext-gnomekeyring" "$out/share/dpa-ext-gnomekeyring"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qttools
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkwidget
+    dde-polkit-agent
+    libgnome-keyring
+    libsecret
+  ];
+
+  meta = with lib; {
+    description = "GNOME keyring extension for dde-polkit-agent";
+    homepage = "https://github.com/linuxdeepin/dpa-ext-gnomekeyring";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 5afb5e03059cb..653372d47ffa0 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -29,6 +29,10 @@ let
     image-editor = callPackage ./library/image-editor { };
     udisks2-qt5 = callPackage ./library/udisks2-qt5 { };
 
+    #### CORE
+    dde-polkit-agent = callPackage ./core/dde-polkit-agent { };
+    dpa-ext-gnomekeyring = callPackage ./core/dpa-ext-gnomekeyring { };
+
     #### Dtk Application
     deepin-album = callPackage ./apps/deepin-album { };
     deepin-calculator = callPackage ./apps/deepin-calculator { };
@@ -54,6 +58,7 @@ let
     #### ARTWORK
     dde-account-faces = callPackage ./artwork/dde-account-faces { };
     deepin-icon-theme = callPackage ./artwork/deepin-icon-theme { };
+    deepin-wallpapers = callPackage ./artwork/deepin-wallpapers { };
     deepin-gtk-theme = callPackage ./artwork/deepin-gtk-theme { };
     deepin-sound-theme = callPackage ./artwork/deepin-sound-theme { };
 
diff --git a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
index 29a60e5513af2..759fd1d9bfe38 100644
--- a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
+++ b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, substituteAll, glib, gnome, gettext }:
+{ lib, stdenv, fetchFromGitHub, substituteAll, glib, gnome, gettext, jq }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-EasyScreenCast";
-  version = "1.4.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "EasyScreenCast";
     repo = "EasyScreenCast";
     rev = version;
-    sha256 = "sha256-+lh/hqYC9+DUvLE016KuAY4Ybw8KrqEEG7WG4pUbg2k=";
+    hash = "sha256-+cH/gczCdxoSrLp5nD82Spo8bSGyRnUUut3Xkmr9f3o=";
   };
 
   patches = [
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    glib gettext
+    glib gettext jq
   ];
 
   makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
diff --git a/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch b/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch
index 2d32021b6c665..4ea048ba79bf2 100644
--- a/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch
+++ b/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch
@@ -1,16 +1,40 @@
-diff --git i/utilaudio.js w/utilaudio.js
-index 983b29c..7a94de8 100644
---- i/utilaudio.js
-+++ w/utilaudio.js
-@@ -11,10 +11,7 @@
- */
+diff --git a/prefs.js b/prefs.js
+index 97b85a3..2fc6539 100644
+--- a/prefs.js
++++ b/prefs.js
+@@ -14,8 +14,8 @@
+ 'use strict';
  
  const GIRepository = imports.gi.GIRepository;
--GIRepository.Repository.prepend_search_path("/usr/lib/gnome-shell");
--GIRepository.Repository.prepend_library_path("/usr/lib/gnome-shell");
--GIRepository.Repository.prepend_search_path("/usr/lib64/gnome-shell");
--GIRepository.Repository.prepend_library_path("/usr/lib64/gnome-shell");
+-GIRepository.Repository.prepend_search_path('/usr/lib64/gnome-shell');
+-GIRepository.Repository.prepend_library_path('/usr/lib64/gnome-shell');
++GIRepository.Repository.prepend_search_path('@gnomeShell@/lib/gnome-shell');
++GIRepository.Repository.prepend_library_path('@gnomeShell@/lib/gnome-shell');
+ 
+ const GObject = imports.gi.GObject;
+ const Gio = imports.gi.Gio;
+@@ -746,7 +746,7 @@ const EasyScreenCastSettingsWidget = GObject.registerClass({
+                 Lib.TalkativeLog('-^-NOT SET xdg-user video');
+ 
+                 ctx.CtrlExe.Execute(
+-                    '/usr/bin/sh -c "echo $HOME"',
++                    '/bin/sh -c "echo $HOME"',
+                     true,
+                     (success, out) => {
+                         Lib.TalkativeLog(`-^-CALLBACK sync S: ${success} out: ${out}`);
+diff --git a/utilaudio.js b/utilaudio.js
+index 957eda2..84af241 100644
+--- a/utilaudio.js
++++ b/utilaudio.js
+@@ -15,10 +15,7 @@
+ 
+ const GObject = imports.gi.GObject;
+ const GIRepository = imports.gi.GIRepository;
+-GIRepository.Repository.prepend_search_path('/usr/lib/gnome-shell');
+-GIRepository.Repository.prepend_library_path('/usr/lib/gnome-shell');
+-GIRepository.Repository.prepend_search_path('/usr/lib64/gnome-shell');
+-GIRepository.Repository.prepend_library_path('/usr/lib64/gnome-shell');
 +GIRepository.Repository.prepend_search_path("@gnomeShell@/lib/gnome-shell");
  const Gvc = imports.gi.Gvc;
- const Lang = imports.lang;
  
+ const ExtensionUtils = imports.misc.extensionUtils;
diff --git a/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix b/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
index 5c04ca4a50ffa..475fe4564eee9 100644
--- a/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
+++ b/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
@@ -133,7 +133,8 @@ rec {
       # Use -fPIC for compilation, and link with -pie if no -shared flag used in ldflags
       echo "-target ${targetInfo.triple} -fPIC" >> $out/nix-support/cc-cflags
       echo "-z,noexecstack -z,relro -z,now -z,muldefs" >> $out/nix-support/cc-ldflags
-      echo 'if [[ ! " $@ " =~ " -shared " ]]; then NIX_LDFLAGS_${suffixSalt}+=" -pie"; fi' >> $out/nix-support/add-flags.sh
+      echo 'expandResponseParams "$@"' >> $out/nix-support/add-flags.sh
+      echo 'if [[ ! (" ''${params[@]} " =~ " -shared ") && ! (" ''${params[@]} " =~ " -no-pie ") ]]; then NIX_LDFLAGS_${suffixSalt}+=" -pie"; fi' >> $out/nix-support/add-flags.sh
       echo "-Xclang -mnoexecstack" >> $out/nix-support/cc-cxxflags
       if [ ${targetInfo.triple} == arm-linux-androideabi ]; then
         # https://android.googlesource.com/platform/external/android-cmake/+/refs/heads/cmake-master-dev/android.toolchain.cmake
diff --git a/pkgs/development/compilers/ligo/default.nix b/pkgs/development/compilers/ligo/default.nix
index 72f4a9591184b..93ef913b4a7d8 100644
--- a/pkgs/development/compilers/ligo/default.nix
+++ b/pkgs/development/compilers/ligo/default.nix
@@ -10,12 +10,12 @@
 
 ocamlPackages.buildDunePackage rec {
   pname = "ligo";
-  version = "0.59.0";
+  version = "0.60.0";
   src = fetchFromGitLab {
     owner = "ligolang";
     repo = "ligo";
     rev = version;
-    sha256 = "sha256-JwFFreUV70W5soXY0UF8/4QlN2oWejdxqwh4KT5VDoQ=";
+    sha256 = "sha256-gyMSpy+F3pF2Kv1ygUs20mrspJ6GtJ6ySyZD7zfZj2w=";
     fetchSubmodules = true;
   };
 
@@ -94,6 +94,7 @@ ocamlPackages.buildDunePackage rec {
     data-encoding
     pure-splitmix
     zarith_stubs_js
+    simple-diff
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix
index 1fa52721ddb97..c2cc7bb40b5f8 100644
--- a/pkgs/development/compilers/ocaml/generic.nix
+++ b/pkgs/development/compilers/ocaml/generic.nix
@@ -17,7 +17,7 @@ in
 assert useX11 -> safeX11 stdenv;
 assert aflSupport -> lib.versionAtLeast version "4.05";
 assert flambdaSupport -> lib.versionAtLeast version "4.03";
-assert spaceTimeSupport -> lib.versionAtLeast version "4.04";
+assert spaceTimeSupport -> lib.versionAtLeast version "4.04" && lib.versionOlder version "4.12";
 assert unsafeStringSupport -> lib.versionAtLeast version "4.06" && lib.versionOlder version "5.0";
 
 let
diff --git a/pkgs/development/compilers/rust/clippy.nix b/pkgs/development/compilers/rust/clippy.nix
index 23b8e7effe123..499db45021eac 100644
--- a/pkgs/development/compilers/rust/clippy.nix
+++ b/pkgs/development/compilers/rust/clippy.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage {
   # changes hash of vendor directory otherwise
   dontUpdateAutotoolsGnuConfigScripts = true;
 
-  buildInputs = [ rustc rustc.llvm ] ++ lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ rustc.llvm ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
   # fixes: error: the option `Z` is only accepted on the nightly compiler
   RUSTC_BOOTSTRAP = 1;
@@ -20,14 +20,21 @@ rustPlatform.buildRustPackage {
   #   (/private/tmp/nix-build-clippy-1.36.0.drv-0/rustc-1.36.0-src/src/librustc_llvm)
   doCheck = false;
 
+  # Clippy uses the rustc_driver and std private libraries, and Rust's build process forces them to have
+  # an install name of `@rpath/...` [0] [1] instead of the standard on macOS, which is an absolute path
+  # to itself.
+  #
+  # [0]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/src/bootstrap/builder.rs#L1543
+  # [1]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/compiler/rustc_codegen_ssa/src/back/linker.rs#L323-L331
   preFixup = lib.optionalString stdenv.isDarwin ''
-    install_name_tool -add_rpath "${rustc}/lib" $out/bin/clippy-driver
+    install_name_tool -add_rpath "${rustc}/lib" "$out/bin/clippy-driver"
+    install_name_tool -add_rpath "${rustc}/lib" "$out/bin/cargo-clippy"
   '';
 
   meta = with lib; {
     homepage = "https://rust-lang.github.io/rust-clippy/";
     description = "A bunch of lints to catch common mistakes and improve your Rust code";
-    maintainers = with maintainers; [ basvandijk ];
+    maintainers = with maintainers; [ basvandijk ] ++ teams.rust.members;
     license = with licenses; [ mit asl20 ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix
index 60f07a64299ab..130cb8326115b 100644
--- a/pkgs/development/compilers/rust/rustc.nix
+++ b/pkgs/development/compilers/rust/rustc.nix
@@ -11,6 +11,8 @@
 , sha256
 , patches ? []
 , fd
+, ripgrep
+, wezterm
 , firefox
 , thunderbird
 }:
@@ -204,7 +206,9 @@ in stdenv.mkDerivation rec {
   passthru = {
     llvm = llvmShared;
     inherit llvmPackages;
-    tests = { inherit fd; } // lib.optionalAttrs stdenv.hostPlatform.isLinux { inherit firefox thunderbird; };
+    tests = {
+      inherit fd ripgrep wezterm;
+    } // lib.optionalAttrs stdenv.hostPlatform.isLinux { inherit firefox thunderbird; };
   };
 
   meta = with lib; {
diff --git a/pkgs/development/interpreters/love/0.10.nix b/pkgs/development/interpreters/love/0.10.nix
index 5e97e4f003e2f..881bc59ccff20 100644
--- a/pkgs/development/interpreters/love/0.10.nix
+++ b/pkgs/development/interpreters/love/0.10.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "love";
-  version = "11.4";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "love2d";
     repo = "love";
     rev = version;
-    sha256 = "sha256-C/Ifd0KjmaM5Y2fxBiDNz1GQoT4GeH/vyUCiira57U4=";
+    sha256 = "19yfmlcx6w8yi4ndm5lni8lrsvnn77bxw5py0dc293nzzlaqa9ym";
   };
 
   nativeBuildInputs = [ pkg-config autoconf automake ];
diff --git a/pkgs/development/libraries/clucene-core/2.x.nix b/pkgs/development/libraries/clucene-core/2.x.nix
index d928b814e826f..fbc23af6427e0 100644
--- a/pkgs/development/libraries/clucene-core/2.x.nix
+++ b/pkgs/development/libraries/clucene-core/2.x.nix
@@ -37,6 +37,10 @@ stdenv.mkDerivation rec {
     ./Install-contribs-lib.patch
     # From arch
     ./fix-missing-include-time.patch
+
+    # required for darwin and linux-musl
+    ./pthread-include.patch
+
   ] ++ lib.optionals stdenv.isDarwin [ ./fix-darwin.patch ];
 
   # fails with "Unable to find executable:
diff --git a/pkgs/development/libraries/clucene-core/fix-darwin.patch b/pkgs/development/libraries/clucene-core/fix-darwin.patch
index c06413f3c2e13..cb47a4f3763f0 100644
--- a/pkgs/development/libraries/clucene-core/fix-darwin.patch
+++ b/pkgs/development/libraries/clucene-core/fix-darwin.patch
@@ -1,16 +1,3 @@
---- a/src/shared/CLucene/LuceneThreads.h
-+++ b/src/shared/CLucene/LuceneThreads.h
-@@ -7,6 +7,9 @@
- #ifndef _LuceneThreads_h
- #define  _LuceneThreads_h
-
-+#if defined(_CL_HAVE_PTHREAD)
-+	#include <pthread.h>
-+#endif
-
- CL_NS_DEF(util)
- class CLuceneThreadIdCompare;
-
 --- a/src/shared/CLucene/config/repl_tchar.h
 +++ b/src/shared/CLucene/config/repl_tchar.h
 @@ -28,26 +28,26 @@
diff --git a/pkgs/development/libraries/clucene-core/pthread-include.patch b/pkgs/development/libraries/clucene-core/pthread-include.patch
new file mode 100644
index 0000000000000..73a168c132f41
--- /dev/null
+++ b/pkgs/development/libraries/clucene-core/pthread-include.patch
@@ -0,0 +1,14 @@
+--- a/src/shared/CLucene/LuceneThreads.h
++++ b/src/shared/CLucene/LuceneThreads.h
+@@ -7,6 +7,9 @@
+ #ifndef _LuceneThreads_h
+ #define  _LuceneThreads_h
+
++#if defined(_CL_HAVE_PTHREAD)
++	#include <pthread.h>
++#endif
+
+ CL_NS_DEF(util)
+ class CLuceneThreadIdCompare;
+
+
diff --git a/pkgs/development/libraries/cyclondds/0001-Use-full-path-in-pkgconfig.patch b/pkgs/development/libraries/cyclonedds/0001-Use-full-path-in-pkgconfig.patch
index 5d41552df37cf..5d41552df37cf 100644
--- a/pkgs/development/libraries/cyclondds/0001-Use-full-path-in-pkgconfig.patch
+++ b/pkgs/development/libraries/cyclonedds/0001-Use-full-path-in-pkgconfig.patch
diff --git a/pkgs/development/libraries/cyclondds/default.nix b/pkgs/development/libraries/cyclonedds/default.nix
index 649446908395d..d7cd6986e658e 100644
--- a/pkgs/development/libraries/cyclondds/default.nix
+++ b/pkgs/development/libraries/cyclonedds/default.nix
@@ -5,7 +5,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "cyclondds";
+  pname = "cyclonedds";
   version = "0.10.2";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index 8d95bedf02237..2dd77b358b98b 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -7,7 +7,6 @@
 , openssl
 , openjdk11
 , unixODBC
-, withHttpFs ? true
 , withJdbc ? false
 , withOdbc ? false
 }:
@@ -17,35 +16,47 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "duckdb";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-no4fcukEpzKmh2i41sdXGDljGhEDkzk3rYBATqlq6Gw=";
+    sha256 = "sha256-9m9+fldOgv2QTuUbw5y0zekBxZe8Dd4+8FqR3t3uFGg=";
   };
 
   patches = [ ./version.patch ];
 
   postPatch = ''
     substituteInPlace CMakeLists.txt --subst-var-by DUCKDB_VERSION "v${version}"
+    substituteInPlace tools/shell/CMakeLists.txt \
+      --replace \
+      'install(TARGETS shell RUNTIME DESTINATION "''${PROJECT_BINARY_DIR}")' \
+      'install(TARGETS shell RUNTIME DESTINATION "''${INSTALL_BIN_DIR}")'
   '';
 
+  nativeBuildInputs = [ cmake ninja ];
+  buildInputs = [ openssl ]
+    ++ lib.optionals withJdbc [ openjdk11 ]
+    ++ lib.optionals withOdbc [ unixODBC ];
+
   cmakeFlags = [
-    "-DBUILD_EXCEL_EXTENSION=ON"
-    "-DBUILD_FTS_EXTENSION=ON"
-    "-DBUILD_HTTPFS_EXTENSION=${enableFeature withHttpFs}"
     "-DBUILD_ICU_EXTENSION=ON"
-    "-DBUILD_JSON_EXTENSION=ON"
-    "-DBUILD_ODBC_DRIVER=${enableFeature withOdbc}"
     "-DBUILD_PARQUET_EXTENSION=ON"
-    "-DBUILD_TPCDS_EXTENSION=ON"
-    "-DBUILD_TPCE=ON"
     "-DBUILD_TPCH_EXTENSION=ON"
+    "-DBUILD_TPCDS_EXTENSION=ON"
+    "-DBUILD_FTS_EXTENSION=ON"
+    "-DBUILD_HTTPFS_EXTENSION=ON"
     "-DBUILD_VISUALIZER_EXTENSION=ON"
+    "-DBUILD_JSON_EXTENSION=ON"
+    "-DBUILD_JEMALLOC_EXTENSION=ON"
+    "-DBUILD_EXCEL_EXTENSION=ON"
     "-DBUILD_INET_EXTENSION=ON"
+    "-DBUILD_TPCE=ON"
+    "-DBUILD_ODBC_DRIVER=${enableFeature withOdbc}"
     "-DJDBC_DRIVER=${enableFeature withJdbc}"
+    # development settings
+    "-DBUILD_UNITTESTS=ON"
   ];
 
   doInstallCheck = true;
@@ -69,6 +80,10 @@ stdenv.mkDerivation rec {
         "test/sql/storage/compression/chimp/chimp_read_float.test"
         "test/sql/storage/compression/patas/patas_compression_ratio.test_coverage"
         "test/sql/storage/compression/patas/patas_read.test"
+        "test/sql/json/read_json_objects.test"
+        "test/sql/json/read_json.test"
+        "test/sql/copy/parquet/parquet_5968.test"
+        "test/fuzzer/pedro/buffer_manager_out_of_memory.test"
         # these are only hidden if no filters are passed in
         "[!hide]"
         # this test apparently never terminates
@@ -87,11 +102,6 @@ stdenv.mkDerivation rec {
       runHook postInstallCheck
     '';
 
-  nativeBuildInputs = [ cmake ninja ];
-  buildInputs = lib.optionals withHttpFs [ openssl ]
-    ++ lib.optionals withJdbc [ openjdk11 ]
-    ++ lib.optionals withOdbc [ unixODBC ];
-
   meta = with lib; {
     homepage = "https://github.com/duckdb/duckdb";
     description = "Embeddable SQL OLAP Database Management System";
diff --git a/pkgs/development/libraries/example-robot-data/default.nix b/pkgs/development/libraries/example-robot-data/default.nix
index 5fbb03a9fa2b5..01c87362d9d49 100644
--- a/pkgs/development/libraries/example-robot-data/default.nix
+++ b/pkgs/development/libraries/example-robot-data/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "example-robot-data";
-  version = "4.0.4";
+  version = "4.0.5";
 
   src = fetchFromGitHub {
     owner = "Gepetto";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-5FqMRChv/YGeoZq/jLSEJI5iQazQIDwslT78fbERVfs=";
+    sha256 = "sha256-KE+wmYlgETt6RtyN/BMApgS075/WtuhY+rM7YFkBH0E=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index 02707c750c06b..c178da90a0df6 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -29,11 +29,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "imlib2";
-  version = "1.9.1";
+  version = "1.10.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
-    hash = "sha256-SiJAOL//vl1NJQxE4F9O5a4k3P74OVsWd8cVxY92TUM=";
+    hash = "sha256-cnwak3yIXAgMNyF+R23Ii1o+YNc38b8ECzQ1ILeBy7o=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/librsync/default.nix b/pkgs/development/libraries/librsync/default.nix
index cc9778a3ba7de..5139c397de3a3 100644
--- a/pkgs/development/libraries/librsync/default.nix
+++ b/pkgs/development/libraries/librsync/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "librsync";
-  version = "2.3.2";
+  version = "2.3.4";
 
   src = fetchFromGitHub {
     owner = "librsync";
     repo = "librsync";
     rev = "v${version}";
-    sha256 = "sha256-GNwOIZ2UjvsYIthotiPDBrabYzCGFG/YVEbwVa9Nwi4=";
+    sha256 = "sha256-fiOby8tOhv0KJ+ZwAWfh/ynqHlYC9kNqKfxNl3IhzR8=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Implementation of the rsync remote-delta algorithm";
     homepage = "https://librsync.sourceforge.net/";
+    changelog = "https://github.com/librsync/librsync/releases/tag/v${version}";
     license = licenses.lgpl2Plus;
     mainProgram = "rdiff";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/librtlsdr/default.nix b/pkgs/development/libraries/librtlsdr/default.nix
deleted file mode 100644
index c09575924a0a1..0000000000000
--- a/pkgs/development/libraries/librtlsdr/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, pkg-config
-, libusb1
-}:
-
-stdenv.mkDerivation rec {
-  pname = "librtlsdr";
-  version = "0.8.0";
-
-  src = fetchFromGitHub {
-    owner = "librtlsdr";
-    repo = "librtlsdr";
-    rev = "v${version}";
-    sha256 = "sha256-s03h+3EfC5c7yRYBM6aCRWtmstwRJWuBywuyVt+k/bk=";
-  };
-
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d"
-
-    substituteInPlace rtl-sdr.rules \
-      --replace 'MODE:="0666"' 'ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"'
-  '';
-
-  nativeBuildInputs = [ pkg-config cmake ];
-
-  propagatedBuildInputs = [ libusb1 ];
-
-  meta = with lib; {
-    description = "Turns your Realtek RTL2832 based DVB dongle into a SDR receiver";
-    homepage = "https://github.com/librtlsdr/librtlsdr";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ bjornfor ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/development/libraries/liburing/0001-Add-custom-error-function-for-tests.patch b/pkgs/development/libraries/liburing/0001-Add-custom-error-function-for-tests.patch
new file mode 100644
index 0000000000000..191f6ae8cd5ac
--- /dev/null
+++ b/pkgs/development/libraries/liburing/0001-Add-custom-error-function-for-tests.patch
@@ -0,0 +1,66 @@
+From d4714fd7aac9c5f499c406703bc437dc6cf72ef3 Mon Sep 17 00:00:00 2001
+From: Steffen <steffen.winter@proton.me>
+Date: Mon, 13 Feb 2023 17:32:16 +0100
+Subject: [PATCH 1/3] Add custom error function for tests.
+
+On musl systems, liburing cannot build examples and tests due to
+it's usage of error.h. t_error calls fprintf(stderr, ...) and
+exits.
+
+Closes: #786
+
+Signed-off-by: Steffen Winter <steffen.winter@proton.me>
+---
+ test/helpers.c | 18 ++++++++++++++++++
+ test/helpers.h |  2 ++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/test/helpers.c b/test/helpers.c
+index 8fb32b8..caa887e 100644
+--- a/test/helpers.c
++++ b/test/helpers.c
+@@ -8,6 +8,7 @@
+ #include <stdio.h>
+ #include <fcntl.h>
+ #include <unistd.h>
++#include <stdarg.h>
+ #include <sys/types.h>
+ 
+ #include <arpa/inet.h>
+@@ -266,3 +267,20 @@ bool t_probe_defer_taskrun(void)
+ 	io_uring_queue_exit(&ring);
+ 	return true;
+ }
++
++/*
++ * Implementation of error(3), prints an error message and exits.
++ */
++void t_error(int status, int errnum, const char *format, ...)
++{
++	va_list args;
++    	va_start(args, format);
++
++	vfprintf(stderr, format, args);
++    	if (errnum)
++        	fprintf(stderr, ": %s", strerror(errnum));
++
++	fprintf(stderr, "\n");
++	va_end(args);
++    	exit(status);
++}
+diff --git a/test/helpers.h b/test/helpers.h
+index 4375a9e..33b82cf 100644
+--- a/test/helpers.h
++++ b/test/helpers.h
+@@ -87,6 +87,8 @@ bool t_probe_defer_taskrun(void);
+ 
+ #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+ 
++void t_error(int status, int errnum, const char *format, ...);
++
+ #ifdef __cplusplus
+ }
+ #endif
+-- 
+2.39.1
+
diff --git a/pkgs/development/libraries/liburing/0002-test-Use-t_error-instead-of-glibc-s-error.patch b/pkgs/development/libraries/liburing/0002-test-Use-t_error-instead-of-glibc-s-error.patch
new file mode 100644
index 0000000000000..676b006482c4f
--- /dev/null
+++ b/pkgs/development/libraries/liburing/0002-test-Use-t_error-instead-of-glibc-s-error.patch
@@ -0,0 +1,109 @@
+From e84f40ca872f0bce72b5686c95a11739d9c89494 Mon Sep 17 00:00:00 2001
+From: Steffen <steffen.winter@proton.me>
+Date: Mon, 13 Feb 2023 17:56:03 +0100
+Subject: [PATCH 2/3] test: Use t_error instead of glibc's error.
+
+On musl systems, liburing cannot build examples and tests due to
+it's usage of error.h. Replacing calls to error() with t_error().
+
+Closes: #786
+
+Signed-off-by: Steffen Winter <steffen.winter@proton.me>
+---
+ test/defer-taskrun.c |  1 -
+ test/send-zerocopy.c |  1 -
+ test/single-issuer.c | 15 +++++++--------
+ 3 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/test/defer-taskrun.c b/test/defer-taskrun.c
+index 9283f28..87cd256 100644
+--- a/test/defer-taskrun.c
++++ b/test/defer-taskrun.c
+@@ -4,7 +4,6 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <error.h>
+ #include <sys/eventfd.h>
+ #include <signal.h>
+ #include <poll.h>
+diff --git a/test/send-zerocopy.c b/test/send-zerocopy.c
+index 4db102b..be33094 100644
+--- a/test/send-zerocopy.c
++++ b/test/send-zerocopy.c
+@@ -4,7 +4,6 @@
+ #include <stdint.h>
+ #include <assert.h>
+ #include <errno.h>
+-#include <error.h>
+ #include <limits.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+diff --git a/test/single-issuer.c b/test/single-issuer.c
+index 1d13f47..d71cd74 100644
+--- a/test/single-issuer.c
++++ b/test/single-issuer.c
+@@ -5,7 +5,6 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <fcntl.h>
+-#include <error.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+ 
+@@ -56,13 +55,13 @@ static int try_submit(struct io_uring *ring)
+ 		return ret;
+ 
+ 	if (ret != 1)
+-		error(1, ret, "submit %i", ret);
++		t_error(1, ret, "submit %i", ret);
+ 	ret = io_uring_wait_cqe(ring, &cqe);
+ 	if (ret)
+-		error(1, ret, "wait fail %i", ret);
++		t_error(1, ret, "wait fail %i", ret);
+ 
+ 	if (cqe->res || cqe->user_data != 42)
+-		error(1, ret, "invalid cqe");
++		t_error(1, ret, "invalid cqe");
+ 
+ 	io_uring_cqe_seen(ring, cqe);
+ 	return 0;
+@@ -106,7 +105,7 @@ int main(int argc, char *argv[])
+ 	ret = io_uring_queue_init(8, &ring, IORING_SETUP_SINGLE_ISSUER |
+ 					    IORING_SETUP_R_DISABLED);
+ 	if (ret)
+-		error(1, ret, "ring init (2) %i", ret);
++		t_error(1, ret, "ring init (2) %i", ret);
+ 
+ 	if (!fork_t()) {
+ 		io_uring_enable_rings(&ring);
+@@ -122,7 +121,7 @@ int main(int argc, char *argv[])
+ 	ret = io_uring_queue_init(8, &ring, IORING_SETUP_SINGLE_ISSUER |
+ 					    IORING_SETUP_R_DISABLED);
+ 	if (ret)
+-		error(1, ret, "ring init (3) %i", ret);
++		t_error(1, ret, "ring init (3) %i", ret);
+ 
+ 	io_uring_enable_rings(&ring);
+ 	if (!fork_t()) {
+@@ -137,7 +136,7 @@ int main(int argc, char *argv[])
+ 	/* test that anyone can submit to a SQPOLL|SINGLE_ISSUER ring */
+ 	ret = io_uring_queue_init(8, &ring, IORING_SETUP_SINGLE_ISSUER|IORING_SETUP_SQPOLL);
+ 	if (ret)
+-		error(1, ret, "ring init (4) %i", ret);
++		t_error(1, ret, "ring init (4) %i", ret);
+ 
+ 	ret = try_submit(&ring);
+ 	if (ret) {
+@@ -157,7 +156,7 @@ int main(int argc, char *argv[])
+ 	/* test that IORING_ENTER_REGISTERED_RING doesn't break anything */
+ 	ret = io_uring_queue_init(8, &ring, IORING_SETUP_SINGLE_ISSUER);
+ 	if (ret)
+-		error(1, ret, "ring init (5) %i", ret);
++		t_error(1, ret, "ring init (5) %i", ret);
+ 
+ 	if (!fork_t()) {
+ 		ret = try_submit(&ring);
+-- 
+2.39.1
+
diff --git a/pkgs/development/libraries/liburing/0003-examples-Use-t_error-instead-of-glibc-s-error.patch b/pkgs/development/libraries/liburing/0003-examples-Use-t_error-instead-of-glibc-s-error.patch
new file mode 100644
index 0000000000000..ce92f16dcb18e
--- /dev/null
+++ b/pkgs/development/libraries/liburing/0003-examples-Use-t_error-instead-of-glibc-s-error.patch
@@ -0,0 +1,226 @@
+From 23704bbd1416ed1a051b32d5d44e46dd654b8ffe Mon Sep 17 00:00:00 2001
+From: Steffen <steffen.winter@proton.me>
+Date: Mon, 13 Feb 2023 18:23:44 +0100
+Subject: [PATCH 3/3] examples: Use t_error instead of glibc's error.
+
+On musl systems, liburing cannot build examples and tests due to
+it's usage of error.h. t_error copied from test/helpers.c.
+Replacing calls to error() with t_error().
+
+Closes: #786
+
+Signed-off-by: Steffen Winter <steffen.winter@proton.me>
+---
+ examples/send-zerocopy.c | 61 +++++++++++++++++++++++++---------------
+ 1 file changed, 39 insertions(+), 22 deletions(-)
+
+diff --git a/examples/send-zerocopy.c b/examples/send-zerocopy.c
+index 7f5f2b1..6092af9 100644
+--- a/examples/send-zerocopy.c
++++ b/examples/send-zerocopy.c
+@@ -5,11 +5,11 @@
+ #include <stdint.h>
+ #include <assert.h>
+ #include <errno.h>
+-#include <error.h>
+ #include <limits.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <stdbool.h>
++#include <stdarg.h>
+ #include <string.h>
+ 
+ #include <arpa/inet.h>
+@@ -57,6 +57,23 @@ static struct sockaddr_storage cfg_dst_addr;
+ 
+ static char payload[IP_MAXPACKET] __attribute__((aligned(4096)));
+ 
++/*
++ * Implementation of error(3), prints an error message and exits.
++ */
++static void t_error(int status, int errnum, const char *format, ...)
++{
++	va_list args;
++	va_start(args, format);
++
++	vfprintf(stderr, format, args);
++	if (errnum)
++		fprintf(stderr, ": %s", strerror(errnum));
++
++	fprintf(stderr, "\n");
++	va_end(args);
++	exit(status);
++}
++
+ static unsigned long gettimeofday_ms(void)
+ {
+ 	struct timeval tv;
+@@ -68,7 +85,7 @@ static unsigned long gettimeofday_ms(void)
+ static void do_setsockopt(int fd, int level, int optname, int val)
+ {
+ 	if (setsockopt(fd, level, optname, &val, sizeof(val)))
+-		error(1, errno, "setsockopt %d.%d: %d", level, optname, val);
++		t_error(1, errno, "setsockopt %d.%d: %d", level, optname, val);
+ }
+ 
+ static void setup_sockaddr(int domain, const char *str_addr,
+@@ -84,7 +101,7 @@ static void setup_sockaddr(int domain, const char *str_addr,
+ 		addr4->sin_port = htons(cfg_port);
+ 		if (str_addr &&
+ 		    inet_pton(AF_INET, str_addr, &(addr4->sin_addr)) != 1)
+-			error(1, 0, "ipv4 parse error: %s", str_addr);
++			t_error(1, 0, "ipv4 parse error: %s", str_addr);
+ 		break;
+ 	case PF_INET6:
+ 		memset(addr6, 0, sizeof(*addr6));
+@@ -92,10 +109,10 @@ static void setup_sockaddr(int domain, const char *str_addr,
+ 		addr6->sin6_port = htons(cfg_port);
+ 		if (str_addr &&
+ 		    inet_pton(AF_INET6, str_addr, &(addr6->sin6_addr)) != 1)
+-			error(1, 0, "ipv6 parse error: %s", str_addr);
++			t_error(1, 0, "ipv6 parse error: %s", str_addr);
+ 		break;
+ 	default:
+-		error(1, 0, "illegal domain");
++		t_error(1, 0, "illegal domain");
+ 	}
+ }
+ 
+@@ -105,12 +122,12 @@ static int do_setup_tx(int domain, int type, int protocol)
+ 
+ 	fd = socket(domain, type, protocol);
+ 	if (fd == -1)
+-		error(1, errno, "socket t");
++		t_error(1, errno, "socket t");
+ 
+ 	do_setsockopt(fd, SOL_SOCKET, SO_SNDBUF, 1 << 21);
+ 
+ 	if (connect(fd, (void *) &cfg_dst_addr, cfg_alen))
+-		error(1, errno, "connect");
++		t_error(1, errno, "connect");
+ 	return fd;
+ }
+ 
+@@ -125,7 +142,7 @@ static inline struct io_uring_cqe *wait_cqe_fast(struct io_uring *ring)
+ 
+ 	ret = io_uring_wait_cqe(ring, &cqe);
+ 	if (ret)
+-		error(1, ret, "wait cqe");
++		t_error(1, ret, "wait cqe");
+ 	return cqe;
+ }
+ 
+@@ -143,17 +160,17 @@ static void do_tx(int domain, int type, int protocol)
+ 
+ 	ret = io_uring_queue_init(512, &ring, IORING_SETUP_COOP_TASKRUN);
+ 	if (ret)
+-		error(1, ret, "io_uring: queue init");
++		t_error(1, ret, "io_uring: queue init");
+ 
+ 	if (cfg_fixed_files) {
+ 		ret = io_uring_register_files(&ring, &fd, 1);
+ 		if (ret < 0)
+-			error(1, ret, "io_uring: files registration");
++			t_error(1, ret, "io_uring: files registration");
+ 	}
+ 	if (cfg_reg_ringfd) {
+ 		ret = io_uring_register_ring_fd(&ring);
+ 		if (ret < 0)
+-			error(1, ret, "io_uring: io_uring_register_ring_fd");
++			t_error(1, ret, "io_uring: io_uring_register_ring_fd");
+ 	}
+ 
+ 	iov.iov_base = payload;
+@@ -161,7 +178,7 @@ static void do_tx(int domain, int type, int protocol)
+ 
+ 	ret = io_uring_register_buffers(&ring, &iov, 1);
+ 	if (ret)
+-		error(1, ret, "io_uring: buffer registration");
++		t_error(1, ret, "io_uring: buffer registration");
+ 
+ 	tstop = gettimeofday_ms() + cfg_runtime_ms;
+ 	do {
+@@ -193,14 +210,14 @@ static void do_tx(int domain, int type, int protocol)
+ 
+ 		ret = io_uring_submit(&ring);
+ 		if (ret != cfg_nr_reqs)
+-			error(1, ret, "submit");
++			t_error(1, ret, "submit");
+ 
+ 		for (i = 0; i < cfg_nr_reqs; i++) {
+ 			cqe = wait_cqe_fast(&ring);
+ 
+ 			if (cqe->flags & IORING_CQE_F_NOTIF) {
+ 				if (cqe->flags & IORING_CQE_F_MORE)
+-					error(1, -EINVAL, "F_MORE notif");
++					t_error(1, -EINVAL, "F_MORE notif");
+ 				compl_cqes--;
+ 				i--;
+ 				io_uring_cqe_seen(&ring, cqe);
+@@ -217,7 +234,7 @@ static void do_tx(int domain, int type, int protocol)
+ 				fprintf(stderr, "Connection failure");
+ 				goto out_fail;
+ 			} else if (cqe->res != -EAGAIN) {
+-				error(1, cqe->res, "send failed");
++				t_error(1, cqe->res, "send failed");
+ 			}
+ 			io_uring_cqe_seen(&ring, cqe);
+ 		}
+@@ -226,7 +243,7 @@ static void do_tx(int domain, int type, int protocol)
+ out_fail:
+ 	shutdown(fd, SHUT_RDWR);
+ 	if (close(fd))
+-		error(1, errno, "close");
++		t_error(1, errno, "close");
+ 
+ 	fprintf(stderr, "tx=%lu (MB=%lu), tx/s=%lu (MB/s=%lu)\n",
+ 			packets, bytes >> 20,
+@@ -254,7 +271,7 @@ static void do_test(int domain, int type, int protocol)
+ 
+ static void usage(const char *filepath)
+ {
+-	error(1, 0, "Usage: %s [-n<N>] [-z<val>] [-s<payload size>] "
++	t_error(1, 0, "Usage: %s [-n<N>] [-z<val>] [-s<payload size>] "
+ 		    "(-4|-6) [-t<time s>] -D<dst_ip> udp", filepath);
+ }
+ 
+@@ -276,13 +293,13 @@ static void parse_opts(int argc, char **argv)
+ 		switch (c) {
+ 		case '4':
+ 			if (cfg_family != PF_UNSPEC)
+-				error(1, 0, "Pass one of -4 or -6");
++				t_error(1, 0, "Pass one of -4 or -6");
+ 			cfg_family = PF_INET;
+ 			cfg_alen = sizeof(struct sockaddr_in);
+ 			break;
+ 		case '6':
+ 			if (cfg_family != PF_UNSPEC)
+-				error(1, 0, "Pass one of -4 or -6");
++				t_error(1, 0, "Pass one of -4 or -6");
+ 			cfg_family = PF_INET6;
+ 			cfg_alen = sizeof(struct sockaddr_in6);
+ 			break;
+@@ -311,9 +328,9 @@ static void parse_opts(int argc, char **argv)
+ 	}
+ 
+ 	if (cfg_nr_reqs > MAX_SUBMIT_NR)
+-		error(1, 0, "-n: submit batch nr exceeds max (%d)", MAX_SUBMIT_NR);
++		t_error(1, 0, "-n: submit batch nr exceeds max (%d)", MAX_SUBMIT_NR);
+ 	if (cfg_payload_len > max_payload_len)
+-		error(1, 0, "-s: payload exceeds max (%d)", max_payload_len);
++		t_error(1, 0, "-s: payload exceeds max (%d)", max_payload_len);
+ 
+ 	setup_sockaddr(cfg_family, daddr, &cfg_dst_addr);
+ 
+@@ -333,7 +350,7 @@ int main(int argc, char **argv)
+ 	else if (!strcmp(cfg_test, "udp"))
+ 		do_test(cfg_family, SOCK_DGRAM, 0);
+ 	else
+-		error(1, 0, "unknown cfg_test %s", cfg_test);
++		t_error(1, 0, "unknown cfg_test %s", cfg_test);
+ 
+ 	return 0;
+ }
+-- 
+2.39.1
+
diff --git a/pkgs/development/libraries/liburing/default.nix b/pkgs/development/libraries/liburing/default.nix
index 7a5fa8a34a121..cfcf8ae3dd66a 100644
--- a/pkgs/development/libraries/liburing/default.nix
+++ b/pkgs/development/libraries/liburing/default.nix
@@ -12,6 +12,19 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-vN6lLb5kpgHTKDxwibJPS61sdelILETVtJE2BYgp79k=";
   };
 
+  patches = [
+    # Backported portability fixes from liburing master, needed for pkgsMusl.liburing
+    ./0001-Add-custom-error-function-for-tests.patch
+    ./0002-test-Use-t_error-instead-of-glibc-s-error.patch
+    ./0003-examples-Use-t_error-instead-of-glibc-s-error.patch
+
+    # More portability fixes, in the process of being upstreamed
+    (fetchpatch {
+      url = "https://github.com/axboe/liburing/pull/798/commits/0fbcc44fe1fb2dc6807660b2cff1c2995add095b.patch";
+      hash = "sha256-xOMsw0VpYGst/+Isd2Tmq8CmBDK+uyLw3KNKPnsCSoA=";
+    })
+  ];
+
   separateDebugInfo = true;
   enableParallelBuilding = true;
   # Upstream's configure script is not autoconf generated, but a hand written one.
diff --git a/pkgs/development/libraries/pinocchio/default.nix b/pkgs/development/libraries/pinocchio/default.nix
index 9c526b6fdce4e..b6f12e7f530d1 100644
--- a/pkgs/development/libraries/pinocchio/default.nix
+++ b/pkgs/development/libraries/pinocchio/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "pinocchio";
-  version = "2.6.16";
+  version = "2.6.17";
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-ihyLoElqpIhsZXPF3o4XgbkzeE/BYdz8+WhLLcpc6PE=";
+    hash = "sha256-P/2cwFMtVaxT+qt2RDa7qjUIFjDBJ7U6epRFahOKux4=";
   };
 
   # error: use of undeclared identifier '__sincos'
diff --git a/pkgs/development/libraries/wangle/default.nix b/pkgs/development/libraries/wangle/default.nix
index 2dc62f299fc35..6c167a3279c6f 100644
--- a/pkgs/development/libraries/wangle/default.nix
+++ b/pkgs/development/libraries/wangle/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wangle";
-  version = "2023.01.30.00";
+  version = "2023.02.13.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "wangle";
     rev = "v${version}";
-    sha256 = "sha256-pHBFX9zs1vHXveZw9HCieRuQldLrq5fwJXWzNyLx1Kg=";
+    sha256 = "sha256-Qt+wW9y16ESVBAU3BkdZc/ho1eZNLcCd/+NaUbnJjKU=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/ocaml-modules/simple-diff/default.nix b/pkgs/development/ocaml-modules/simple-diff/default.nix
new file mode 100644
index 0000000000000..a87026fb4a0b7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/simple-diff/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchFromGitHub, ocaml, findlib, topkg, ocamlbuild, re }:
+
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-simple-diff";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "gjaldon";
+    repo = "simple_diff";
+    rev = "v${version}";
+    sha256 = "sha256-OaKECUBCCt9KfdRJf3HcXTUJVxKKdYtnzOHpMPOllrk=";
+  };
+
+  nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
+  buildInputs = [ topkg ];
+  propagatedBuildInputs = [ re ];
+
+  strictDeps = true;
+
+  inherit (topkg) buildPhase installPhase;
+
+  meta = with lib; {
+    homepage = "https://github.com/gjaldon/simple_diff";
+    description = "Simple_diff is a pure OCaml diffing algorithm";
+    license = licenses.isc;
+    maintainers = with maintainers; [ ulrikstrid ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiohomekit/default.nix b/pkgs/development/python-modules/aiohomekit/default.nix
index e9b27ea7a83e0..b67d72cc672ff 100644
--- a/pkgs/development/python-modules/aiohomekit/default.nix
+++ b/pkgs/development/python-modules/aiohomekit/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "aiohomekit";
-  version = "2.5.0";
+  version = "2.6.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "Jc2k";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-uFmQLeGPnFDABA4Uu1sL/2uUJnL+feclpGyJyISJx2E=";
+    hash = "sha256-g/8vzd7ehPNVNzvymXU/i8NiYv7UR9uWfUPnVDQsFg0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aioruuvigateway/default.nix b/pkgs/development/python-modules/aioruuvigateway/default.nix
index 36f08874e926c..2ba4718af565c 100644
--- a/pkgs/development/python-modules/aioruuvigateway/default.nix
+++ b/pkgs/development/python-modules/aioruuvigateway/default.nix
@@ -36,6 +36,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "aioruuvigateway"
+  ];
+
   meta = with lib; {
     description = "An asyncio-native library for requesting data from a Ruuvi Gateway";
     homepage = "https://github.com/akx/aioruuvigateway";
@@ -43,5 +47,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ hexa ];
   };
 }
-
-
diff --git a/pkgs/development/python-modules/ansible-lint/default.nix b/pkgs/development/python-modules/ansible-lint/default.nix
index cc971f43215f1..1b61ab6afc4a6 100644
--- a/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/pkgs/development/python-modules/ansible-lint/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "ansible-lint";
-  version = "6.13.0";
+  version = "6.13.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4tRdgxVyn0Kcu+/atEbTgFCtezbZ46oewb6vKRTQKaA=";
+    hash = "sha256-Q1wStP2I2oFa9oIfO/iwTrtlGBHaiaEcnRkLr/Ibrao=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/atlassian-python-api/default.nix b/pkgs/development/python-modules/atlassian-python-api/default.nix
index 2c9c653dd1712..e45d38e7d78c4 100755
--- a/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "3.32.2";
+  version = "3.33.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "atlassian-api";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-fI+c2JiChDZhZPdoy3PaRtUwgWMRJnZieHcF4OR6nZE=";
+    sha256 = "sha256-vn2bI6wyYAhCxkiL4oEpJFwFicJScvhMfwLD6g6pVw8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix b/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
index db6df3583b68b..4637e74cc3178 100644
--- a/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cosmosdb";
-  version = "8.0.0";
+  version = "9.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    hash = "sha256-/6ySVfCjr1YiiZIZJElrd1EfirV+TJvE/FvKs7UhoKo=";
+    hash = "sha256-7bP8klNIp2skhNKU8s51zaxQOG6pYMCK9wk6ce5pySA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix b/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
index 51843b9ab4a76..182fa1599752b 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-servicebus";
-  version = "8.1.0";
+  version = "8.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    hash = "sha256-R8Narn7eC7j59tDjsgbk9lF0PcOgOwSnzoMp3Qu0rmg=";
+    hash = "sha256-i+kgjxQdmnifaNuNIZdU/3gGn9j5OQ6fdkS7laO+nsI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/biopython/default.nix b/pkgs/development/python-modules/biopython/default.nix
index e0b419da29263..96385466ad9e6 100644
--- a/pkgs/development/python-modules/biopython/default.nix
+++ b/pkgs/development/python-modules/biopython/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "biopython";
-  version = "1.80";
+  version = "1.81";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-UoBemviHZ+RQ4t+BE7W8Welk4uinu4A6g1cL27UcDkM=";
+    sha256 = "sha256-LPOBErbYQVrTnWphGYjNEftfM+sJNGZmqHJjvrqWFOA=";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 6a258cf73036c..d3592d76a8f09 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -1,18 +1,16 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatchling
-, decorator
-, requests
-, typing ? null
-, configparser
 , click
+, fetchPypi
 , freezegun
+, hatchling
 , mock
-, pytestCheckHook
 , pytest-vcr
+, pytestCheckHook
 , python-dateutil
+, pythonAtLeast
+, pythonOlder
+, requests
 , vcrpy
 }:
 
@@ -21,22 +19,20 @@ buildPythonPackage rec {
   version = "0.44.0";
   format = "pyproject";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-BxFw8MfvIlEdv3+b12xL5QDuLT1SBykApch7VJXSxzM=";
+    hash = "sha256-BxFw8MfvIlEdv3+b12xL5QDuLT1SBykApch7VJXSxzM=";
   };
 
-  postPatch = ''
-    find . -name '*.pyc' -exec rm {} \;
-  '';
-
   nativeBuildInputs = [
     hatchling
   ];
 
-  propagatedBuildInputs = [ decorator requests ]
-    ++ lib.optional (pythonOlder "3.5") typing
-    ++ lib.optional (pythonOlder "3.0") configparser;
+  propagatedBuildInputs = [
+    requests
+  ];
 
   nativeCheckInputs = [
     click
@@ -54,13 +50,20 @@ buildPythonPackage rec {
 
   disabledTests = [
     "test_default_settings_set"
+  ] ++ lib.optionals (pythonAtLeast "3.11") [
+    # https://github.com/DataDog/datadogpy/issues/746
+    "TestDogshell"
   ];
 
-  pythonImportsCheck = [ "datadog" ];
+  pythonImportsCheck = [
+    "datadog"
+  ];
 
   meta = with lib; {
     description = "The Datadog Python library";
-    license = licenses.bsd3;
     homepage = "https://github.com/DataDog/datadogpy";
+    changelog = "https://github.com/DataDog/datadogpy/blob/v${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/devito/default.nix b/pkgs/development/python-modules/devito/default.nix
index c437a1b565850..e349151f316ca 100644
--- a/pkgs/development/python-modules/devito/default.nix
+++ b/pkgs/development/python-modules/devito/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "devito";
-  version = "4.7.1";
+  version = "4.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "devitocodes";
     repo = "devito";
     rev = "refs/tags/v${version}";
-    hash = "sha256-crKTxlueE8NGjAqu625iFvp35UK2U7+9kl8rpbzf0gs=";
+    hash = "sha256-Wuq49deZKhIHHhxgxgzxxY/3aQcJVCJ0ofGwDrUcHkY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/duo-client/default.nix b/pkgs/development/python-modules/duo-client/default.nix
index fc25a2b5928f6..60af0c1eb4620 100644
--- a/pkgs/development/python-modules/duo-client/default.nix
+++ b/pkgs/development/python-modules/duo-client/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "duo-client";
-  version = "4.5.0";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "duosecurity";
     repo = "duo_client_python";
-    rev = version;
-    sha256 = "sha256-9ADFtCrSJ4Y2QQY5YC/BMvoVZs2vaYHkhIM/rBlZm4I=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-1xasV9iLbSODy8q1wEVDvELdmSQwj3qVCXOE94lyjFU=";
   };
 
   postPatch = ''
@@ -38,11 +38,14 @@ buildPythonPackage rec {
     pytz
   ];
 
-  pythonImportsCheck = [ "duo_client" ];
+  pythonImportsCheck = [
+    "duo_client"
+  ];
 
   meta = with lib; {
     description = "Python library for interacting with the Duo Auth, Admin, and Accounts APIs";
     homepage = "https://github.com/duosecurity/duo_client_python";
+    changelog = "https://github.com/duosecurity/duo_client_python/releases/tag/${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/python-modules/entrance/default.nix b/pkgs/development/python-modules/entrance/default.nix
index 215e69138d05a..4bce72125e31f 100644
--- a/pkgs/development/python-modules/entrance/default.nix
+++ b/pkgs/development/python-modules/entrance/default.nix
@@ -18,11 +18,11 @@ in
 
 buildPythonPackage rec {
   pname = "entrance";
-  version = "1.1.17";
+  version = "1.1.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dee5b4f3330f633fcd4e665f1781bf6e53b375ffdc7a24434257dfba6b1c2d7f";
+    sha256 = "sha256-PvsP6HXCllW102h3o7abz9uC2AZTwvg5qIqP+rdkk6Y=";
   };
 
   # The versions of `sanic` and `websockets` in nixpkgs only support 3.6 or later
diff --git a/pkgs/development/python-modules/flake8-bugbear/default.nix b/pkgs/development/python-modules/flake8-bugbear/default.nix
index 71b457b52738a..296f6eb30d96f 100644
--- a/pkgs/development/python-modules/flake8-bugbear/default.nix
+++ b/pkgs/development/python-modules/flake8-bugbear/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "flake8-bugbear";
-  version = "23.1.20";
+  version = "23.2.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-JO6S9LjCEZKeUKxUpkqEw+RJ47HLbwQOOOKhHwnmWVI=";
+    hash = "sha256-4iOt6KQU8QkNdmGBIyevfwqvbKpylV+BN49GjeX68xE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gradient_statsd/default.nix b/pkgs/development/python-modules/gradient_statsd/default.nix
index e4d7127236e01..d7c5c258ab5e6 100644
--- a/pkgs/development/python-modules/gradient_statsd/default.nix
+++ b/pkgs/development/python-modules/gradient_statsd/default.nix
@@ -1,39 +1,51 @@
 { lib
-, fetchPypi
 , buildPythonPackage
+, certifi
 , chardet
-, configparser
 , datadog
+, decorator
+, fetchPypi
+, idna
 , requests
-, python
+, urllib3
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "gradient_statsd";
+  pname = "gradient-statsd";
   version = "1.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "iWlNX43ZtvU73wz4+8DgDulQNOnssJGxTBkvAaLj530=";
+    pname = "gradient_statsd";
+    inherit version;
+    hash = "sha256-iWlNX43ZtvU73wz4+8DgDulQNOnssJGxTBkvAaLj530=";
   };
 
   propagatedBuildInputs = [
+    certifi
     chardet
     datadog
+    decorator
+    idna
     requests
-  ]
-  ++ lib.optional python.isPy2 configparser;
+    urllib3
+  ];
 
-  pythonImportsCheck = [ "gradient_statsd" ];
+  pythonImportsCheck = [
+    "gradient_statsd"
+  ];
 
   # Pypi does not contain tests
   doCheck = false;
 
   meta = with lib; {
     description = "Wrapper around the DogStatsd client";
-    homepage    = "https://paperspace.com";
-    license     = licenses.mit;
-    platforms   = platforms.unix;
+    homepage = "https://paperspace.com";
+    license = licenses.mit;
     maintainers = with maintainers; [ freezeboy ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix
index 173991f04df62..6f5052910e0bb 100644
--- a/pkgs/development/python-modules/ibis-framework/default.nix
+++ b/pkgs/development/python-modules/ibis-framework/default.nix
@@ -112,6 +112,10 @@ buildPythonPackage rec {
     "--dist=loadgroup"
     "-m"
     "'${lib.concatStringsSep " or " testBackends} or core'"
+    # these will be fixed in ibis-framework 5.0.0
+    "--deselect=ibis/backends/tests/test_string.py::test_string"
+    "--deselect=ibis/backends/tests/test_register.py::test_csv_reregister_schema"
+    "--deselect=ibis/backends/tests/test_client.py::test_list_databases"
   ];
 
   # remove when sqlalchemy backend no longer uses deprecated methods
diff --git a/pkgs/development/python-modules/lupupy/default.nix b/pkgs/development/python-modules/lupupy/default.nix
index 1b064d46b68ea..b3c82f707f0dd 100644
--- a/pkgs/development/python-modules/lupupy/default.nix
+++ b/pkgs/development/python-modules/lupupy/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "lupupy";
-  version = "0.2.8";
+  version = "0.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UIfv5lt9Vcyes9VYXkaQyBzfkcRiIE4It7q/CMJc7go=";
+    hash = "sha256-g2EEyPhsQZ+VKP/kSjZdQ9ns0NlptH8l2h0vTTLpF54=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
index dd3553419792b..a764c3b4ed5d0 100644
--- a/pkgs/development/python-modules/mautrix/default.nix
+++ b/pkgs/development/python-modules/mautrix/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.19.3";
+  version = "0.19.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "mautrix";
     repo = "python";
     rev = "v${version}";
-    hash = "sha256-7nvy2/DUS2BkcyQUUG8+aT/JHcPu141e5YWOiccS6cU=";
+    hash = "sha256-zPcqM+Ge7K4pJD4K0MkkGdSiYvXxe0K1qbfHzVYmGx0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/motionblinds/default.nix b/pkgs/development/python-modules/motionblinds/default.nix
index 7b557940d8555..fc88d76113ff2 100644
--- a/pkgs/development/python-modules/motionblinds/default.nix
+++ b/pkgs/development/python-modules/motionblinds/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "motionblinds";
-  version = "0.6.16";
+  version = "0.6.17";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "motion-blinds";
     rev = "refs/tags/${version}";
-    hash = "sha256-S+3aIeP63JklGbH2Gc0r8jeThJywQZnJo8alAsPvxhQ=";
+    hash = "sha256-rCPwOhhv1hDwJqs8g3JfXcSgvrLf6UhNm0JPtRGW5S0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mypy-boto3-builder/default.nix b/pkgs/development/python-modules/mypy-boto3-builder/default.nix
index d6ada06ef91ef..3c582230ee2e9 100644
--- a/pkgs/development/python-modules/mypy-boto3-builder/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3-builder/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "mypy-boto3-builder";
-  version = "7.12.3";
+  version = "7.12.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "youtype";
     repo = "mypy_boto3_builder";
     rev = "refs/tags/${version}";
-    hash = "sha256-cAbDw/u0kLUEdmd/NBNDy/bt5Wno9QpmqpqicqZ/Q6g=";
+    hash = "sha256-X8ATnycG7MvzDNaMClvhyy4Qy4hvoNhn0sQ+s/JnX64=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/neo/default.nix b/pkgs/development/python-modules/neo/default.nix
index 0bb1f33c98ba6..3db12e6478389 100644
--- a/pkgs/development/python-modules/neo/default.nix
+++ b/pkgs/development/python-modules/neo/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "neo";
-  version = "0.11.1";
+  version = "0.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-9KIGBEszKtALEAcrDcenCzWfo2XseG+Sq3V+9K5YhHQ=";
+    hash = "sha256-O2yk/AXf206VPiU+cJlL+7yP4ukJWPvaf6WGDK8/pjo=";
   };
 
   propagatedBuildInputs = [
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Package for representing electrophysiology data";
     homepage = "https://neuralensemble.org/neo/";
+    changelog = "https://neo.readthedocs.io/en/${version}/releases/${version}.html";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/oci/default.nix b/pkgs/development/python-modules/oci/default.nix
index 532add5a6a38e..3a8df43b31b8d 100644
--- a/pkgs/development/python-modules/oci/default.nix
+++ b/pkgs/development/python-modules/oci/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "oci";
-  version = "2.91.0";
+  version = "2.92.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = "oci-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sKz++PtqLjgBTf8Y/pYoa/wyuK3OoXOdGyjsbXX0iao=";
+    hash = "sha256-evxY/1MhSCZOTjhH/2tI5amnZpd+fCdSdFBD4W9uZ+c=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index a8d5d243a0a1a..7d7033ef8a022 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -1,40 +1,48 @@
 { lib
 , buildPythonPackage
+, acpi
+, alsa-utils
+, coreutils
+, dbus-python
 , fetchPypi
-, requests
-, pytz
-, tzlocal
+, file
+, i3
 , i3ipc
+, libnotify
+, lm_sensors
+, procps
 , pydbus
 , pygobject3
 , pyserial
+, pytz
+, requests
 , setuptools
-, dbus-python
-
-, file
-, acpi
-, coreutils
-, alsa-utils
-, i3
-, procps
-, lm_sensors
-, libnotify
+, tzlocal
 , xorg
 }:
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.48";
+  version = "3.49";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-igt0niF52at/LERv4+1aVvdU+ZLVvgL2W+l6feuEAO0=";
+    hash = "sha256-aTQ3hYDMyXSTcEiCVtdU3XQ4xO7mN5dZ0S94ZWbSGo4=";
   };
 
-  doCheck = false;
   propagatedBuildInputs = [
-    pytz requests tzlocal i3ipc pydbus pygobject3 pyserial setuptools dbus-python file
+    pytz
+    requests
+    tzlocal
+    i3ipc
+    pydbus
+    pygobject3
+    pyserial
+    setuptools
+    dbus-python
+    file
   ];
+
   prePatch = ''
     sed -i -e "s|'file|'${file}/bin/file|" py3status/parse_config.py
     sed -i -e "s|\[\"acpi\"|\[\"${acpi}/bin/acpi\"|" py3status/modules/battery_level.py
@@ -48,10 +56,13 @@ buildPythonPackage rec {
     sed -i -e "s|'xset|'${xorg.xset}/bin/xset|" py3status/modules/keyboard_layout.py
   '';
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Extensible i3status wrapper";
-    license = licenses.bsd3;
     homepage = "https://github.com/ultrabug/py3status";
+    changelog = "https://github.com/ultrabug/py3status/blob/${version}/CHANGELOG";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pymicrobot/default.nix b/pkgs/development/python-modules/pymicrobot/default.nix
index 0923d8214c619..7d2a583891fb8 100644
--- a/pkgs/development/python-modules/pymicrobot/default.nix
+++ b/pkgs/development/python-modules/pymicrobot/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pymicrobot";
-  version = "0.0.8";
+  version = "0.0.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyMicroBot";
     inherit version;
-    hash = "sha256-I4EkiG39v0yJXOAR7lmaqedLf9zHQCcxLXQ0nTfYq70=";
+    hash = "sha256-dhhRHXdck7hJGkXQpkiMulLsnMluZ5ADZ9L8cNm6dFs=";
   };
 
   propagatedBuildInputs = [
@@ -34,6 +34,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Library to communicate with MicroBot";
     homepage = "https://github.com/spycle/pyMicroBot/";
+    changelog = "https://github.com/spycle/pyMicroBot/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pyomo/default.nix b/pkgs/development/python-modules/pyomo/default.nix
index eef2875a0d974..b7b35a7657314 100644
--- a/pkgs/development/python-modules/pyomo/default.nix
+++ b/pkgs/development/python-modules/pyomo/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyomo";
-  version = "6.4.4";
+  version = "6.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     repo = "pyomo";
     owner = "pyomo";
     rev = "refs/tags/${version}";
-    hash = "sha256-FVpwJRCRlc537tJomB4Alxx8zJj8FpZp+LxB0f12rGE=";
+    hash = "sha256-ZsoWz+35hQS15dbpe1IOzft6JwZygKjv5AQWjVe+8kQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-cinderclient/default.nix b/pkgs/development/python-modules/python-cinderclient/default.nix
index 3e920ff6b9ac0..164f2046c6951 100644
--- a/pkgs/development/python-modules/python-cinderclient/default.nix
+++ b/pkgs/development/python-modules/python-cinderclient/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "python-cinderclient";
-  version = "9.2.0";
+  version = "9.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-qnYodaJwr0kFfKyofVsDTmMLMYDexqGTz8uSefPWPfQ=";
+    sha256 = "sha256-mmqjD+/0jAwP0Yjm1RUNvdkeP9WxDS2514uYEqsUr4g=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-glanceclient/default.nix b/pkgs/development/python-modules/python-glanceclient/default.nix
index 2c55dce69e112..15e96e798c3bc 100644
--- a/pkgs/development/python-modules/python-glanceclient/default.nix
+++ b/pkgs/development/python-modules/python-glanceclient/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "python-glanceclient";
-  version = "4.2.0";
+  version = "4.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+CmOh9Dr6Gx8MLkR1u/YNpScOxIO7OUIbJAio+omOpg=";
+    hash = "sha256-5nwCPOc9GBxk9BItiaScfy1eljl+e0okFCEOVsHoXDQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-novaclient/default.nix b/pkgs/development/python-modules/python-novaclient/default.nix
index 6731aa873b531..8cdc62e8c0f5f 100644
--- a/pkgs/development/python-modules/python-novaclient/default.nix
+++ b/pkgs/development/python-modules/python-novaclient/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "python-novaclient";
-  version = "18.2.0";
+  version = "18.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GFu/LK+189dh8nLj4YSnAMx7pc99UWGQZb5/XEtbfPQ=";
+    hash = "sha256-UPdYfHorJSj3NQWBf5Q3rFwdBNV26b4mTS3u/9t0WnY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytibber/default.nix b/pkgs/development/python-modules/pytibber/default.nix
index 3a595a2d301aa..8c25f17bb8b30 100644
--- a/pkgs/development/python-modules/pytibber/default.nix
+++ b/pkgs/development/python-modules/pytibber/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pytibber";
-  version = "0.27.0";
+  version = "0.27.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pyTibber";
     rev = "refs/tags/${version}";
-    hash = "sha256-m4y65UiuiWRS7EBv6AFnX9Ia2eTy8H1vgfx+fQrcXz4=";
+    hash = "sha256-KmUzXlINRbtyzZCoG4d2Xc57g07d+x7bdoq/DtMmtqM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyunifiprotect/default.nix b/pkgs/development/python-modules/pyunifiprotect/default.nix
index e75e99ceb340b..fac54d545a13e 100644
--- a/pkgs/development/python-modules/pyunifiprotect/default.nix
+++ b/pkgs/development/python-modules/pyunifiprotect/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "pyunifiprotect";
-  version = "4.6.2";
+  version = "4.7.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     owner = "briis";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-sEIjR6ScJNliJJJET06e22x5GMDrmB6fZAzyHr847sk=";
+    hash = "sha256-VvziL9IfPP19whwaLpNp42mZEduGqnPjPJtlSjTNmMo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/quantities/default.nix b/pkgs/development/python-modules/quantities/default.nix
index 419dea854096b..937d031253530 100644
--- a/pkgs/development/python-modules/quantities/default.nix
+++ b/pkgs/development/python-modules/quantities/default.nix
@@ -3,17 +3,28 @@
 , fetchPypi
 , numpy
 , pytestCheckHook
+, pythonOlder
+, setuptools
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "quantities";
-  version = "0.13.0";
+  version = "0.14.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fde20115410de21cefa786f3aeae69c1b51bb19ee492190324c1da705e61a81";
+    hash = "sha256-7+r//AwDZPiRqTJyOc0SSWvMtVzQN6bRv0TecG9yKHc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     numpy
   ];
@@ -27,11 +38,14 @@ buildPythonPackage rec {
     "test_mul"
   ];
 
-  pythonImportsCheck = [ "quantities" ];
+  pythonImportsCheck = [
+    "quantities"
+  ];
 
   meta = with lib; {
     description = "Quantities is designed to handle arithmetic and conversions of physical quantities";
     homepage = "https://python-quantities.readthedocs.io/";
+    changelog = "https://github.com/python-quantities/python-quantities/blob/v${version}/CHANGES.txt";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/railroad-diagrams/default.nix b/pkgs/development/python-modules/railroad-diagrams/default.nix
index 55b964fb6ad27..e720c180014ba 100644
--- a/pkgs/development/python-modules/railroad-diagrams/default.nix
+++ b/pkgs/development/python-modules/railroad-diagrams/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "railroad-diagrams";
-  version = "2.0.4";
+  version = "3.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dBP/oZRYO9UQ78PkZo9h1aOL7soYa7fDbuptDW8D+0U=";
+    hash = "sha256-qRMyuskAyzw2czH6m2mfCJe8+GtyZPZUWGdd9DDQTOM=";
   };
 
   # This is a dependency of pyparsing, which is a dependency of pytest
diff --git a/pkgs/development/python-modules/rokuecp/default.nix b/pkgs/development/python-modules/rokuecp/default.nix
index 44ea38934b9f7..d272d07ff19f7 100644
--- a/pkgs/development/python-modules/rokuecp/default.nix
+++ b/pkgs/development/python-modules/rokuecp/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "rokuecp";
-  version = "0.17.0";
+  version = "0.17.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -25,8 +25,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "ctalkington";
     repo = "python-rokuecp";
-    rev = version;
-    hash = "sha256-M4eZzFphhc96Pf1bspD+Hvl9SUN1N72xnxdtVFiPc78=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3GHG4FBGMiF5kNk2gl05xiX9+5tcrUyi4SUCXTa6Qco=";
   };
 
   nativeBuildInputs = [
@@ -73,6 +73,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Asynchronous Python client for Roku (ECP)";
     homepage = "https://github.com/ctalkington/python-rokuecp";
+    changelog = "https://github.com/ctalkington/python-rokuecp/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/sybil/default.nix b/pkgs/development/python-modules/sybil/default.nix
index d1bb2994f7793..ab6d341b2647f 100644
--- a/pkgs/development/python-modules/sybil/default.nix
+++ b/pkgs/development/python-modules/sybil/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "sybil";
-  version = "4.0.0";
+  version = "4.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "simplistix";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-9fXvQfVS3IVdOV4hbA0bEYFJU7uK0WpqJKMNBltqFTI=";
+    hash = "sha256-NvgmAFRuiBbyPnJykQlYNyQYALx1bFubMrakw671fDY=";
   };
 
   # Circular dependency with testfixtures
diff --git a/pkgs/development/python-modules/txtorcon/default.nix b/pkgs/development/python-modules/txtorcon/default.nix
index 85385347b96fc..e412b9a870276 100644
--- a/pkgs/development/python-modules/txtorcon/default.nix
+++ b/pkgs/development/python-modules/txtorcon/default.nix
@@ -1,30 +1,33 @@
 { lib
 , stdenv
-, python
+, automat
 , buildPythonPackage
-, pythonOlder
-, fetchPypi
 , cryptography
-, incremental
-, twisted
-, automat
-, zope_interface
+, fetchPypi
+, GeoIP
 , idna
+, incremental
+, lsof
+, mock
 , pyopenssl
-, service-identity
 , pytestCheckHook
-, mock
-, lsof
-, GeoIP
+, python
+, pythonOlder
+, service-identity
+, twisted
+, zope_interface
 }:
 
 buildPythonPackage rec {
   pname = "txtorcon";
-  version = "22.0.0";
+  version = "23.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-iaG2XjKks2nWfmwWY4f7xGjMXQUidEjSOaXn6XGKoFM=";
+    hash = "sha256-AiX/rWdokTeEmtmtNK21abDYj5rwRQMABnpfkB6ZQyU=";
   };
 
   propagatedBuildInputs = [
@@ -35,14 +38,20 @@ buildPythonPackage rec {
     zope_interface
   ] ++ twisted.optional-dependencies.tls;
 
-  nativeCheckInputs = [ pytestCheckHook mock lsof GeoIP ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    mock
+    lsof
+    GeoIP
+  ];
 
   doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
 
-  meta = {
+  meta = with lib; {
     description = "Twisted-based Tor controller client, with state-tracking and configuration abstractions";
     homepage = "https://github.com/meejah/txtorcon";
-    maintainers = with lib.maintainers; [ jluttine exarkun ];
-    license = lib.licenses.mit;
+    changelog = "https://github.com/meejah/txtorcon/releases/tag/v${version}";
+    maintainers = with maintainers; [ jluttine exarkun ];
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/types-pillow/default.nix b/pkgs/development/python-modules/types-pillow/default.nix
index 10c79c5320985..6418c370d6fcb 100644
--- a/pkgs/development/python-modules/types-pillow/default.nix
+++ b/pkgs/development/python-modules/types-pillow/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "types-pillow";
-  version = "9.4.0.12";
+  version = "9.4.0.13";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "types-Pillow";
-    sha256 = "sha256-4AdBSdXwbTWTwRisyD41P4VCvMc1dv/vtlaOqrVnE0g=";
+    sha256 = "sha256-RRCqmKKJR79j8rKe3rvRG3z/hkfZC4Z87Js2dMCowyE=";
   };
 
   # Modules doesn't have tests
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index 071fe201119ab..a6f3c68445464 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "weasyprint";
-  version = "57.2";
+  version = "58.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "weasyprint";
-    hash = "sha256-uOnvLcvPvILpkhWs/Wj5R7K18ZmbWxVtt1+r44C6fpo=";
+    hash = "sha256-cPSCytjlPCw+rpz4avQS65NAWxash4G1GeozJtR1vW8=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/webauthn/default.nix b/pkgs/development/python-modules/webauthn/default.nix
index 47dfe467d2431..c302eb9194d3a 100644
--- a/pkgs/development/python-modules/webauthn/default.nix
+++ b/pkgs/development/python-modules/webauthn/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "webauthn";
-  version = "1.7.0";
+  version = "1.7.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "duo-labs";
     repo = "py_webauthn";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iAEvWFxJGf4H2PEseG+ykt9sriGyNvbmj4+NZFcPGPk=";
+    hash = "sha256-B8GdtaufMMl0gHywZ00wNyYZ+rojrExKuQsA/vmbYRI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yfinance/default.nix b/pkgs/development/python-modules/yfinance/default.nix
index 82d575d45a2f3..c0d278b498811 100644
--- a/pkgs/development/python-modules/yfinance/default.nix
+++ b/pkgs/development/python-modules/yfinance/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "yfinance";
-  version = "0.2.11";
+  version = "0.2.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "ranaroussi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Lp8HqXq4PhvpTzFbldk70pU03+qsHzGeHIkaPdedvRo=";
+    hash = "sha256-k0al/N9xWen/IlE8JfFV98DSRnelQk+MURXz3IjGgNI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/tools/apksigcopier/default.nix b/pkgs/development/tools/apksigcopier/default.nix
index f9df5fca17af5..13cb0300d7f8d 100644
--- a/pkgs/development/tools/apksigcopier/default.nix
+++ b/pkgs/development/tools/apksigcopier/default.nix
@@ -9,13 +9,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "apksigcopier";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "obfusk";
     repo = "apksigcopier";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-58NoYe26GsNE0jpSRt4sIkTJ2iR4VVnvthOfi7QFfN0=";
+    sha256 = "sha256-VuwSaoTv5qq1jKwgBTKd1y9RKUzz89n86Z4UBv7Q51o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/bingo/default.nix b/pkgs/development/tools/bingo/default.nix
index f95810fb7718f..d9302b5df41c4 100644
--- a/pkgs/development/tools/bingo/default.nix
+++ b/pkgs/development/tools/bingo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "bingo";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "bwplotka";
     repo = "bingo";
     rev = "v${version}";
-    hash = "sha256-s+vdtMzeHUtUlmMlvgnK83RYoMqS3GqrTnu7LssIK6A=";
+    hash = "sha256-YvBRI1i7ICnacYQv7rNDuUnqhuLXJ4eAZhT0ce3vFuU=";
   };
 
   vendorHash = "sha256-28p1g+p+guJ0x4/5QDGsGN6gDnZkE4AKF/2cFgNjPDM=";
diff --git a/pkgs/development/tools/inferno/default.nix b/pkgs/development/tools/inferno/default.nix
index bbc7fbde55412..07da758728574 100644
--- a/pkgs/development/tools/inferno/default.nix
+++ b/pkgs/development/tools/inferno/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "inferno";
-  version = "0.11.14";
+  version = "0.11.15";
 
   src = fetchFromGitHub {
     owner = "jonhoo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-0H+h4BM4x3vlI6EMeXNzcCQpW2S4czJR2GaviZ0nhEM=";
+    hash = "sha256-fyTsB+1ftol3prNLydT/coLchip1vijmfLLt3/DnBbc=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-5VQNgZUgakQUczKs7T+c305c3I1DDSaVMO3tFXqIdIc=";
+  cargoHash = "sha256-XBah55xfbWjQrkupebZE2uiveFhh/R0BF1KEKkY5Hx8=";
 
   # skip flaky tests
   checkFlags = [
diff --git a/pkgs/development/tools/rust/cargo-llvm-lines/default.nix b/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
index 6b34c2c337e21..b6c3bc7503f62 100644
--- a/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
+++ b/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-llvm-lines";
-  version = "0.4.23";
+  version = "0.4.24";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "sha256-u3MvDiagCGD7WjagbVF+TtZ0ATe8WBT3xeyduxrXPi4=";
+    sha256 = "sha256-+jCjbx3CytE7wpVmErJjGFZS7E8VB8wjl7BAd9/USuY=";
   };
 
-  cargoSha256 = "sha256-9oBnETZqJV35FEw6NImy6cqfVOVE5EHPNVGajE2UT10=";
+  cargoSha256 = "sha256-QC4+hXJiDB0odGm0/m0/JpQv5TyaAg4MmU/0vMJytk4=";
 
   meta = with lib; {
     description = "Count the number of lines of LLVM IR across all instantiations of a generic function";
diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix
index ef2f0c69ae602..be940ec9c7e36 100644
--- a/pkgs/games/anki/bin.nix
+++ b/pkgs/games/anki/bin.nix
@@ -3,22 +3,22 @@
 let
   pname = "anki-bin";
   # Update hashes for both Linux and Darwin!
-  version = "2.1.57";
+  version = "2.1.58";
 
   sources = {
     linux = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux-qt6.tar.zst";
-      sha256 = "sha256-W8EQxvdOQRYHVKoYGu+6LNAHJZGsVQgdvNsRXOBVUKM=";
+      sha256 = "sha256-9rlNShbdosCa60f4JlhC14dl3j2DxqFr3GgOOMWdXFY=";
     };
 
     # For some reason anki distributes completely separate dmg-files for the aarch64 version and the x86_64 version
     darwin-x86_64 = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-intel-qt6.dmg";
-      sha256 = "sha256-NhCMmXuZj+Il/hhZZhbk7eLsmbfnqYlSRgw33xIbv8M=";
+      sha256 = "sha256-Zp5C9r5uAfIg8szMtpCzWV3N7Em7iYN7WLO6DiEslWc=";
     };
     darwin-aarch64 = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-apple-qt6.dmg";
-      sha256 = "sha256-8gLtFoqJVvh1NfaSpNeH8+YecMln+A7UyqeSXWVEtmo=";
+      sha256 = "sha256-Ssg+SuCYBfaQ+XZP7hnZDD/k5dMduU5oj8H+gP+iPMY=";
     };
   };
 
diff --git a/pkgs/games/mrrescue/default.nix b/pkgs/games/mrrescue/default.nix
index a873424aa24c7..a020a6b34f1b4 100644
--- a/pkgs/games/mrrescue/default.nix
+++ b/pkgs/games/mrrescue/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
     mkdir -p $out/bin
     mkdir -p $out/share/games/lovegames
 
-    cp -v $src $out/share/${pname}.love
+    cp -v $src $out/share/games/lovegames/${pname}.love
 
     makeWrapper ${love}/bin/love $out/bin/${pname} --add-flags $out/share/games/lovegames/${pname}.love
 
diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/source.nix b/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
index 2ed667f40ce73..4e59ca0b89eba 100644
--- a/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
+++ b/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
@@ -1,6 +1,6 @@
 # This file is autogenerated! Run ./update.sh to regenerate.
 {
-  version = "20221214";
-  sourceHash = "sha256-vljUwXekmCYAH932wfbJe/hC4TDPRQOgEiPTUMeUKLE=";
-  outputHash = "sha256-h0cCqnl6XvSoeyq54JHvl45z7qe/7ZKrcMNJJeqVLMk=";
+  version = "20230210";
+  sourceHash = "sha256-sjUO+DTjAMszfCkNSYjLS+AbceIVPVVH0OEho5VOIFA=";
+  outputHash = "sha256-ZcmMLenblgQngdYui0wNANXhB5a/z635nNXo/MO83R8=";
 }
diff --git a/pkgs/os-specific/linux/firmware/rtw89-firmware/default.nix b/pkgs/os-specific/linux/firmware/rtw89-firmware/default.nix
deleted file mode 100644
index b7289625dae9f..0000000000000
--- a/pkgs/os-specific/linux/firmware/rtw89-firmware/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenvNoCC, lib, fetchFromGitHub }:
-
-stdenvNoCC.mkDerivation {
-  pname = "rtw89-firmware";
-
-  # TODO: probably remove after updating linux firmware
-  # https://github.com/lwfinger/rtw89/commit/a2c113501a5a988683f236df1aa79ce40f29e1be
-  version = "unstable-2021-10-21";
-
-  src = fetchFromGitHub {
-    owner = "lwfinger";
-    repo = "rtw89";
-    rev = "0684157cba90e36bff5bc61a59e7e87c359b5e5c";
-    sha256 = "0cvawyi1ksw9xkr8pzwipsl7b8hnmrb17w5cblyicwih8fqaw632";
-  };
-
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/lib/firmware/rtw89
-    cp *.bin $out/lib/firmware/rtw89
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Driver for Realtek 8852AE, an 802.11ax device";
-    homepage = "https://github.com/lwfinger/rtw89";
-    license = licenses.unfreeRedistributableFirmware;
-    maintainers = with maintainers; [ tvorog ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 78fe1ad0b9931..b03e8e76715b7 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -71,13 +71,13 @@ let
       PM_WAKELOCKS                     = yes;
       POWERCAP                         = yes;
       # ACPI Firmware Performance Data Table Support
-      ACPI_FPDT                        = whenAtLeast "5.12" yes;
+      ACPI_FPDT                        = whenAtLeast "5.12" (option yes);
       # ACPI Heterogeneous Memory Attribute Table Support
-      ACPI_HMAT                        = whenAtLeast "5.2" yes;
+      ACPI_HMAT                        = whenAtLeast "5.2" (option yes);
       # ACPI Platform Error Interface
-      ACPI_APEI                        = yes;
+      ACPI_APEI                        = (option yes);
       # APEI Generic Hardware Error Source
-      ACPI_APEI_GHES                   = yes;
+      ACPI_APEI_GHES                   = (option yes);
     } // optionalAttrs (stdenv.hostPlatform.isx86) {
       INTEL_IDLE                       = yes;
       INTEL_RAPL                       = whenAtLeast "5.3" module;
diff --git a/pkgs/os-specific/linux/kernel/linux-6.2.nix b/pkgs/os-specific/linux/kernel/linux-6.2.nix
new file mode 100644
index 0000000000000..61ab8f13e552e
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-6.2.nix
@@ -0,0 +1,18 @@
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
+
+with lib;
+
+buildLinux (args // rec {
+  version = "6.2";
+
+  # modDirVersion needs to be x.y.z, will automatically add .0 if needed
+  modDirVersion = versions.pad 3 version;
+
+  # branchVersion needs to be x.y
+  extraMeta.branch = versions.majorMinor version;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz";
+    sha256 = "sha256-dIYvqKtA7a6FuzOFwLcf4QMoi85RhSbWMZeACzy97LE=";
+  };
+} // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/microcode/iucode-tool.nix b/pkgs/os-specific/linux/microcode/iucode-tool.nix
index 900eb47f70678..d27e3ca6987b7 100644
--- a/pkgs/os-specific/linux/microcode/iucode-tool.nix
+++ b/pkgs/os-specific/linux/microcode/iucode-tool.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitLab, autoreconfHook, fetchpatch }:
+{ lib, stdenv, fetchFromGitLab, autoreconfHook, fetchpatch, argp-standalone }:
 
 stdenv.mkDerivation rec {
   pname = "iucode-tool";
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = lib.optional stdenv.hostPlatform.isMusl argp-standalone;
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/servers/caddy/default.nix b/pkgs/servers/caddy/default.nix
index b4cd637d3d02d..9ada37768ad17 100644
--- a/pkgs/servers/caddy/default.nix
+++ b/pkgs/servers/caddy/default.nix
@@ -43,8 +43,12 @@ buildGoModule {
     substituteInPlace $out/lib/systemd/system/caddy.service --replace "/usr/bin/caddy" "$out/bin/caddy"
     substituteInPlace $out/lib/systemd/system/caddy-api.service --replace "/usr/bin/caddy" "$out/bin/caddy"
 
+    $out/bin/caddy manpage --directory manpages
+    installManPage manpages/*
+
     installShellCompletion --cmd metal \
       --bash <($out/bin/caddy completion bash) \
+      --fish <($out/bin/caddy completion fish) \
       --zsh <($out/bin/caddy completion zsh)
   '';
 
diff --git a/pkgs/servers/domoticz/default.nix b/pkgs/servers/domoticz/default.nix
index 11fd50bc581ad..a6b9a3340affa 100644
--- a/pkgs/servers/domoticz/default.nix
+++ b/pkgs/servers/domoticz/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "domoticz";
-  version = "2022.2";
+  version = "2023.1";
 
   src = fetchFromGitHub {
     owner = "domoticz";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xgHfbNY5qzBkrMaJvFQ+EqJ7tcy0LNdPLD1bD92WkKg=";
+    sha256 = "sha256-fXNS7EVMqGM4tYppgG+l/adBt9eyW8RBK3Cs/pb2kg4=";
     fetchSubmodules = true;
   };
 
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
     '';
     maintainers = with maintainers; [ edcragg ];
     homepage = "https://www.domoticz.com/";
+    changelog = "https://github.com/domoticz/domoticz/blob/${version}/History.txt";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/domoticz.x86_64-darwin
diff --git a/pkgs/servers/etcd/3.4.nix b/pkgs/servers/etcd/3.4.nix
index 7f5517fa7507a..c43821a928ee1 100644
--- a/pkgs/servers/etcd/3.4.nix
+++ b/pkgs/servers/etcd/3.4.nix
@@ -2,9 +2,9 @@
 
 buildGoModule rec {
   pname = "etcd";
-  version = "3.4.23";
+  version = "3.4.24";
 
-  vendorSha256 = "sha256-kq9KYe4wnPbOLHra5DHZH1N3w2R+dNF7ouF2c26e/cU=";
+  vendorHash = "sha256-8fWiei7hZ4NO1CIMPQaRe4gyBF1CUjcqU5Eghyiy64w=";
 
   doCheck = false;
 
@@ -12,7 +12,7 @@ buildGoModule rec {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "sha256-7HAA3MHDlsnTYDu5AmzpFfiWaarUGO09QHrPGLHolyM=";
+    sha256 = "sha256-jbMwSvCn9y4md60pWd7nF2Ck2XJDkYfg5olr1qVrPd4=";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/http/envoy/use-system-python.patch b/pkgs/servers/http/envoy/0001-nixpkgs-use-system-Python.patch
index a2030cc75fd05..11871275f4ffc 100644
--- a/pkgs/servers/http/envoy/use-system-python.patch
+++ b/pkgs/servers/http/envoy/0001-nixpkgs-use-system-Python.patch
@@ -1,5 +1,15 @@
+From 329ad7cb56e66464e5570bbb51dea0fd56c4d9ae Mon Sep 17 00:00:00 2001
+From: Luke Granger-Brown <git@lukegb.com>
+Date: Sun, 19 Feb 2023 17:40:50 +0000
+Subject: [PATCH 1/2] nixpkgs: use system Python
+
+---
+ bazel/python_dependencies.bzl |  4 ----
+ bazel/repositories_extra.bzl  | 13 +------------
+ 2 files changed, 1 insertion(+), 16 deletions(-)
+
 diff --git a/bazel/python_dependencies.bzl b/bazel/python_dependencies.bzl
-index d9dfb14a9b..b8e92452a7 100644
+index a5c3283d0a..1c2c31ebf2 100644
 --- a/bazel/python_dependencies.bzl
 +++ b/bazel/python_dependencies.bzl
 @@ -1,10 +1,8 @@
@@ -14,7 +24,7 @@ index d9dfb14a9b..b8e92452a7 100644
          extra_pip_args = ["--require-hashes"],
      )
 @@ -12,14 +10,12 @@ def envoy_python_dependencies():
-     # These need to use `pip_install`
+     # TODO(phlax): switch to `pip_parse`
      pip_install(
          # Note: dev requirements do *not* check hashes
 -        python_interpreter_target = interpreter,
@@ -22,17 +32,17 @@ index d9dfb14a9b..b8e92452a7 100644
          requirements = "@envoy//tools/dev:requirements.txt",
      )
  
-     pip_install(
+     pip_parse(
          name = "fuzzing_pip3",
 -        python_interpreter_target = interpreter,
-         requirements = "@rules_fuzzing//fuzzing:requirements.txt",
+         requirements_lock = "@rules_fuzzing//fuzzing:requirements.txt",
          extra_pip_args = ["--require-hashes"],
      )
 diff --git a/bazel/repositories_extra.bzl b/bazel/repositories_extra.bzl
-index 885b41dec6..ac5605eb30 100644
+index 9d1b31c5d6..ac5605eb30 100644
 --- a/bazel/repositories_extra.bzl
 +++ b/bazel/repositories_extra.bzl
-@@ -1,22 +1,12 @@
+@@ -1,23 +1,12 @@
  load("@emsdk//:deps.bzl", emsdk_deps = "deps")
 -load("@rules_python//python:repositories.bzl", "python_register_toolchains")
  load("@proxy_wasm_cpp_host//bazel/cargo/wasmtime:crates.bzl", "wasmtime_fetch_remote_crates")
@@ -53,6 +63,10 @@ index 885b41dec6..ac5605eb30 100644
 -    python_register_toolchains(
 -        name = "python%s" % ("_".join(python_version.split(".")[:-1])),
 -        python_version = python_version,
+-        ignore_root_user_error = True,
 -    )
 -
      aspect_bazel_lib_dependencies()
+-- 
+2.39.1
+
diff --git a/pkgs/servers/http/envoy/0002-nixpkgs-use-system-Go.patch b/pkgs/servers/http/envoy/0002-nixpkgs-use-system-Go.patch
new file mode 100644
index 0000000000000..594d51cce9dc1
--- /dev/null
+++ b/pkgs/servers/http/envoy/0002-nixpkgs-use-system-Go.patch
@@ -0,0 +1,94 @@
+From 31d864a3b6a1a3455191e87ff680eb812f77dc3c Mon Sep 17 00:00:00 2001
+From: Luke Granger-Brown <git@lukegb.com>
+Date: Sun, 19 Feb 2023 17:43:03 +0000
+Subject: [PATCH 2/2] nixpkgs: use system Go
+
+---
+ bazel/dependency_imports.bzl   | 29 +----------------------------
+ bazel/repositories.bzl         |  3 ---
+ bazel/repository_locations.bzl |  4 ++--
+ 3 files changed, 3 insertions(+), 33 deletions(-)
+
+diff --git a/bazel/dependency_imports.bzl b/bazel/dependency_imports.bzl
+index 7dbdb0174e..e73662ed79 100644
+--- a/bazel/dependency_imports.bzl
++++ b/bazel/dependency_imports.bzl
+@@ -15,7 +15,7 @@ load("@aspect_bazel_lib//lib:repositories.bzl", "register_jq_toolchains", "regis
+ load("@com_google_cel_cpp//bazel:deps.bzl", "parser_deps")
+ 
+ # go version for rules_go
+-GO_VERSION = "1.18"
++GO_VERSION = "host"
+ 
+ JQ_VERSION = "1.6"
+ YQ_VERSION = "4.24.4"
+@@ -25,7 +25,6 @@ def envoy_dependency_imports(go_version = GO_VERSION, jq_version = JQ_VERSION, y
+     rules_foreign_cc_dependencies(register_default_tools = False, register_built_tools = False)
+     go_rules_dependencies()
+     go_register_toolchains(go_version)
+-    envoy_download_go_sdks(go_version)
+     gazelle_dependencies(go_sdk = "go_sdk")
+     apple_rules_dependencies()
+     pip_dependencies()
+@@ -134,29 +133,3 @@ def envoy_dependency_imports(go_version = GO_VERSION, jq_version = JQ_VERSION, y
+         # use_category = ["api"],
+         # source = "https://github.com/bufbuild/protoc-gen-validate/blob/v0.6.1/dependencies.bzl#L23-L28"
+     )
+-
+-def envoy_download_go_sdks(go_version):
+-    go_download_sdk(
+-        name = "go_linux_amd64",
+-        goos = "linux",
+-        goarch = "amd64",
+-        version = go_version,
+-    )
+-    go_download_sdk(
+-        name = "go_linux_arm64",
+-        goos = "linux",
+-        goarch = "arm64",
+-        version = go_version,
+-    )
+-    go_download_sdk(
+-        name = "go_darwin_amd64",
+-        goos = "darwin",
+-        goarch = "amd64",
+-        version = go_version,
+-    )
+-    go_download_sdk(
+-        name = "go_darwin_arm64",
+-        goos = "darwin",
+-        goarch = "arm64",
+-        version = go_version,
+-    )
+diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl
+index fca05b6062..a2f60014cb 100644
+--- a/bazel/repositories.bzl
++++ b/bazel/repositories.bzl
+@@ -115,9 +115,6 @@ def _go_deps(skip_targets):
+     if "io_bazel_rules_go" not in skip_targets:
+         external_http_archive(
+             name = "io_bazel_rules_go",
+-            # TODO(wrowe, sunjayBhatia): remove when Windows RBE supports batch file invocation
+-            patch_args = ["-p1"],
+-            patches = ["@envoy//bazel:rules_go.patch"],
+         )
+         external_http_archive("bazel_gazelle")
+ 
+diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl
+index e4e89d281a..fb62c4f8f3 100644
+--- a/bazel/repository_locations.bzl
++++ b/bazel/repository_locations.bzl
+@@ -878,8 +878,8 @@ REPOSITORY_LOCATIONS_SPEC = dict(
+         project_name = "Go rules for Bazel",
+         project_desc = "Bazel rules for the Go language",
+         project_url = "https://github.com/bazelbuild/rules_go",
+-        version = "0.36.0",
+-        sha256 = "ae013bf35bd23234d1dea46b079f1e05ba74ac0321423830119d3e787ec73483",
++        version = "0.38.1",
++        sha256 = "dd926a88a564a9246713a9c00b35315f54cbd46b31a26d5d8fb264c07045f05d",
+         urls = ["https://github.com/bazelbuild/rules_go/releases/download/v{version}/rules_go-v{version}.zip"],
+         use_category = ["build", "api"],
+         release_date = "2022-11-23",
+-- 
+2.39.1
+
diff --git a/pkgs/servers/http/envoy/bump-brotli.patch b/pkgs/servers/http/envoy/bump-brotli.patch
deleted file mode 100644
index 5656b8f260cfa..0000000000000
--- a/pkgs/servers/http/envoy/bump-brotli.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl
-index 454c54b0ef..2ac0623cf0 100644
---- a/bazel/repository_locations.bzl
-+++ b/bazel/repository_locations.bzl
-@@ -510,8 +510,8 @@ REPOSITORY_LOCATIONS_SPEC = dict(
-         project_url = "https://brotli.org",
-         # Use the dev branch of brotli to resolve compilation issues.
-         # TODO(rojkov): Remove when brotli > 1.0.9 is released.
--        version = "0cd2e3926e95e7e2930f57ae3f4885508d462a25",
--        sha256 = "93810780e60304b51f2c9645fe313a6e4640711063ed0b860cfa60999dd256c5",
-+        version = "27dd7265403d8e8fed99a854b9c3e1db7d79525f",
-+        sha256 = "e71238b12e30233bdf25997132b29ae49639a69f33fdef3ae18a47abfc0d5e4c",
-         strip_prefix = "brotli-{version}",
-         urls = ["https://github.com/google/brotli/archive/{version}.tar.gz"],
-         use_category = ["dataplane_ext"],
diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix
index 4a219a9cfb05a..db040f8a2080b 100644
--- a/pkgs/servers/http/envoy/default.nix
+++ b/pkgs/servers/http/envoy/default.nix
@@ -24,8 +24,8 @@ let
     # However, the version string is more useful for end-users.
     # These are contained in a attrset of their own to make it obvious that
     # people should update both.
-    version = "1.23.3";
-    rev = "4801f5881893857fbc53a4061f0b20ef4ca91a5b";
+    version = "1.25.1";
+    rev = "bae2e9d642a6a8ae6c5d3810f77f3e888f0d97da";
   };
 in
 buildBazelPackage rec {
@@ -36,13 +36,12 @@ buildBazelPackage rec {
     owner = "envoyproxy";
     repo = "envoy";
     inherit (srcVer) rev;
-    sha256 = "sha256-akAuFk+jESWWvLRCDQ0XDT1Eplutfj5uacAFQp714vM=";
+    sha256 = "sha256-qA3+bta2vXGtAYX3mg+CmSIEitk4576JQB/QLPsj9Vc=";
 
     postFetch = ''
       chmod -R +w $out
       rm $out/.bazelversion
       echo ${srcVer.rev} > $out/SOURCE_VERSION
-      sed -i 's/GO_VERSION = ".*"/GO_VERSION = "host"/g' $out/bazel/dependency_imports.bzl
     '';
   };
 
@@ -51,20 +50,15 @@ buildBazelPackage rec {
     sed -i '/javabase=/d' .bazelrc
     sed -i '/"-Werror"/d' bazel/envoy_internal.bzl
 
-    # Use system Python.
-    sed -i -e '/python_interpreter_target =/d' -e '/@python3_10/d' bazel/python_dependencies.bzl
+    cp ${./protobuf.patch} bazel/protobuf.patch
   '';
 
   patches = [
-    # fix issues with brotli and GCC 11.2.0+ (-Werror=vla-parameter)
-    ./bump-brotli.patch
-
-    # fix linux-aarch64 WAMR builds
-    # (upstream WAMR only detects aarch64 on Darwin, not Linux)
-    ./fix-aarch64-wamr.patch
-
     # use system Python, not bazel-fetched binary Python
-    ./use-system-python.patch
+    ./0001-nixpkgs-use-system-Python.patch
+
+    # use system Go, not bazel-fetched binary Go
+    ./0002-nixpkgs-use-system-Go.patch
   ];
 
   nativeBuildInputs = [
@@ -81,10 +75,13 @@ buildBazelPackage rec {
     linuxHeaders
   ];
 
+  # external/com_github_grpc_grpc/src/core/ext/transport/binder/transport/binder_transport.cc:756:29: error: format not a string literal and no format arguments [-Werror=format-security]
+  hardeningDisable = [ "format" ];
+
   fetchAttrs = {
     sha256 = {
-      x86_64-linux = "sha256-UXTh5sCN7PJxNbTaG47YnW7aQBBtu101UjfsWU1CtBw=";
-      aarch64-linux = "sha256-uynV2/RWBybR2bjErDjcfoacv5vsI4GJ3SL4OF1kFOE=";
+      x86_64-linux = "sha256-H2s8sTbmKF+yRfSzLsZAT2ckFuunFwh/FMSKj+GYyPM=";
+      aarch64-linux = "sha256-R9jzy/dpdCcGgT9yq59Wo/IN/bVo6fxnVPGhLMZ9fbM=";
     }.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
     dontUseCmakeConfigure = true;
     dontUseGnConfigure = true;
diff --git a/pkgs/servers/http/envoy/fix-aarch64-wamr.patch b/pkgs/servers/http/envoy/fix-aarch64-wamr.patch
deleted file mode 100644
index 4d8bc6c02adce..0000000000000
--- a/pkgs/servers/http/envoy/fix-aarch64-wamr.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/bazel/envoy_build_system.bzl b/bazel/envoy_build_system.bzl
-index f48ebe7056..1e5cc5d663 100644
---- a/bazel/envoy_build_system.bzl
-+++ b/bazel/envoy_build_system.bzl
-@@ -102,6 +102,7 @@ def envoy_cmake(
-         pdb_name = "",
-         cmake_files_dir = "$BUILD_TMPDIR/CMakeFiles",
-         generate_crosstool_file = False,
-+        generate_args = [],
-         **kwargs):
-     cache_entries.update({"CMAKE_BUILD_TYPE": "Bazel"})
-     cache_entries_debug = dict(cache_entries)
-@@ -131,7 +132,7 @@ def envoy_cmake(
-             "@envoy//bazel:dbg_build": cache_entries_debug,
-             "//conditions:default": cache_entries,
-         }),
--        generate_args = ["-GNinja"],
-+        generate_args = ["-GNinja"] + generate_args,
-         targets = ["", "install"],
-         # TODO: Remove install target and make this work
-         install = False,
-diff --git a/bazel/foreign_cc/BUILD b/bazel/foreign_cc/BUILD
-index 4d3a281669..b4716dfe2e 100644
---- a/bazel/foreign_cc/BUILD
-+++ b/bazel/foreign_cc/BUILD
-@@ -394,6 +394,12 @@ envoy_cmake(
-         "WAMR_BUILD_LIBC_WASI": "0",
-         "WAMR_BUILD_TAIL_CALL": "1",
-     },
-+    generate_args = select({
-+        "//conditions:default": [],
-+        "@platforms//cpu:aarch64": [
-+            "-DWAMR_BUILD_TARGET=AARCH64",
-+        ],
-+    }),
-     lib_source = "@com_github_wamr//:all",
-     out_static_libs = ["libvmlib.a"],
-     tags = ["skip_on_windows"],
diff --git a/pkgs/servers/http/envoy/protobuf.patch b/pkgs/servers/http/envoy/protobuf.patch
new file mode 100644
index 0000000000000..1cc071bd861a1
--- /dev/null
+++ b/pkgs/servers/http/envoy/protobuf.patch
@@ -0,0 +1,53 @@
+diff --git a/BUILD.bazel b/BUILD.bazel
+index 0f6e41e3a..c0d2bbccf 100644
+--- a/BUILD.bazel
++++ b/BUILD.bazel
+@@ -138,7 +138,7 @@ cc_library(
+     visibility = ["//visibility:public"],
+     deps = [":protobuf_lite"] + select({
+         "//build_defs:config_msvc": [],
+-        "//conditions:default": ["@zlib//:zlib"],
++        "//conditions:default": ["//external:zlib"],
+     }),
+ )
+ 
+@@ -755,7 +820,7 @@ cc_test(
+         "@com_google_googletest//:gtest_main",
+     ] + select({
+         "//build_defs:config_msvc": [],
+-        "//conditions:default": ["@zlib//:zlib"],
++        "//conditions:default": ["//external:zlib"],
+     }),
+ )
+ 
+diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py
+index e7555ee10..a93beb1c5 100644
+--- a/python/google/protobuf/__init__.py
++++ b/python/google/protobuf/__init__.py
+@@ -31,3 +31,10 @@
+ # Copyright 2007 Google Inc. All Rights Reserved.
+ 
+ __version__ = '4.21.12'
++
++
++if __name__ != '__main__':
++    try:
++        __import__('pkg_resources').declare_namespace(__name__)
++    except ImportError:
++        __path__ = __import__('pkgutil').extend_path(__path__, __name__)
+diff --git a/src/google/protobuf/generated_message_tctable_lite.cc b/src/google/protobuf/generated_message_tctable_lite.cc
+index 9993811dc..d80006af7 100644
+--- a/src/google/protobuf/generated_message_tctable_lite.cc
++++ b/src/google/protobuf/generated_message_tctable_lite.cc
+@@ -343,11 +343,6 @@ const char* TcParser::MiniParse(PROTOBUF_TC_PARAM_DECL) {
+ 
+ namespace {
+ 
+-// Offset returns the address `offset` bytes after `base`.
+-inline void* Offset(void* base, uint32_t offset) {
+-  return static_cast<uint8_t*>(base) + offset;
+-}
+-
+ // InvertPacked changes tag bits from the given wire type to length
+ // delimited. This is the difference expected between packed and non-packed
+ // repeated fields.
diff --git a/pkgs/servers/http/go-camo/default.nix b/pkgs/servers/http/go-camo/default.nix
index cc180f9461d38..fcc6c42206b00 100644
--- a/pkgs/servers/http/go-camo/default.nix
+++ b/pkgs/servers/http/go-camo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-camo";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "cactus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3gjn8UAfj7jT/gncgXShrfI75DPwiNU4hHMVJlYDIPA=";
+    sha256 = "sha256-TW32pzYcSMdtcO3MGxgANCLMLvq7S/Tq3KSimv90PU0=";
   };
 
-  vendorSha256 = "sha256-31B6LXCutIdPwxqMFTMUfxAaCuYW14py8Vu1EycBydE=";
+  vendorHash = "sha256-AcSClJwDsM+tUbDE7sQ8LLkxCPTtLEGXsQePqQ6CwMA=";
 
   ldflags = [ "-s" "-w" "-X=main.ServerVersion=${version}" ];
 
diff --git a/pkgs/servers/http/tengine/check-resolv-conf.patch b/pkgs/servers/http/tengine/check-resolv-conf.patch
index c46482b301490..83b4e1cf8eb21 100644
--- a/pkgs/servers/http/tengine/check-resolv-conf.patch
+++ b/pkgs/servers/http/tengine/check-resolv-conf.patch
@@ -2,13 +2,11 @@ diff --git a/auto/unix b/auto/unix
 index a38c12dc..025a4899 100644
 --- a/auto/unix
 +++ b/auto/unix
-@@ -1072,9 +1072,7 @@ ngx_feature_test='int fd;
+@@ -1072,7 +1072,5 @@ ngx_feature_test='int fd;
  
  
- # Auto read nameserver from /etc/resolv.conf.
+ # Tengine: auto read nameserver from /etc/resolv.conf.
 - if [ -f "/etc/resolv.conf" ]; then
-     have=NGX_RESOLVER_FILE
-     value=\"/etc/resolv.conf\"
-     . auto/define
+     have=NGX_RESOLVER_FILE value="\"/etc/resolv.conf\"" . auto/define
 -fi
  
diff --git a/pkgs/servers/http/tengine/default.nix b/pkgs/servers/http/tengine/default.nix
index 84faf2aa432cf..746552fc6222f 100644
--- a/pkgs/servers/http/tengine/default.nix
+++ b/pkgs/servers/http/tengine/default.nix
@@ -10,14 +10,14 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "2.3.4";
+  version = "2.4.0";
   pname = "tengine";
 
   src = fetchFromGitHub {
     owner = "alibaba";
     repo = pname;
     rev = version;
-    sha256 = "sha256-0xue5XDvK9U64+rka8GRNv2lX62zcrYA1Tz7DrsA0ts=";
+    hash = "sha256-h/eSa2wCPvnX29wdtDHNQh8r1No1/YGinZNYU2MnsTM=";
   };
 
   buildInputs =
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index c7e82cd8c1f7c..bb4a946edb158 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -9,13 +9,13 @@
 
 buildDotnetModule rec {
   pname = "jackett";
-  version = "0.20.3063";
+  version = "0.20.3160";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha512-ROp2nKfXD9OWsgEUz7lhqVusIBBMHUhaPOp3g4F/25bAN0vl5E0Mm4m3V9ChvFV6otlxfZJEByBlsC+aALxbyg==";
+    hash = "sha512-bn41nReIfRs99zwDgTJtQ1hrQRrn7EjQvYh5JDTU9ICBsJangnO8l1o8Xfn4jhxvcDJRDjaA7jG7TAoIC3WAFA==";
   };
 
   projectFile = "src/Jackett.Server/Jackett.Server.csproj";
diff --git a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
index 7eed01318f389..903d0e6443162 100644
--- a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
+++ b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "matrix-synapse-mjolnir-antispam";
-  version = "1.6.1";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "mjolnir";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-pTQF3iUXJv953I/savQu/aUK0R1ujE6IrN68FkKO9sU=";
+    sha256 = "sha256-/vnojWLpu/fktqPUhAdL1QTESxDwFrBVYAkyF79Fj9w=";
   };
 
   sourceRoot = "./source/synapse_antispam";
diff --git a/pkgs/servers/mautrix-telegram/default.nix b/pkgs/servers/mautrix-telegram/default.nix
index 2284a677b6562..79864978af499 100644
--- a/pkgs/servers/mautrix-telegram/default.nix
+++ b/pkgs/servers/mautrix-telegram/default.nix
@@ -2,34 +2,33 @@
 , python3
 , fetchFromGitHub
 , withE2BE ? true
-, withHQthumbnails ? false
 }:
 
 let
   python = python3.override {
     packageOverrides = self: super: {
       tulir-telethon = self.telethon.overridePythonAttrs (oldAttrs: rec {
-        version = "1.27.0a7";
+        version = "1.28.0a1";
         pname = "tulir-telethon";
         src = super.fetchPypi {
           inherit pname version;
-          sha256 = "sha256-w4WILvLvJBKf3Nlj0omTCDDD4z+b0XFlCplQ/IHwIPs=";
+          hash = "sha256-Kf7S5nSvedhA5RYt5rbTxBiQq6DGwHJ5uEYxd9AsYIc=";
         };
         doCheck = false;
       });
     };
   };
 in
-python.pkgs.buildPythonPackage rec {
+python.pkgs.buildPythonPackage {
   pname = "mautrix-telegram";
-  version = "unstable-2023-01-28";
+  version = "unstable-2023-02-16";
   disabled = python.pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "telegram";
-    rev = "f12abbe03846fd5897d58572ab24b70a58b337d2";
-    sha256 = "sha256-5ZZ85FOmTO26q2zhAIsF7mTlN4BLNLW2dQF+0culkUM=";
+    rev = "354b49d9e5f91f913b5fdf9288bc631a9a34d142";
+    hash = "sha256-zdK/0jgw++YwSzP8qs1BqInQlFOoM63TeI1jF1AqDnk=";
   };
 
   format = "setuptools";
@@ -59,9 +58,6 @@ python.pkgs.buildPythonPackage rec {
     prometheus-client
     # sqlite
     aiosqlite
-  ] ++ lib.optionals withHQthumbnails [
-    # hq_thumbnails
-    moviepy
   ] ++ lib.optionals withE2BE [
     # e2be
     python-olm
diff --git a/pkgs/servers/monitoring/icinga2/default.nix b/pkgs/servers/monitoring/icinga2/default.nix
index 59425cfcf6919..76d66cd76355b 100644
--- a/pkgs/servers/monitoring/icinga2/default.nix
+++ b/pkgs/servers/monitoring/icinga2/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "icinga2${nameSuffix}";
-  version = "2.13.6";
+  version = "2.13.7";
 
   src = fetchFromGitHub {
     owner = "icinga";
     repo = "icinga2";
     rev = "v${version}";
-    sha256 = "sha256-Zrq+pw1dZyKVxpbsXeEPU3hLqcaYj/0wqB9HmYXnd0Y=";
+    sha256 = "sha256-YLNzXdR54DA9araC7pxZmopAZB90j9sx4gb3hOVsu0I=";
   };
 
   patches = [
diff --git a/pkgs/servers/monitoring/mackerel-agent/default.nix b/pkgs/servers/monitoring/mackerel-agent/default.nix
index 812bd159a5f21..2290e16ef9e95 100644
--- a/pkgs/servers/monitoring/mackerel-agent/default.nix
+++ b/pkgs/servers/monitoring/mackerel-agent/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "mackerel-agent";
-  version = "0.75.0";
+  version = "0.75.1";
 
   src = fetchFromGitHub {
     owner = "mackerelio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XwyBHCx3MngLItgCZfil5k/h6DfQTO+0LN3brldceXI=";
+    sha256 = "sha256-haJzhKb0DOMJAlK6tSsx0FMz9ZkYIHT8OGVjwIqzSgU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
   nativeCheckInputs = lib.optionals (!stdenv.isDarwin) [ nettools ];
   buildInputs = lib.optionals (!stdenv.isDarwin) [ iproute2 ];
 
-  vendorHash = "sha256-cSWyNGR1J2kk4XcaJXFEsMGx5OtyKyBoxY2FCa62x9c=";
+  vendorHash = "sha256-VJy9bbVxcekrehq48yaSbZKP8o65IFmFJglYg92HP20=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/servers/mqtt/nanomq/default.nix b/pkgs/servers/mqtt/nanomq/default.nix
index 5091f41b50f2e..482c274f2112a 100644
--- a/pkgs/servers/mqtt/nanomq/default.nix
+++ b/pkgs/servers/mqtt/nanomq/default.nix
@@ -1,32 +1,48 @@
-{ lib, stdenv, fetchFromGitHub, cmake, ninja, mbedtls, sqlite }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, ninja, pkg-config
+, cyclonedds, libmysqlclient, mariadb, mbedtls, sqlite, zeromq
+}:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nanomq";
-  version = "0.15.1";
+  version = "0.15.5";
 
   src = fetchFromGitHub {
     owner = "emqx";
     repo = "nanomq";
     rev = finalAttrs.version;
-    hash = "sha256-h4TCorZfg9Sin4CZPRifUkqeg4F2V1DluolerSeREs4=";
+    hash = "sha256-eIwUsYPpRZMl1oCuuZeOj0SCBHDaJdmdWdoI4yuqxrg=";
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Fix the conflict on function naming in ddsproxy
+    (fetchpatch {
+      url = "https://github.com/emqx/nanomq/commit/20f436a3b9d45f9809d7c7f0714905c657354631.patch";
+      hash = "sha256-ISMlf9QW73oogMTlifi/r08uSxBpzRYvBSJBB1hn2xY=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace CMakeLists.txt \
       --replace "DESTINATION /etc" "DESTINATION $out/etc"
   '';
 
-  nativeBuildInputs = [ cmake ninja ];
+  nativeBuildInputs = [ cmake ninja pkg-config ];
 
-  buildInputs = [ mbedtls sqlite ];
+  buildInputs = [ cyclonedds libmysqlclient mariadb mbedtls sqlite zeromq ];
 
   cmakeFlags = [
+    "-DBUILD_BENCH=ON"
+    "-DBUILD_DDS_PROXY=ON"
     "-DBUILD_NANOMQ_CLI=ON"
-    "-DNNG_ENABLE_TLS=ON"
+    "-DBUILD_ZMQ_GATEWAY=ON"
+    "-DENABLE_RULE_ENGINE=ON"
     "-DNNG_ENABLE_SQLITE=ON"
+    "-DNNG_ENABLE_TLS=ON"
   ];
 
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-return-type";
+
   meta = with lib; {
     description = "An ultra-lightweight and blazing-fast MQTT broker for IoT edge";
     homepage = "https://nanomq.io/";
diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix
index 7a9b390d014ef..b5b02fc70c84e 100644
--- a/pkgs/servers/web-apps/discourse/default.nix
+++ b/pkgs/servers/web-apps/discourse/default.nix
@@ -1,25 +1,59 @@
-{ stdenv, pkgs, makeWrapper, runCommand, lib, writeShellScript
-, fetchFromGitHub, bundlerEnv, callPackage
-
-, ruby, replace, gzip, gnutar, git, cacert, util-linux, gawk, nettools
-, imagemagick, optipng, pngquant, libjpeg, jpegoptim, gifsicle, jhead
-, oxipng, libpsl, redis, postgresql, which, brotli, procps, rsync, icu
-, fetchYarnDeps, yarn, fixup_yarn_lock, nodePackages, nodejs-14_x
+{ stdenv
+, pkgs
+, makeWrapper
+, runCommand
+, lib
+, writeShellScript
+, fetchFromGitHub
+, bundlerEnv
+, callPackage
+
+, ruby_3_1
+, replace
+, gzip
+, gnutar
+, git
+, cacert
+, util-linux
+, gawk
+, nettools
+, imagemagick
+, optipng
+, pngquant
+, libjpeg
+, jpegoptim
+, gifsicle
+, jhead
+, oxipng
+, libpsl
+, redis
+, postgresql
+, which
+, brotli
+, procps
+, rsync
+, icu
+, fetchYarnDeps
+, yarn
+, fixup_yarn_lock
+, nodePackages
 , nodejs-16_x
 
 , plugins ? []
 }@args:
 
 let
-  version = "2.9.0.beta14";
+  version = "3.1.0.beta2";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-rdH6tALfhZyCGq1dtOQyuRlEYHSmWgvSz2qG6jrwPu0=";
+    sha256 = "sha256-wkNTm5/QyujPcMUrnc6eWmjhrRQAthhmejmjpy6zmbE=";
   };
 
+  ruby = ruby_3_1;
+
   runtimeDeps = [
     # For backups, themes and assets
     rubyEnv.wrappedRuby
@@ -165,7 +199,7 @@ let
 
     yarnOfflineCache = fetchYarnDeps {
       yarnLock = src + "/app/assets/javascripts/yarn.lock";
-      sha256 = "1rj8bbhmrnnhaiqw2bik8dilk7g35yhis5p7yww57zy4k5ghjvlw";
+      sha256 = "0ryc4p5s35mzg1p71z98x5fvr5fpldmgghdi1viha4ckbpv153lw";
     };
 
     nativeBuildInputs = runtimeDeps ++ [
@@ -174,7 +208,7 @@ let
       nodePackages.uglify-js
       nodePackages.terser
       yarn
-      nodejs-14_x
+      nodejs-16_x
     ];
 
     outputs = [ "out" "javascripts" ];
diff --git a/pkgs/servers/web-apps/discourse/how_to_update.md b/pkgs/servers/web-apps/discourse/how_to_update.md
new file mode 100644
index 0000000000000..c402325babc85
--- /dev/null
+++ b/pkgs/servers/web-apps/discourse/how_to_update.md
@@ -0,0 +1,24 @@
+To update discourse, do the following:
+
+1. Switch to and work from the `master` branch and the directory this
+   file is in.
+2. Run `./update.py print-diffs` and update the nginx settings and
+   backend settings accordingly. If you don't know how to, ask for
+   help - do not skip this step!
+3. Run `./update.py update`.
+4. Run `nix build -L -f ../../../../ discourse.tests` to make sure the
+   update works. Also test manually, if possible.
+5. If the update works, commit it. If not, apply necessary fixes and
+   commit. No manual fixes that would be overwritten by the
+   `./update.py` script should be committed - the script should be
+   fixed instead.
+6. Run `./update.py update-mail-receiver`. If there's an update, do
+   step 4 and 5 again.
+7. Run `./update.py update-plugins`.
+8. Run `nix build -L -f ../../../../ discourseAllPlugins.tests` to
+   make sure the plugins build and discourse starts with them. Also
+   test manually, if possible.
+9. If the update works, commit it. If not, apply necessary fixes and
+   commit. No manual fixes that would be overwritten by the
+   `./update.py` script should be committed - the script should be
+   fixed instead.
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
index 4903be6b65211..e6c32028f65dd 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-assign";
-    rev = "889df32cc61792ed7b1981a08f0b0e9c46da2a56";
-    sha256 = "sha256-ggMmIzjb4CBNAJTf8E09iaN5AGPj+BDzRf2y3h4DCMc=";
+    rev = "c6e6a883f66670e5cfc1eb973af8ac5b7c20f815";
+    sha256 = "sha256-OwNV+ZNogUgd6ZKdXwUqoMqcZKc4jbf276rHIYQzjYc=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
index 824803dfc0267..4e5ea7be8e65b 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-bbcode-color";
-    rev = "88ff27dc22198075f1ee8aba3f2b032187b73b9c";
-    sha256 = "sha256-MSwX4qEgrWMTNhF1UE6/GMvo/ZPvg8KZF3DvQutRBVY=";
+    rev = "f9ebbf016c8c5c763473ff36cc30fdcdf8fcf480";
+    sha256 = "sha256-7iCKhMdVlFdHMXxU8mQMU1vFiAbr1qKvG29VdAki+14=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-bbcode-color";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile
index faf4db6ca825b..76faf85df5e2f 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile
@@ -3,4 +3,4 @@
 source "https://rubygems.org"
 
 # gem "rails"
-gem 'rrule', '0.4.4', require: false
+gem "rrule", "0.4.4", require: false
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
index b5284f49fa85c..91e6d08c2717e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
@@ -1,18 +1,18 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.0.4)
+    activesupport (7.0.4.2)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-    concurrent-ruby (1.1.10)
+    concurrent-ruby (1.2.0)
     i18n (1.12.0)
       concurrent-ruby (~> 1.0)
-    minitest (5.16.3)
+    minitest (5.17.0)
     rrule (0.4.4)
       activesupport (>= 2.3)
-    tzinfo (2.0.5)
+    tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
 
 PLATFORMS
@@ -22,4 +22,4 @@ DEPENDENCIES
   rrule (= 0.4.4)
 
 BUNDLED WITH
-   2.3.25
+   2.4.6
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
index b757603142101..28e1001b7f079 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-calendar";
-    rev = "f4f16d958e5cec5fab109d09a7bfb50fc2b8da12";
-    sha256 = "sha256-TWIWHOVeq3IKjinycaoiVccFKaP4UbNUpZ5n/SQ6afA=";
+    rev = "b71d4979370dcbd6f193b2ac5cfa0267f8a19fed";
+    sha256 = "sha256-XGybZqoM0nX8acLo3iwo+zD+zA4pz/ekLOnmDRNIVSo=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-calendar";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
index 3b4dd74420300..d2203b1825863 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
@@ -5,20 +5,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "183az13i4fsm28d0l5xhbjpmcj3l1lxzcxlx8pi8zrbd933jwqd0";
+      sha256 = "0dmywys50074vj5rivpx188b00qimlc4jn84xzqlialrgp3ckq5f";
       type = "gem";
     };
-    version = "7.0.4";
+    version = "7.0.4.2";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
+      sha256 = "1qnsflsbjj38im8xq35g0vihlz96h09wjn2dad5g543l3vvrkrx5";
       type = "gem";
     };
-    version = "1.1.10";
+    version = "1.2.0";
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0516ypqlx0mlcfn5xh7qppxqc3xndn1fnadxawa8wld5dkcimy30";
+      sha256 = "1kjy67qajw4rnkbjs5jyk7kc3lyhz5613fwj1i8f6ppdk4zampy0";
       type = "gem";
     };
-    version = "5.16.3";
+    version = "5.17.0";
   };
   rrule = {
     dependencies = ["activesupport"];
@@ -58,9 +58,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rx114mpqnw2k4h98vc0rs0x0bmf0img84yh8mkkjkal07cjydf5";
+      sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
       type = "gem";
     };
-    version = "2.0.5";
+    version = "2.0.6";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
index 091979831eac6..eb3da42373a89 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-canned-replies";
-    rev = "fe92bc1324fe0d2519f0e33b3fd89a4bed21b2e9";
-    sha256 = "sha256-m+DDS93XJAN9RqX8pXeA78gY+p+7A2ey1oblGpcB4L0=";
+    rev = "b30b20d43ba5cbbb1ff1476bb43e97d5b8a807e8";
+    sha256 = "sha256-XROYSqGy4Z39VAlMXCbx9d+kivpknN98Kn/HhoC4ndQ=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-canned-replies";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
index dd4733f5186c5..41c816249c21c 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-chat-integration";
-    rev = "f6dde41cba2722970cc1a49f47636174a6ec7797";
-    sha256 = "sha256-Cn+Ti1DYcFRqunEEFjGJuhnICO+53IX7tF7U8MkzJX0=";
+    rev = "0522ad64143c9aedb27e00b642e82cad1273c83b";
+    sha256 = "sha256-GsoDVZkmKEX8+HwwQXptmmRuykTDqkbsL4WbFsL/PSo=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-chat-integration";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
index 8cf1c3e662a69..7c402028d6600 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-checklist";
-    rev = "c97060bd9dc1287d258cac6b7222a9a61d4f97c7";
-    sha256 = "sha256-fVGTYz/2PK5rq/7SE/hkQoWYiIzOcmZ9AHNe5f+osxY=";
+    rev = "4a7f3df360a8e4ff3bbebfed33ea545b1c72506e";
+    sha256 = "sha256-lu8Ry3sUsKnr1nMfR29hbhsfJXLaN5NPuz8iGfsfHTc=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-checklist";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
index 6e7da0de992fc..f80e625147d32 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-data-explorer";
-    rev = "467b6c8a91a08ca71080b9bbff2e0cd45dc4efe5";
-    sha256 = "sha256-65Osh9oud/Gfy6dVJ4QXqT+A0wdIN33BeaCUIfyWEGA=";
+    rev = "556d12ac507b140d1ed9d307cad58fa8e1d8cfdd";
+    sha256 = "sha256-fcO/j506kIydnipx6VsuMkj4Wb2MmPCo3LSrj9Fnczc=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-data-explorer";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
index eebe6101a9085..154f75965f3ff 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-docs";
-    rev = "908d9096a81e1d706da231558f9a0547357fe73a";
-    sha256 = "sha256-77MTXMTjuwG1qIhYwUlNBNA39p/eyPF2+IHFpUiG8uo=";
+    rev = "bf1c4574a61b053c136e2b181ba2fedb6c16f838";
+    sha256 = "sha256-voo3Q+e/Ud1Hg+SdHlvRsxoacFnPOQXwWu/g6n5cR3Y=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile
index 8b69b657f2adc..c24a3e860d7cd 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile
@@ -3,5 +3,5 @@
 source "https://rubygems.org"
 
 # gem "rails"
-gem 'sawyer', '0.9.2'
-gem 'octokit', '5.6.1'
+gem "sawyer", "0.9.2"
+gem "octokit", "5.6.1"
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
index 0aba4fb103cab..6093b573ed542 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
@@ -3,14 +3,14 @@ GEM
   specs:
     addressable (2.8.1)
       public_suffix (>= 2.0.2, < 6.0)
-    faraday (2.7.1)
+    faraday (2.7.4)
       faraday-net_http (>= 2.0, < 3.1)
       ruby2_keywords (>= 0.0.4)
     faraday-net_http (3.0.2)
     octokit (5.6.1)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
-    public_suffix (5.0.0)
+    public_suffix (5.0.1)
     ruby2_keywords (0.0.5)
     sawyer (0.9.2)
       addressable (>= 2.3.5)
@@ -24,4 +24,4 @@ DEPENDENCIES
   sawyer (= 0.9.2)
 
 BUNDLED WITH
-   2.3.25
+   2.4.6
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
index cf0e425cbdea8..743002c0ec807 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-github";
-    rev = "873cb13a0dcb3e70360adb86a2e293f377536626";
-    sha256 = "sha256-r3+RXVb0k2UFiMeBQ998Obw7GQg1/uyUzpxFP9g5yXs=";
+    rev = "148f28c1089288c9527fab1dcb88f13a5a5b0d10";
+    sha256 = "sha256-u91X+YFoKE0lP4RnNWX2XzNrJvlOQPbuZzFqBEVf84w=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-github";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
index fae128695754d..8d9cd6e219bf8 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wyz9ab0mzi84gpf81fs19vrixglmmxi25k6n1mn9h141qmsp590";
+      sha256 = "1f20vjx0ywx0zdb4dfx4cpa7kd51z6vg7dw5hs35laa45dy9g9pj";
       type = "gem";
     };
-    version = "2.7.1";
+    version = "2.7.4";
   };
   faraday-net_http = {
     groups = ["default"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sqw1zls6227bgq38sxb2hs8nkdz4hn1zivs27mjbniswfy4zvi6";
+      sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35";
       type = "gem";
     };
-    version = "5.0.0";
+    version = "5.0.1";
   };
   ruby2_keywords = {
     groups = ["default"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
index 2602ef5c72b57..e140770e4e6ae 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
@@ -5,5 +5,5 @@ source "https://rubygems.org"
 # gem "rails"
 gem 'pyu-ruby-sasl', '0.0.3.3', require: false
 gem 'rubyntlm', '0.3.4', require: false
-gem 'net-ldap', '0.14.0'
+gem 'net-ldap', '0.17.1'
 gem 'omniauth-ldap', '1.0.5'
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
index 915a95cd82781..c923e26408e0f 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
@@ -2,7 +2,7 @@ GEM
   remote: https://rubygems.org/
   specs:
     hashie (5.0.0)
-    net-ldap (0.14.0)
+    net-ldap (0.17.1)
     omniauth (1.9.2)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
@@ -12,17 +12,17 @@ GEM
       pyu-ruby-sasl (~> 0.0.3.2)
       rubyntlm (~> 0.3.4)
     pyu-ruby-sasl (0.0.3.3)
-    rack (2.2.4)
+    rack (2.2.6.2)
     rubyntlm (0.3.4)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  net-ldap (= 0.14.0)
+  net-ldap (= 0.17.1)
   omniauth-ldap (= 1.0.5)
   pyu-ruby-sasl (= 0.0.3.3)
   rubyntlm (= 0.3.4)
 
 BUNDLED WITH
-   2.3.22
+   2.4.6
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
index 5e7ed51852e69..0fff98865e329 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "jonmbake";
     repo = "discourse-ldap-auth";
-    rev = "84635b1c352b2145b8e6074d94047f1e2020dcbc";
-    sha256 = "sha256-yCCSger7qa9R/BMaQdcFtLXqLPj3i3y4tTanz+ufZTw=";
+    rev = "2f7a04b9fbeda0c8ab5c70e9012e4914ede9a707";
+    sha256 = "sha256-zBug9PHgvRsdQjvfWE5Bylm+0Ot+jBHFrbux7+Kn72c=";
   };
   meta = with lib; {
     homepage = "https://github.com/jonmbake/discourse-ldap-auth";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix
index bea800d6b507f..c7a026a0c2dba 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix
@@ -14,10 +14,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18fyxfbh32ai72cwgz8s9w0fg0xq7j534y217flw54mmzsj8i6qp";
+      sha256 = "1ycw0qsw3hap8svakl0i30jkj0ffd4lpyrn17a1j0w8mz5ainmsj";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "0.17.1";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -56,10 +56,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0axc6w0rs4yj0pksfll1hjgw1k6a5q0xi2lckh91knfb72v348pa";
+      sha256 = "0qvp6h2abmlsl4sqjsvac03cr2mxq6143gbx4kq52rpazp021qsb";
       type = "gem";
     };
-    version = "2.2.4";
+    version = "2.2.6.2";
   };
   rubyntlm = {
     groups = ["default"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
index 98f89d0f241e1..d15a962c19d85 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-math";
-    rev = "45563f691aafcd0d76f07db9c105d42f3e3d5ba0";
-    sha256 = "sha256-s2mzV1YdUG9vjw1LKm+jZriQfWYN5Jn232z3Cc7NFeg=";
+    rev = "69494ca5a4d708e16e35f1daebeaa53e3edbca2c";
+    sha256 = "sha256-C0iVUwj+Lbe6TGfkbu6WxdCeMWVjBaejUh6fXVTqq08=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-math";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
index 565495d9e4e80..59c64586dc17b 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
@@ -7,4 +7,4 @@ gem 'bcrypt', '3.1.13'
 gem 'unix-crypt', '1.3.0'
 gem 'ffi', '1.15.5', require: false
 gem 'ffi-compiler', '1.0.1', require: false
-gem 'argon2', '2.1.1'
+gem 'argon2', '2.2.0'
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
index e7e49724b57df..4c6c3bab99876 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
@@ -1,8 +1,8 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    argon2 (2.1.1)
-      ffi (~> 1.14)
+    argon2 (2.2.0)
+      ffi (~> 1.15)
       ffi-compiler (~> 1.0)
     bcrypt (3.1.13)
     ffi (1.15.5)
@@ -16,11 +16,11 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  argon2 (= 2.1.1)
+  argon2 (= 2.2.0)
   bcrypt (= 3.1.13)
   ffi (= 1.15.5)
   ffi-compiler (= 1.0.1)
   unix-crypt (= 1.3.0)
 
 BUNDLED WITH
-   2.3.23
+   2.4.6
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
index 8c022162512fb..c0c89d98be2c7 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "communiteq";
     repo = "discourse-migratepassword";
-    rev = "54a451e3dea4416c763c9afacfb6e9fcc05f135a";
-    sha256 = "sha256-14gxO4hYEOSz2Fenl4tO8xeM1AkPaCilV4cnoJQNHGY=";
+    rev = "f78774242eb9bf49a72d2800a39a24eeaa3b401a";
+    sha256 = "sha256-QJO+ei9/l7ye+kWE9VmiIuNCiOH66kd3vds49qlIztY=";
   };
   meta = with lib; {
     homepage = "https://github.com/communiteq/discourse-migratepassword";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
index d9471aea82a9c..97aa9bfc70485 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g4qsdq072fyrsa7r0sg456dhrb017jmzdbnnzl2c80ha40bbmhg";
+      sha256 = "1wdllcqlr81nzyf485ldv1p660xsi476p79ghbj7zsf3n9n86gwd";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   bcrypt = {
     groups = ["default"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
index 3ce7519dc525a..6fe8171593dbc 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-openid-connect";
-    rev = "43a30dde4a64a01250f4447e74806db65ee7ae1a";
-    sha256 = "sha256-/3AE5cDELKfKwEY+XqaZ6SzJp6XAnW83r67kzLGaV2M=";
+    rev = "fd552d5eee75ba5710ce92bcd2fa7457ec98bcab";
+    sha256 = "sha256-+58QfVvA6BqI/5AfdI4RiSSMzWHvAJMxPvDS2r5FieU=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-openid-connect";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
index 63a7cf62749bf..9753a02ce0940 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
@@ -3,4 +3,5 @@
 source "https://rubygems.org"
 
 # gem "rails"
-gem 'prometheus_exporter', File.read(File.expand_path("../prometheus_exporter_version", __FILE__)).strip
+gem "webrick", "1.7.0"
+gem "prometheus_exporter",     File.read(File.expand_path("../prometheus_exporter_version", __FILE__)).strip
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
index 0f46eaf43f2ad..d9da3253d0d54 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
@@ -1,13 +1,16 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    prometheus_exporter (0.5.0)
+    prometheus_exporter (2.0.6)
+      webrick
+    webrick (1.7.0)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  prometheus_exporter (= 0.5.0)
+  prometheus_exporter (= 2.0.6)
+  webrick (= 1.7.0)
 
 BUNDLED WITH
-   2.3.25
+   2.4.6
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
index 13127cf3d3e95..8d6ddb4199a4a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
@@ -6,8 +6,8 @@
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-prometheus";
-    rev = "72fff206ba18ad5ca3112fed2f5f0ce6a17ca6f8";
-    sha256 = "sha256-lSZZTcoWeFJTXnHLgry5ezYGmCBuMFJ96dtkOQKKRJc=";
+    rev = "78324fbaa8cfa3040ee7e01ac793ad2515b6c004";
+    sha256 = "sha256-xzI6gzRztLuEzFHlMi3iXZP9bRRMsRHRQEBrwqyzpdk=";
   };
 
   patches = [
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix
index e62e01926837b..b6f3158174c17 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/gemset.nix
@@ -1,12 +1,23 @@
 {
   prometheus_exporter = {
+    dependencies = ["webrick"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kmabnxz466zqnyqlzc693ny4l7i0rxvmc0znswvizc0zg4pri80";
+      sha256 = "0pb4k6px8b36bvnw3d14j31s33ns60dcwxixbcgvhpzavd7fparb";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "2.0.6";
+  };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
+      type = "gem";
+    };
+    version = "1.7.0";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/no-git-version.patch b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/no-git-version.patch
index 416386f4ecd3c..9aebfd8aa7943 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/no-git-version.patch
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/no-git-version.patch
@@ -2,7 +2,7 @@ diff --git a/lib/internal_metric/global.rb b/lib/internal_metric/global.rb
 index 682571b..7bdd431 100644
 --- a/lib/internal_metric/global.rb
 +++ b/lib/internal_metric/global.rb
-@@ -30,30 +30,7 @@ module DiscoursePrometheus::InternalMetric
+@@ -30,28 +30,7 @@ module DiscoursePrometheus::InternalMetric
        @active_app_reqs = 0
        @queued_app_reqs = 0
        @fault_logged = {}
@@ -10,7 +10,7 @@ index 682571b..7bdd431 100644
 -      begin
 -        @@version = nil
 -
--        out, error, status = Open3.capture3('git rev-parse HEAD')
+-        out, error, status = Open3.capture3("git rev-parse HEAD")
 -
 -        if status.success?
 -          @@version ||= out.chomp
@@ -26,9 +26,7 @@ index 682571b..7bdd431 100644
 -
 -        @@retries ||= 10
 -        @@retries -= 1
--        if @@retries < 0
--          @@version = -1
--        end
+-        @@version = -1 if @@retries < 0
 -      end
 +      @@version = -1
      end
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version
index 8f0916f768f04..157e54f3e4d5b 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version
@@ -1 +1 @@
-0.5.0
+2.0.6
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
index ac48f83ae90b2..8cc2f18ef8b43 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-reactions";
-    rev = "3afaabc8e430dfe655be4efbbcb20ab7f0c7c8d3";
-    sha256 = "sha256-CdrInrPFDpvYW7j0epIeAFUoPGTbmMOGdm2DpkIQBbs=";
+    rev = "aba16d53d15ceca9ae18595ae85defbd10fe0256";
+    sha256 = "sha256-mGyMQGNa5Q2hMQkdIsa1JArA6cqSK+FmGSDJFZxS/go=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-reactions";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
index 3108d617ceb90..f2d139abedba0 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-saved-searches";
-    rev = "be97918d0bbac81b98ab96773d5c8c01313ac0c2";
-    sha256 = "sha256-2HTFfaJkLXuuMDa3m7Ppkh9v4BnLfKXyWiRN4c+xaNI=";
+    rev = "d0b568efe6f829617a5bb85793f0ec1d697f2a96";
+    sha256 = "sha256-455ovBExE2+vuZOc0bESAbhtTOXqkMrQ//mVSIitLig=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-saved-searches";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
index 11a8789ca2ea9..f71ca930ace57 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-solved";
-    rev = "a078219a9785f995a0a41c64b97bb0f2930a3ba1";
-    sha256 = "sha256-P3rWEgPoMtzapSqARMFe5/IGT/QtTUFx8LB1kf6vBiU=";
+    rev = "8580f96fdf64abf8b22fa4b28d67a4cb0d72fc42";
+    sha256 = "sha256-YpUybEXQuPeDxxdX9dMNw4h6Mh/zNUaiR3bwzck5Urg=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-solved";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
index 19838e88a8f0a..6d386c26248d2 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-spoiler-alert";
-    rev = "a7727a1c6b6f921365e1cee802e0c16512bbf8ee";
-    sha256 = "sha256-60Sg8C7a4vXq/IApcskL0hgceoIHhWqACphcgfrbNig=";
+    rev = "a5fdb9096d638ac4a2a3f8ea6b02b6cb04c667d8";
+    sha256 = "sha256-S2Xtd/csB1YI85OA+2UO+OgF5u75Oi2YgIukQNOTQjk=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-spoiler-alert";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
index e5e3d8f2b9779..0acf676855eae 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-voting";
-    rev = "1ecf494a789235d7ceaf2c8f6cad49176347e6b6";
-    sha256 = "sha256-6UX7VGuZ+AT44ExfZNFWxFwgEx9zBJ3fQbO1vgCa5bE=";
+    rev = "54e134c9b4dfeeb7585ff2c2a782990308733d8b";
+    sha256 = "sha256-0V+4G2XxUjL424DChFIFjCKm2zWaTAXOSiB9Ic8/lF0=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-voting";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
index bfdb7f6739f34..8dab5b1b39374 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-yearly-review";
-    rev = "0f24d14d2dc861e404cb28f63832b93ed41b44eb";
-    sha256 = "sha256-7cstjcuZ6OUn7u85UEp/B4pycepEK8CHg4W/O4ePoQg=";
+    rev = "cb9a2df92788b0a285a595d4acf1749620f62974";
+    sha256 = "sha256-Hu61ULEXUxb/cjH7Z47hpBchyUTkz0QqunWoW8mSVQg=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-yearly-review";
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
index b35e4805cc496..4bd110bf4bfc4 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -1,51 +1,51 @@
 # frozen_string_literal: true
 
-source 'https://rubygems.org'
+source "https://rubygems.org"
 # if there is a super emergency and rubygems is playing up, try
 #source 'http://production.cf.rubygems.org'
 
-gem 'bootsnap', require: false, platform: :mri
+gem "bootsnap", require: false, platform: :mri
 
 def rails_master?
-  ENV["RAILS_MASTER"] == '1'
+  ENV["RAILS_MASTER"] == "1"
 end
 
 if rails_master?
-  gem 'arel', git: 'https://github.com/rails/arel.git'
-  gem 'rails', git: 'https://github.com/rails/rails.git'
+  gem "arel", git: "https://github.com/rails/arel.git"
+  gem "rails", git: "https://github.com/rails/rails.git"
 else
   # NOTE: Until rubygems gives us optional dependencies we are stuck with this needing to be explicit
   # this allows us to include the bits of rails we use without pieces we do not.
   #
   # To issue a rails update bump the version number here
-  rails_version = '7.0.3.1'
-  gem 'actionmailer', rails_version
-  gem 'actionpack', rails_version
-  gem 'actionview', rails_version
-  gem 'activemodel', rails_version
-  gem 'activerecord', rails_version
-  gem 'activesupport', rails_version
-  gem 'railties', rails_version
-  gem 'sprockets-rails'
+  rails_version = "7.0.4.1"
+  gem "actionmailer", rails_version
+  gem "actionpack", rails_version
+  gem "actionview", rails_version
+  gem "activemodel", rails_version
+  gem "activerecord", rails_version
+  gem "activesupport", rails_version
+  gem "railties", rails_version
+  gem "sprockets-rails"
 end
 
-gem 'json'
+gem "json"
 
 # TODO: At the moment Discourse does not work with Sprockets 4, we would need to correct internals
-# This is a desired upgrade we should get to.
-gem 'sprockets', '3.7.2'
+# We intend to drop sprockets rather than upgrade to 4.x
+gem "sprockets", git: "https://github.com/rails/sprockets", branch: "3.x"
 
 # this will eventually be added to rails,
 # allows us to precompile all our templates in the unicorn master
-gem 'actionview_precompiler', require: false
+gem "actionview_precompiler", require: false
 
-gem 'discourse-seed-fu'
+gem "discourse-seed-fu"
 
-gem 'mail', git: 'https://github.com/discourse/mail.git'
-gem 'mini_mime'
-gem 'mini_suffix'
+gem "mail", git: "https://github.com/discourse/mail.git"
+gem "mini_mime"
+gem "mini_suffix"
 
-gem 'redis'
+gem "redis"
 
 # This is explicitly used by Sidekiq and is an optional dependency.
 # We tell Sidekiq to use the namespace "sidekiq" which triggers this
@@ -53,79 +53,79 @@ gem 'redis'
 # redis namespace support is optional
 # We already namespace stuff in DiscourseRedis, so we should consider
 # just using a single implementation in core vs having 2 namespace implementations
-gem 'redis-namespace'
+gem "redis-namespace"
 
 # NOTE: AM serializer gets a lot slower with recent updates
 # we used an old branch which is the fastest one out there
 # are long term goal here is to fork this gem so we have a
 # better maintained living fork
-gem 'active_model_serializers', '~> 0.8.3'
+gem "active_model_serializers", "~> 0.8.3"
 
-gem 'http_accept_language', require: false
+gem "http_accept_language", require: false
 
-gem 'discourse-fonts', require: 'discourse_fonts'
+gem "discourse-fonts", require: "discourse_fonts"
 
-gem 'message_bus'
+gem "message_bus"
 
-gem 'rails_multisite'
+gem "rails_multisite"
 
-gem 'fast_xs', platform: :ruby
+gem "fast_xs", platform: :ruby
 
-gem 'xorcist'
+gem "xorcist"
 
-gem 'fastimage'
+gem "fastimage"
 
-gem 'aws-sdk-s3', require: false
-gem 'aws-sdk-sns', require: false
-gem 'excon', require: false
-gem 'unf', require: false
+gem "aws-sdk-s3", require: false
+gem "aws-sdk-sns", require: false
+gem "excon", require: false
+gem "unf", require: false
 
-gem 'email_reply_trimmer'
+gem "email_reply_trimmer"
 
-gem 'image_optim'
-gem 'multi_json'
-gem 'mustache'
-gem 'nokogiri'
-gem 'loofah'
-gem 'css_parser', require: false
+gem "image_optim"
+gem "multi_json"
+gem "mustache"
+gem "nokogiri"
+gem "loofah"
+gem "css_parser", require: false
 
-gem 'omniauth'
-gem 'omniauth-facebook'
-gem 'omniauth-twitter'
-gem 'omniauth-github'
+gem "omniauth"
+gem "omniauth-facebook"
+gem "omniauth-twitter"
+gem "omniauth-github"
 
-gem 'omniauth-oauth2', require: false
+gem "omniauth-oauth2", require: false
 
-gem 'omniauth-google-oauth2'
+gem "omniauth-google-oauth2"
 
 # pending: https://github.com/ohler55/oj/issues/789
-gem 'oj', '3.13.14'
+gem "oj", "3.13.14"
 
-gem 'pg'
-gem 'mini_sql'
-gem 'pry-rails', require: false
-gem 'pry-byebug', require: false
-gem 'r2', require: false
-gem 'rake'
+gem "pg"
+gem "mini_sql"
+gem "pry-rails", require: false
+gem "pry-byebug", require: false
+gem "r2", require: false
+gem "rake"
 
-gem 'thor', require: false
-gem 'diffy', require: false
-gem 'rinku'
-gem 'sidekiq'
-gem 'mini_scheduler'
+gem "thor", require: false
+gem "diffy", require: false
+gem "rinku"
+gem "sidekiq"
+gem "mini_scheduler"
 
-gem 'execjs', require: false
-gem 'mini_racer'
+gem "execjs", require: false
+gem "mini_racer"
 
-gem 'highline', require: false
+gem "highline", require: false
 
-gem 'rack'
+gem "rack"
 
-gem 'rack-protection' # security
-gem 'cbor', require: false
-gem 'cose', require: false
-gem 'addressable'
-gem 'json_schemer'
+gem "rack-protection" # security
+gem "cbor", require: false
+gem "cose", require: false
+gem "addressable"
+gem "json_schemer"
 
 gem "net-smtp", require: false
 gem "net-imap", require: false
@@ -135,138 +135,147 @@ gem "digest", require: false
 # Gems used only for assets and not required in production environments by default.
 # Allow everywhere for now cause we are allowing asset debugging in production
 group :assets do
-  gem 'uglifier'
+  gem "uglifier"
 end
 
 group :test do
-  gem 'capybara', require: false
-  gem 'webmock', require: false
-  gem 'fakeweb', require: false
-  gem 'minitest', require: false
-  gem 'simplecov', require: false
-  gem 'selenium-webdriver', require: false
+  gem "capybara", require: false
+  gem "webmock", require: false
+  gem "fakeweb", require: false
+  gem "minitest", require: false
+  gem "simplecov", require: false
+  gem "selenium-webdriver", require: false
   gem "test-prof"
-  gem 'webdrivers', require: false
+  gem "webdrivers", require: false
 end
 
 group :test, :development do
-  gem 'rspec'
-  gem 'listen', require: false
-  gem 'certified', require: false
-  gem 'fabrication', require: false
-  gem 'mocha', require: false
+  gem "rspec"
+  gem "listen", require: false
+  gem "certified", require: false
+  gem "fabrication", require: false
+  gem "mocha", require: false
 
-  gem 'rb-fsevent', require: RUBY_PLATFORM =~ /darwin/i ? 'rb-fsevent' : false
+  gem "rb-fsevent", require: RUBY_PLATFORM =~ /darwin/i ? "rb-fsevent" : false
 
-  gem 'rspec-rails'
+  gem "rspec-rails"
 
-  gem 'shoulda-matchers', require: false
-  gem 'rspec-html-matchers'
-  gem 'byebug', require: ENV['RM_INFO'].nil?, platform: :mri
-  gem 'rubocop-discourse', require: false
-  gem 'parallel_tests'
+  gem "shoulda-matchers", require: false
+  gem "rspec-html-matchers"
+  gem "byebug", require: ENV["RM_INFO"].nil?, platform: :mri
+  gem "rubocop-discourse", require: false
+  gem "parallel_tests"
 
-  gem 'rswag-specs'
+  gem "rswag-specs"
 
-  gem 'annotate'
+  gem "annotate"
+
+  gem "syntax_tree"
+  gem "syntax_tree-disable_ternary"
 end
 
 group :development do
-  gem 'ruby-prof', require: false, platform: :mri
-  gem 'bullet', require: !!ENV['BULLET']
-  gem 'better_errors', platform: :mri, require: !!ENV['BETTER_ERRORS']
-  gem 'binding_of_caller'
-  gem 'yaml-lint'
+  gem "ruby-prof", require: false, platform: :mri
+  gem "bullet", require: !!ENV["BULLET"]
+  gem "better_errors", platform: :mri, require: !!ENV["BETTER_ERRORS"]
+  gem "binding_of_caller"
+  gem "yaml-lint"
 end
 
 if ENV["ALLOW_DEV_POPULATE"] == "1"
-  gem 'discourse_dev_assets'
-  gem 'faker', "~> 2.16"
+  gem "discourse_dev_assets"
+  gem "faker", "~> 2.16"
 else
   group :development, :test do
-    gem 'discourse_dev_assets'
-    gem 'faker', "~> 2.16"
+    gem "discourse_dev_assets"
+    gem "faker", "~> 2.16"
   end
 end
 
 # this is an optional gem, it provides a high performance replacement
 # to String#blank? a method that is called quite frequently in current
 # ActiveRecord, this may change in the future
-gem 'fast_blank', platform: :ruby
+gem "fast_blank", platform: :ruby
 
 # this provides a very efficient lru cache
-gem 'lru_redux'
+gem "lru_redux"
 
-gem 'htmlentities', require: false
+gem "htmlentities", require: false
 
 # IMPORTANT: mini profiler monkey patches, so it better be required last
 #  If you want to amend mini profiler to do the monkey patches in the railties
 #  we are open to it. by deferring require to the initializer we can configure discourse installs without it
 
-gem 'rack-mini-profiler', require: ['enable_rails_patches']
+gem "rack-mini-profiler", require: ["enable_rails_patches"]
 
-gem 'unicorn', require: false, platform: :ruby
-gem 'puma', require: false
-gem 'rbtrace', require: false, platform: :mri
-gem 'gc_tracer', require: false, platform: :mri
+gem "unicorn", require: false, platform: :ruby
+gem "puma", require: false
+gem "rbtrace", require: false, platform: :mri
+gem "gc_tracer", require: false, platform: :mri
 
 # required for feed importing and embedding
-gem 'ruby-readability', require: false
+gem "ruby-readability", require: false
 
 # rss gem is a bundled gem from Ruby 3 onwards
-gem 'rss', require: false
+gem "rss", require: false
 
-gem 'stackprof', require: false, platform: :mri
-gem 'memory_profiler', require: false, platform: :mri
+gem "stackprof", require: false, platform: :mri
+gem "memory_profiler", require: false, platform: :mri
 
-gem 'cppjieba_rb', require: false
+gem "cppjieba_rb", require: false
 
-gem 'lograge', require: false
-gem 'logstash-event', require: false
-gem 'logstash-logger', require: false
-gem 'logster'
+gem "lograge", require: false
+gem "logstash-event", require: false
+gem "logstash-logger", require: false
+gem "logster"
 
 # NOTE: later versions of sassc are causing a segfault, possibly dependent on processer architecture
 # and until resolved should be locked at 2.0.1
-gem 'sassc', '2.0.1', require: false
+gem "sassc", "2.0.1", require: false
 gem "sassc-rails"
 
-gem 'rotp', require: false
+gem "rotp", require: false
 
-gem 'rqrcode'
+gem "rqrcode"
 
-gem 'rubyzip', require: false
+gem "rubyzip", require: false
 
-gem 'sshkey', require: false
+gem "sshkey", require: false
 
-gem 'rchardet', require: false
-gem 'lz4-ruby', require: false, platform: :ruby
+gem "rchardet", require: false
+gem "lz4-ruby", require: false, platform: :ruby
 
-gem 'sanitize'
+gem "sanitize"
 
 if ENV["IMPORT"] == "1"
-  gem 'mysql2'
-  gem 'redcarpet'
+  gem "mysql2"
+  gem "redcarpet"
 
   # NOTE: in import mode the version of sqlite can matter a lot, so we stick it to a specific one
-  gem 'sqlite3', '~> 1.3', '>= 1.3.13'
-  gem 'ruby-bbcode-to-md', git: 'https://github.com/nlalonde/ruby-bbcode-to-md'
-  gem 'reverse_markdown'
-  gem 'tiny_tds'
-  gem 'csv'
+  gem "sqlite3", "~> 1.3", ">= 1.3.13"
+  gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md"
+  gem "reverse_markdown"
+  gem "tiny_tds"
+  gem "csv"
 
-  gem 'parallel', require: false
+  gem "parallel", require: false
 end
 
-gem 'webpush', require: false
-gem 'colored2', require: false
-gem 'maxminddb'
+gem "web-push"
+gem "colored2", require: false
+gem "maxminddb"
 
-gem 'rails_failover', require: false
+gem "rails_failover", require: false
 
-gem 'faraday'
-gem 'faraday-retry'
+gem "faraday"
+gem "faraday-retry"
 
 # workaround for faraday-net_http, see
 # https://github.com/ruby/net-imap/issues/16#issuecomment-803086765
-gem 'net-http'
+gem "net-http"
+
+# workaround for prometheus-client
+gem "webrick", require: false
+
+# Workaround until Ruby ships with cgi version 0.3.6 or higher.
+gem "cgi", ">= 0.3.6", require: false
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
index b4024ed108c14..b211c594948f4 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -5,28 +5,37 @@ GIT
     mail (2.8.0.edge)
       mini_mime (>= 0.1.1)
 
+GIT
+  remote: https://github.com/rails/sprockets
+  revision: f4d3dae71ef29c44b75a49cfbf8032cce07b423a
+  branch: 3.x
+  specs:
+    sprockets (3.7.2)
+      concurrent-ruby (~> 1.0)
+      rack (> 1, < 3)
+
 GEM
   remote: https://rubygems.org/
   specs:
-    actionmailer (7.0.3.1)
-      actionpack (= 7.0.3.1)
-      actionview (= 7.0.3.1)
-      activejob (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actionmailer (7.0.4.1)
+      actionpack (= 7.0.4.1)
+      actionview (= 7.0.4.1)
+      activejob (= 7.0.4.1)
+      activesupport (= 7.0.4.1)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.0)
-    actionpack (7.0.3.1)
-      actionview (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actionpack (7.0.4.1)
+      actionview (= 7.0.4.1)
+      activesupport (= 7.0.4.1)
       rack (~> 2.0, >= 2.2.0)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (7.0.3.1)
-      activesupport (= 7.0.3.1)
+    actionview (7.0.4.1)
+      activesupport (= 7.0.4.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
@@ -35,15 +44,15 @@ GEM
       actionview (>= 6.0.a)
     active_model_serializers (0.8.4)
       activemodel (>= 3.0)
-    activejob (7.0.3.1)
-      activesupport (= 7.0.3.1)
+    activejob (7.0.4.1)
+      activesupport (= 7.0.4.1)
       globalid (>= 0.3.6)
-    activemodel (7.0.3.1)
-      activesupport (= 7.0.3.1)
-    activerecord (7.0.3.1)
-      activemodel (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
-    activesupport (7.0.3.1)
+    activemodel (7.0.4.1)
+      activesupport (= 7.0.4.1)
+    activerecord (7.0.4.1)
+      activemodel (= 7.0.4.1)
+      activesupport (= 7.0.4.1)
+    activesupport (7.0.4.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -82,7 +91,7 @@ GEM
     bootsnap (1.15.0)
       msgpack (~> 1.2)
     builder (3.2.4)
-    bullet (7.0.4)
+    bullet (7.0.7)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
     byebug (11.1.3)
@@ -97,11 +106,11 @@ GEM
       xpath (~> 3.2)
     cbor (0.5.9.6)
     certified (1.0.0)
-    childprocess (4.1.0)
+    cgi (0.3.6)
     chunky_png (1.4.0)
     coderay (1.1.3)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.10)
+    concurrent-ruby (1.2.0)
     connection_pool (2.3.0)
     cose (1.3.0)
       cbor (~> 0.5.9)
@@ -110,12 +119,13 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    css_parser (1.12.0)
+    css_parser (1.14.0)
       addressable
+    date (3.3.3)
     debug_inspector (1.1.0)
     diff-lcs (1.5.0)
     diffy (3.4.2)
-    digest (3.1.0)
+    digest (3.1.1)
     discourse-fonts (0.0.9)
     discourse-seed-fu (2.3.12)
       activerecord (>= 3.1)
@@ -127,15 +137,15 @@ GEM
     ecma-re-validator (0.4.0)
       regexp_parser (~> 2.2)
     email_reply_trimmer (0.1.13)
-    erubi (1.11.0)
-    excon (0.94.0)
+    erubi (1.12.0)
+    excon (0.97.2)
     execjs (2.8.1)
     exifr (1.3.10)
     fabrication (2.30.0)
     faker (2.23.0)
       i18n (>= 1.8.11, < 2)
     fakeweb (1.3.0)
-    faraday (2.7.1)
+    faraday (2.7.4)
       faraday-net_http (>= 2.0, < 3.1)
       ruby2_keywords (>= 0.0.4)
     faraday-net_http (3.0.2)
@@ -147,14 +157,14 @@ GEM
     ffi (1.15.5)
     fspath (3.1.2)
     gc_tracer (1.5.1)
-    globalid (1.0.0)
+    globalid (1.0.1)
       activesupport (>= 5.0)
     guess_html_encoding (0.0.11)
     hana (1.3.7)
     hashdiff (1.0.1)
     hashie (5.0.0)
-    highline (2.0.3)
-    hkdf (0.3.0)
+    highline (2.1.0)
+    hkdf (1.0.0)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
     i18n (1.12.0)
@@ -168,7 +178,7 @@ GEM
     image_size (3.2.0)
     in_threads (1.6.0)
     jmespath (1.6.2)
-    json (2.6.2)
+    json (2.6.3)
     json-schema (3.0.0)
       addressable (>= 2.8)
     json_schemer (0.2.23)
@@ -176,15 +186,10 @@ GEM
       hana (~> 1.3)
       regexp_parser (~> 2.0)
       uri_template (~> 0.7)
-    jwt (2.5.0)
+    jwt (2.6.0)
     kgio (2.11.4)
     libv8-node (16.10.0.0)
-    libv8-node (16.10.0.0-aarch64-linux)
-    libv8-node (16.10.0.0-arm64-darwin)
-    libv8-node (16.10.0.0-x86_64-darwin)
-    libv8-node (16.10.0.0-x86_64-darwin-19)
-    libv8-node (16.10.0.0-x86_64-linux)
-    listen (3.7.1)
+    listen (3.8.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     literate_randomizer (0.4.0)
@@ -197,7 +202,7 @@ GEM
     logstash-logger (0.26.1)
       logstash-event (~> 1.2)
     logster (2.11.3)
-    loofah (2.19.0)
+    loofah (2.19.1)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
@@ -205,11 +210,11 @@ GEM
     matrix (0.4.2)
     maxminddb (0.1.22)
     memory_profiler (1.0.1)
-    message_bus (4.3.0)
+    message_bus (4.3.2)
       rack (>= 1.1.3)
     method_source (1.0.0)
     mini_mime (1.1.2)
-    mini_portile2 (2.8.0)
+    mini_portile2 (2.8.1)
     mini_racer (0.6.3)
       libv8-node (~> 16.10.0.0)
     mini_scheduler (0.15.0)
@@ -217,35 +222,28 @@ GEM
     mini_sql (1.4.0)
     mini_suffix (0.3.3)
       ffi (~> 1.9)
-    minitest (5.16.3)
+    minitest (5.17.0)
     mocha (2.0.2)
       ruby2_keywords (>= 0.0.5)
     msgpack (1.6.0)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     mustache (1.1.1)
-    net-http (0.2.2)
+    net-http (0.3.2)
       uri
-    net-imap (0.3.1)
+    net-imap (0.3.4)
+      date
       net-protocol
     net-pop (0.1.2)
       net-protocol
-    net-protocol (0.1.3)
+    net-protocol (0.2.1)
       timeout
     net-smtp (0.3.3)
       net-protocol
     nio4r (2.5.8)
-    nokogiri (1.13.9)
+    nokogiri (1.14.0)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
-    nokogiri (1.13.9-aarch64-linux)
-      racc (~> 1.4)
-    nokogiri (1.13.9-arm64-darwin)
-      racc (~> 1.4)
-    nokogiri (1.13.9-x86_64-darwin)
-      racc (~> 1.4)
-    nokogiri (1.13.9-x86_64-linux)
-      racc (~> 1.4)
     oauth (1.1.0)
       oauth-tty (~> 1.0, >= 1.0.1)
       snaky_hash (~> 2.0)
@@ -281,18 +279,19 @@ GEM
     omniauth-twitter (1.4.0)
       omniauth-oauth (~> 1.1)
       rack
-    openssl (3.0.1)
+    openssl (3.0.2)
     openssl-signature_algorithm (1.2.1)
       openssl (> 2.0, < 3.1)
     optimist (3.0.1)
     parallel (1.22.1)
-    parallel_tests (4.0.0)
+    parallel_tests (4.1.0)
       parallel
-    parser (3.1.3.0)
+    parser (3.2.0.0)
       ast (~> 2.4.1)
     pg (1.4.5)
+    prettier_print (1.2.0)
     progress (3.6.0)
-    pry (0.14.1)
+    pry (0.14.2)
       coderay (~> 1.1)
       method_source (~> 1.0)
     pry-byebug (3.10.1)
@@ -300,23 +299,23 @@ GEM
       pry (>= 0.13, < 0.15)
     pry-rails (0.3.9)
       pry (>= 0.10.4)
-    public_suffix (5.0.0)
-    puma (6.0.0)
+    public_suffix (5.0.1)
+    puma (6.0.2)
       nio4r (~> 2.0)
     r2 (0.2.7)
-    racc (1.6.0)
-    rack (2.2.4)
+    racc (1.6.2)
+    rack (2.2.6.2)
     rack-mini-profiler (3.0.0)
       rack (>= 1.2.0)
-    rack-protection (3.0.4)
+    rack-protection (3.0.5)
       rack
     rack-test (2.0.2)
       rack (>= 1.3)
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
-    rails-html-sanitizer (1.4.3)
-      loofah (~> 2.3)
+    rails-html-sanitizer (1.5.0)
+      loofah (~> 2.19, >= 2.19.1)
     rails_failover (0.8.1)
       activerecord (> 6.0, < 7.1)
       concurrent-ruby
@@ -324,9 +323,9 @@ GEM
     rails_multisite (4.0.1)
       activerecord (> 5.0, < 7.1)
       railties (> 5.0, < 7.1)
-    railties (7.0.3.1)
-      actionpack (= 7.0.3.1)
-      activesupport (= 7.0.3.1)
+    railties (7.0.4.1)
+      actionpack (= 7.0.4.1)
+      activesupport (= 7.0.4.1)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
@@ -342,15 +341,15 @@ GEM
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rchardet (1.8.0)
-    redis (4.7.1)
-    redis-namespace (1.9.0)
+    redis (4.8.0)
+    redis-namespace (1.10.0)
       redis (>= 4)
-    regexp_parser (2.6.1)
+    regexp_parser (2.6.2)
     request_store (1.5.1)
       rack (>= 1.4)
     rexml (3.2.5)
     rinku (2.0.6)
-    rotp (6.2.1)
+    rotp (6.2.2)
     rqrcode (2.1.2)
       chunky_png (~> 1.0)
       rqrcode_core (~> 1.0)
@@ -361,13 +360,13 @@ GEM
       rspec-mocks (~> 3.12.0)
     rspec-core (3.12.0)
       rspec-support (~> 3.12.0)
-    rspec-expectations (3.12.0)
+    rspec-expectations (3.12.2)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.12.0)
     rspec-html-matchers (0.10.0)
       nokogiri (~> 1)
       rspec (>= 3.0.0.a)
-    rspec-mocks (3.12.0)
+    rspec-mocks (3.12.3)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.12.0)
     rspec-rails (6.0.1)
@@ -386,24 +385,27 @@ GEM
       json-schema (>= 2.2, < 4.0)
       railties (>= 3.1, < 7.1)
       rspec-core (>= 2.14)
-    rubocop (1.39.0)
+    rubocop (1.44.0)
       json (~> 2.3)
       parallel (~> 1.10)
-      parser (>= 3.1.2.1)
+      parser (>= 3.2.0.0)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml (>= 3.2.5, < 4.0)
-      rubocop-ast (>= 1.23.0, < 2.0)
+      rubocop-ast (>= 1.24.1, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 3.0)
-    rubocop-ast (1.23.0)
+      unicode-display_width (>= 2.4.0, < 3.0)
+    rubocop-ast (1.24.1)
       parser (>= 3.1.1.0)
-    rubocop-discourse (3.0)
+    rubocop-capybara (2.17.0)
+      rubocop (~> 1.41)
+    rubocop-discourse (3.0.3)
       rubocop (>= 1.1.0)
       rubocop-rspec (>= 2.0.0)
-    rubocop-rspec (2.15.0)
+    rubocop-rspec (2.18.1)
       rubocop (~> 1.33)
-    ruby-prof (1.4.3)
+      rubocop-capybara (~> 2.17)
+    ruby-prof (1.4.5)
     ruby-progressbar (1.11.0)
     ruby-readability (0.7.0)
       guess_html_encoding (>= 0.0.4)
@@ -422,18 +424,17 @@ GEM
       sprockets (> 3.0)
       sprockets-rails
       tilt
-    selenium-webdriver (4.6.1)
-      childprocess (>= 0.5, < 5.0)
+    selenium-webdriver (4.8.0)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
-    shoulda-matchers (5.2.0)
+    shoulda-matchers (5.3.0)
       activesupport (>= 5.2.0)
     sidekiq (6.5.8)
       connection_pool (>= 2.2.5, < 3)
       rack (~> 2.0)
       redis (>= 4.5.0, < 5)
-    simplecov (0.21.2)
+    simplecov (0.22.0)
       docile (~> 1.1)
       simplecov-html (~> 0.11)
       simplecov_json_formatter (~> 0.1)
@@ -442,19 +443,19 @@ GEM
     snaky_hash (2.0.1)
       hashie
       version_gem (~> 1.1, >= 1.1.1)
-    sprockets (3.7.2)
-      concurrent-ruby (~> 1.0)
-      rack (> 1, < 3)
     sprockets-rails (3.4.2)
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
     sshkey (2.0.0)
-    stackprof (0.2.22)
-    test-prof (1.0.11)
+    stackprof (0.2.23)
+    syntax_tree (5.2.0)
+      prettier_print (>= 1.2.0)
+    syntax_tree-disable_ternary (1.0.0)
+    test-prof (1.1.0)
     thor (1.2.1)
     tilt (2.0.11)
-    timeout (0.3.0)
+    timeout (0.3.1)
     tzinfo (2.0.5)
       concurrent-ruby (~> 1.0)
     uglifier (4.2.0)
@@ -462,14 +463,18 @@ GEM
     unf (0.1.4)
       unf_ext
     unf_ext (0.0.8.2)
-    unicode-display_width (2.3.0)
+    unicode-display_width (2.4.2)
     unicorn (6.1.0)
       kgio (~> 2.6)
       raindrops (~> 0.7)
     uniform_notifier (1.16.0)
-    uri (0.11.0)
+    uri (0.12.0)
     uri_template (0.7.0)
     version_gem (1.1.1)
+    web-push (3.0.0)
+      hkdf (~> 1.0)
+      jwt (~> 2.0)
+      openssl (~> 3.0)
     webdrivers (5.2.0)
       nokogiri (~> 1.6)
       rubyzip (>= 1.3.0)
@@ -478,28 +483,26 @@ GEM
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
-    webpush (1.1.0)
-      hkdf (~> 0.2)
-      jwt (~> 2.0)
+    webrick (1.7.0)
     websocket (1.2.9)
     xorcist (1.1.3)
     xpath (3.2.0)
       nokogiri (~> 1.8)
-    yaml-lint (0.0.10)
+    yaml-lint (0.1.2)
     zeitwerk (2.6.6)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  actionmailer (= 7.0.3.1)
-  actionpack (= 7.0.3.1)
-  actionview (= 7.0.3.1)
+  actionmailer (= 7.0.4.1)
+  actionpack (= 7.0.4.1)
+  actionview (= 7.0.4.1)
   actionview_precompiler
   active_model_serializers (~> 0.8.3)
-  activemodel (= 7.0.3.1)
-  activerecord (= 7.0.3.1)
-  activesupport (= 7.0.3.1)
+  activemodel (= 7.0.4.1)
+  activerecord (= 7.0.4.1)
+  activesupport (= 7.0.4.1)
   addressable
   annotate
   aws-sdk-s3
@@ -512,6 +515,7 @@ DEPENDENCIES
   capybara
   cbor
   certified
+  cgi (>= 0.3.6)
   colored2
   cose
   cppjieba_rb
@@ -583,7 +587,7 @@ DEPENDENCIES
   rack-protection
   rails_failover
   rails_multisite
-  railties (= 7.0.3.1)
+  railties (= 7.0.4.1)
   rake
   rb-fsevent
   rbtrace
@@ -609,20 +613,23 @@ DEPENDENCIES
   shoulda-matchers
   sidekiq
   simplecov
-  sprockets (= 3.7.2)
+  sprockets!
   sprockets-rails
   sshkey
   stackprof
+  syntax_tree
+  syntax_tree-disable_ternary
   test-prof
   thor
   uglifier
   unf
   unicorn
+  web-push
   webdrivers
   webmock
-  webpush
+  webrick
   xorcist
   yaml-lint
 
 BUNDLED WITH
-   2.3.25
+   2.4.6
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
index 3971d6ef9c0d4..180214df0cb90 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wdh4av6w6calnvvms6r8w3k3gaw0xy1lgsrjjf5d5gxq09nk7y7";
+      sha256 = "1v4ra6jx4bynzj3im6fjbyyy1h6582qg72r6i42myls84z75qsxk";
       type = "gem";
     };
-    version = "7.0.3.1";
+    version = "7.0.4.1";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f9y1qjnrwbwab3hf6nzlpr4v1fr1wq39l6dw3i1y3i6n8w04sb5";
+      sha256 = "1g823r92w9c1si2mxd82mibdva1fyw0ccin0dc2bpbszk6zfyxrh";
       type = "gem";
     };
-    version = "7.0.3.1";
+    version = "7.0.4.1";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1csycx6zlzrp6pw58s4nkm2qaz720cdhgxjkwjsd0qla75kvsyln";
+      sha256 = "1pfnbkq1hzzxzrnc0m1dd0l2cad6x041dfv3ndrkk5llcjarphx2";
       type = "gem";
     };
-    version = "7.0.3.1";
+    version = "7.0.4.1";
   };
   actionview_precompiler = {
     dependencies = ["actionview"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03hn978lx6lasac267mincy6wwcir5gyix7gwrbvvk7rg7bsbmbk";
+      sha256 = "0yrjvd2w3l6fd5s984hn885dwcxj078ggfbbr1cpynjnqxrvvm6f";
       type = "gem";
     };
-    version = "7.0.3.1";
+    version = "7.0.4.1";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s9gjs1a49n7rfhz84glw6w62swlrqdqjhs8421kaa72iwxavq16";
+      sha256 = "0y1v2jy4cwi6dkd9yr399kw53smaiyiqx7bsnljwmsz98g125sdw";
       type = "gem";
     };
-    version = "7.0.3.1";
+    version = "7.0.4.1";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lb838wvarms8bs8hvfkccdsp4cjc0y9wjsxvw71h4ir3mys4jqg";
+      sha256 = "1c3wvrym6ib2a6ljc4n572gsrr46hazp7f0zijm8jdc8zp3yx5vi";
       type = "gem";
     };
-    version = "7.0.3.1";
+    version = "7.0.4.1";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15lbq28v48i6q118p02m5zs9c63y1kv2h5krb3ss6q2vyaxhnfz7";
+      sha256 = "1j0ms94ng1hsxb37aar5j3n4mabjqvjkcl70adjrqib7grriyq7b";
       type = "gem";
     };
-    version = "7.0.3.1";
+    version = "7.0.4.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -262,10 +262,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f2phbpsiw8zwmmb1h6s82c4s2banzd04ch7vn6pdz91map233l1";
+      sha256 = "0hyz68j0z0j24vcrs43swmlykhzypayv34kzrsbxda5lbi83gynm";
       type = "gem";
     };
-    version = "7.0.4";
+    version = "7.0.7";
   };
   byebug = {
     groups = ["development" "test"];
@@ -312,15 +312,15 @@
     };
     version = "1.0.0";
   };
-  childprocess = {
-    groups = ["default" "test"];
+  cgi = {
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lvcp8bsd35g57f7wz4jigcw2sryzzwrpcgjwwf3chmjrjcww5in";
+      sha256 = "18zc1z8va9j1gcv131p605wmkvn1p5958mmvvy7v45ki8c0w7qn5";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "0.3.6";
   };
   chunky_png = {
     groups = ["default"];
@@ -361,10 +361,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
+      sha256 = "1qnsflsbjj38im8xq35g0vihlz96h09wjn2dad5g543l3vvrkrx5";
       type = "gem";
     };
-    version = "1.1.10";
+    version = "1.2.0";
   };
   connection_pool = {
     groups = ["default"];
@@ -424,10 +424,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1107j3frhmcd95wcsz0rypchynnzhnjiyyxxcl6dlmr2lfy08z4b";
+      sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj";
       type = "gem";
     };
-    version = "1.12.0";
+    version = "1.14.0";
+  };
+  date = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1";
+      type = "gem";
+    };
+    version = "3.3.3";
   };
   debug_inspector = {
     groups = ["default" "development"];
@@ -464,10 +474,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00vwzvxgby22h7jhwadqqf9ssbkp3ag2pl4g7q3zf1y8mlk7rk39";
+      sha256 = "01qkpbkxq83ip3iysfh2kjrg9sh2n2q91prhyxh3vq10lcfzv9l1";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.1.1";
   };
   discourse-fonts = {
     groups = ["default"];
@@ -541,20 +551,20 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11bz1v1cxabm8672gabrw542zyg51dizlcvdck6vvwzagxbjv9zx";
+      sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.12.0";
   };
   excon = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094kbi32i56p08348b95amg9dz5c9prn5jywhkcghsd3d6kll981";
+      sha256 = "17prxavwwskpv7dfl3npl0pgqiqg99rrmakqj1n4m5hl69jqz8y4";
       type = "gem";
     };
-    version = "0.94.0";
+    version = "0.97.2";
   };
   execjs = {
     groups = ["assets" "default"];
@@ -613,10 +623,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wyz9ab0mzi84gpf81fs19vrixglmmxi25k6n1mn9h141qmsp590";
+      sha256 = "1f20vjx0ywx0zdb4dfx4cpa7kd51z6vg7dw5hs35laa45dy9g9pj";
       type = "gem";
     };
-    version = "2.7.1";
+    version = "2.7.4";
   };
   faraday-net_http = {
     groups = ["default"];
@@ -725,10 +735,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n5yc058i8xhi1fwcp1w7mfi6xaxfmrifdb4r4hjfff33ldn8lqj";
+      sha256 = "040bxzfd7mz1p6z4bc9vk5yrf762hdllvf98hmk848fq28xc5dsk";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
   guess_html_encoding = {
     groups = ["default"];
@@ -775,20 +785,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
+      sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn";
       type = "gem";
     };
-    version = "2.0.3";
+    version = "2.1.0";
   };
   hkdf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04fixg0a51n4vy0j6c1hvisa2yl33m3jrrpxpb5sq6j511vjriil";
+      sha256 = "03g3yvfnlcjv2qw3b3yahg0x7zhwcd1bwxyj6gbn5jrc7k4kfrqg";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "1.0.0";
   };
   htmlentities = {
     groups = ["default"];
@@ -867,10 +877,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yk5d10yvspkc5jyvx9gc1a9pn1z8v4k2hvjk1l88zixwf3wf3cl";
+      sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
       type = "gem";
     };
-    version = "2.6.2";
+    version = "2.6.3";
   };
   json-schema = {
     dependencies = ["addressable"];
@@ -899,10 +909,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kcmnx6rgjyd7sznai9ccns2nh7p7wnw3mi8a7vf2wkm51azwddq";
+      sha256 = "1x8zp1a2pnngxh7631s0kn0r665qkwzfp16kifmp93r4zj6ci8v8";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.6.0";
   };
   kgio = {
     groups = ["default"];
@@ -936,10 +946,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0agybr37wpjv3xy4ipcmsvsibgdgphzrwbvcj4vfiykpmakwm01v";
+      sha256 = "13rgkfar8pp31z1aamxf5y7cfq88wv6rxxcwy7cmm177qq508ycn";
       type = "gem";
     };
-    version = "3.7.1";
+    version = "3.8.0";
   };
   literate_randomizer = {
     groups = ["default" "development"];
@@ -999,10 +1009,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fpyk1965py77al7iadkn5dibwgvybknkr7r8bii2dj73wvr29rh";
+      sha256 = "08qhzck271anrx9y6qa6mh8hwwdzsgwld8q0000rcd7yvvpnjr3c";
       type = "gem";
     };
-    version = "2.19.0";
+    version = "2.19.1";
   };
   lru_redux = {
     groups = ["default"];
@@ -1083,10 +1093,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "039ab2bbzxhfgy3w7wrxznqzjyikiqm6dnl36pk7cmkb1d30fxdk";
+      sha256 = "07acv6l89b1c0d3dfq84jb0vzbv489agcw60n7rnvk10y4x58bn5";
       type = "gem";
     };
-    version = "4.3.0";
+    version = "4.3.2";
   };
   method_source = {
     groups = ["default" "development" "test"];
@@ -1113,10 +1123,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy";
+      sha256 = "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.8.1";
   };
   mini_racer = {
     dependencies = ["libv8-node"];
@@ -1166,10 +1176,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0516ypqlx0mlcfn5xh7qppxqc3xndn1fnadxawa8wld5dkcimy30";
+      sha256 = "1kjy67qajw4rnkbjs5jyk7kc3lyhz5613fwj1i8f6ppdk4zampy0";
       type = "gem";
     };
-    version = "5.16.3";
+    version = "5.17.0";
   };
   mocha = {
     dependencies = ["ruby2_keywords"];
@@ -1232,21 +1242,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j4f0wgyps0qyms4p6fjqva63xy13wvy7bx5qg5gmzzwm3kqs1fr";
+      sha256 = "0y55ib1v2b8prqfi9ij7hca60b1j94s2bzr6vskwi3i5735472wq";
       type = "gem";
     };
-    version = "0.2.2";
+    version = "0.3.2";
   };
   net-imap = {
-    dependencies = ["net-protocol"];
+    dependencies = ["date" "net-protocol"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s1d01q6mljiiv6y2w6znmhmnm2b5lkw8d13wip9x23a820z8cjw";
+      sha256 = "1d996zf3g8xz244791b0qsl9vr7zg4lqnnmf9k2kshr9lki5jam8";
       type = "gem";
     };
-    version = "0.3.1";
+    version = "0.3.4";
   };
   net-pop = {
     dependencies = ["net-protocol"];
@@ -1265,10 +1275,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "051cc82dl41a66c9sxv4lx4slqk7sz1v4iy0hdk6gpjyjszf4hxd";
+      sha256 = "0dxckrlw4q1lcn3qg4mimmjazmg9bma5gllv72f8js3p36fb3b91";
       type = "gem";
     };
-    version = "0.1.3";
+    version = "0.2.1";
   };
   net-smtp = {
     dependencies = ["net-protocol"];
@@ -1297,10 +1307,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cam1455nmi3fzzpa9ixn2hsim10fbprmj62ajpd6d02mwdprwwn";
+      sha256 = "1fqld4wnamj7awdr1lwdifpylqdrrg5adm8xj2jl9sc5ms3nxjjm";
       type = "gem";
     };
-    version = "1.13.9";
+    version = "1.14.0";
   };
   oauth = {
     dependencies = ["oauth-tty" "snaky_hash" "version_gem"];
@@ -1427,10 +1437,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n2fhxa2alw3qxhg6qlxs0v6f8rsadhp6r6sv33i9fh793k2zpr3";
+      sha256 = "0mcg47zz4w902cq6c8cdj62npawgwq68sfh7n7aqy7vm3pgvls9h";
       type = "gem";
     };
-    version = "3.0.1";
+    version = "3.0.2";
   };
   openssl-signature_algorithm = {
     dependencies = ["openssl"];
@@ -1473,10 +1483,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xr8406nknbg2z561m3nkny51zkhpd02ng0fbjc9jaachp7ksz1y";
+      sha256 = "1p0y8cgdmfwyg7plwlsjf9afshm81wj9ah8nprmpfrv28adg3vn6";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.1.0";
   };
   parser = {
     dependencies = ["ast"];
@@ -1484,10 +1494,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17qfhjvnr9q2gp1gfdl6kndy2mb6qdwsls3vnjhb1h8ddimdm4s5";
+      sha256 = "0zk8mdyr0322r11d63rcp5jhz4lakxilhvyvdv0ql5dw4lb83623";
       type = "gem";
     };
-    version = "3.1.3.0";
+    version = "3.2.0.0";
   };
   pg = {
     groups = ["default"];
@@ -1499,6 +1509,16 @@
     };
     version = "1.4.5";
   };
+  prettier_print = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bbw4czjr2ch6m57rgjib5a35hx3g18975vwzm2iwq13pvdj9hzk";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
   progress = {
     groups = ["default"];
     platforms = [];
@@ -1515,10 +1535,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m445x8fwcjdyv2bc0glzss2nbm1ll51bq45knixapc7cl3dzdlr";
+      sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4";
       type = "gem";
     };
-    version = "0.14.1";
+    version = "0.14.2";
   };
   pry-byebug = {
     dependencies = ["byebug" "pry"];
@@ -1547,10 +1567,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sqw1zls6227bgq38sxb2hs8nkdz4hn1zivs27mjbniswfy4zvi6";
+      sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35";
       type = "gem";
     };
-    version = "5.0.0";
+    version = "5.0.1";
   };
   puma = {
     dependencies = ["nio4r"];
@@ -1558,10 +1578,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yabmxmqprb2x58awiasidsiwpplscmyar9dzwh5l8jgaw4i3wra";
+      sha256 = "15hj8r6wp23k187ajmp13kldk53ygm84q4caq7nlndrn8jlcsps0";
       type = "gem";
     };
-    version = "6.0.0";
+    version = "6.0.2";
   };
   r2 = {
     groups = ["default"];
@@ -1578,10 +1598,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
+      sha256 = "09jgz6r0f7v84a7jz9an85q8vvmp743dqcsdm3z9c8rqcqv6pljq";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.6.2";
   };
   rack = {
     groups = ["default" "development" "test"];
@@ -1592,10 +1612,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0axc6w0rs4yj0pksfll1hjgw1k6a5q0xi2lckh91knfb72v348pa";
+      sha256 = "0qvp6h2abmlsl4sqjsvac03cr2mxq6143gbx4kq52rpazp021qsb";
       type = "gem";
     };
-    version = "2.2.4";
+    version = "2.2.6.2";
   };
   rack-mini-profiler = {
     dependencies = ["rack"];
@@ -1614,10 +1634,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kljmw1lhzqjcwnwadr5m2khii0h2lsah447zb9vgirrv5jszg9h";
+      sha256 = "1a12m1mv8dc0g90fs1myvis8vsgr427k1arg1q4a9qlfw6fqyhis";
       type = "gem";
     };
-    version = "3.0.4";
+    version = "3.0.5";
   };
   rack-test = {
     dependencies = ["rack"];
@@ -1647,10 +1667,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mj0b7ay10a2fgwj70kjw7mlyrp7a5la8lx8zmwhy40bkansdfrf";
+      sha256 = "0ygav4xyq943qqyhjmi3mzirn180j565mc9h5j4css59x1sn0cmz";
       type = "gem";
     };
-    version = "1.4.3";
+    version = "1.5.0";
   };
   rails_failover = {
     dependencies = ["activerecord" "concurrent-ruby" "railties"];
@@ -1680,10 +1700,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lnrhx0sdixz5xm2vi482ngs4alh8l725kh96v6mfk0x0qlbdsaw";
+      sha256 = "0q8as8yq6ni256fc6bmcqmdch1bksbhsg5lmaqmi4bpi33f06g01";
       type = "gem";
     };
-    version = "7.0.3.1";
+    version = "7.0.4.1";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -1772,10 +1792,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xid9av3apfz5mszwqgl6v0n58g6038lsfdz0p53xb9ywpa5dcpc";
+      sha256 = "0i4a8hxxcxci3n8hhlm9a8wa7a9m58r6sjvh4749v7362i8cy010";
       type = "gem";
     };
-    version = "4.7.1";
+    version = "4.8.0";
   };
   redis-namespace = {
     dependencies = ["redis"];
@@ -1783,20 +1803,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04l61lpb3s2xkwj36l7b543lhciv19z514kxnmnbh5fg70grc8q9";
+      sha256 = "154dfnrjpbv7fhwhfrcnp6jn9qv5qaj3mvlvbgkl7qy5qsknw71c";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.10.0";
   };
   regexp_parser = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rj7xcg7bkfw6y0h4wg8y3s4nmks9qrzdxag4zaw41xjqfanlysf";
+      sha256 = "0zjg29w5zvar7by1kqck3zilbdzm5iz3jp5d1zn3970krskfazh2";
       type = "gem";
     };
-    version = "2.6.1";
+    version = "2.6.2";
   };
   request_store = {
     dependencies = ["rack"];
@@ -1834,10 +1854,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10fi6g1nn97cg2m2jmh9cwxcd90gd4hn7b71hdr3kh76c0rmpqp7";
+      sha256 = "10mmzc85y7andsich586ndykw678qn1ns2wpjxrg0sc0gr4w3pig";
       type = "gem";
     };
-    version = "6.2.1";
+    version = "6.2.2";
   };
   rqrcode = {
     dependencies = ["chunky_png" "rqrcode_core"];
@@ -1888,10 +1908,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qldsmjhqr4344zdlamzggr3y98wdk2c4hihkhwx8imk800gkl8v";
+      sha256 = "03ba3lfdsj9zl00v1yvwgcx87lbadf87livlfa5kgqssn9qdnll6";
       type = "gem";
     };
-    version = "3.12.0";
+    version = "3.12.2";
   };
   rspec-html-matchers = {
     dependencies = ["nokogiri" "rspec"];
@@ -1910,10 +1930,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yvwnb0x5d6d4ff3wlgahk0wcw72ic51gd2snr1xxc5ify41kabv";
+      sha256 = "0sq2cc9pm5gq411y7iwfvzbmgv3g91lyf7y7cqn1lr3yf1v122nc";
       type = "gem";
     };
-    version = "3.12.0";
+    version = "3.12.3";
   };
   rspec-rails = {
     dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
@@ -1964,10 +1984,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ggxkq68ddxmynr2lyrvzr8qbrdvc2irxlx9ihxmvdpkg1vimr3w";
+      sha256 = "0a2j57r6pvngqlzkmww031gs5isax3nsr9n7cbfpqnh34ljh2lk1";
       type = "gem";
     };
-    version = "1.39.0";
+    version = "1.44.0";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -1975,10 +1995,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qiq3q66w57im0ryrvnd1yq0g2s2safhywpv94441kvc1amayjzy";
+      sha256 = "1pdzabz95hv3z5sfbkfqa8bdybsfl13gv7rjb32v3ss8klq99lbd";
+      type = "gem";
+    };
+    version = "1.24.1";
+  };
+  rubocop-capybara = {
+    dependencies = ["rubocop"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h4qcjkz0365qlhi7y1ni94qj14k397cad566zygm20p15ypbp5v";
       type = "gem";
     };
-    version = "1.23.0";
+    version = "2.17.0";
   };
   rubocop-discourse = {
     dependencies = ["rubocop" "rubocop-rspec"];
@@ -1986,21 +2017,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1afsyw78pkv1ry5x5ww0krv75lg2lnv7b72sy9bbk6ni87fzsk1q";
+      sha256 = "0m6jqyh44vfibqcnxi0xz69xgrbf8vpps90h6al5qdbibm9dmajd";
       type = "gem";
     };
-    version = "3.0";
+    version = "3.0.3";
   };
   rubocop-rspec = {
-    dependencies = ["rubocop"];
+    dependencies = ["rubocop" "rubocop-capybara"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pj53m5zcrgyhb2zsjxqsav9sm9s8jh0mgk8c1qckaxy3dkwfxm4";
+      sha256 = "1vmmin3ymgq7bhv2hl4pd0zpwawy709p816axc4vi67w61b4bij1";
       type = "gem";
     };
-    version = "2.15.0";
+    version = "2.18.1";
   };
   ruby-prof = {
     groups = ["development"];
@@ -2011,10 +2042,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r3xalp91l07m0cwllcxjzg6nkviiqnxkcbgg5qnzsdji6rgy65m";
+      sha256 = "09n13bzm1p956z318xx1v7ikqdp2i971v7p3kwf3170axz368ccy";
       type = "gem";
     };
-    version = "1.4.3";
+    version = "1.4.5";
   };
   ruby-progressbar = {
     groups = ["default" "development" "test"];
@@ -2091,15 +2122,15 @@
     version = "2.1.2";
   };
   selenium-webdriver = {
-    dependencies = ["childprocess" "rexml" "rubyzip" "websocket"];
+    dependencies = ["rexml" "rubyzip" "websocket"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wj32kci0v4r7a5rdiq7yrf1763k2ap01dp09flr56hgnb75asx8";
+      sha256 = "1dkcyq2hfvf4wdj7q5cqqlka1dw6gz28dckxf4r17jmd53ymwg28";
       type = "gem";
     };
-    version = "4.6.1";
+    version = "4.8.0";
   };
   shoulda-matchers = {
     dependencies = ["activesupport"];
@@ -2107,10 +2138,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11hv1xk153sspi6iif7a2m64shshpjr37l44c8qnqlfpzv0dxlm2";
+      sha256 = "11igjgh16dl5pwqizdmclzlzpv7mbmnh8fx7m9b5kfsjhwxqdfpn";
       type = "gem";
     };
-    version = "5.2.0";
+    version = "5.3.0";
   };
   sidekiq = {
     dependencies = ["connection_pool" "rack" "redis"];
@@ -2129,10 +2160,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr";
+      sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py";
       type = "gem";
     };
-    version = "0.21.2";
+    version = "0.22.0";
   };
   simplecov-html = {
     groups = ["default" "test"];
@@ -2170,9 +2201,11 @@
     groups = ["default"];
     platforms = [];
     source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
-      type = "gem";
+      fetchSubmodules = false;
+      rev = "f4d3dae71ef29c44b75a49cfbf8032cce07b423a";
+      sha256 = "0ps1zb411nrwih0rdp6vrnx0n4n18jcwks2x06iw52gvswlv49ry";
+      type = "git";
+      url = "https://github.com/rails/sprockets";
     };
     version = "3.7.2";
   };
@@ -2206,20 +2239,41 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v7nk5i3fa63h6clfr5vbr0y91v3kxkaxh6gbdx583pn982avdlc";
+      sha256 = "02r3a3ny27ljj19bzmxscw2vlmk7sw1p4ppbl2i69g17khi0p4sw";
       type = "gem";
     };
-    version = "0.2.22";
+    version = "0.2.23";
+  };
+  syntax_tree = {
+    dependencies = ["prettier_print"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sqjjz3ja2563p4dgw46wfx0knpcp176gfvx8gfmkv8h166qnkqg";
+      type = "gem";
+    };
+    version = "5.2.0";
+  };
+  syntax_tree-disable_ternary = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gdi6zx4hqpxd81zas3dlw1jrdp98fvsqj4p7f42x5lhpfzz04zc";
+      type = "gem";
+    };
+    version = "1.0.0";
   };
   test-prof = {
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08f6lj1yh1ykwdaz5zkqpj5hn4vl4vid2x74k135cbggw3j9grdq";
+      sha256 = "15fcfjplc1zqahrha6rxgwnmjlyp41qkj4369fbxdfp0iaxb15pg";
       type = "gem";
     };
-    version = "1.0.11";
+    version = "1.1.0";
   };
   thor = {
     groups = ["default" "development" "test"];
@@ -2246,10 +2300,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00cy93b6803j3aw5nail4l0zdrj54i5n2dlk6j9z998swcjbv3b2";
+      sha256 = "0lnh0kr7f43m1cjzc2jvggfsl1rzsaj2rd3pn6vp7mcqliymzaza";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.3.1";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -2299,10 +2353,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ra70s8prfacpqwj5v2mqn1rbfz6xds3n9nsr9cwzs3z2c0wm5j7";
+      sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.2";
   };
   unicorn = {
     dependencies = ["kgio" "raindrops"];
@@ -2336,10 +2390,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w00162maixmqp7nwm8mmbvwnnpmjilwbim8yk2ypxy3x3ih6l69";
+      sha256 = "11c4n5rri8d45c47krpg76n98mqh36l0kp2qrkb4dxnkp4flay6y";
       type = "gem";
     };
-    version = "0.11.0";
+    version = "0.12.0";
   };
   uri_template = {
     groups = ["default"];
@@ -2361,6 +2415,17 @@
     };
     version = "1.1.1";
   };
+  web-push = {
+    dependencies = ["hkdf" "jwt" "openssl"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jsximg9v44rpclhjxp03fxk68jx675pghwxc66wj7rn9h9fc54i";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
   webdrivers = {
     dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
     groups = ["test"];
@@ -2383,16 +2448,15 @@
     };
     version = "3.18.1";
   };
-  webpush = {
-    dependencies = ["hkdf" "jwt"];
+  webrick = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z9ma580q80czw46gi1bvsr2iwxr63aiyr7i9gilav6hbhg3sxv3";
+      sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.7.0";
   };
   websocket = {
     groups = ["default" "test"];
@@ -2430,10 +2494,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m9n4sg7i0334yac7dcrhnhv5rzvrccgnh687n9x77ba3awk4yx1";
+      sha256 = "12jc68af2mwdkr9iqay2v6qgq47yk5g82sd171riibk62wbhp5p3";
       type = "gem";
     };
-    version = "0.0.10";
+    version = "0.1.2";
   };
   zeitwerk = {
     groups = ["default" "development" "test"];
diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py
index 2c5c8f4b44a51..dee31918eac9e 100755
--- a/pkgs/servers/web-apps/discourse/update.py
+++ b/pkgs/servers/web-apps/discourse/update.py
@@ -407,7 +407,9 @@ def update_plugins():
         gemfile = rubyenv_dir / "Gemfile"
         version_file_regex = re.compile(r'.*File\.expand_path\("\.\./(.*)", __FILE__\)')
         gemfile_text = ''
-        for line in repo.get_file('plugin.rb', rev).splitlines():
+        plugin_file = repo.get_file('plugin.rb', rev)
+        plugin_file = plugin_file.replace(",\n", ", ") # fix split lines
+        for line in plugin_file.splitlines():
             if 'gem ' in line:
                 line = ','.join(filter(lambda x: ":require_name" not in x, line.split(',')))
                 gemfile_text = gemfile_text + line + os.linesep
diff --git a/pkgs/shells/murex/default.nix b/pkgs/shells/murex/default.nix
index 1f8e77394221f..134f0a7ab1852 100644
--- a/pkgs/shells/murex/default.nix
+++ b/pkgs/shells/murex/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "murex";
-  version = "3.0.9310";
+  version = "3.1.3100";
 
   src = fetchFromGitHub {
     owner = "lmorg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UjEEP5gDS20PXgzeN1q/j9eydEF/EaB2+TyugHPbbqE=";
+    sha256 = "sha256-haYS3M3Cg+RBGbH5Af/9qcTkKroqx76r1Fb6Bf08lgY=";
   };
 
-  vendorHash = "sha256-vr8r0C01FlJOiAJjbkHxxFpC8hlQNPdoWGARZUl8YGs=";
+  vendorHash = "sha256-GKgwll9Cl+FMYwn07F7d33VXl4a9lcC7muzNvRzmR4k=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/X11/keynav/default.nix b/pkgs/tools/X11/keynav/default.nix
index 847d13315f8de..4a2a0e8b59044 100644
--- a/pkgs/tools/X11/keynav/default.nix
+++ b/pkgs/tools/X11/keynav/default.nix
@@ -14,7 +14,7 @@
 , xdotool
 }:
 
-let release = "20180821"; in
+let release = "20220825"; in
 stdenv.mkDerivation {
   pname = "keynav";
   version = "0.${release}.0";
@@ -22,8 +22,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "jordansissel";
     repo = "keynav";
-    rev = "78f9e076a5618aba43b030fbb9344c415c30c1e5";
-    sha256 = "0hmc14fj612z5h7gjgk95zyqab3p35c4a99snnblzxfg0p3x2f1d";
+    rev = "28a1ba9a045c62a9d2bc5c3474a66d96c8bf5c32";
+    hash = "sha256-y4ONq6fDBFhVGASvz28zlJRXfkCE/j8GDcbq/j8xvUY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
index b64980a1b546f..f42f0fe7a2520 100644
--- a/pkgs/tools/admin/awscli2/default.nix
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -25,14 +25,14 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.10.0"; # N.B: if you change this, check if overrides are still up-to-date
+  version = "2.10.1"; # N.B: if you change this, check if overrides are still up-to-date
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = version;
-    hash = "sha256-W05ZxpqamYqtFY/2mV2+XODCeuWRE9KhMdMkaAGAiTU=";
+    hash = "sha256-omg4WNX/DegN6xjHBBGwEijqtvd/b9VfcCC71KfXq98=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/admin/wander/default.nix b/pkgs/tools/admin/wander/default.nix
index 21bfc34ea82ec..b2df5a856cea6 100644
--- a/pkgs/tools/admin/wander/default.nix
+++ b/pkgs/tools/admin/wander/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wander";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "robinovitch61";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BcjK1GNj6URk6PmZIqG/t6vvy5ZXo3Z6wDqY1kbLSfw=";
+    sha256 = "sha256-g9QAdwAqy3OA+nYsSpVLUPv1gn6N12339fgmYFT6Iys=";
   };
 
-  vendorSha256 = "sha256-iTaZ5/0UrLJ3JE3FwQpvjKKrhqklG4n1WFTJhWfj/rI=";
+  vendorHash = "sha256-iTaZ5/0UrLJ3JE3FwQpvjKKrhqklG4n1WFTJhWfj/rI=";
 
   ldflags = [ "-s" "-w" "-X=github.com/robinovitch61/wander/cmd.Version=v${version}" ];
 
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index f17a805531c70..bb312656ed061 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -18,6 +18,7 @@ args @ {
   lzo,
   xz,
   zlib,
+  zstd,
   CoreFoundation,
 }:
 
@@ -53,6 +54,7 @@ stdenv.mkDerivation rec {
     lzo
     xz
     zlib
+    zstd
   ] ++ lib.optionals stdenv.isLinux [
     attr
     e2fsprogs
diff --git a/pkgs/tools/graphics/nip2/default.nix b/pkgs/tools/graphics/nip2/default.nix
index 4297db1c8bcd6..08ec885aed143 100644
--- a/pkgs/tools/graphics/nip2/default.nix
+++ b/pkgs/tools/graphics/nip2/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nip2";
-  version = "8.7.1";
+  version = "8.9.1";
 
   src = fetchurl {
     url = "https://github.com/libvips/nip2/releases/download/v${version}/nip2-${version}.tar.gz";
-    sha256 = "0l7n427njif53npqn02gfjjly8y3khbrkzqxp10j5vp9h97psgiw";
+    sha256 = "sha256-t14m6z+5lPqpiOjgdDbKwqSWXCyrCL7zlo6BeoZtds0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/evscript/default.nix b/pkgs/tools/inputmethods/evscript/default.nix
index 8afd4804e0ed2..e7b65f6c2147f 100644
--- a/pkgs/tools/inputmethods/evscript/default.nix
+++ b/pkgs/tools/inputmethods/evscript/default.nix
@@ -1,20 +1,21 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchFromGitea }:
 
 rustPlatform.buildRustPackage rec {
   pname = "evscript";
-  version = "unstable-2021-06-16";
+  version = "unstable-2022-11-20";
 
-  src = fetchFromGitHub {
-    owner = "unrelentingtech";
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "valpackett";
     repo = pname;
-    rev = "25912c0b6446f31b0f64485af3fa4aa8a93b33df";
-    sha256 = "sha256-apq3kHipEX6zOTNwqpIQR46JqmeE7EKVSOGrNNSkyu8=";
+    rev = "ba997c9723a91717c683f08e9957d0ecea3da6cd";
+    sha256 = "sha256-wuTPcBUuPK1D4VO8BXexx9AdiPM+X0TkJ3G7b7ofER8=";
   };
 
-  cargoSha256 = "sha256-1aR9/fhJQ+keRIxSG2cpY1HTalE6nM+MTb1Za3Tot28=";
+  cargoSha256 = "sha256-5jcb/MajXV9bp0T9Og8d5TEzTwQyiyPTPHeWh8Ewr8Q=";
 
   meta = with lib; {
-    homepage = "https://github.com/unrelentingtech/evscript";
+    homepage = "https://codeberg.org/valpackett/evscript";
     description = "A tiny sandboxed Dyon scripting environment for evdev input devices";
     license = licenses.unlicense;
     maintainers = with maintainers; [ milesbreslin ];
diff --git a/pkgs/tools/misc/czkawka/default.nix b/pkgs/tools/misc/czkawka/default.nix
index a81e078cdb350..4711a2f3dc39f 100644
--- a/pkgs/tools/misc/czkawka/default.nix
+++ b/pkgs/tools/misc/czkawka/default.nix
@@ -17,16 +17,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "czkawka";
-  version = "5.0.2";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "qarmin";
     repo = "czkawka";
     rev = version;
-    sha256 = "sha256-+Z4R6eRYNU0/wmrrTCLabY1zgxGbdSkgrfJd8rI5fZo=";
+    hash = "sha256-3nHsdCndZx7TIbRXhuGdQx8fh8Ff7gYBQyNXIkJ2zPc=";
   };
 
-  cargoSha256 = "sha256-hkqGOl6ew3GBMPem8bPRy0PYphHhXJVv6iQiH6lK0kE=";
+  cargoHash = "sha256-jBl7+ElK+SEe92qygTocd6R1sgdHf+RpTVJZymhf3mQ=";
 
   nativeBuildInputs = [
     pkg-config
@@ -59,6 +59,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
+    changelog = "https://github.com/qarmin/czkawka/raw/${version}/Changelog.md";
     description = "A simple, fast and easy to use app to remove unnecessary files from your computer";
     homepage = "https://github.com/qarmin/czkawka";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/misc/hyfetch/default.nix b/pkgs/tools/misc/hyfetch/default.nix
index 5cedfd0c70619..73df1d3a9796a 100644
--- a/pkgs/tools/misc/hyfetch/default.nix
+++ b/pkgs/tools/misc/hyfetch/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "hyfetch";
-  version = "1.4.6";
+  version = "1.4.7";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "hykilpikonna";
     repo = "hyfetch";
     rev = "refs/tags/${version}";
-    hash = "sha256-bbAJV4G5FAY0mSfrbIEs0eNFARZD74dUvHEBQuPc0rI=";
+    hash = "sha256-DfPU42X9WCvOXf/BvFkfIM4yWQnunBgjjSfncaL6HPA=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/vtm/default.nix b/pkgs/tools/misc/vtm/default.nix
index c3b5ae21f9f49..485006228b00a 100644
--- a/pkgs/tools/misc/vtm/default.nix
+++ b/pkgs/tools/misc/vtm/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vtm";
-  version = "0.9.8t";
+  version = "0.9.8v";
 
   src = fetchFromGitHub {
     owner = "netxs-group";
     repo = "vtm";
     rev = "v${version}";
-    sha256 = "sha256-Q6kwGmxDThsaGIzSPhxd/kKz0nORf6K9lUJMU9CdIXU=";
+    sha256 = "sha256-7ECYbw51MXhYsbQxnuS4QUr5HN0cIUqgMx7V7D/kYTg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/networking/clash-meta/default.nix b/pkgs/tools/networking/clash-meta/default.nix
new file mode 100644
index 0000000000000..e4f2e8399ff5b
--- /dev/null
+++ b/pkgs/tools/networking/clash-meta/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+}:
+buildGoModule rec {
+  pname = "clash-meta";
+  version = "1.14.2";
+
+  src = fetchFromGitHub {
+    owner = "MetaCubeX";
+    repo = "Clash.Meta";
+    rev = "v${version}";
+    sha256 = "sha256-sn+0TNXCK4af4zfkf09hLsFkuvkcyjhwh35kKo993FQ=";
+  };
+
+  vendorHash = "sha256-3j+5fF57eu7JJd3rnrWYwuWDivycUkUTTzptYaK3G/Q=";
+
+  # Do not build testing suit
+  excludedPackages = [ "./test" ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/Dreamacro/clash/constant.Version=${version}"
+  ];
+
+  tags = [
+    "with_gvisor"
+  ];
+
+  # network required
+  doCheck = false;
+
+  postInstall = ''
+    mv $out/bin/clash $out/bin/clash-meta
+  '';
+
+  meta = with lib; {
+    description = "Another Clash Kernel";
+    homepage = "https://github.com/MetaCubeX/Clash.Meta";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ oluceps ];
+  };
+}
diff --git a/pkgs/tools/networking/mozwire/default.nix b/pkgs/tools/networking/mozwire/default.nix
index f8d615b525ef3..d0e59e1fd8384 100644
--- a/pkgs/tools/networking/mozwire/default.nix
+++ b/pkgs/tools/networking/mozwire/default.nix
@@ -2,23 +2,27 @@
 , lib
 , stdenv
 , fetchFromGitHub
+, CoreServices
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "MozWire";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "NilsIrl";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vC8HmwJCHMKQUsYBwRmr88tmZxPKNvI6hxlcjG2AV3Q=";
+    hash = "sha256-2i8C1XgfI3MXnwXZzY6n8tIcw45G9h3vZqRlFaVoLH0=";
   };
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [
+    CoreServices
+    Security
+  ];
 
-  cargoHash = "sha256-9qXoMugmL6B9vC/yrMJxZ5p792ZJmrTzk/khRVTkHf4=";
+  cargoHash = "sha256-YXVH7kx5CiurTeXiphjDgcYxxovKtTF3Q9y/XOyVPUA=";
 
   meta = with lib; {
     description = "MozillaVPN configuration manager giving Linux, macOS users (among others), access to MozillaVPN";
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index b7e1e879b0609..13e41d0e6fd05 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -19,12 +19,12 @@ in
 
   openssh_hpn = common rec {
     pname = "openssh-with-hpn";
-    version = "9.1p1";
+    version = "9.2p1";
     extraDesc = " with high performance networking patches";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      hash = "sha256-GfhQCcfj4jeH8CNvuxV4OSq01L+fjsX+a8HNfov90og=";
+      hash = "sha256-P2bb8WVftF9Q4cVtpiqwEhjCKIB7ITONY068351xz0Y=";
     };
 
     extraPatches = [
@@ -32,17 +32,19 @@ in
 
       # HPN Patch from FreeBSD ports
       (fetchpatch {
-        name = "ssh-hpn.patch";
-        url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/ae66cffc19f357cbd51d5841c9b110a9ffd63e32/security/openssh-portable/files/extra-patch-hpn";
+        name = "ssh-hpn-wo-channels.patch";
+        url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/10491773d88012fe81d9c039cbbba647bde9ebc9/security/openssh-portable/files/extra-patch-hpn";
         stripLen = 1;
-        sha256 = "sha256-p3CmMqTgrqFZUo4ZuqaPLczAhjmPufkCvptVW5dI+MI=";
+        excludes = [ "channels.c" ];
+        sha256 = "sha256-kSj0oE7gNHfIciy0/ErhdfrbmfjQmd8hduyiRXFnVZA=";
       })
 
       (fetchpatch {
-        name = "CVE-2023-25136.patch";
-        url = "https://ftp.openbsd.org/pub/OpenBSD/patches/7.2/common/017_sshd.patch.sig";
-        stripLen = 1;
-        hash = "sha256-ol/YXXb2gJNBfvg9JKmIEdwGK8RaDfW53aKKT6HU++M=";
+        name = "ssh-hpn-channels.patch";
+        url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/10491773d88012fe81d9c039cbbba647bde9ebc9/security/openssh-portable/files/extra-patch-hpn";
+        extraPrefix = "";
+        includes = [ "channels.c" ];
+        sha256 = "sha256-pDLUbjv5XIyByEbiRAXC3WMUPKmn15af1stVmcvr7fE=";
       })
     ];
 
diff --git a/pkgs/tools/networking/ppp/default.nix b/pkgs/tools/networking/ppp/default.nix
index 4238391fdaea0..09e7578a7187e 100644
--- a/pkgs/tools/networking/ppp/default.nix
+++ b/pkgs/tools/networking/ppp/default.nix
@@ -7,6 +7,7 @@
 , openssl
 , bash
 , nixosTests
+, writeTextDir
 }:
 
 stdenv.mkDerivation rec {
@@ -38,6 +39,17 @@ stdenv.mkDerivation rec {
     bash
   ];
 
+  # This can be removed when ppp 2.5.0 is released:
+  # https://github.com/ppp-project/ppp/commit/509f04959ad891d7f981f035ed461d51bd1f74b0
+  propagatedBuildInputs = lib.optional stdenv.hostPlatform.isMusl (writeTextDir "include/net/ppp_defs.h" ''
+    #ifndef _NET_PPP_DEFS_H
+    #define _NET_PPP_DEFS_H 1
+
+    #include <linux/ppp_defs.h>
+
+    #endif /* net/ppp_defs.h */
+  '');
+
   postPatch = ''
     for file in $(find -name Makefile.linux); do
       substituteInPlace "$file" --replace '-m 4550' '-m 550'
diff --git a/pkgs/tools/networking/q/default.nix b/pkgs/tools/networking/q/default.nix
index 9ad1d2bd77b0b..e67a17cea8633 100644
--- a/pkgs/tools/networking/q/default.nix
+++ b/pkgs/tools/networking/q/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "q";
-  version = "0.8.4";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "natesales";
     repo = "q";
     rev = "v${version}";
-    sha256 = "sha256-M2TgDha+F4hY7f9sabzZEdsxdp8rdXDZB4ktmpDF5D8=";
+    sha256 = "sha256-WPVHMAau3+0jcIrRhRL5dy6h+J13LKj5GwQMJi7hGvo=";
   };
 
-  vendorHash = "sha256-216NwRlU7mmr+ebiBwq9DVtFb2SpPgkGUrVZMUAY9rI=";
+  vendorHash = "sha256-0Yd8y1SkxmfIFZuSheMGQnurlFv3sxkSDgGrQJLR3iU=";
 
   doCheck = false; # tries to resolve DNS
 
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index f478173123fa0..0330e1cb7b5d9 100644
--- a/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security CoreServices ];
 
-  cargoBuildFeatures = [
+  buildFeatures = [
     "trust-dns"
     "local-http-native-tls"
     "local-tunnel"
diff --git a/pkgs/tools/networking/traceroute/default.nix b/pkgs/tools/networking/traceroute/default.nix
index e3eac708aed06..9d092aac560ca 100644
--- a/pkgs/tools/networking/traceroute/default.nix
+++ b/pkgs/tools/networking/traceroute/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "traceroute";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/traceroute/${pname}-${version}.tar.gz";
-    sha256 = "sha256-j8jVBG6FXXWIYHuzGfW4LjuhPpHV1GNoYyYuY4a7r3Y=";
+    sha256 = "sha256-UHwmjyl3tOIYznPn6+1Fug2XCoykmV3Zy7H/6OmbWx8=";
   };
 
   makeFlags = [
diff --git a/pkgs/tools/networking/xrootd/default.nix b/pkgs/tools/networking/xrootd/default.nix
index 586e726b3d4a5..5f9a2ec98f6bc 100644
--- a/pkgs/tools/networking/xrootd/default.nix
+++ b/pkgs/tools/networking/xrootd/default.nix
@@ -24,14 +24,14 @@
 
 stdenv.mkDerivation rec {
   pname = "xrootd";
-  version = "5.5.2";
+  version = "5.5.3";
 
   src = fetchFromGitHub {
     owner = "xrootd";
     repo = "xrootd";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-2zVCOcjL8TUbo38Dx7W8431ziouzuAdCfogsIMSOOmQ=";
+    hash = "sha256-61+8M6ubKX/GnsPLTql6XzGw/PTljpiXoDa1YoECya4=";
   };
 
   outputs = [ "bin" "out" "dev" "man" ];
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 8c81e39b14264..f3beaf20dcce7 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -15,13 +15,13 @@
 
 let
   pname = "zerotierone";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchFromGitHub {
     owner = "zerotier";
     repo = "ZeroTierOne";
     rev = version;
-    sha256 = "sha256-p900bw+BGzyMwH91W9NRfYS1ZUW74YaALwr1Gv9BlvQ=";
+    sha256 = "sha256-MhkGcmt1YPvlePF54XsLVFUX+P979uUqhtJjudRx69g=";
   };
 in stdenv.mkDerivation {
   inherit pname version src;
diff --git a/pkgs/tools/security/commix/default.nix b/pkgs/tools/security/commix/default.nix
index 3b2ba60291dce..4bbfd66e6237c 100644
--- a/pkgs/tools/security/commix/default.nix
+++ b/pkgs/tools/security/commix/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commix";
-  version = "3.6";
+  version = "3.7";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "commixproject";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-QdhJp7oUqOY8Z36haIrHgP4hVGaFXlOxNVg1ams7uhg=";
+    hash = "sha256-pqfb0CkWTPq6B8T7nn25lWuEQFRRziCDWYm5a1S3mIY=";
   };
 
   postInstall = ''
diff --git a/pkgs/tools/security/fulcio/default.nix b/pkgs/tools/security/fulcio/default.nix
index 91ec0a5c2503b..9640b0d1fc982 100644
--- a/pkgs/tools/security/fulcio/default.nix
+++ b/pkgs/tools/security/fulcio/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fulcio";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-djnDHRD/vHfsem03896qcEb6uzgW3OCMBLqMDHca9vY=";
+    sha256 = "sha256-b2rn4et7Ze8XRc1Oa/DCfpva/rihtBLapbGlpYGvOjc=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -20,7 +20,7 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-X+M/E1kWhgS408PHwMg5jnDn2ad1NW6xvlLucuOLAeg=";
+  vendorHash = "sha256-8iNXBSEaKApu+qjGIYOLU6z/sxIVQhltgBRG9eN4RXw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/openpgp-card-tools/default.nix b/pkgs/tools/security/openpgp-card-tools/default.nix
index c3c512081c620..3b0b5ee14d1c2 100644
--- a/pkgs/tools/security/openpgp-card-tools/default.nix
+++ b/pkgs/tools/security/openpgp-card-tools/default.nix
@@ -12,14 +12,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "openpgp-card-tools";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-Mvnj8AEhREP+nGrioC9IHYX3k6sKGKzOh00V8nslyhw=";
+    sha256 = "sha256-Wgj6YZSQj8+BcyPboUTadUOg6Gq6VxV4GRW8TWbnRfc=";
   };
 
-  cargoHash = "sha256-0KRq8GsrQaLJ6fopZpdzgxIWHIse9QWDo24IQj1eAhc=";
+  cargoHash = "sha256-u6xzKDCtv5FzaYgn5wab6ZPICJ/DaqUxiRS80xaEa1A=";
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
   buildInputs = [ pcsclite nettle ] ++ lib.optionals stdenv.isDarwin [ PCSC ];
diff --git a/pkgs/tools/security/rbw/default.nix b/pkgs/tools/security/rbw/default.nix
index a5eb83f1e0b5c..04b3f1aecbd06 100644
--- a/pkgs/tools/security/rbw/default.nix
+++ b/pkgs/tools/security/rbw/default.nix
@@ -26,61 +26,47 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rbw";
-  version = "1.4.3";
+  version = "1.5.0";
 
   src = fetchCrate {
     inherit version;
     crateName = pname;
-    sha256 = "sha256-teeGKQNf+nuUcF9BcdiTV/ycENTbcGvPZZ34FdOO31k=";
+    sha256 = "sha256-3kSBE2D+kC9CTbWlCKPro9fLu2tnd6LFTV4EshHMm3Y=";
   };
 
-  cargoSha256 = "sha256-Soquc3OuGlDsGSwNCvYOWQeraYpkzX1oJwmM03Rc3Jg=";
+  cargoSha256 = "sha256-DL3qaUZxWnzsJOxi8+GtXBbZC7vfsridJWqhOTdcsgM=";
 
   nativeBuildInputs = [
-    pkg-config
-    makeWrapper
     installShellFiles
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  postPatch = ''
-    patchShebangs bin/git-credential-rbw
-    substituteInPlace bin/git-credential-rbw \
-        --replace rbw $out/bin/rbw
-  '' + lib.optionalString withFzf ''
-    patchShebangs bin/rbw-fzf
-    substituteInPlace bin/rbw-fzf \
-        --replace fzf ${fzf}/bin/fzf \
-        --replace perl ${perl}/bin/perl
-  '' + lib.optionalString withRofi ''
-    patchShebangs bin/rbw-rofi
-    substituteInPlace bin/rbw-rofi \
-        --replace rofi ${rofi}/bin/rofi \
-        --replace xclip ${xclip}/bin/xclip
-  '' + lib.optionalString withRofi ''
-    patchShebangs bin/pass-import
-    substituteInPlace bin/pass-import \
-        --replace pass ${pass}/bin/pass
-  '';
-
-  preConfigure = ''
+  preConfigure = lib.optionalString stdenv.isLinux ''
     export OPENSSL_INCLUDE_DIR="${openssl.dev}/include"
     export OPENSSL_LIB_DIR="${lib.getLib openssl}/lib"
   '';
 
   postInstall = ''
-    for shell in bash zsh fish; do
-      $out/bin/rbw gen-completions $shell > rbw.$shell
-      installShellCompletion rbw.$shell
-    done
-    cp bin/git-credential-rbw $out/bin
+    install -Dm755 -t $out/bin bin/git-credential-rbw
+    installShellCompletion --cmd rbw \
+      --bash <($out/bin/rbw gen-completions bash) \
+      --fish <($out/bin/rbw gen-completions fish) \
+      --zsh <($out/bin/rbw gen-completions zsh)
   '' + lib.optionalString withFzf ''
-    cp bin/rbw-fzf $out/bin
+    install -Dm755 -t $out/bin bin/rbw-fzf
+    substituteInPlace $out/bin/rbw-fzf \
+      --replace fzf ${fzf}/bin/fzf \
+      --replace perl ${perl}/bin/perl
   '' + lib.optionalString withRofi ''
-    cp bin/rbw-rofi $out/bin
+    install -Dm755 -t $out/bin bin/rbw-rofi
+    substituteInPlace $out/bin/rbw-rofi \
+      --replace rofi ${rofi}/bin/rofi \
+      --replace xclip ${xclip}/bin/xclip
   '' + lib.optionalString withPass ''
-    cp bin/pass-import $out/bin
+    install -Dm755 -t $out/bin bin/pass-import
+    substituteInPlace $out/bin/pass-import \
+      --replace pass ${pass}/bin/pass
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/system/erdtree/default.nix b/pkgs/tools/system/erdtree/default.nix
index ddca2f106b49c..7cd1deb3ced69 100644
--- a/pkgs/tools/system/erdtree/default.nix
+++ b/pkgs/tools/system/erdtree/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/solidiquis/erdtree";
     license = licenses.mit;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "et";
   };
 }
diff --git a/pkgs/tools/system/rocm-smi/default.nix b/pkgs/tools/system/rocm-smi/default.nix
index d7e23a9acb017..09a4a3e4ef76e 100644
--- a/pkgs/tools/system/rocm-smi/default.nix
+++ b/pkgs/tools/system/rocm-smi/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rocm-smi";
-  version = "5.4.2";
+  version = "5.4.3";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
diff --git a/pkgs/tools/system/zram-generator/default.nix b/pkgs/tools/system/zram-generator/default.nix
index 679308b049fa6..81bf4082d5c14 100644
--- a/pkgs/tools/system/zram-generator/default.nix
+++ b/pkgs/tools/system/zram-generator/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, rust
 , rustPlatform
 , pkg-config
 , ronn
@@ -9,7 +10,7 @@
 , nixosTests
 }:
 
-stdenv.mkDerivation rec {
+rustPlatform.buildRustPackage rec {
   pname = "zram-generator";
   version = "1.1.2";
 
@@ -20,23 +21,20 @@ stdenv.mkDerivation rec {
     hash = "sha256-n+ZOWU+sPq9DcHgzQWTxxfMmiz239qdetXypqdy33cM=";
   };
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
-
   # RFE: Include Cargo.lock in sources
   # https://github.com/systemd/zram-generator/issues/65
+  cargoLock.lockFile = ./Cargo.lock;
+
   postPatch = ''
     cp ${./Cargo.lock} Cargo.lock
+    substituteInPlace Makefile \
+      --replace 'target/$(BUILDTYPE)' 'target/${rust.toRustTargetSpec stdenv.hostPlatform}/$(BUILDTYPE)'
     substituteInPlace src/generator.rs \
       --replace 'Command::new("systemd-detect-virt")' 'Command::new("${systemd}/bin/systemd-detect-virt")' \
       --replace 'Command::new("modprobe")' 'Command::new("${kmod}/bin/modprobe")'
   '';
 
-  nativeBuildInputs = with rustPlatform; [
-    cargoSetupHook
-    rust.cargo
-    rust.rustc
+  nativeBuildInputs = [
     pkg-config
     ronn
   ];
@@ -45,7 +43,16 @@ stdenv.mkDerivation rec {
     systemd
   ];
 
-  makeFlags = [
+  preBuild = ''
+    # embedded into the binary at build time
+    # https://github.com/systemd/zram-generator/blob/v1.1.2/Makefile#LL11-L11C56
+    export SYSTEMD_UTIL_DIR=$($PKG_CONFIG --variable=systemdutildir systemd)
+  '';
+
+  dontCargoInstall = true;
+
+  installFlags = [
+    "-o program" # already built by cargoBuildHook
     "PREFIX=$(out)"
     "SYSTEMD_SYSTEM_UNIT_DIR=$(out)/lib/systemd/system"
     "SYSTEMD_SYSTEM_GENERATOR_DIR=$(out)/lib/systemd/system-generators"
diff --git a/pkgs/tools/virtualization/ovftool/default.nix b/pkgs/tools/virtualization/ovftool/default.nix
index 9db01094bb301..825cf8b90c205 100644
--- a/pkgs/tools/virtualization/ovftool/default.nix
+++ b/pkgs/tools/virtualization/ovftool/default.nix
@@ -1,51 +1,12 @@
-{ lib, stdenv, system ? builtins.currentSystem, ovftoolBundles ? {}
-, requireFile, buildFHSUserEnv, autoPatchelfHook, makeWrapper, unzip
-, glibc, c-ares, libressl, curl, expat, icu60, xercesc, zlib
+{ lib, stdenv, fetchurl, system ? builtins.currentSystem, ovftoolBundles ? {}
+, requireFile, autoPatchelfHook, makeWrapper, unzip
+, glibc, c-ares, libxcrypt, expat, icu60, xercesc, zlib
 }:
 
 let
-  version = "4.4.1-16812187";
-
-  # FHS environment required to unpack ovftool on x86.
-  ovftoolX86Unpacker = buildFHSUserEnv rec {
-    name = "ovftool-unpacker";
-    targetPkgs = pkgs: [ pkgs.bash ];
-    multiPkgs = targetPkgs;
-    runScript = "bash";
-  };
-
-  # unpackPhase for i686 and x86_64 ovftool self-extracting bundles.
-  ovftoolX86UnpackPhase = ''
-    runHook preUnpack
-    # This is a self-extracting shell script and needs a FHS environment to run.
-    # In reality, it could be doing anything, which is bad for reproducibility.
-    # Our postUnpack uses nix-hash to verify the hash to prevent problems.
-    #
-    # Note that the Arch PKGBUILD at
-    # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=vmware-ovftool
-    # appears to use xvfb-run - this hasn't been proven necessary so far.
-    #
-    cp ${ovftoolSource} ./ovftool.bundle
-    chmod +x ./ovftool.bundle
-    ${ovftoolX86Unpacker}/bin/ovftool-unpacker ./ovftool.bundle -x ovftool
-    rm ovftool.bundle
-    extracted=ovftool/vmware-ovftool/
-    if [ -d "$extracted" ]; then
-      # Move the directory we care about to ovftool/
-      mv "$extracted" .
-      rm -r ovftool
-      mv "$(basename -- "$extracted")" ovftool
-      echo "ovftool extracted successfully" >&2
-    else
-      echo "Could not find $extracted - are you sure this is ovftool?" >&2
-      rm -r ovftool
-      exit 1
-    fi
-    runHook postUnpack
-  '';
+  version = "4.5.0-20459872";
 
-  # unpackPhase for aarch64 .zip.
-  ovftoolAarch64UnpackPhase = ''
+  ovftoolZipUnpackPhase = ''
     runHook preUnpack
     unzip ${ovftoolSource}
     extracted=ovftool/
@@ -58,29 +19,20 @@ let
     runHook postUnpack
   '';
 
-  # When the version is bumped, postUnpackHash will change
-  # for all these supported systems. Update it from the printed error on build.
-  #
-  # This is just a sanity check, since ovftool is a self-extracting bundle
-  # that could be doing absolutely anything on 2/3 of the supported platforms.
-  ovftoolSystems = {
-    "i686-linux" = {
-      filename = "VMware-ovftool-${version}-lin.i386.bundle";
-      sha256 = "0gx78g3s77mmpir7jbiskna10i6262ihal1ywivlb6xxxxbhqzwj";
-      unpackPhase = ovftoolX86UnpackPhase;
-      postUnpackHash = "1k8rp8ywhs0cl9aad37v1p0493bdvkxrsvwg5pgv2bhvjs4hqk7n";
-    };
-    "x86_64-linux" = {
-      filename = "VMware-ovftool-${version}-lin.x86_64.bundle";
-      sha256 = "1kp2bp4d9i8y7q25yqff2bn62mh292lws7b66lyn8ka9b35kvnzc";
-      unpackPhase = ovftoolX86UnpackPhase;
-      postUnpackHash = "0zvyakwi4iishqxxisihgh91bmdsfvj5vchm2c192hia03a143py";
+  ovftoolSystems = let
+    baseUrl = "https://vdc-download.vmware.com/vmwb-repository/dcr-public";
+  in {
+    "i686-linux" = rec {
+      filename = "VMware-ovftool-${version}-lin.i386.zip";
+      url = "${baseUrl}/b70b2ad5-861a-4c11-b081-e541586bf934/57109c63-6b80-4ced-95f2-1b7255200a36/${filename}";
+      sha256 = "11zs5dm4gmssm94s501p66l4s8v9p7prrd87cfa903mwmyp0ihnx";
+      unpackPhase = ovftoolZipUnpackPhase;
     };
-    "aarch64-linux" = {
-      filename = "VMware-ovftool-${version}-lin.aarch64.zip";
-      sha256 = "0all8bwv5p5adnzqvrly6nzmxmfpywvlbfr0finr4n100yv0v1xy";
-      unpackPhase = ovftoolAarch64UnpackPhase;
-      postUnpackHash = "16vyyzrmryi8b7mrd6nxnhywvvj2pw0ban4qfiqfahw763fn6971";
+    "x86_64-linux" = rec {
+      filename = "VMware-ovftool-${version}-lin.x86_64.zip";
+      url = "${baseUrl}/f87355ff-f7a9-4532-b312-0be218a92eac/b2916af6-9f4f-4112-adac-49d1d6c81f63/${filename}";
+      sha256 = "1fkm18yfkkm92m7ccl6b4nxy5lagwwldq56b567091a5sgad38zw";
+      unpackPhase = ovftoolZipUnpackPhase;
     };
   };
 
@@ -91,9 +43,9 @@ let
   ovftoolSource = if builtins.hasAttr system ovftoolBundles then
                     ovftoolBundles.${system}
                   else
-                    requireFile {
+                    fetchurl {
                       name = ovftoolSystem.filename;
-                      url = "https://my.vmware.com/group/vmware/downloads/get-download?downloadGroup=OVFTOOL441";
+                      url = ovftoolSystem.url;
                       sha256 = ovftoolSystem.sha256;
                     };
 in
@@ -103,11 +55,13 @@ stdenv.mkDerivation rec {
 
   src = ovftoolSource;
 
+  # Maintainers: try downloading a NixOS OVA and run the following to test:
+  # `./result/bin/ovftool https://channels.nixos.org/nixos-unstable/latest-nixos-x86_64-linux.ova nixos.ovf`
+  # Some dependencies are not loaded until operations actually occur!
   buildInputs = [
     glibc
-    libressl
+    libxcrypt
     c-ares
-    (curl.override { openssl = libressl; })
     expat
     icu60
     xercesc
@@ -116,12 +70,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper unzip ];
 
+  preferLocalBuild = true;
+
   sourceRoot = ".";
 
   unpackPhase = ovftoolSystem.unpackPhase;
 
-  postUnpackHash = ovftoolSystem.postUnpackHash;
-
   # Expects a directory named 'ovftool' containing the ovftool install.
   # Based on https://aur.archlinux.org/packages/vmware-ovftool/
   # with the addition of a libexec directory and a Nix-style binary wrapper.
@@ -133,22 +87,20 @@ stdenv.mkDerivation rec {
     fi
     # libraries
     install -m 755 -d "$out/lib/${pname}"
-    # These all appear to be VMWare proprietary except for libgoogleurl.
+    # These all appear to be VMWare proprietary except for libgoogleurl and libcurl.
     # The rest of the libraries that the installer extracts are omitted here,
-    # and provided in buildInputs.
+    # and provided in buildInputs. Since libcurl depends on VMWare's OpenSSL,
+    # we have to use both here too.
     #
     # FIXME: can we replace libgoogleurl? Possibly from Chromium?
+    # FIXME: tell VMware to use a modern version of OpenSSL.
     #
     install -m 644 -t "$out/lib/${pname}" \
       libgoogleurl.so.59 \
       libssoclient.so \
-      libvim-types.so libvmacore.so libvmomi.so
-    # ovftool specifically wants 1.0.2 but our libcrypto is named 1.0.0
-    ln -s "${lib.getLib libressl}/lib/libcrypto.so" \
-      "$out/lib/${pname}/libcrypto.so.1.0.2"
-    ln -s "${lib.getLib libressl}/lib/libssl.so" \
-      "$out/lib/${pname}/libssl.so.1.0.2"
-    # libexec
+      libvim-types.so libvmacore.so libvmomi.so \
+      libcurl.so.4 libcrypto.so.1.0.2 libssl.so.1.0.2
+    # libexec binaries
     install -m 755 -d "$out/libexec/${pname}"
     install -m 755 -t "$out/libexec/${pname}" ovftool.bin
     install -m 644 -t "$out/libexec/${pname}" icudt44l.dat
@@ -177,6 +129,20 @@ stdenv.mkDerivation rec {
     addAutoPatchelfSearchPath "$out/lib"
   '';
 
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    # This is a NixOS 22.11 image (doesn't actually matter) with a 1 MiB root disk that's all zero.
+    # Make sure that it converts properly.
+    mkdir -p ovftool-check
+    cd ovftool-check
+
+    $out/bin/ovftool ${./installCheckPhase.ova} nixos.ovf
+    if [ ! -f nixos.ovf ] || [ ! -f nixos.mf ] || [ ! -f nixos-disk1.vmdk ]; then
+      exit 1
+    fi
+  '';
+
   meta = with lib; {
     description = "VMWare tools for working with OVF, OVA, and VMX images";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/tools/virtualization/ovftool/installCheckPhase.ova b/pkgs/tools/virtualization/ovftool/installCheckPhase.ova
new file mode 100644
index 0000000000000..3bb164029925f
--- /dev/null
+++ b/pkgs/tools/virtualization/ovftool/installCheckPhase.ova
Binary files differdiff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 77054c5b3064f..d2b58a7f6b05a 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -814,6 +814,7 @@ mapAliases ({
   libressl_3_2 = throw "'libressl_3_2' has reached end-of-life "; # Added 2022-03-19
   librevisa = throw "librevisa has been removed because its website and source have disappeared upstream"; # Added 2022-09-23
   librsync_0_9 = throw "librsync_0_9 has been removed"; # Added 2021-07-24
+  librtlsdr = rtl-sdr; # Added 2023-02-18
   librewolf-wayland = librewolf; # Added 2022-11-15
   libseat = seatd; # Added 2021-06-24
   libsForQt512 = throw "Qt 5 versions prior to 5.15 are no longer supported upstream and have been removed";  # Added 2022-11-24
@@ -859,6 +860,7 @@ mapAliases ({
   linuxPackages_5_4 = linuxKernel.packages.linux_5_4;
   linuxPackages_6_0 = linuxKernel.packages.linux_6_0;
   linuxPackages_6_1 = linuxKernel.packages.linux_6_1;
+  linuxPackages_6_2 = linuxKernel.packages.linux_6_2;
   linuxPackages_hardkernel_4_14 = linuxKernel.packages.hardkernel_4_14;
   linuxPackages_rpi0 = linuxKernel.packages.linux_rpi1;
   linuxPackages_rpi02w = linuxKernel.packages.linux_rpi3;
@@ -879,6 +881,7 @@ mapAliases ({
   linux_5_4 = linuxKernel.kernels.linux_5_4;
   linux_6_0 = linuxKernel.kernels.linux_6_0;
   linux_6_1 = linuxKernel.kernels.linux_6_1;
+  linux_6_2 = linuxKernel.kernels.linux_6_2;
   linuxPackages_mptcp = throw "'linuxPackages_mptcp' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
   linux_mptcp = throw "'linux_mptcp' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
   linux_mptcp_95 = throw "'linux_mptcp_95' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
@@ -1372,6 +1375,7 @@ mapAliases ({
   # The alias for linuxPackages*.rtlwifi_new is defined in ./all-packages.nix,
   # due to it being inside the linuxPackagesFor function.
   rtlwifi_new-firmware = rtw88-firmware; # Added 2021-03-14
+  rtw89-firmware = throw "rtw89-firmware has been removed because linux-firmware now contains it."; # Added 2023-02-19
 
   ### S ###
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d595b9d8fc338..db484dc52a90a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -226,6 +226,8 @@ with pkgs;
 
   quickemu = callPackage ../development/quickemu { };
 
+  quickgui = callPackage ../applications/virtualization/quickgui { };
+
   adcli = callPackage ../os-specific/linux/adcli { };
 
   aether = callPackage ../applications/networking/aether { };
@@ -3095,7 +3097,7 @@ with pkgs;
 
   cuelsp = callPackage ../development/tools/cuelsp {};
 
-  cyclondds = callPackage ../development/libraries/cyclondds { };
+  cyclonedds = callPackage ../development/libraries/cyclonedds { };
 
   cyclone-scheme = callPackage ../development/interpreters/cyclone { };
 
@@ -4016,6 +4018,8 @@ with pkgs;
 
   clash-geoip = callPackage ../data/misc/clash-geoip { };
 
+  clash-meta = callPackage ../tools/networking/clash-meta { };
+
   clevercsv = with python3Packages; toPythonApplication clevercsv;
 
   clevis = callPackage ../tools/security/clevis {
@@ -6816,7 +6820,7 @@ with pkgs;
   mozillavpn = qt6Packages.callPackage ../tools/networking/mozillavpn { };
 
   mozwire = callPackage ../tools/networking/mozwire {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
 
   pax = callPackage ../tools/archivers/pax {
@@ -10636,9 +10640,7 @@ with pkgs;
 
   otpw = callPackage ../os-specific/linux/otpw { };
 
-  ovftool = callPackage ../tools/virtualization/ovftool {
-    libressl = libressl_3_4;
-  };
+  ovftool = callPackage ../tools/virtualization/ovftool { };
 
   overcommit = callPackage ../development/tools/overcommit { };
 
@@ -16455,7 +16457,7 @@ with pkgs;
 
   love_0_10 = callPackage ../development/interpreters/love/0.10.nix { };
   love_11 = callPackage ../development/interpreters/love/11.nix { };
-  love = love_0_10;
+  love = love_11;
 
   wabt = callPackage ../development/tools/wabt { };
 
@@ -26599,8 +26601,6 @@ with pkgs;
 
   rtw88-firmware = callPackage ../os-specific/linux/firmware/rtw88-firmware { };
 
-  rtw89-firmware = callPackage ../os-specific/linux/firmware/rtw89-firmware { };
-
   rvvm = callPackage ../applications/virtualization/rvvm { };
 
   s3ql = callPackage ../tools/backup/s3ql { };
@@ -32768,9 +32768,7 @@ with pkgs;
 
   rtl-ais = callPackage ../applications/radio/rtl-ais { };
 
-  # librtlsdr is a friendly fork with additional features
   rtl-sdr = callPackage ../applications/radio/rtl-sdr { };
-  librtlsdr = callPackage ../development/libraries/librtlsdr { };
 
   rubyripper = callPackage ../applications/audio/rubyripper {};
 
@@ -33619,6 +33617,7 @@ with pkgs;
 
   unison = callPackage ../applications/networking/sync/unison {
     enableX11 = config.unison.enableX11 or true;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
   unpaper = callPackage ../tools/graphics/unpaper { };
@@ -35448,7 +35447,7 @@ with pkgs;
     python = python3;
   };
 
-  mrrescue = callPackage ../games/mrrescue { };
+  mrrescue = callPackage ../games/mrrescue { love = love_0_10; };
 
   mudlet = libsForQt5.callPackage ../games/mudlet {
     lua = lua5_1;
@@ -35559,7 +35558,7 @@ with pkgs;
 
   openxray = callPackage ../games/openxray { };
 
-  orthorobot = callPackage ../games/orthorobot { };
+  orthorobot = callPackage ../games/orthorobot { love = love_0_10; };
 
   pacvim = callPackage ../games/pacvim { };
 
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 07b221caba726..013a252a2073a 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -174,6 +174,14 @@ in {
       ];
     };
 
+    linux_6_2 = callPackage ../os-specific/linux/kernel/linux-6.2.nix {
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+        kernelPatches.fix-em-ice-bonding
+      ];
+    };
+
     linux_testing = let
       testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
         kernelPatches = [
@@ -540,6 +548,7 @@ in {
     linux_5_19 = throw "linux 5.19 was removed because it reached its end of life upstream"; # Added 2022-11-01
     linux_6_0 = throw "linux 6.0 was removed because it reached its end of life upstream"; # Added 2023-01-20
     linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
+    linux_6_2 = recurseIntoAttrs (packagesFor kernels.linux_6_2);
   };
 
   rtPackages = {
@@ -600,7 +609,7 @@ in {
   packageAliases = {
     linux_default = packages.linux_5_15;
     # Update this when adding the newest kernel major version!
-    linux_latest = packages.linux_6_1;
+    linux_latest = packages.linux_6_2;
     linux_mptcp = packages.linux_mptcp_95;
     linux_rt_default = packages.linux_rt_5_4;
     linux_rt_latest = packages.linux_rt_5_10;
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 0e704ce26af8a..b91c1ae009ba5 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -1260,6 +1260,8 @@ let
       inherit (pkgs) shine;
     };
 
+    simple-diff = callPackage ../development/ocaml-modules/simple-diff { };
+
     sosa = callPackage ../development/ocaml-modules/sosa { };
 
     soundtouch = callPackage ../development/ocaml-modules/soundtouch {