about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-03-09 00:02:23 +0000
committerGitHub <noreply@github.com>2023-03-09 00:02:23 +0000
commitc8c1423cd9405165a1ca912163613a9bf9dbc5ab (patch)
tree49cc260782a3804a51d433a5cbbcad46d0749aa1
parent40af042f60f52557af9d4692a60d6da05b27ef1d (diff)
parent55544a3fd9ec7b018281b20ec0b0c8f29a1b46c3 (diff)
Merge master into staging-next
-rw-r--r--nixos/modules/services/networking/networkd-dispatcher.nix87
-rw-r--r--pkgs/applications/blockchains/erigon/default.nix6
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix4
-rw-r--r--pkgs/applications/emulators/ryujinx/appdir.patch23
-rw-r--r--pkgs/applications/emulators/ryujinx/default.nix20
-rw-r--r--pkgs/applications/emulators/ryujinx/deps.nix67
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json14
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix6
-rw-r--r--pkgs/applications/networking/sync/celeste/default.nix114
-rw-r--r--pkgs/applications/networking/sync/celeste/librclone-path.patch31
-rw-r--r--pkgs/applications/networking/sync/celeste/target-dir.patch16
-rw-r--r--pkgs/applications/version-management/gh/default.nix6
-rw-r--r--pkgs/applications/video/mpv/scripts/uosc.nix48
-rw-r--r--pkgs/applications/video/mpv/wrapper.nix3
-rw-r--r--pkgs/build-support/rust/build-rust-crate/default.nix4
-rw-r--r--pkgs/development/libraries/librclone/default.nix33
-rw-r--r--pkgs/development/libraries/science/math/magma/generic.nix3
-rw-r--r--pkgs/development/python-modules/aioslimproto/default.nix5
-rw-r--r--pkgs/development/tools/misc/go-licenses/default.nix48
-rw-r--r--pkgs/development/tools/misc/go-licenses/fix-go-version-error.patch65
-rw-r--r--pkgs/development/tools/viceroy/default.nix29
-rw-r--r--pkgs/os-specific/linux/kernel/zen-kernels.nix10
-rw-r--r--pkgs/servers/haste-server/default.nix4
-rw-r--r--pkgs/servers/haste-server/node-deps.nix42
-rw-r--r--pkgs/servers/redpanda/default.nix6
-rw-r--r--pkgs/tools/misc/wakapi/default.nix6
-rw-r--r--pkgs/tools/networking/amass/default.nix6
-rw-r--r--pkgs/tools/networking/networkd-dispatcher/default.nix6
-rw-r--r--pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch13
-rw-r--r--pkgs/top-level/all-packages.nix11
30 files changed, 575 insertions, 161 deletions
diff --git a/nixos/modules/services/networking/networkd-dispatcher.nix b/nixos/modules/services/networking/networkd-dispatcher.nix
index d13ca23368c5b..c5319ca7b88a2 100644
--- a/nixos/modules/services/networking/networkd-dispatcher.nix
+++ b/nixos/modules/services/networking/networkd-dispatcher.nix
@@ -3,8 +3,11 @@
 with lib;
 
 let
+
   cfg = config.services.networkd-dispatcher;
+
 in {
+
   options = {
     services.networkd-dispatcher = {
 
@@ -14,14 +17,49 @@ in {
         for usage.
       '');
 
-      scriptDir = mkOption {
-        type = types.path;
-        default = "/var/lib/networkd-dispatcher";
-        description = mdDoc ''
-          This directory is used for keeping various scripts read and run by
-          networkd-dispatcher. See [https://gitlab.com/craftyguy/networkd-dispatcher](upstream instructions)
-          for directory structure and script usage.
+      rules = mkOption {
+        default = {};
+        example = lib.literalExpression ''
+          { "restart-tor" = {
+              onState = ["routable" "off"];
+              script = '''
+                #!''${pkgs.runtimeShell}
+                if [[ $IFACE == "wlan0" && $AdministrativeState == "configured" ]]; then
+                  echo "Restarting Tor ..."
+                  systemctl restart tor
+                fi
+                exit 0
+              ''';
+            };
+          };
+        '';
+        description = lib.mdDoc ''
+          Declarative configuration of networkd-dispatcher rules. See
+          [https://gitlab.com/craftyguy/networkd-dispatcher](upstream instructions)
+          for an introduction and example scripts.
         '';
+        type = types.attrsOf (types.submodule {
+          options = {
+            onState = mkOption {
+              type = types.listOf (types.enum [
+                "routable" "dormant" "no-carrier" "off" "carrier" "degraded"
+                "configuring" "configured"
+              ]);
+              default = null;
+              description = lib.mdDoc ''
+                List of names of the systemd-networkd operational states which
+                should trigger the script. See <https://www.freedesktop.org/software/systemd/man/networkctl.html>
+                for a description of the specific state type.
+              '';
+            };
+            script = mkOption {
+              type = types.lines;
+              description = lib.mdDoc ''
+                Shell commands executed on specified operational states.
+              '';
+            };
+          };
+        });
       };
 
     };
@@ -30,34 +68,31 @@ in {
   config = mkIf cfg.enable {
 
     systemd = {
-
       packages = [ pkgs.networkd-dispatcher ];
       services.networkd-dispatcher = {
         wantedBy = [ "multi-user.target" ];
         # Override existing ExecStart definition
-        serviceConfig.ExecStart = [
+        serviceConfig.ExecStart = let
+          scriptDir = pkgs.symlinkJoin {
+            name = "networkd-dispatcher-script-dir";
+            paths = lib.mapAttrsToList (name: cfg:
+              (map(state:
+                pkgs.writeTextFile {
+                  inherit name;
+                  text = cfg.script;
+                  destination = "/${state}.d/${name}";
+                  executable = true;
+                }
+              ) cfg.onState)
+            ) cfg.rules;
+          };
+        in [
           ""
-          "${pkgs.networkd-dispatcher}/bin/networkd-dispatcher -v --script-dir ${cfg.scriptDir} $networkd_dispatcher_args"
+          "${pkgs.networkd-dispatcher}/bin/networkd-dispatcher -v --script-dir ${scriptDir} $networkd_dispatcher_args"
         ];
       };
-
-      # Directory structure required according to upstream instructions
-      # https://gitlab.com/craftyguy/networkd-dispatcher
-      tmpfiles.rules = [
-        "d '${cfg.scriptDir}'               0750 root root - -"
-        "d '${cfg.scriptDir}/routable.d'    0750 root root - -"
-        "d '${cfg.scriptDir}/dormant.d'     0750 root root - -"
-        "d '${cfg.scriptDir}/no-carrier.d'  0750 root root - -"
-        "d '${cfg.scriptDir}/off.d'         0750 root root - -"
-        "d '${cfg.scriptDir}/carrier.d'     0750 root root - -"
-        "d '${cfg.scriptDir}/degraded.d'    0750 root root - -"
-        "d '${cfg.scriptDir}/configuring.d' 0750 root root - -"
-        "d '${cfg.scriptDir}/configured.d'  0750 root root - -"
-      ];
-
     };
 
-
   };
 }
 
diff --git a/pkgs/applications/blockchains/erigon/default.nix b/pkgs/applications/blockchains/erigon/default.nix
index e4823f1a66c3e..fd864e65eb1d8 100644
--- a/pkgs/applications/blockchains/erigon/default.nix
+++ b/pkgs/applications/blockchains/erigon/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "erigon";
-  version = "2.39.0";
+  version = "2.40.1";
 in
 buildGoModule {
   inherit pname version;
@@ -11,11 +11,11 @@ buildGoModule {
     owner = "ledgerwatch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HlAnuc6n/de6EzHTit3xGCFLrc2+S+H/o0gCxH8d0aU=";
+    sha256 = "sha256-iuJ/iajZiqKBP4hgrwt8KKkWEdYa+idpai/aWpCOjQw=";
     fetchSubmodules = true;
   };
 
-  vendorSha256 = "sha256-kKwaA6NjRdg97tTEzEI+TWMSx7izzFWcefR5B086cUY=";
+  vendorSha256 = "sha256-0xHu7uvk7kRxyLXGvrT9U8vgfZPrs7Rmg2lFH49YOSI=";
   proxyVendor = true;
 
   # Build errors in mdbx when format hardening is enabled:
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index f961001e4ffa6..9d941f78c2efc 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -1442,8 +1442,8 @@ let
         mktplcRef = {
           name = "Ionide-fsharp";
           publisher = "Ionide";
-          version = "6.0.5";
-          sha256 = "sha256-vlmLr/1rBreqZifzEwAlhyGzHG28oZa+kmMzRl53tOI=";
+          version = "7.5.1";
+          sha256 = "sha256-AiDYqYF+F69O/aeolIEzqLmg20YN/I4EV6XMa8UgMns=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/Ionide.Ionide-fsharp/changelog";
diff --git a/pkgs/applications/emulators/ryujinx/appdir.patch b/pkgs/applications/emulators/ryujinx/appdir.patch
deleted file mode 100644
index 696077d29deaf..0000000000000
--- a/pkgs/applications/emulators/ryujinx/appdir.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/Ryujinx.Common/ReleaseInformations.cs b/Ryujinx.Common/ReleaseInformations.cs
-index 35890406..cca77163 100644
---- a/Ryujinx.Common/ReleaseInformations.cs
-+++ b/Ryujinx.Common/ReleaseInformations.cs
-@@ -42,12 +42,14 @@ namespace Ryujinx.Common
-
-         public static string GetBaseApplicationDirectory()
-         {
--            if (IsFlatHubBuild())
--            {
-+            //if (IsFlatHubBuild())
-+            //{
-+                // This needs to be a mutable path, while CurrentDomain.BaseDirectory refers to the nix store.
-+                // AppDataManager.BaseDirPath refers to ".config/Ryujinx" on Linux.
-                 return AppDataManager.BaseDirPath;
--            }
-+            //}
- 
--            return AppDomain.CurrentDomain.BaseDirectory;
-+            //return AppDomain.CurrentDomain.BaseDirectory;
-         }
-     }
- }
diff --git a/pkgs/applications/emulators/ryujinx/default.nix b/pkgs/applications/emulators/ryujinx/default.nix
index 0ede7db9f10ed..c5c21ed46fe1f 100644
--- a/pkgs/applications/emulators/ryujinx/default.nix
+++ b/pkgs/applications/emulators/ryujinx/default.nix
@@ -29,13 +29,13 @@
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.1.489"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+  version = "1.1.650"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "37d27c4c99486312d9a282d7fc056c657efe0848";
-    sha256 = "0h55vv2g9i81km0jzlb62arlky5ci4i45jyxig3znqr1zb4l0a67";
+    rev = "b8556530f2b160db70ff571adf25ae26d4b8f58f";
+    sha256 = "098yx4nwmkbab595a2xq9f5libzvsj01f3wf83nsbgzndy1h85ja";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_7_0;
@@ -79,16 +79,12 @@ buildDotnetModule rec {
     SDL2
   ];
 
-  patches = [
-    ./appdir.patch # Ryujinx attempts to write to the nix store. This patch redirects it to "~/.config/Ryujinx" on Linux.
-  ];
-
   projectFile = "Ryujinx.sln";
   testProjectFile = "Ryujinx.Tests/Ryujinx.Tests.csproj";
   doCheck = true;
 
   dotnetFlags = [
-    "/p:ExtraDefineConstants=DISABLE_UPDATER"
+    "/p:ExtraDefineConstants=DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR"
   ];
 
   executables = [
@@ -113,11 +109,11 @@ buildDotnetModule rec {
     mkdir -p $out/share/{applications,icons/hicolor/scalable/apps,mime/packages}
     pushd ${src}/distribution/linux
 
-    install -D ./ryujinx.desktop $out/share/applications/ryujinx.desktop
-    install -D ./ryujinx-mime.xml $out/share/mime/packages/ryujinx-mime.xml
-    install -D ./ryujinx-logo.svg $out/share/icons/hicolor/scalable/apps/ryujinx.svg
+    install -D ./Ryujinx.desktop $out/share/applications/Ryujinx.desktop
+    install -D ./mime/Ryujinx.xml $out/share/mime/packages/Ryujinx.xml
+    install -D ../misc/Logo.svg $out/share/icons/hicolor/scalable/apps/Ryujinx.svg
 
-    substituteInPlace $out/share/applications/ryujinx.desktop \
+    substituteInPlace $out/share/applications/Ryujinx.desktop \
       --replace "Exec=Ryujinx" "Exec=$out/bin/Ryujinx"
 
     ln -s $out/bin/Ryujinx $out/bin/ryujinx
diff --git a/pkgs/applications/emulators/ryujinx/deps.nix b/pkgs/applications/emulators/ryujinx/deps.nix
index 214d0ee747c3d..264b60dcf4498 100644
--- a/pkgs/applications/emulators/ryujinx/deps.nix
+++ b/pkgs/applications/emulators/ryujinx/deps.nix
@@ -24,6 +24,7 @@
   (fetchNuGet { pname = "ExCSS"; version = "4.1.4"; sha256 = "1y50xp6rihkydbf5l73mr3qq2rm6rdfjrzdw9h1dw9my230q5lpd"; })
   (fetchNuGet { pname = "Fizzler"; version = "1.2.1"; sha256 = "1w5jb1d0figbv68dydbnlcsfmqlc3sv9z1zxp7d79dg2dkarc4qm"; })
   (fetchNuGet { pname = "FluentAvaloniaUI"; version = "1.4.5"; sha256 = "1j5ivy83f13dgn09qrfkq44ijvh0m9rbdx8760g47di70c4lda7j"; })
+  (fetchNuGet { pname = "FSharp.Core"; version = "7.0.200"; sha256 = "1ji816r8idwjmxk8bzyq1z32ybz7xdg3nb0a7pnvqr8vys11bkgb"; })
   (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; })
   (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.1-preview.108"; sha256 = "0xs4px4fy5b6glc77rqswzpi5ddhxvbar1md6q9wla7hckabnq0z"; })
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.1-preview.108"; sha256 = "16wvgvyra2g1b38rxxgkk85wbz89hspixs54zfcm4racgmj1mrj4"; })
@@ -32,40 +33,38 @@
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.1-preview.108"; sha256 = "0n6ymn9jqms3mk5hg0ar4y9jmh96myl6q0jimn7ahb1a8viq55k1"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "10.3.0"; sha256 = "1grdx28ga9fp4hwwpwv354rizm8anfq4lp045q4ss41gvhggr3z8"; })
   (fetchNuGet { pname = "jp2masa.Avalonia.Flexbox"; version = "0.2.0"; sha256 = "1abck2gad29mgf9gwqgc6wr8iwl64v50n0sbxcj1bcxgkgndraiq"; })
-  (fetchNuGet { pname = "LibHac"; version = "0.17.0"; sha256 = "06ar4yv9mbvi42fpzs8g6j5yqrk1nbn5zssbh2k08sx3s757gd6f"; })
+  (fetchNuGet { pname = "LibHac"; version = "0.18.0"; sha256 = "19d5fqdcws0730580jlda6pdddprxcrhw7b3ybiiglabsr7bmgdv"; })
   (fetchNuGet { pname = "MicroCom.CodeGenerator.MSBuild"; version = "0.10.4"; sha256 = "1bdgy6g15d1mln1xpvs6sy0l2zvfs4hxw6nc3qm16qb8hdgvb73y"; })
   (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.10.4"; sha256 = "0ccbzp0d01dcahm7ban7xyh1rk7k2pkml3l5i7s85cqk5lnczpw2"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "2.9.6"; sha256 = "18mr1f0wpq0fir8vjnq0a8pz50zpnblr7sabff0yqx37c975934a"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.4"; sha256 = "0wd6v57p53ahz5z9zg4iyzmy3src7rlsncyqpcag02jjj1yx6g58"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.4.0"; sha256 = "12rn6gl4viycwk3pz5hp5df63g66zvba4hnkwr3f0876jj5ivmsw"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.4.0"; sha256 = "0lag1m6xmr3sascf8ni80nqjz34fj364yzxrfs13k02fz1rlw5ji"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.5.0"; sha256 = "0hjzca7v3qq4wqzi9chgxzycbaysnjgj28ps20695x61sia6i3da"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.4.0"; sha256 = "0rhylcwa95bxawcgixk64knv7p7xrykdjcabmx3gknk8hvj1ai9y"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.4.0"; sha256 = "0wjsm651z8y6whxl915nlmk9py3xys5rs0caczmi24js38zx9rx7"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.5.0"; sha256 = "1l6v0ii5lapmfnfpjwi3j5bwlx8v9nvyani5pwvqzdfqsd5m7mp5"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.4.0"; sha256 = "1h2f0z9xnw987x8bydka1sd42ijqjx973md6v1gvpy1qc6ad244g"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.4.0"; sha256 = "195gqnpwqkg2wlvk8x6yzm7byrxfq9bki20xmhf6lzfsdw3z4mf2"; })
-  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.4.1"; sha256 = "0bf68gq6mc6kzri4zi8ydc0xrazqwqg38bhbpjpj90zmqc28kari"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.5.0"; sha256 = "0briw00gb5bz9k9kx00p6ghq47w501db7gb6ig5zzmz9hb8lw4a4"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
-  (fetchNuGet { pname = "Microsoft.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; })
   (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.25.1"; sha256 = "0kkwjci3w5hpmvm4ibnddw7xlqq97ab8pa9mfqm52ri5dq1l9ffp"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.25.1"; sha256 = "16nk02qj8xzqwpgsas50j1w0hhnnxdl7dhqrmgyg7s165qxi5h70"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.25.1"; sha256 = "1r0v67w94wyvyhikcvk92khnzbsqsvmmcdz3yd71wzv6fr4rvrrh"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.25.1"; sha256 = "0srnsqzvr8yinl52ybpps0yg3dp0c8c96h7zariysp9cgb9pv8ds"; })
-  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.4.1"; sha256 = "02p1j9fncd4fb2hyp51kw49d0dz30vvazhzk24c9f5ccc00ijpra"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.27.0"; sha256 = "053c1pkx9bnb9440f5rkzbdv99wgcaw95xnqjp09ncd2crh8kakp"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.27.0"; sha256 = "103qvpahmn1x8yxj0kc920s27xbyjr15z8lf5ikrsrikalb5yjx9"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.27.0"; sha256 = "1c3b0bkmxa24bvzi16jc7lc1nifqcq4jg7ild973bb8mivicagzv"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.27.0"; sha256 = "0h51vdcz6pkv4ky2ygba4vks56rskripqb3fjz95ym0l0xg20s1a"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.5.0"; sha256 = "00gz2i8kx4mlq1ywj3imvf7wc6qzh0bsnynhw06z0mgyha1a21jy"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.4.1"; sha256 = "0s68wf9yphm4hni9p6kwfk0mjld85f4hkrs93qbk5lzf6vv3kba1"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.4.1"; sha256 = "1n9ilq8n5rhyxcri06njkxb0h2818dbmzddwd2rrvav91647m2s4"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; sha256 = "0qkjyf3ky6xpjg5is2sdsawm99ka7fzgid2bvpglwmmawqgm8gls"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.5.0"; sha256 = "17g0k3r5n8grba8kg4nghjyhnq9w8v0w6c2nkyyygvfh8k8x9wh3"; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
   (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "7.0.0"; sha256 = "1bh77misznh19m1swqm3dsbji499b8xh9gk6w74sgbkarf6ni8lb"; })
   (fetchNuGet { pname = "MsgPack.Cli"; version = "1.0.1"; sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r"; })
@@ -75,13 +74,13 @@
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
   (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
   (fetchNuGet { pname = "NUnit"; version = "3.13.3"; sha256 = "0wdzfkygqnr73s6lpxg5b1pwaqz9f414fxpvpdmf72bvh4jaqzv6"; })
-  (fetchNuGet { pname = "NUnit3TestAdapter"; version = "3.17.0"; sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6"; })
-  (fetchNuGet { pname = "OpenTK.Core"; version = "4.7.5"; sha256 = "1dzjw5hi55ig5fjaj8a2hibp8smsg1lmy29s3zpnp79nj4i03r1s"; })
-  (fetchNuGet { pname = "OpenTK.Graphics"; version = "4.7.5"; sha256 = "0r5zhqbcnw0jsw2mqadrknh2wpc9asyz9kmpzh2d02ahk3x06faq"; })
-  (fetchNuGet { pname = "OpenTK.Mathematics"; version = "4.7.5"; sha256 = "0fvyc3ibckjb5wvciks1ks86bmk16y8nmyr1sqn2sfawmdfq80d9"; })
-  (fetchNuGet { pname = "OpenTK.OpenAL"; version = "4.7.5"; sha256 = "0p6xnlc852lm0m6cjwc8mdcxzhan5q6vna1lxk6n1bg78bd4slfv"; })
+  (fetchNuGet { pname = "NUnit3TestAdapter"; version = "4.1.0"; sha256 = "1z5g15npmsjszhfmkrdmp4ds7jpxzhxblss2rjl5mfn5sihy4cww"; })
+  (fetchNuGet { pname = "OpenTK.Core"; version = "4.7.7"; sha256 = "1jyambm9lp0cnzy2mirv5psm0gvk2xi92k3r5jf0mi2jqmd2aphn"; })
+  (fetchNuGet { pname = "OpenTK.Graphics"; version = "4.7.7"; sha256 = "1hrz76qlyw29cl5y917r65dnxwhcaswbq9ljzgc6fsnix4lngbvv"; })
+  (fetchNuGet { pname = "OpenTK.Mathematics"; version = "4.7.7"; sha256 = "1xdagkfbs8nbs9lpqbr062pjmb5my1gj5yg2vbfw9xz238619lz2"; })
+  (fetchNuGet { pname = "OpenTK.OpenAL"; version = "4.7.7"; sha256 = "1zqdk1iplqmchvm42k71z6y8fdz0lg2cd1xw9h0asf760qa9aq5z"; })
   (fetchNuGet { pname = "OpenTK.redist.glfw"; version = "3.3.8.30"; sha256 = "1zm1ngzg6p64x0abz2x9mnl9x7acc1hmk4d1svk1mab95pqbrgwz"; })
-  (fetchNuGet { pname = "OpenTK.Windowing.GraphicsLibraryFramework"; version = "4.7.5"; sha256 = "1958vp738bwg98alpsax5m97vzfgrkks4r11r22an4zpv0gnd2sd"; })
+  (fetchNuGet { pname = "OpenTK.Windowing.GraphicsLibraryFramework"; version = "4.7.7"; sha256 = "1f33yqf5lr8qkza56xm1kqhs59v706yan2i3bkdlc56609gf8qy9"; })
   (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
@@ -133,9 +132,9 @@
   (fetchNuGet { pname = "Ryujinx.Graphics.Vulkan.Dependencies.MoltenVK"; version = "1.2.0"; sha256 = "1qkas5b6k022r57acpc4h981ddmzz9rwjbgbxbphrjd8h7lz1l5x"; })
   (fetchNuGet { pname = "Ryujinx.GtkSharp"; version = "3.24.24.59-ryujinx"; sha256 = "0dri508x5kca2wk0mpgwg6fxj4n5n3kplapwdmlcpfcbwbmrrnyr"; })
   (fetchNuGet { pname = "Ryujinx.PangoSharp"; version = "3.24.24.59-ryujinx"; sha256 = "1bdxm5k54zs0h6n2dh20j5jlyn0yml9r8qr828ql0k8zl7yhlq40"; })
-  (fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.24.2-build21"; sha256 = "11ya698m1qbas68jjfhah2qzf07xs4rxmbzncd954rqmmszws99l"; })
+  (fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.26.1-build23"; sha256 = "1qnz15q2g6qknjgbv3pb53llqpb4lcwfwmgfvm6325zxjm79r792"; })
   (fetchNuGet { pname = "shaderc.net"; version = "0.1.0"; sha256 = "0f35s9h0vj9f1rx9bssj66hibc3j9bzrb4wgb5q2jwkf5xncxbpq"; })
-  (fetchNuGet { pname = "SharpZipLib"; version = "1.4.1"; sha256 = "1dh1jhgzc9bzd2hvyjp2nblavf0619djniyzalx7kvrbsxhrdjb6"; })
+  (fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
   (fetchNuGet { pname = "ShimSkiaSharp"; version = "0.5.18"; sha256 = "1i97f2zbsm8vhcbcfj6g4ml6g261gijdh7s3rmvwvxgfha6qyvkg"; })
   (fetchNuGet { pname = "Silk.NET.Core"; version = "2.16.0"; sha256 = "1mkqc2aicvknmpyfry2v7jjxh3apaxa6dmk1vfbwxnkysl417x0k"; })
   (fetchNuGet { pname = "Silk.NET.Vulkan"; version = "2.16.0"; sha256 = "0sg5mxv7ga5pq6wc0lz52j07fxrcfmb0an30r4cxsxk66298z2wy"; })
@@ -165,18 +164,11 @@
   (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "6.0.0"; sha256 = "1js98kmjn47ivcvkjqdmyipzknb9xbndssczm8gq224pbaj1p88c"; })
-  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
-  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
-  (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
   (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
-  (fetchNuGet { pname = "System.ComponentModel.EventBasedAsync"; version = "4.3.0"; sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7"; })
-  (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
-  (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
   (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
-  (fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
   (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
   (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
@@ -186,14 +178,12 @@
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
   (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
   (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
-  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "6.25.1"; sha256 = "03ifsmlfs2v5ca6wc33q8xd89m2jm4h2q57s1s9f4yaigqbq1vrl"; })
+  (fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "6.27.0"; sha256 = "0fihix48dk0jrkawby62fs163dv5hsh63vdhdyp7hfz6nabsqs2j"; })
   (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
   (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
   (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
   (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
@@ -228,7 +218,7 @@
   (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
   (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
-  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "6.0.1"; sha256 = "0fjqifk4qz9lw5gcadpfalpplyr0z2b3p9x7h0ll481a9sqvppc9"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
   (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
@@ -249,7 +239,6 @@
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
   (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
   (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
@@ -270,30 +259,24 @@
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
-  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.7.2"; sha256 = "0ap286ykazrl42if59bxhzv81safdfrrmfqr3112siwyajx4wih9"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "6.0.0"; sha256 = "1si2my1g0q0qv1hiqnji4xh9wd05qavxnzj9dwgs23iqvgjky0gl"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
   (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
   (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
   (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
   (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
-  (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
-  (fetchNuGet { pname = "System.Xml.XPath.XmlDocument"; version = "4.3.0"; sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm"; })
   (fetchNuGet { pname = "Tmds.DBus"; version = "0.9.0"; sha256 = "0vvx6sg8lxm23g5jvm5wh2gfs95mv85vd52lkq7d1b89bdczczf3"; })
+  (fetchNuGet { pname = "UnicornEngine.Unicorn"; version = "2.0.2-rc1-f7c841d"; sha256 = "1fxvv77hgbblb14xwdpk231cgm5b3wl0li1ksx2vswxi9n758hrk"; })
   (fetchNuGet { pname = "XamlNameReferenceGenerator"; version = "1.5.1"; sha256 = "11sld5a9z2rdglkykvylghka7y37ny18naywpgpxp485m9bc63wc"; })
 ]
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 65881b9ae8f01..17cd09e7ca956 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,8 +1,8 @@
 {
   "stable": {
-    "version": "110.0.5481.177",
-    "sha256": "1dy9l61r3fpl40ff790dbqqvw9l1svcgd7saz4whl9wm256labvv",
-    "sha256bin64": "0sylaf8b0rzr82dg7safvs5dxqqib26k4j6vlm75vs99dpnlznj2",
+    "version": "111.0.5563.64",
+    "sha256": "0x20zqwq051a5j76q1c3m0ddf1hhcm6fgz3b7rqrfamjppia0p3x",
+    "sha256bin64": "0rnqrjnybghb4h413cw3f54ga2x76mfmf1fp2nnf59c1yml4r4vf",
     "deps": {
       "gn": {
         "version": "2022-12-12",
@@ -12,10 +12,10 @@
       }
     },
     "chromedriver": {
-      "version": "110.0.5481.77",
-      "sha256_linux": "1bdc4n9nz3m6vv0p4qr9v65zarbnkrbh21ivpvl7y7c25m7fxl20",
-      "sha256_darwin": "1scv9vvy5ybgbgycyz2wrymjhdqnvz0m6lxkax107437anxixs00",
-      "sha256_darwin_aarch64": "0gqayzhlif6hvsmpx04mxr1bld6kirv5q1n5dg42rc16gv954dkn"
+      "version": "111.0.5563.41",
+      "sha256_linux": "160khwa4x6w9gv5vkvalwbx87r6hrql0y0xr7zvxsir1x6rklwm2",
+      "sha256_darwin": "0z5q9r39jd5acyd79yzrkgqkvv3phdkyq4wvdsmhnpypazg072l6",
+      "sha256_darwin_aarch64": "0xiagydqnywzrpqq3i7363zhiywkp8ra9ygb2q1gznb40rx98pbr"
     }
   },
   "beta": {
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 6a722b80b834c..bc7a2545bdd7f 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -168,9 +168,9 @@ rec {
   mkTerraform = attrs: pluggable (generic attrs);
 
   terraform_1 = mkTerraform {
-    version = "1.3.9";
-    hash = "sha256-gwuUdO9m4Q2tFRLSVTbcsclOq9jcbQU4JV9nIElTkQ4=";
-    vendorHash = "sha256-CE6jNBvM0980+R0e5brK5lMrkad+91qTt9mp2h3NZyY=";
+    version = "1.4.0";
+    hash = "sha256-jt+axusOYbJmGJpim8i76Yfb/QgWduUmZMIiIs0CJoA=";
+    vendorHash = "sha256-M22VONnPs0vv2L3q/2RjE0+Jna/Kv95xubVNthp5bMc=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = {
       inherit plugins;
diff --git a/pkgs/applications/networking/sync/celeste/default.nix b/pkgs/applications/networking/sync/celeste/default.nix
new file mode 100644
index 0000000000000..701172cbd28b8
--- /dev/null
+++ b/pkgs/applications/networking/sync/celeste/default.nix
@@ -0,0 +1,114 @@
+{ lib
+, stdenv
+, rust
+, rustPlatform
+, fetchFromGitHub
+, substituteAll
+, fetchpatch
+, pkg-config
+, wrapGAppsHook4
+, cairo
+, gdk-pixbuf
+, glib
+, graphene
+, gtk3
+, gtk4
+, libadwaita
+, libappindicator-gtk3
+, librclone
+, pango
+, rclone
+}:
+
+let
+  # https://github.com/trevyn/librclone/pull/8
+  librclone-mismatched-types-patch = fetchpatch {
+    name = "use-c_char-to-be-platform-independent.patch";
+    url = "https://github.com/trevyn/librclone/commit/91fdf3fa5f5eea0dfd06981ba72e09034974fdad.patch";
+    hash = "sha256-8YDyUNP/ISP5jCliT6UCxZ89fdRFud+6u6P29XdPy58=";
+  };
+in rustPlatform.buildRustPackage rec {
+  pname = "celeste";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "hwittenborn";
+    repo = "celeste";
+    rev = "v${version}";
+    hash = "sha256-VEyQlycpqsGKqtV/QvqBfVHqQhl/H6HsWPRDBtQO3qM=";
+  };
+
+  cargoHash = "sha256-fqt0XklJJAXi2jO7eo0tIwRo2Y3oM56qYwoaelKY8iU=";
+
+  patches = [
+    (substituteAll {
+      src = ./target-dir.patch;
+      rustTarget = rust.toRustTarget stdenv.hostPlatform;
+    })
+  ];
+
+  postPatch = ''
+    pushd $cargoDepsCopy/librclone-sys
+    oldHash=$(sha256sum build.rs | cut -d " " -f 1)
+    patch -p2 < ${./librclone-path.patch}
+    substituteInPlace build.rs \
+      --subst-var-by librclone ${librclone}
+    substituteInPlace .cargo-checksum.json \
+      --replace $oldHash $(sha256sum build.rs | cut -d " " -f 1)
+    popd
+    pushd $cargoDepsCopy/librclone
+    oldHash=$(sha256sum src/lib.rs | cut -d " " -f 1)
+    patch -p1 < ${librclone-mismatched-types-patch}
+    substituteInPlace .cargo-checksum.json \
+      --replace $oldHash $(sha256sum src/lib.rs | cut -d " " -f 1)
+    popd
+  '';
+
+  # Cargo.lock is outdated
+  preConfigure = ''
+    cargo update --offline
+  '';
+
+  # We need to build celeste-tray first because celeste/src/launch.rs reads that file at build time.
+  # Upstream does the same: https://github.com/hwittenborn/celeste/blob/765dfa2/justfile#L1-L3
+  cargoBuildFlags = [ "--bin" "celeste-tray" ];
+  postConfigure = ''
+    cargoBuildHook
+    cargoBuildFlags=
+  '';
+
+  RUSTC_BOOTSTRAP = 1;
+
+  nativeBuildInputs = [
+    pkg-config
+    rustPlatform.bindgenHook
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    cairo
+    gdk-pixbuf
+    glib
+    graphene
+    gtk3
+    gtk4
+    libadwaita
+    librclone
+    pango
+  ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libappindicator-gtk3 ]}"
+      --prefix PATH : "${lib.makeBinPath [ rclone ]}"
+    )
+  '';
+
+  meta = {
+    changelog = "https://github.com/hwittenborn/celeste/blob/${src.rev}/CHANGELOG.md";
+    description = "GUI file synchronization client that can sync with any cloud provider";
+    homepage = "https://github.com/hwittenborn/celeste";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/networking/sync/celeste/librclone-path.patch b/pkgs/applications/networking/sync/celeste/librclone-path.patch
new file mode 100644
index 0000000000000..21af74dfde518
--- /dev/null
+++ b/pkgs/applications/networking/sync/celeste/librclone-path.patch
@@ -0,0 +1,31 @@
+diff --git a/librclone-sys/build.rs b/librclone-sys/build.rs
+index 10e45bc..7d04c08 100644
+--- a/librclone-sys/build.rs
++++ b/librclone-sys/build.rs
+@@ -16,15 +16,8 @@ fn main() {
+     println!("cargo:rerun-if-changed=go.mod");
+     println!("cargo:rerun-if-changed=go.sum");
+ 
+-    Command::new("go")
+-        .args(["build", "--buildmode=c-archive", "-o"])
+-        .arg(&format!("{}/librclone.a", out_dir))
+-        .arg("github.com/rclone/rclone/librclone")
+-        .status()
+-        .expect("`go build` failed. Is `go` installed and latest version?");
+-
+-    println!("cargo:rustc-link-search=native={}", out_dir);
+-    println!("cargo:rustc-link-lib=static=rclone");
++    println!("cargo:rustc-link-search=native={}", "@librclone@/lib");
++    println!("cargo:rustc-link-lib=dylib=rclone");
+ 
+     if target_triple.ends_with("darwin") {
+         println!("cargo:rustc-link-lib=framework=CoreFoundation");
+@@ -32,7 +25,7 @@ fn main() {
+     }
+ 
+     let bindings = bindgen::Builder::default()
+-        .header(format!("{}/librclone.h", out_dir))
++        .header(format!("{}/librclone.h", "@librclone@/include"))
+         .allowlist_function("RcloneRPC")
+         .allowlist_function("RcloneInitialize")
+         .allowlist_function("RcloneFinalize")
diff --git a/pkgs/applications/networking/sync/celeste/target-dir.patch b/pkgs/applications/networking/sync/celeste/target-dir.patch
new file mode 100644
index 0000000000000..a8da72e77f772
--- /dev/null
+++ b/pkgs/applications/networking/sync/celeste/target-dir.patch
@@ -0,0 +1,16 @@
+diff --git a/celeste/src/launch.rs b/celeste/src/launch.rs
+index 5227170..e3cf189 100644
+--- a/celeste/src/launch.rs
++++ b/celeste/src/launch.rs
+@@ -172,10 +172,7 @@ impl TrayApp {
+         perms.set_mode(0o755);
+         file.set_permissions(perms).unwrap();
+ 
+-        #[cfg(debug_assertions)]
+-        let tray_file = include_bytes!("../../target/debug/celeste-tray");
+-        #[cfg(not(debug_assertions))]
+-        let tray_file = include_bytes!("../../target/release/celeste-tray");
++        let tray_file = include_bytes!(concat!("../../target/@rustTarget@/", env!("cargoBuildType"), "/celeste-tray"));
+ 
+         file.write_all(tray_file).unwrap();
+         drop(file);
diff --git a/pkgs/applications/version-management/gh/default.nix b/pkgs/applications/version-management/gh/default.nix
index 3f154f0350c4d..5bf5caf262c6a 100644
--- a/pkgs/applications/version-management/gh/default.nix
+++ b/pkgs/applications/version-management/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.23.0";
+  version = "2.24.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-91TmPIjFOCeZmbobn3mIJis5qofJFmNGuX19+Cyo8Ck=";
+    hash = "sha256-5ccvdm0BQZ0+yccB+TjlVt5ZAPxKuEInOed2D9AzMjc=";
   };
 
-  vendorHash = "sha256-NiXC0ooUkAqFCLp3eRBpryazQU94gSnw0gYFwQNeCo4=";
+  vendorHash = "sha256-nn2DzjcXHiuSaiEuWNZTAZ3+OKrEpRzUPzqmH+gZ9sY=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/video/mpv/scripts/uosc.nix b/pkgs/applications/video/mpv/scripts/uosc.nix
new file mode 100644
index 0000000000000..1a486dbf556d4
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/uosc.nix
@@ -0,0 +1,48 @@
+{ stdenvNoCC, lib, fetchFromGitHub, makeFontsConf }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "uosc";
+  version = "4.6.0";
+
+  src = fetchFromGitHub {
+    owner = "tomasklaen";
+    repo = "uosc";
+    rev = finalAttrs.version;
+    hash = "sha256-AxApKlSaRLPl6VsXsARfaT3kWDK6AB2AAEmIHYiuFaM=";
+  };
+
+  postPatch = ''
+    substituteInPlace scripts/uosc.lua \
+      --replace "mp.find_config_file('scripts')" "\"$out/share/mpv/scripts\""
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/mpv/
+    cp -r scripts $out/share/mpv
+    cp -r fonts $out/share
+
+    runHook postInstall
+  '';
+
+  passthru.scriptName = "uosc.lua";
+  # the script uses custom "texture" fonts as the background for ui elements.
+  # In order for mpv to find them, we need to adjust the fontconfig search path.
+  passthru.extraWrapperArgs = [
+    "--set"
+    "FONTCONFIG_FILE"
+    (toString (makeFontsConf {
+      fontDirectories = [ "${finalAttrs.finalPackage}/share/fonts" ];
+    }))
+  ];
+
+  meta = with lib; {
+    description = "Feature-rich minimalist proximity-based UI for MPV player";
+    homepage = "https://github.com/tomasklaen/uosc";
+    license = licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ apfelkuchen6 ];
+  };
+})
diff --git a/pkgs/applications/video/mpv/wrapper.nix b/pkgs/applications/video/mpv/wrapper.nix
index e9be744ed01c9..0dd735071f005 100644
--- a/pkgs/applications/video/mpv/wrapper.nix
+++ b/pkgs/applications/video/mpv/wrapper.nix
@@ -18,6 +18,7 @@ let
     # expected to have a `scriptName` passthru attribute that points to the
     # name of the script that would reside in the script's derivation's
     # `$out/share/mpv/scripts/`.
+    # A script can optionally also provide an `extraWrapperArgs` passthru attribute.
     scripts ? [],
     extraUmpvWrapperArgs ? []
   }:
@@ -49,6 +50,8 @@ let
           # attribute of the script derivation from the `scripts`
           "--script=${script}/share/mpv/scripts/${script.scriptName}"
         ]
+        # scripts can also set the `extraWrapperArgs` passthru
+        ++ (script.extraWrapperArgs or [])
       ) scripts
     )) ++ extraMakeWrapperArgs)
     ;
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index 435a942daa26c..c4d1ef7b209e5 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -276,7 +276,9 @@ crate_: lib.makeOverridable
       name = "rust_${crate.crateName}-${crate.version}${lib.optionalString buildTests_ "-test"}";
       version = crate.version;
       depsBuildBuild = [ pkgsBuildBuild.stdenv.cc ];
-      nativeBuildInputs = [ rust stdenv.cc cargo jq ] ++ (crate.nativeBuildInputs or [ ]) ++ nativeBuildInputs_;
+      nativeBuildInputs = [ rust stdenv.cc cargo jq ]
+        ++ lib.optionals stdenv.buildPlatform.isDarwin [ libiconv ]
+        ++ (crate.nativeBuildInputs or [ ]) ++ nativeBuildInputs_;
       buildInputs = lib.optionals stdenv.isDarwin [ libiconv ] ++ (crate.buildInputs or [ ]) ++ buildInputs_;
       dependencies = map lib.getLib dependencies_;
       buildDependencies = map lib.getLib buildDependencies_;
diff --git a/pkgs/development/libraries/librclone/default.nix b/pkgs/development/libraries/librclone/default.nix
new file mode 100644
index 0000000000000..dbf46ab398bdd
--- /dev/null
+++ b/pkgs/development/libraries/librclone/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, buildGoModule
+, rclone
+}:
+
+let
+  ext = stdenv.hostPlatform.extensions.sharedLibrary;
+in buildGoModule rec {
+  pname = "librclone";
+  inherit (rclone) version src vendorSha256;
+
+  buildPhase = ''
+    runHook preBuild
+    cd librclone
+    go build --buildmode=c-shared -o librclone${ext} github.com/rclone/rclone/librclone
+    runHook postBuildd
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/lib librclone${ext}
+    install -Dt $out/include librclone.h
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Rclone as a C library";
+    homepage = "https://github.com/rclone/rclone/tree/master/librclone";
+    maintainers = with lib.maintainers; [ dotlambda ];
+    inherit (rclone.meta) license platforms;
+  };
+}
diff --git a/pkgs/development/libraries/science/math/magma/generic.nix b/pkgs/development/libraries/science/math/magma/generic.nix
index c997fcc090133..6ab68e297c2c5 100644
--- a/pkgs/development/libraries/science/math/magma/generic.nix
+++ b/pkgs/development/libraries/science/math/magma/generic.nix
@@ -95,7 +95,10 @@ let
       cuda_cudart # cuda_runtime.h
       libcublas
       libcusparse
+    ] ++ lists.optionals (strings.versionOlder cudaVersion "11.8") [
       cuda_nvprof # <cuda_profiler_api.h>
+    ] ++ lists.optionals (strings.versionAtLeast cudaVersion "11.8") [
+      cuda_profiler_api # <cuda_profiler_api.h>
     ];
   };
 in
diff --git a/pkgs/development/python-modules/aioslimproto/default.nix b/pkgs/development/python-modules/aioslimproto/default.nix
index 59dca9a34670b..c790d12b1bfa5 100644
--- a/pkgs/development/python-modules/aioslimproto/default.nix
+++ b/pkgs/development/python-modules/aioslimproto/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "aioslimproto";
-  version = "2.1.1";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Er7UsJDBDXD8CQSkUIOeO78HQaCsrRycU18LOjBpv/w=";
+    hash = "sha256-3aLAAUaoGkdzjUHFb6aiyVv0fzO8DojN0Y3DTf6h2Ow=";
   };
 
   nativeCheckInputs = [
@@ -35,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Module to control Squeezebox players";
     homepage = "https://github.com/home-assistant-libs/aioslimproto";
+    changelog = "https://github.com/home-assistant-libs/aioslimproto/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/tools/misc/go-licenses/default.nix b/pkgs/development/tools/misc/go-licenses/default.nix
new file mode 100644
index 0000000000000..c9bc25973a4e3
--- /dev/null
+++ b/pkgs/development/tools/misc/go-licenses/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "go-licenses";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "go-licenses";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-GAlwTVoVA+n9+EfhybmpKm16FoY9kFzrxy1ZQxS6A8E=";
+  };
+
+  vendorHash = "sha256-ToRn2wj7Yi+UDJwvAhV0ACEhqlcQjt4bRpz7abNRt9A=";
+
+  patches = [
+    # Without this, we get error messages like:
+    # vendor/golang.org/x/sys/unix/syscall.go:83:16: unsafe.Slice requires go1.17 or later (-lang was set to go1.16; check go.mod)
+    # The patch was generated by changing "go 1.16" to "go 1.17" and executing `go mod tidy`.
+    ./fix-go-version-error.patch
+  ];
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  postInstall = ''
+    installShellCompletion --cmd go-licenses \
+      --bash <("$out/bin/go-licenses" completion bash) \
+      --fish <("$out/bin/go-licenses" completion fish) \
+      --zsh  <("$out/bin/go-licenses" completion zsh)
+  '';
+
+  # Tests require internet connection
+  doCheck = false;
+
+  meta = with lib; {
+    changelog = "https://github.com/google/go-licenses/releases/tag/v${version}";
+    description = "Reports on the licenses used by a Go package and its dependencies";
+    homepage = "https://github.com/google/go-licenses";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ Luflosi ];
+  };
+}
diff --git a/pkgs/development/tools/misc/go-licenses/fix-go-version-error.patch b/pkgs/development/tools/misc/go-licenses/fix-go-version-error.patch
new file mode 100644
index 0000000000000..1e102636dd453
--- /dev/null
+++ b/pkgs/development/tools/misc/go-licenses/fix-go-version-error.patch
@@ -0,0 +1,65 @@
+diff --git a/go.mod b/go.mod
+index 7e3d596..d90b393 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,27 +1,50 @@
+ module github.com/google/go-licenses
+ 
+-go 1.16
++go 1.17
+ 
+ require (
+-	cloud.google.com/go/iam v0.4.0 // indirect
+-	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
+ 	github.com/google/go-cmp v0.5.8
+ 	github.com/google/go-replayers/httpreplay v1.1.1
+ 	github.com/google/licenseclassifier v0.0.0-20210722185704-3043a050f148
+-	github.com/kr/text v0.2.0 // indirect
+-	github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
+ 	github.com/otiai10/copy v1.6.0
+-	github.com/pkg/errors v0.9.1 // indirect
+-	github.com/sergi/go-diff v1.2.0 // indirect
+ 	github.com/spf13/cobra v1.6.0
+-	github.com/stretchr/testify v1.8.0 // indirect
+ 	go.opencensus.io v0.23.0
+-	golang.org/x/crypto v0.1.0 // indirect
+ 	golang.org/x/mod v0.7.0
+ 	golang.org/x/net v0.5.0
+ 	golang.org/x/text v0.6.0
+ 	golang.org/x/tools v0.5.0
+-	gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
+ 	gopkg.in/src-d/go-git.v4 v4.13.1
+ 	k8s.io/klog/v2 v2.80.1
+ )
++
++require (
++	cloud.google.com/go v0.102.1 // indirect
++	cloud.google.com/go/iam v0.4.0 // indirect
++	cloud.google.com/go/storage v1.22.1 // indirect
++	github.com/emirpasic/gods v1.12.0 // indirect
++	github.com/go-logr/logr v1.2.0 // indirect
++	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
++	github.com/google/martian/v3 v3.3.2 // indirect
++	github.com/inconshreveable/mousetrap v1.0.1 // indirect
++	github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
++	github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd // indirect
++	github.com/kr/text v0.2.0 // indirect
++	github.com/mitchellh/go-homedir v1.1.0 // indirect
++	github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
++	github.com/pkg/errors v0.9.1 // indirect
++	github.com/sergi/go-diff v1.2.0 // indirect
++	github.com/spf13/pflag v1.0.5 // indirect
++	github.com/src-d/gcfg v1.4.0 // indirect
++	github.com/stretchr/testify v1.8.0 // indirect
++	github.com/xanzy/ssh-agent v0.2.1 // indirect
++	golang.org/x/crypto v0.1.0 // indirect
++	golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 // indirect
++	golang.org/x/sys v0.4.0 // indirect
++	google.golang.org/api v0.93.0 // indirect
++	google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959 // indirect
++	google.golang.org/grpc v1.48.0 // indirect
++	google.golang.org/protobuf v1.28.1 // indirect
++	gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
++	gopkg.in/src-d/go-billy.v4 v4.3.2 // indirect
++	gopkg.in/warnings.v0 v0.1.2 // indirect
++)
diff --git a/pkgs/development/tools/viceroy/default.nix b/pkgs/development/tools/viceroy/default.nix
new file mode 100644
index 0000000000000..11dfd22d51d31
--- /dev/null
+++ b/pkgs/development/tools/viceroy/default.nix
@@ -0,0 +1,29 @@
+{ rustPlatform, fetchFromGitHub, lib, stdenv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "viceroy";
+  version = "0.3.5";
+
+  src = fetchFromGitHub {
+    owner = "fastly";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-X+RmsS+GxdBiFt2Fo0MgkuyjQDwQNuOLDL1YVQdqhXo=";
+  };
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  cargoHash = "sha256-vbhBlfHrFcjtaUJHYvB106ElYP0NquOo+rgIx9cWenY=";
+
+  cargoTestFlags = [
+    "--package viceroy-lib"
+  ];
+
+  meta = with lib; {
+    description = "Viceroy provides local testing for developers working with Compute@Edge";
+    homepage = "https://github.com/fastly/Viceroy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ereslibre shyim ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix
index 9f172447f10e1..597b76bb26c3a 100644
--- a/pkgs/os-specific/linux/kernel/zen-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix
@@ -5,15 +5,15 @@ let
   # ./update-zen.py zen
   zenVariant = {
     version = "6.2.2"; #zen
-    suffix = "zen1"; #zen
-    sha256 = "004aghwdclky7w341yg9nkr5r58qnp4hxnmvxrp2z06pzcbsq933"; #zen
+    suffix = "zen2"; #zen
+    sha256 = "0hbsd8id1f27zlxffid7pyycm5dlh6hw8y6f8dv6czd8k9v1qngs"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
   lqxVariant = {
-    version = "6.1.14"; #lqx
-    suffix = "lqx1"; #lqx
-    sha256 = "026nnmbpipk4gg7llsvm4fgws3ka0hjdywl7h0a8bvq6n9by15i6"; #lqx
+    version = "6.1.15"; #lqx
+    suffix = "lqx2"; #lqx
+    sha256 = "1z3bwn2pmbaa8cqld4fsxkzkdb5213n83bgb8jkm9v4943pa220i"; #lqx
     isLqx = true;
   };
   zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // {
diff --git a/pkgs/servers/haste-server/default.nix b/pkgs/servers/haste-server/default.nix
index cc445312e691d..14ec58afa3504 100644
--- a/pkgs/servers/haste-server/default.nix
+++ b/pkgs/servers/haste-server/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "haste-server";
-  version = "ccc5049b07e9f90ec19fc2a88e5056367c53e202";
+  version = "b52b394bad909ddf151073987671e843540d91d6";
 
   src = fetchFromGitHub {
     owner = "toptal";
     repo = "haste-server";
     rev = version;
-    hash = "sha256-ODFHB2QwfLPxfjFsHrblSeiqLc9nPo7EOPGQ3AoqzSQ=";
+    hash = "sha256-AVoz5MY5gNxQrHtDMPbQ85IjmHii1v6C2OXpEQj9zC8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/haste-server/node-deps.nix b/pkgs/servers/haste-server/node-deps.nix
index 36a5d6fd39764..2c8e11bb92478 100644
--- a/pkgs/servers/haste-server/node-deps.nix
+++ b/pkgs/servers/haste-server/node-deps.nix
@@ -850,13 +850,13 @@ let
         sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==";
       };
     };
-    "pg-8.8.0" = {
+    "pg-8.10.0" = {
       name = "pg";
       packageName = "pg";
-      version = "8.8.0";
+      version = "8.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz";
-        sha512 = "UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==";
+        url = "https://registry.npmjs.org/pg/-/pg-8.10.0.tgz";
+        sha512 = "ke7o7qSTMb47iwzOSaZMfeR7xToFdkE71ifIipOAAaLIM0DYzfOAXlgFFmYUIE2BcJtvnVlGCID84ZzCegE8CQ==";
       };
     };
     "pg-connection-string-2.5.0" = {
@@ -877,22 +877,22 @@ let
         sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
       };
     };
-    "pg-pool-3.5.2" = {
+    "pg-pool-3.6.0" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.5.2";
+      version = "3.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.2.tgz";
-        sha512 = "His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz";
+        sha512 = "clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ==";
       };
     };
-    "pg-protocol-1.5.0" = {
+    "pg-protocol-1.6.0" = {
       name = "pg-protocol";
       packageName = "pg-protocol";
-      version = "1.5.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz";
-        sha512 = "muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==";
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz";
+        sha512 = "M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==";
       };
     };
     "pg-types-2.2.0" = {
@@ -985,13 +985,13 @@ let
         sha512 = "+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==";
       };
     };
-    "readable-stream-3.6.0" = {
+    "readable-stream-3.6.1" = {
       name = "readable-stream";
       packageName = "readable-stream";
-      version = "3.6.0";
+      version = "3.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz";
+        sha512 = "+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==";
       };
     };
     "readdirp-3.5.0" = {
@@ -1350,7 +1350,7 @@ let
     name = "haste";
     packageName = "haste";
     version = "0.1.0";
-    src = ../../../../../../../../../nix/store/zmi5rwpy1kmyj52ymv3yc8ziiypjgrxd-source;
+    src = ../../../../../../../../../nix/store/v45nw2igqcjw58j7ns9xrqj6f6n3jafd-source;
     dependencies = [
       sources."@ungap/promise-all-settled-1.1.2"
       sources."ansi-colors-4.1.1"
@@ -1365,7 +1365,7 @@ let
       sources."binary-extensions-2.2.0"
       (sources."bl-4.1.0" // {
         dependencies = [
-          sources."readable-stream-3.6.0"
+          sources."readable-stream-3.6.1"
           sources."string_decoder-1.3.0"
         ];
       })
@@ -1466,11 +1466,11 @@ let
       sources."parseurl-1.3.3"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."pg-8.8.0"
+      sources."pg-8.10.0"
       sources."pg-connection-string-2.5.0"
       sources."pg-int8-1.0.1"
-      sources."pg-pool-3.5.2"
-      sources."pg-protocol-1.5.0"
+      sources."pg-pool-3.6.0"
+      sources."pg-protocol-1.6.0"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.5"
       sources."picomatch-2.3.1"
diff --git a/pkgs/servers/redpanda/default.nix b/pkgs/servers/redpanda/default.nix
index c59aa621cc4d6..fde3454dd310b 100644
--- a/pkgs/servers/redpanda/default.nix
+++ b/pkgs/servers/redpanda/default.nix
@@ -7,12 +7,12 @@
 , stdenv
 }:
 let
-  version = "22.3.13";
+  version = "23.1.1";
   src = fetchFromGitHub {
     owner = "redpanda-data";
     repo = "redpanda";
     rev = "v${version}";
-    sha256 = "sha256-cUQFDXWnQYSLcfKFYg6BLrxF77iX+Yx3hcul4tMxdoc=";
+    sha256 = "sha256-3IRhr+XQLZXCeKhUHOlE8REwUkxLw1jcHYIataG3BaM=";
   };
   server = callPackage ./server.nix { inherit src version; };
 in
@@ -21,7 +21,7 @@ buildGoModule rec {
   inherit doCheck src version;
   modRoot = "./src/go/rpk";
   runVend = false;
-  vendorSha256 = "sha256-JVZuHRh3gavIGArxDkqUQsL5oBjz35EKGsC75Sy+cMo=";
+  vendorHash = "sha256-hG1UPy6Lp0F6y0h9Py28zRPS/s5JvoJ2P3OSOrrjz8U=";
 
   ldflags = [
     ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.version=${version}"''
diff --git a/pkgs/tools/misc/wakapi/default.nix b/pkgs/tools/misc/wakapi/default.nix
index c04c98e053155..1300b2df9081f 100644
--- a/pkgs/tools/misc/wakapi/default.nix
+++ b/pkgs/tools/misc/wakapi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wakapi";
-  version = "2.6.1";
+  version = "2.6.2";
 
   src = fetchFromGitHub {
     owner = "muety";
     repo = pname;
     rev = version;
-    sha256 = "1bhd96la2ipwna9lic50pd5klcc3xj9yqd5rd1cgzznbm4ylpjqb";
+    sha256 = "sha256-yMxcePwBUteqrdfvDjZSRInOXMFmwaFoVBihcMQFTME=";
   };
 
-  vendorHash = "sha256-fkSXaP9hHCCyO8mFB5CKPExifuNjTvDnXupjCVllG9I";
+  vendorHash = "sha256-sfx8qlmJrS0hkD6DSvKqfnBDbxj8eNA3hnprSwA2fSI=";
 
   # Not a go module required by the project, contains development utilities
   excludedPackages = [ "scripts" ];
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
index 6106ae16c4a86..a9da1417c9fab 100644
--- a/pkgs/tools/networking/amass/default.nix
+++ b/pkgs/tools/networking/amass/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.21.2";
+  version = "3.22.0";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    hash = "sha256-s5+l5LBDUPhKkP1+m0R2UXywBX0y+4FWtyYP5F7ccaQ=";
+    hash = "sha256-ph5SYN91/ibZdAAA/SZt7lecZCC93uotjfzkI4erzgU=";
   };
 
-  vendorHash = "sha256-Syi+znSXxjxfD9gqAyqhksWmxuNkwialWaem1NE5MKQ=";
+  vendorHash = "sha256-fZd++VsLcs3MzcM23zE3AVaDPXf+cuLdJp8hsCeEZ1Y=";
 
   outputs = [
     "out"
diff --git a/pkgs/tools/networking/networkd-dispatcher/default.nix b/pkgs/tools/networking/networkd-dispatcher/default.nix
index b8812cb678deb..161772ed4819c 100644
--- a/pkgs/tools/networking/networkd-dispatcher/default.nix
+++ b/pkgs/tools/networking/networkd-dispatcher/default.nix
@@ -19,6 +19,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-yO9/HlUkaQmW/n9N3vboHw//YMzBjxIHA2zAxgZNEv0=";
   };
 
+  patches = [
+    # Support rule files in NixOS store paths. Required for the networkd-dispatcher
+    # module to work
+    ./support_nix_store_path.patch
+  ];
+
   postPatch = ''
     # Fix paths in systemd unit file
     substituteInPlace networkd-dispatcher.service \
diff --git a/pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch b/pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch
new file mode 100644
index 0000000000000..6d32548f18838
--- /dev/null
+++ b/pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch
@@ -0,0 +1,13 @@
+diff --git a/networkd-dispatcher b/networkd-dispatcher
+index ef877ce..8c341f2 100755
+--- a/networkd-dispatcher
++++ b/networkd-dispatcher
+@@ -171,6 +171,8 @@ def check_perms(path, mode=0o755, uid=0, gid=0):
+ 
+     if not os.path.exists(path):
+         raise FileNotFoundError
++    if re.search('^/nix/store/.*', str(path)):
++        return True
+     st = os.stat(path, follow_symlinks=False)
+     st_mode = st.st_mode & 0x00FFF
+     if st.st_uid == uid and st.st_gid == gid and st_mode == mode:
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ba48c480a541b..5d114e99a75c7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13587,6 +13587,10 @@ with pkgs;
 
   veryfasttree = callPackage ../applications/science/biology/veryfasttree { };
 
+  viceroy = callPackage ../development/tools/viceroy {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   vlan = callPackage ../tools/networking/vlan { };
 
   vmtouch = callPackage ../tools/misc/vmtouch { };
@@ -18055,6 +18059,8 @@ with pkgs;
   # openjdk-17 fails on 4.4.1. Provide 4.4 until we fix it.
   gnumake44 = callPackage ../development/tools/build-managers/gnumake/4.4 { };
 
+  go-licenses = callPackage ../development/tools/misc/go-licenses  { };
+
   gob2 = callPackage ../development/tools/misc/gob2 { };
 
   gocd-agent = callPackage ../development/tools/continuous-integration/gocd-agent { };
@@ -21871,6 +21877,8 @@ with pkgs;
 
   libqt5pas = libsForQt5.callPackage ../development/compilers/fpc/libqt5pas.nix { };
 
+  librclone = callPackage ../development/libraries/librclone { };
+
   libroxml = callPackage ../development/libraries/libroxml { };
 
   librsvg = callPackage ../development/libraries/librsvg {
@@ -28880,6 +28888,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Carbon;
   };
 
+  celeste = callPackage ../applications/networking/sync/celeste { };
+
   cyan = callPackage ../applications/graphics/cyan {};
 
   cyanrip = callPackage ../applications/audio/cyanrip { };
@@ -31798,6 +31808,7 @@ with pkgs;
     simple-mpv-webui = callPackage ../applications/video/mpv/scripts/simple-mpv-webui.nix {};
     sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {};
     thumbnail = callPackage ../applications/video/mpv/scripts/thumbnail.nix { };
+    uosc = callPackage ../applications/video/mpv/scripts/uosc.nix { };
     vr-reversal = callPackage ../applications/video/mpv/scripts/vr-reversal.nix {};
     webtorrent-mpv-hook = callPackage ../applications/video/mpv/scripts/webtorrent-mpv-hook.nix { };
     youtube-quality = callPackage ../applications/video/mpv/scripts/youtube-quality.nix { };