summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/builders/packages/steam.section.md2
-rw-r--r--lib/types.nix2
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2205.section.xml7
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md3
-rw-r--r--nixos/modules/misc/ids.nix4
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/rename.nix1
-rw-r--r--nixos/modules/security/systemd-confinement.nix4
-rw-r--r--nixos/modules/services/security/fprot.nix82
-rw-r--r--nixos/modules/services/security/opensnitch.nix103
-rw-r--r--nixos/release-small.nix3
-rw-r--r--nixos/tests/systemd-confinement.nix29
-rw-r--r--pkgs/applications/editors/eclipse/build-eclipse.nix3
-rw-r--r--pkgs/applications/editors/emacs/generic.nix3
-rw-r--r--pkgs/applications/misc/electrum-grs/default.nix2
-rw-r--r--pkgs/applications/misc/klayout/default.nix14
-rw-r--r--pkgs/applications/misc/minigalaxy/default.nix6
-rw-r--r--pkgs/applications/misc/playonlinux/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/octant/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix6
-rw-r--r--pkgs/applications/networking/flexget/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/alacritty/default.nix8
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/default.nix39
-rw-r--r--pkgs/build-support/dotnet/make-nuget-deps/default.nix9
-rw-r--r--pkgs/build-support/dotnet/make-nuget-source/default.nix30
-rw-r--r--pkgs/build-support/writers/default.nix38
-rw-r--r--pkgs/build-support/writers/test.nix27
-rw-r--r--pkgs/development/python-modules/adafruit-io/default.nix57
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix4
-rw-r--r--pkgs/development/python-modules/pycfmodel/default.nix4
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--pkgs/development/python-modules/pyprecice/default.nix26
-rw-r--r--pkgs/development/python-modules/pyskyqremote/default.nix6
-rw-r--r--pkgs/development/python-modules/soco/default.nix4
-rw-r--r--pkgs/development/python-modules/tifffile/python2-regex-compat.patch23
-rw-r--r--pkgs/development/python-modules/torch-tb-profiler/default.nix48
-rw-r--r--pkgs/development/python-modules/twitchapi/default.nix48
-rw-r--r--pkgs/development/python-modules/wandb/default.nix8
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix4
-rw-r--r--pkgs/games/steam-tui/default.nix6
-rw-r--r--pkgs/games/steam/fhsenv.nix72
-rw-r--r--pkgs/tools/admin/pulumi/data.nix476
-rwxr-xr-xpkgs/tools/admin/pulumi/update.sh18
-rw-r--r--pkgs/tools/networking/opensnitch/daemon.nix7
-rw-r--r--pkgs/tools/security/fprot/default.nix42
-rw-r--r--pkgs/tools/security/step-cli/default.nix6
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix11
-rw-r--r--pkgs/top-level/python-packages.nix8
54 files changed, 910 insertions, 445 deletions
diff --git a/doc/builders/packages/steam.section.md b/doc/builders/packages/steam.section.md
index 0cfc1a2c245..3ce33c9b60e 100644
--- a/doc/builders/packages/steam.section.md
+++ b/doc/builders/packages/steam.section.md
@@ -56,7 +56,7 @@ Use `programs.steam.enable = true;` if you want to add steam to systemPackages a
 
 ## steam-run {#sec-steam-run}
 
-The FHS-compatible chroot used for Steam can also be used to run other Linux games that expect a FHS environment. To use it, install the `steam-run-native` package and run the game with
+The FHS-compatible chroot used for Steam can also be used to run other Linux games that expect a FHS environment. To use it, install the `steam-run` package and run the game with
 
 ```
 steam-run ./foo
diff --git a/lib/types.nix b/lib/types.nix
index acc7eac104e..3fcac9c31b3 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -514,7 +514,7 @@ rec {
 
     functionTo = elemType: mkOptionType {
       name = "functionTo";
-      description = "function that evaluates to a(n) ${elemType.name}";
+      description = "function that evaluates to a(n) ${elemType.description}";
       check = isFunction;
       merge = loc: defs:
         fnArgs: (mergeDefinitions (loc ++ [ "[function body]" ]) elemType (map (fn: { inherit (fn) file; value = fn.value fnArgs; }) defs)).mergedValue;
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index a6bd453b35d..4acf8195a8d 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -555,6 +555,13 @@
       </listitem>
       <listitem>
         <para>
+          The F-PROT antivirus (<literal>fprot</literal> package) and
+          its service module were removed because it reached
+          <link xlink:href="https://kb.cyren.com/av-support/index.php?/Knowledgebase/Article/View/434/0/end-of-sale--end-of-life-for-f-prot-and-csam">end-of-life</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <literal>bird1</literal> and its modules
           <literal>services.bird</literal> as well as
           <literal>services.bird6</literal> have been removed. Upgrade
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index 8f5b4789a42..366f0552589 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -180,6 +180,9 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - `tilp2` was removed together with its module
 
+- The F-PROT antivirus (`fprot` package) and its service module were removed because it
+  reached [end-of-life](https://kb.cyren.com/av-support/index.php?/Knowledgebase/Article/View/434/0/end-of-sale--end-of-life-for-f-prot-and-csam).
+
 - `bird1` and its modules `services.bird` as well as `services.bird6` have been removed. Upgrade to `services.bird2`.
 
 - The options `networking.interfaces.<name>.ipv4.routes` and `networking.interfaces.<name>.ipv6.routes` are no longer ignored when using networkd instead of the default scripted network backend by setting `networking.useNetworkd` to `true`.
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 1b4105c676d..7d1faa50f4b 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -89,7 +89,7 @@ in
       prayer = 49;
       mpd = 50;
       clamav = 51;
-      fprot = 52;
+      #fprot = 52; # unused
       # bind = 53; #dynamically allocated as of 2021-09-03
       wwwrun = 54;
       #adm = 55; # unused
@@ -412,7 +412,7 @@ in
       prayer = 49;
       mpd = 50;
       clamav = 51;
-      fprot = 52;
+      #fprot = 52; # unused
       #bind = 53; # unused
       wwwrun = 54;
       adm = 55;
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index fd6bd087fb7..c102f4c97ee 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -951,7 +951,6 @@
   ./services/security/clamav.nix
   ./services/security/fail2ban.nix
   ./services/security/fprintd.nix
-  ./services/security/fprot.nix
   ./services/security/haka.nix
   ./services/security/haveged.nix
   ./services/security/hockeypuck.nix
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index d72ff1c6f17..195cf87e6a8 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -50,6 +50,7 @@ with lib;
     (mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")
     (mkRemovedOptionModule [ "services" "fourStore" ] "The fourStore module has been removed")
     (mkRemovedOptionModule [ "services" "fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed")
+    (mkRemovedOptionModule [ "services" "fprot" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "frab" ] "The frab module has been removed")
     (mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "mailpile" ] "The corresponding package was removed from nixpkgs.")
diff --git a/nixos/modules/security/systemd-confinement.nix b/nixos/modules/security/systemd-confinement.nix
index 0e3ec5af323..f3a2de3bf87 100644
--- a/nixos/modules/security/systemd-confinement.nix
+++ b/nixos/modules/security/systemd-confinement.nix
@@ -175,8 +175,8 @@ in {
       serviceName = "${name}.service";
       excludedPath = rootPaths;
     } ''
-      mkdir -p "$out/lib/systemd/system"
-      serviceFile="$out/lib/systemd/system/$serviceName"
+      mkdir -p "$out/lib/systemd/system/$serviceName.d"
+      serviceFile="$out/lib/systemd/system/$serviceName.d/confinement.conf"
 
       echo '[Service]' > "$serviceFile"
 
diff --git a/nixos/modules/services/security/fprot.nix b/nixos/modules/services/security/fprot.nix
deleted file mode 100644
index df60d553e85..00000000000
--- a/nixos/modules/services/security/fprot.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ config, lib, pkgs, ... }:
-with lib;
-let
-  fprotUser = "fprot";
-  stateDir = "/var/lib/fprot";
-  fprotGroup = fprotUser;
-  cfg = config.services.fprot;
-in {
-  options = {
-
-    services.fprot = {
-      updater = {
-        enable = mkEnableOption "automatic F-Prot virus definitions database updates";
-
-        productData = mkOption {
-          description = ''
-            product.data file. Defaults to the one supplied with installation package.
-          '';
-          type = types.path;
-        };
-
-        frequency = mkOption {
-          default = 30;
-          type = types.int;
-          description = ''
-            Update virus definitions every X minutes.
-          '';
-        };
-
-        licenseKeyfile = mkOption {
-          type = types.path;
-          description = ''
-            License keyfile. Defaults to the one supplied with installation package.
-          '';
-        };
-
-      };
-    };
-  };
-
-  ###### implementation
-
-  config = mkIf cfg.updater.enable {
-
-    services.fprot.updater.productData = mkDefault "${pkgs.fprot}/opt/f-prot/product.data";
-    services.fprot.updater.licenseKeyfile = mkDefault "${pkgs.fprot}/opt/f-prot/license.key";
-
-    environment.systemPackages = [ pkgs.fprot ];
-    environment.etc."f-prot.conf" = {
-      source = "${pkgs.fprot}/opt/f-prot/f-prot.conf";
-    };
-
-    users.users.${fprotUser} =
-      { uid = config.ids.uids.fprot;
-        description = "F-Prot daemon user";
-        home = stateDir;
-      };
-
-    users.groups.${fprotGroup} =
-      { gid = config.ids.gids.fprot; };
-
-    services.cron.systemCronJobs = [ "*/${toString cfg.updater.frequency} * * * * root start fprot-updater" ];
-
-    systemd.services.fprot-updater = {
-      serviceConfig = {
-        Type = "oneshot";
-        RemainAfterExit = false;
-      };
-      wantedBy = [ "multi-user.target" ];
-
-      # have to copy fpupdate executable because it insists on storing the virus database in the same dir
-      preStart = ''
-        mkdir -m 0755 -p ${stateDir}
-        chown ${fprotUser}:${fprotGroup} ${stateDir}
-        cp ${pkgs.fprot}/opt/f-prot/fpupdate ${stateDir}
-        ln -sf ${cfg.updater.productData} ${stateDir}/product.data
-      '';
-
-      script = "/var/lib/fprot/fpupdate --keyfile ${cfg.updater.licenseKeyfile}";
-    };
- };
-}
diff --git a/nixos/modules/services/security/opensnitch.nix b/nixos/modules/services/security/opensnitch.nix
index 919346cf2bb..f9b4985e199 100644
--- a/nixos/modules/services/security/opensnitch.nix
+++ b/nixos/modules/services/security/opensnitch.nix
@@ -3,22 +3,123 @@
 with lib;
 
 let
-  name = "opensnitch";
   cfg = config.services.opensnitch;
+  format = pkgs.formats.json {};
 in {
   options = {
     services.opensnitch = {
       enable = mkEnableOption "Opensnitch application firewall";
+      settings = mkOption {
+        type = types.submodule {
+          freeformType = format.type;
+
+          options = {
+            Server = {
+
+              Address = mkOption {
+                type = types.str;
+                description = ''
+                  Unix socket path (unix:///tmp/osui.sock, the "unix:///" part is
+                  mandatory) or TCP socket (192.168.1.100:50051).
+                '';
+              };
+
+              LogFile = mkOption {
+                type = types.path;
+                description = ''
+                  File to write logs to (use /dev/stdout to write logs to standard
+                  output).
+                '';
+              };
+
+            };
+
+            DefaultAction = mkOption {
+              type = types.enum [ "allow" "deny" ];
+              description = ''
+                Default action whether to block or allow application internet
+                access.
+              '';
+            };
+
+            DefaultDuration = mkOption {
+              type = types.enum [
+                "once" "always" "until restart" "30s" "5m" "15m" "30m" "1h"
+              ];
+              description = ''
+                Default duration of firewall rule.
+              '';
+            };
+
+            InterceptUnknown = mkOption {
+              type = types.bool;
+              description = ''
+                Wheter to intercept spare connections.
+              '';
+            };
+
+            ProcMonitorMethod = mkOption {
+              type = types.enum [ "ebpf" "proc" "ftrace" "audit" ];
+              description = ''
+                Which process monitoring method to use.
+              '';
+            };
+
+            LogLevel = mkOption {
+              type = types.enum [ 0 1 2 3 4 ];
+              description = ''
+                Default log level from 0 to 4 (debug, info, important, warning,
+                error).
+              '';
+            };
+
+            Firewall = mkOption {
+              type = types.enum [ "iptables" "nftables" ];
+              description = ''
+                Which firewall backend to use.
+              '';
+            };
+
+            Stats = {
+
+              MaxEvents = mkOption {
+                type = types.int;
+                description = ''
+                  Max events to send to the GUI.
+                '';
+              };
+
+              MaxStats = mkOption {
+                type = types.int;
+                description = ''
+                  Max stats per item to keep in backlog.
+                '';
+              };
+
+            };
+          };
+        };
+        description = ''
+          opensnitchd configuration. Refer to
+          <link xlink:href="https://github.com/evilsocket/opensnitch/wiki/Configurations"/>
+          for details on supported values.
+        '';
+      };
     };
   };
 
   config = mkIf cfg.enable {
 
+    # pkg.opensnitch is referred to elsewhere in the module so we don't need to worry about it being garbage collected
+    services.opensnitch.settings = mapAttrs (_: v: mkDefault v) (builtins.fromJSON (builtins.unsafeDiscardStringContext (builtins.readFile "${pkgs.opensnitch}/etc/default-config.json")));
+
     systemd = {
       packages = [ pkgs.opensnitch ];
       services.opensnitchd.wantedBy = [ "multi-user.target" ];
     };
 
+    environment.etc."opensnitchd/default-config.json".source = format.generate "default-config.json" cfg.settings;
+
   };
 }
 
diff --git a/nixos/release-small.nix b/nixos/release-small.nix
index c2ac4c653ea..1d51b4e7f28 100644
--- a/nixos/release-small.nix
+++ b/nixos/release-small.nix
@@ -38,7 +38,8 @@ in rec {
         login
         misc
         nat
-        nfs3
+        # fails with kernel >= 5.15 https://github.com/NixOS/nixpkgs/pull/152505#issuecomment-1005049314
+        #nfs3
         openssh
         php
         predictable-interface-names
diff --git a/nixos/tests/systemd-confinement.nix b/nixos/tests/systemd-confinement.nix
index 8fafb11e1e8..3181af309a6 100644
--- a/nixos/tests/systemd-confinement.nix
+++ b/nixos/tests/systemd-confinement.nix
@@ -17,15 +17,19 @@ import ./make-test-python.nix {
       exit "''${ret:-1}"
     '';
 
-    mkTestStep = num: { config ? {}, testScript }: {
-      systemd.sockets."test${toString num}" = {
+    mkTestStep = num: {
+      testScript,
+      config ? {},
+      serviceName ? "test${toString num}",
+    }: {
+      systemd.sockets.${serviceName} = {
         description = "Socket for Test Service ${toString num}";
         wantedBy = [ "sockets.target" ];
         socketConfig.ListenStream = "/run/test${toString num}.sock";
         socketConfig.Accept = true;
       };
 
-      systemd.services."test${toString num}@" = {
+      systemd.services."${serviceName}@" = {
         description = "Confined Test Service ${toString num}";
         confinement = (config.confinement or {}) // { enable = true; };
         serviceConfig = (config.serviceConfig or {}) // {
@@ -135,6 +139,16 @@ import ./make-test-python.nix {
               machine.succeed('test "$(chroot-exec \'cat "$FOOBAR"\')" = eek')
         '';
       }
+      { serviceName = "shipped-unitfile";
+        config.confinement.mode = "chroot-only";
+        testScript = ''
+          with subtest("check if shipped unit file still works"):
+              machine.succeed(
+                  'chroot-exec \'kill -9 $$ 2>&1 || :\' | '
+                  'grep -q "Too many levels of symbolic links"'
+              )
+        '';
+      }
     ];
 
     options.__testSteps = lib.mkOption {
@@ -143,6 +157,15 @@ import ./make-test-python.nix {
     };
 
     config.environment.systemPackages = lib.singleton testClient;
+    config.systemd.packages = lib.singleton (pkgs.writeTextFile {
+      name = "shipped-unitfile";
+      destination = "/etc/systemd/system/shipped-unitfile@.service";
+      text = ''
+        [Service]
+        SystemCallFilter=~kill
+        SystemCallErrorNumber=ELOOP
+      '';
+    });
 
     config.users.groups.chroot-testgroup = {};
     config.users.users.chroot-testuser = {
diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix
index faa89b9c877..3b497f34a43 100644
--- a/pkgs/applications/editors/eclipse/build-eclipse.nix
+++ b/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender
-, zlib, jdk, glib, gtk, libXtst, libsecret, gsettings-desktop-schemas, webkitgtk
+, zlib, jdk, glib, glib-networking, gtk, libXtst, libsecret, gsettings-desktop-schemas, webkitgtk
 , makeWrapper, perl, ... }:
 
 { name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description, productVersion }:
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
     makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
       --prefix PATH : ${jdk}/bin \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk libXtst libsecret ] ++ lib.optional (webkitgtk != null) webkitgtk)} \
+      --prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \
       --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
       --add-flags "-configuration \$HOME/.eclipse/''${productId}_${productVersion}/configuration"
 
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index 946dba0af8f..82a1d6af832 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -53,7 +53,8 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
   NATIVE_FULL_AOT = "1";
   LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
 } // {
-  inherit pname version;
+  pname = pname + lib.optionalString ( !withX && !withNS && !withGTK2 && !withGTK3 ) "-nox";
+  inherit version;
 
   patches = patches fetchpatch;
 
diff --git a/pkgs/applications/misc/electrum-grs/default.nix b/pkgs/applications/misc/electrum-grs/default.nix
index 412aec97ae5..c8fb9f84ad1 100644
--- a/pkgs/applications/misc/electrum-grs/default.nix
+++ b/pkgs/applications/misc/electrum-grs/default.nix
@@ -42,7 +42,7 @@ python3.pkgs.buildPythonApplication {
   src = fetchFromGitHub {
     owner = "Groestlcoin";
     repo = "electrum-grs";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     sha256 = "0wvbjj80r1zxpz24adkicxsdjnv3nciga6rl1wfmky463w03rca2";
   };
 
diff --git a/pkgs/applications/misc/klayout/default.nix b/pkgs/applications/misc/klayout/default.nix
index 2d75a9da818..9ed67817347 100644
--- a/pkgs/applications/misc/klayout/default.nix
+++ b/pkgs/applications/misc/klayout/default.nix
@@ -1,17 +1,17 @@
-{ lib, mkDerivation, fetchFromGitHub, fetchpatch
+{ lib, mkDerivation, fetchFromGitHub
 , python3, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
-, which, perl, makeWrapper
+, which, perl
 }:
 
 mkDerivation rec {
   pname = "klayout";
-  version = "0.27.3";
+  version = "0.27.8";
 
   src = fetchFromGitHub {
     owner = "KLayout";
     repo = "klayout";
     rev = "v${version}";
-    sha256 = "sha256-6g/QoR16rhUfxhH4JxL6EERcoPVG/6MOxUlo6K/WoE0=";
+    hash = "sha256-t/nd7m8XpB026q/kyH16rKkw3qza19ISalB0Juzx4NU=";
   };
 
   postPatch = ''
@@ -21,6 +21,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [
     which
+    perl
     python3
     ruby
   ];
@@ -35,7 +36,7 @@ mkDerivation rec {
   buildPhase = ''
     runHook preBuild
     mkdir -p $out/lib
-    ./build.sh -qt5 -prefix $out/lib -j$NIX_BUILD_CORES
+    ./build.sh -qt5 -prefix $out/lib -option -j$NIX_BUILD_CORES
     runHook postBuild
   '';
 
@@ -54,8 +55,9 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "High performance layout viewer and editor with support for GDS and OASIS";
-    license = with licenses; [ gpl3 ];
+    license = with licenses; [ gpl2Plus ];
     homepage = "https://www.klayout.de/";
+    changelog = "https://www.klayout.de/development.html#${version}";
     platforms = platforms.linux;
     maintainers = with maintainers; [ knedlsepp ];
   };
diff --git a/pkgs/applications/misc/minigalaxy/default.nix b/pkgs/applications/misc/minigalaxy/default.nix
index 6a1f14cbd44..2786492d47a 100644
--- a/pkgs/applications/misc/minigalaxy/default.nix
+++ b/pkgs/applications/misc/minigalaxy/default.nix
@@ -8,7 +8,7 @@
 , gtk3
 , python3
 , python3Packages
-, steam-run-native
+, steam-run
 , unzip
 , webkitgtk
 , wrapGAppsHook
@@ -54,14 +54,14 @@ python3Packages.buildPythonApplication rec {
     python3.pkgs.requests
     python3.pkgs.setuptools
     python3.pkgs.simplejson
-    steam-run-native
+    steam-run
     unzip
     webkitgtk
   ];
 
   # Run Linux games using the Steam Runtime by using steam-run in the wrapper
   postFixup = ''
-    sed -e 's#exec -a "$0"#exec -a "$0" ${steam-run-native}/bin/steam-run#' -i $out/bin/minigalaxy
+    sed -e 's#exec -a "$0"#exec -a "$0" ${steam-run}/bin/steam-run#' -i $out/bin/minigalaxy
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix
index 74f34081517..58d45d19bee 100644
--- a/pkgs/applications/misc/playonlinux/default.nix
+++ b/pkgs/applications/misc/playonlinux/default.nix
@@ -106,6 +106,16 @@ in stdenv.mkDerivation {
 
     install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop
 
+    makeWrapper $out/share/playonlinux/playonlinux{,-wrapper} \
+      --prefix PATH : ${binpath} \
+      --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/GConf
+    # steam-run is needed to run the downloaded wine executables
+    mkdir -p $out/bin
+    cat > $out/bin/playonlinux <<EOF
+    #!${stdenv.shell} -e
+    exec ${steam-run}/bin/steam-run $out/share/playonlinux/playonlinux-wrapper "\$@"
+    EOF
+    chmod a+x $out/bin/playonlinux
 
     bunzip2 $out/share/playonlinux/bin/check_dd_x86.bz2
     patchelf --set-interpreter $(cat ${ld32}) --set-rpath ${libs pkgsi686Linux} $out/share/playonlinux/bin/check_dd_x86
diff --git a/pkgs/applications/networking/cluster/octant/default.nix b/pkgs/applications/networking/cluster/octant/default.nix
index 7c97b9eaedb..70c25579079 100644
--- a/pkgs/applications/networking/cluster/octant/default.nix
+++ b/pkgs/applications/networking/cluster/octant/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "octant";
-  version = "0.25.0";
+  version = "0.25.1";
 
   src =
     let
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
       };
     in
     fetchsrc version {
-      x86_64-linux = "sha256-woBmYDOOh3AQH0RZJtMCrOfjFBrpMPzv22cVZ2/xHZo=";
-      aarch64-linux = "sha256-3YUUdOZULjJZqVJP0aO/d1WulXlpwf012NYJ6Mc2qp8=";
-      x86_64-darwin = "sha256-9lbMyEid4I1fRLkLwGbmrB2OkycnGBPUU5wEdVZoTLo=";
-      aarch64-darwin = "sha256-Q0ZkQX9FpzEc6WC3mRoYfg9oW3fvLB1/Ksa64TDlSgo=";
+      x86_64-linux = "sha256-bYqycTB036J8trojySPNkC+jrw76F7+N4I4puGCyalU=";
+      aarch64-linux = "sha256-DlzSIZCAASPnflXQ8ndPU7/0jXA18U4bGGOfmgLXPr0=";
+      x86_64-darwin = "sha256-FaPyrPzO7AzC6LHQP5c58NjLTqU+ei8vFffT8x6mUhQ=";
+      aarch64-darwin = "sha256-31CYhAsHYIVAenp8hFHYj8LhFf3lSiOTw7gULBu3gio=";
     };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 3954a143e5b..897acd76237 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -191,9 +191,9 @@ rec {
   };
 
   terraform_1 = mkTerraform {
-    version = "1.1.6";
-    sha256 = "sha256-Y1ARRCzqYBUQqpqwVrH0PPOZ9IWnw51yfyGFD/6P/ro=";
-    vendorSha256 = "sha256-RhGiY/APd12v0Hoqw381Wlk4oDx7aZt5zZvqkR99rd0=";
+    version = "1.1.7";
+    sha256 = "sha256-E8qY17MSdA7fQW4wGSDiPzbndBP5SZwelAJAWzka/io=";
+    vendorSha256 = "sha256-lyy/hcr00ix6qZoxzSfCbXvDC8dRB2ZjrONywpqbVZ8=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = { inherit plugins; };
   };
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 6c3a9b76935..05ee983765f 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -1,4 +1,7 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib
+, python3Packages
+, fetchFromGitHub
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "flexget";
@@ -9,7 +12,7 @@ python3Packages.buildPythonApplication rec {
     owner = "flexget";
     repo = "flexget";
     rev = "v${version}";
-    sha256 = "sha256-68tD7I7MI/Cp94tp6c4lQx+8xwRnJTKTF/3SWz4Ddgg=";
+    hash = "sha256-68tD7I7MI/Cp94tp6c4lQx+8xwRnJTKTF/3SWz4Ddgg=";
   };
 
   postPatch = ''
@@ -18,7 +21,7 @@ python3Packages.buildPythonApplication rec {
     ln -sf requirements.in requirements.txt
 
     # remove dependency constraints
-    sed 's/==\([0-9]\.\?\)\+//' -i requirements.txt
+    sed 's/[>=]=.*//' -i requirements.txt
 
     # "zxcvbn-python" was renamed to "zxcvbn", and we don't have the former in
     # nixpkgs. See: https://github.com/NixOS/nixpkgs/issues/62110
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 4f19fd924e7..9becd7504e0 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -3,7 +3,7 @@ let
   inherit (pkgs) callPackage fetchurl;
   versions = if stdenv.isLinux then {
     stable = "0.0.17";
-    ptb = "0.0.27";
+    ptb = "0.0.29";
     canary = "0.0.133";
   } else {
     stable = "0.0.264";
@@ -26,7 +26,7 @@ let
       ptb = fetchurl {
         url =
           "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-        sha256 = "0yphs65wpyr0ap6y24b0nbhq7sm02dg5c1yiym1fxjbynm1mdvqb";
+        sha256 = "d78NnQZ3MkLje8mHrI6noH2iD2oEvSJ3cDnsmzQsUYc=";
       };
       canary = fetchurl {
         url =
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 8af5185386c..9cc4e057995 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -24,7 +24,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "5.31.1"; # Please backport all updates to the stable channel.
+  version = "5.33.0"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "sha256-6w6znIIN5TFXTLLhazWyBXiqS5882zMNRZxYxnZjRHA=";
+    sha256 = "03c7pw6cmv8ryw2wqsfc27d953950jc8nxs58mgk08g62v4qa672";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index 178b2351a6b..46f2569b13a 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -142,7 +142,6 @@ stdenv.mkDerivation rec {
   installPhase = let
     steam-run = (steam.override {
       extraPkgs = p: buildInputs;
-      nativeOnly = true;
     }).run;
   in ''
     prefix=$out/opt/kingsoft/wps-office
diff --git a/pkgs/applications/terminal-emulators/alacritty/default.nix b/pkgs/applications/terminal-emulators/alacritty/default.nix
index 78c6c0988c5..e7730ba4b94 100644
--- a/pkgs/applications/terminal-emulators/alacritty/default.nix
+++ b/pkgs/applications/terminal-emulators/alacritty/default.nix
@@ -54,16 +54,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "alacritty";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "alacritty";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-eVPy47T2wcsN7NxtwMoyuC6loBVXsoJjJ/2q31i3vxQ=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-Q/ulRgU6zNLRZUjL83O/Krx85voPWZPZDo65CLp/aOg=";
   };
 
-  cargoSha256 = "sha256-RY+qidm7NZFKq6P8qVaMpxYfTfHpZac2YJwuNbOJwoM=";
+  cargoSha256 = "sha256-S1V8hDuzp4sf6945gqs8QNVdu8jwPGVYjVbV6EY28Hk=";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
index e721b59decb..e3762327a10 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, cacert }:
+{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert }:
 
 { name ? "${args.pname}-${args.version}"
 , pname ? name
@@ -74,40 +74,13 @@ let
     inherit dotnet-sdk dotnet-test-sdk disabledTests nuget-source dotnet-runtime runtimeDeps buildType;
   }) dotnetConfigureHook dotnetBuildHook dotnetCheckHook dotnetInstallHook dotnetFixupHook;
 
-  _nugetDeps = linkFarmFromDrvs "${name}-nuget-deps" (import nugetDeps {
-    fetchNuGet = { pname, version, sha256 }: fetchurl {
-      name = "${pname}-${version}.nupkg";
-      url = "https://www.nuget.org/api/v2/package/${pname}/${version}";
-      inherit sha256;
-    };
-  });
+  _nugetDeps = mkNugetDeps { name = "${name}-nuget-deps"; nugetDeps = import nugetDeps; };
   _localDeps = linkFarmFromDrvs "${name}-local-nuget-deps" projectReferences;
 
-  nuget-source = stdenvNoCC.mkDerivation rec {
-    name = "${pname}-nuget-source";
-    meta.description = "A Nuget source with the dependencies for ${pname}";
-
-    nativeBuildInputs = [ dotnetPackages.Nuget xml2 ];
-    buildCommand = ''
-      export HOME=$(mktemp -d)
-      mkdir -p $out/{lib,share}
-
-      nuget sources Add -Name nixos -Source "$out/lib"
-      nuget init "${_nugetDeps}" "$out/lib"
-      ${lib.optionalString (projectReferences != [])
-        "nuget init \"${_localDeps}\" \"$out/lib\""}
-
-      # Generates a list of all unique licenses' spdx ids.
-      find "$out/lib" -name "*.nuspec" -exec sh -c \
-        "xml2 < {} | grep "license=" | cut -d'=' -f2" \; | sort -u > $out/share/licenses
-    '';
-  } // { # This is done because we need data from `$out` for `meta`. We have to use overrides as to not hit infinite recursion.
-    meta.licence = let
-      depLicenses = lib.splitString "\n" (builtins.readFile "${nuget-source}/share/licenses");
-      getLicence = spdx: lib.filter (license: license.spdxId or null == spdx) (builtins.attrValues lib.licenses);
-    in (lib.flatten (lib.forEach depLicenses (spdx:
-      if (getLicence spdx) != [] then (getLicence spdx) else [] ++ lib.optional (spdx != "") spdx
-    )));
+  nuget-source = mkNugetSource {
+    name = "${args.pname}-nuget-source";
+    description = "A Nuget source with the dependencies for ${args.pname}";
+    deps = [ _nugetDeps _localDeps ];
   };
 
 in stdenvNoCC.mkDerivation (args // {
diff --git a/pkgs/build-support/dotnet/make-nuget-deps/default.nix b/pkgs/build-support/dotnet/make-nuget-deps/default.nix
new file mode 100644
index 00000000000..75178d5b779
--- /dev/null
+++ b/pkgs/build-support/dotnet/make-nuget-deps/default.nix
@@ -0,0 +1,9 @@
+{ linkFarmFromDrvs, fetchurl }:
+{ name, nugetDeps }:
+  linkFarmFromDrvs "${name}-nuget-deps" (nugetDeps {
+    fetchNuGet = { pname, version, sha256 }: fetchurl {
+      name = "${pname}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${pname}/${version}";
+      inherit sha256;
+    };
+  })
diff --git a/pkgs/build-support/dotnet/make-nuget-source/default.nix b/pkgs/build-support/dotnet/make-nuget-source/default.nix
new file mode 100644
index 00000000000..0690a05aa2b
--- /dev/null
+++ b/pkgs/build-support/dotnet/make-nuget-source/default.nix
@@ -0,0 +1,30 @@
+{ dotnetPackages, lib, xml2, stdenvNoCC }:
+{ name, description ? "", deps ? [] }:
+let
+  _nuget-source = stdenvNoCC.mkDerivation rec {
+    inherit name;
+    meta.description = description;
+
+    nativeBuildInputs = [ dotnetPackages.Nuget xml2 ];
+    buildCommand = ''
+      export HOME=$(mktemp -d)
+      mkdir -p $out/{lib,share}
+
+      nuget sources Add -Name nixos -Source "$out/lib"
+      ${ lib.concatMapStringsSep "\n" (dep:
+          ''nuget init "${dep}" "$out/lib"''
+        ) deps }
+
+      # Generates a list of all unique licenses' spdx ids.
+      find "$out/lib" -name "*.nuspec" -exec sh -c \
+        "xml2 < {} | grep "license=" | cut -d'=' -f2" \; | sort -u > $out/share/licenses
+    '';
+} // { # This is done because we need data from `$out` for `meta`. We have to use overrides as to not hit infinite recursion.
+  meta.licence = let
+    depLicenses = lib.splitString "\n" (builtins.readFile "${_nuget-source}/share/licenses");
+    getLicence = spdx: lib.filter (license: license.spdxId or null == spdx) (builtins.attrValues lib.licenses);
+  in (lib.flatten (lib.forEach depLicenses (spdx:
+    if (getLicence spdx) != [] then (getLicence spdx) else [] ++ lib.optional (spdx != "") spdx
+  )));
+};
+in _nuget-source
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index 30301e3b2e5..0fb9bd939a5 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, config, buildPackages, lib, stdenv, libiconv, gawk, gnused, gixy }:
+{ pkgs, config, buildPackages, lib, stdenv, libiconv, mkNugetDeps, mkNugetSource, gawk, gnused, gixy }:
 
 let
   aliases = if (config.allowAliases or true) then (import ./aliases.nix lib) else prev: {};
@@ -301,6 +301,42 @@ let
   writePyPy3Bin = name:
     writePyPy3 "/bin/${name}";
 
+
+  makeFSharpWriter = { dotnet-sdk ? pkgs.dotnet-sdk, fsi-flags ? "", libraries ? _: [] }: nameOrPath:
+  let
+    fname = last (builtins.split "/" nameOrPath);
+    path = if strings.hasSuffix ".fsx" nameOrPath then nameOrPath else "${nameOrPath}.fsx";
+    _nugetDeps = mkNugetDeps { name = "${fname}-nuget-deps"; nugetDeps = libraries; };
+
+    nuget-source = mkNugetSource {
+      name = "${fname}-nuget-source";
+      description = "A Nuget source with the dependencies for ${fname}";
+      deps = [ _nugetDeps ];
+    };
+
+    fsi = writeBash "fsi" ''
+      export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+      export DOTNET_CLI_TELEMETRY_OPTOUT=1
+      export DOTNET_NOLOGO=1
+      script="$1"; shift
+      ${dotnet-sdk}/bin/dotnet fsi --quiet --nologo --readline- ${fsi-flags} "$@" < "$script"
+    '';
+
+  in content: writers.makeScriptWriter {
+    interpreter = fsi;
+  } path
+  ''
+    #i "nuget: ${nuget-source}/lib"
+    ${ content }
+    exit 0
+  '';
+
+  writeFSharp =
+    makeFSharpWriter {};
+
+  writeFSharpBin = name:
+    writeFSharp "/bin/${name}";
+
 };
 in
 writers // (aliases writers)
diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix
index decd7e42d5c..d2e5cef83aa 100644
--- a/pkgs/build-support/writers/test.nix
+++ b/pkgs/build-support/writers/test.nix
@@ -150,6 +150,29 @@ let
       print(y[0]['test'])
     '';
 
+    fsharp = makeFSharpWriter {
+      libraries = { fetchNuGet }: [
+        (fetchNuGet { pname = "FSharp.SystemTextJson"; version = "0.17.4"; sha256 = "1bplzc9ybdqspii4q28l8gmfvzpkmgq5l1hlsiyg2h46w881lwg2"; })
+      ];
+    } "test-writers-fsharp" ''
+      #r "nuget: FSharp.SystemTextJson, 0.17.4"
+
+      module Json =
+          open System.Text.Json
+          open System.Text.Json.Serialization
+          let options = JsonSerializerOptions()
+          options.Converters.Add(JsonFSharpConverter())
+          let serialize<'a> (o: 'a) = JsonSerializer.Serialize<'a>(o, options)
+          let deserialize<'a> (str: string) = JsonSerializer.Deserialize<'a>(str, options)
+
+      type Letter = A | B
+      let a = {| Hello = Some "World"; Letter = A |}
+      if a |> Json.serialize |> Json.deserialize |> (=) a
+      then "success"
+      else "failed"
+      |> printfn "%s"
+    '';
+
     pypy2NoLibs = writePyPy2 "test-writers-pypy2-no-libs" {} ''
       print("success")
     '';
@@ -161,6 +184,10 @@ let
     pypy3NoLibs = writePyPy3 "test-writers-pypy3-no-libs" {} ''
       print("success")
     '';
+
+    fsharpNoNugetDeps = writeFSharp "test-writers-fsharp-no-nuget-deps" ''
+      printfn "success"
+    '';
   };
 
 
diff --git a/pkgs/development/python-modules/adafruit-io/default.nix b/pkgs/development/python-modules/adafruit-io/default.nix
new file mode 100644
index 00000000000..88bdff440c4
--- /dev/null
+++ b/pkgs/development/python-modules/adafruit-io/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, paho-mqtt
+, pytestCheckHook
+, pythonOlder
+, requests
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "adafruit-io";
+  version = "2.6.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "adafruit";
+    repo = "Adafruit_IO_Python";
+    rev = version;
+    hash = "sha256-tjm+HvUuLK3IxXwuxPidJaBetj+n0BzKOuLj75bM7a8=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    paho-mqtt
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "Adafruit_IO"
+  ];
+
+  disabledTestPaths = [
+    # Tests requires valid credentials
+    "tests/test_client.py"
+    "tests/test_errors.py"
+    "tests/test_mqtt_client.py"
+  ];
+
+  meta = with lib; {
+    description = "Module for interacting with Adafruit IO";
+    homepage = "https://github.com/adafruit/Adafruit_IO_Python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index da4ac528d1a..1ae1a31fa3d 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.20.0";
+  version = "3.20.1";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    sha256 = "sha256-bbzEI/Ig7yQn4/fRmX8tIe6UL+J8iV1TbrCXBU+oLms=";
+    sha256 = "sha256-P5OWPsbRsTEMcvw7/uq0rj9p/4beVj/2OdWkllVMKMw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index 51d62c884dc..2fd61bc5a37 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "1.2.87";
+  version = "1.2.88";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "meshtastic";
     repo = "Meshtastic-python";
     rev = version;
-    sha256 = "sha256-W56nTTbRcSRkT15xn24ywkIVNHRUavV5Z8EST3BFkjk=";
+    sha256 = "sha256-iNDS1QjlDiXb89g7Gut+5ShbgtCCHBSJuQmXfHaTXB8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pycfmodel/default.nix b/pkgs/development/python-modules/pycfmodel/default.nix
index 1385b415613..9f3a61a990e 100644
--- a/pkgs/development/python-modules/pycfmodel/default.nix
+++ b/pkgs/development/python-modules/pycfmodel/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pycfmodel";
-  version = "0.16.3";
+  version = "0.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Skyscanner";
     repo = pname;
     rev = version;
-    hash = "sha256-/0JSnJy/OUbYX26wTZ3RloVy74bU2D4Z6NOLq6IkI7o=";
+    hash = "sha256-IfeGNAgVCnrzipQpGiEqfWWNkUNmeH7TInl8kje52js=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index f5921d0dfd2..37ef4da7daf 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pychromecast";
-  version = "10.2.3";
+  version = "10.3.0";
   format = "setuptools";
 
   disabled = !isPy3k;
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyChromecast";
     inherit version;
-    sha256 = "ddb86c5acdc13e8bdadd2b7f5738fda36b32c1750548f7b629ca8d178f05e0da";
+    sha256 = "sha256-TrEHRG/b7YdvSMgyArYhKyIShhaKVcFrPrjt9CAPEKE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyprecice/default.nix b/pkgs/development/python-modules/pyprecice/default.nix
new file mode 100644
index 00000000000..9f2c457bc75
--- /dev/null
+++ b/pkgs/development/python-modules/pyprecice/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, precice, numpy, mpi4py, cython }:
+
+buildPythonPackage rec {
+  pname = "pyprecice";
+  version = "2.3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "precice";
+    repo = "python-bindings";
+    rev = "v${version}";
+    sha256 = "1yz96pif63ms797bzxbfrjba4mgz7cz5dqrqghn5sg0g1b9qxnn5";
+  };
+
+  nativeBuildInputs = [ cython ];
+  propagatedBuildInputs = [ numpy mpi4py precice ];
+
+  doCheck = false; # Disable Test because everything depends on open mpi which requires network.
+  pythonImportChecks = [ "precice" ];
+
+  meta = with lib; {
+    description = "Python language bindings for preCICE";
+    homepage = "https://github.com/precice/python-bindings";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ Scriptkiddi ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyskyqremote/default.nix b/pkgs/development/python-modules/pyskyqremote/default.nix
index a971751c9ea..e72e38b30cb 100644
--- a/pkgs/development/python-modules/pyskyqremote/default.nix
+++ b/pkgs/development/python-modules/pyskyqremote/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pycountry
 , pythonOlder
 , requests
 , websocket-client
@@ -10,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyskyqremote";
-  version = "0.3.2";
+  version = "0.3.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,11 +18,10 @@ buildPythonPackage rec {
     owner = "RogerSelwyn";
     repo = "skyq_remote";
     rev = version;
-    sha256 = "sha256-R/HmkVbVKbO54lDSw1tLYs2mXi/XqZX9GGXozv+96iI=";
+    sha256 = "sha256-/BhNoU1dnZj07ZvG126srSb6eW00n8htFuDttq006QE=";
   };
 
   propagatedBuildInputs = [
-    pycountry
     requests
     websocket-client
     xmltodict
diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix
index 0922f8c10d2..e79a38d8cf5 100644
--- a/pkgs/development/python-modules/soco/default.nix
+++ b/pkgs/development/python-modules/soco/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.26.3";
+  version = "0.26.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "SoCo";
     repo = "SoCo";
     rev = "v${version}";
-    hash = "sha256-tMW5SCsO1XMQdbasMw3qIMwj+Y6wTQHAmTZ+9r8Mffs=";
+    hash = "sha256-DoONq6Iqi8t47jtqggKYMHSNJAf/Kha3tszR6mYeB9Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tifffile/python2-regex-compat.patch b/pkgs/development/python-modules/tifffile/python2-regex-compat.patch
deleted file mode 100644
index 7f4ec5764bb..00000000000
--- a/pkgs/development/python-modules/tifffile/python2-regex-compat.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/setup.py	2019-02-20 18:52:12.000000000 +0100
-+++ b/setup.py	2019-03-02 13:55:39.014019260 +0100
-@@ -20,12 +20,6 @@
- 

- description = re.search(r'"""(.*)\.(?:\r\n|\r|\n)', code).groups()[0]

- 

--readme = re.search(r'(?:\r\n|\r|\n){2}"""(.*)"""(?:\r\n|\r|\n){2}from', code,

--                   re.MULTILINE | re.DOTALL).groups()[0]

--

--readme = '\n'.join([description, '=' * len(description)]

--                   + readme.splitlines()[1:])

--

- license = re.search(r'(# Copyright.*?(?:\r\n|\r|\n))(?:\r\n|\r|\n)+""', code,

-                     re.MULTILINE | re.DOTALL).groups()[0]

- 

-@@ -41,7 +35,6 @@
-     name='tifffile',

-     version=version,

-     description=description,

--    long_description=readme,

-     author='Christoph Gohlke',

-     author_email='cgohlke@uci.edu',

-     url='https://www.lfd.uci.edu/~gohlke/',

diff --git a/pkgs/development/python-modules/torch-tb-profiler/default.nix b/pkgs/development/python-modules/torch-tb-profiler/default.nix
new file mode 100644
index 00000000000..fc53c5ba823
--- /dev/null
+++ b/pkgs/development/python-modules/torch-tb-profiler/default.nix
@@ -0,0 +1,48 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, pandas
+, pytestCheckHook
+, pytorch
+, tensorflow-tensorboard
+, torchvision
+}:
+
+let
+  version = "0.3.1";
+  repo = fetchFromGitHub {
+    owner = "pytorch";
+    repo = "kineto";
+    rev = "v${version}";
+    hash = "sha256-Yg001XzOPDmz9wEP2b7Ggz/uU6x5PFzaaBeUBwWKFS0=";
+  };
+in
+buildPythonPackage rec {
+  pname = "torch_tb_profiler";
+  inherit version;
+  format = "setuptools";
+
+  # See https://discourse.nixos.org/t/extracting-sub-directory-from-fetchgit-or-fetchurl-or-any-derivation/8830.
+  src = "${repo}/tb_plugin";
+
+  propagatedBuildInputs = [ pandas tensorflow-tensorboard ];
+
+  checkInputs = [ pytestCheckHook pytorch torchvision ];
+
+  disabledTests = [
+    # Tests that attempt to access the filesystem in naughty ways.
+    "test_profiler_api_without_gpu"
+    "test_tensorboard_end2end"
+    "test_tensorboard_with_path_prefix"
+    "test_tensorboard_with_symlinks"
+  ];
+
+  pythonImportsCheck = [ "torch_tb_profiler" ];
+
+  meta = with lib; {
+    description = "PyTorch Profiler TensorBoard Plugin";
+    homepage = "https://github.com/pytorch/kineto";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ samuela ];
+  };
+}
diff --git a/pkgs/development/python-modules/twitchapi/default.nix b/pkgs/development/python-modules/twitchapi/default.nix
new file mode 100644
index 00000000000..c6d5fbffc50
--- /dev/null
+++ b/pkgs/development/python-modules/twitchapi/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, python-dateutil
+, requests
+, typing-extensions
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "twitchapi";
+  version = "2.5.2";
+
+  format = "setuptools";
+
+  src = fetchPypi {
+    pname = "twitchAPI";
+    inherit version;
+    sha256 = "f0ee5388911154375170a83df9a18e8a698fe382cea5d94a3e33ad27a7ce9133";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    python-dateutil
+    requests
+    typing-extensions
+    websockets
+  ];
+
+  # upstream has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "twitchAPI.eventsub"
+    "twitchAPI.oauth"
+    "twitchAPI.pubsub"
+    "twitchAPI.twitch"
+    "twitchAPI.types"
+  ];
+
+  meta = with lib; {
+    description = "Python implementation of the Twitch Helix API, its Webhook, PubSub and EventSub";
+    homepage = "https://github.com/Teekeks/pyTwitchAPI";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix
index 6b10b30a193..ef8e6cfd247 100644
--- a/pkgs/development/python-modules/wandb/default.nix
+++ b/pkgs/development/python-modules/wandb/default.nix
@@ -28,6 +28,7 @@
 , requests
 , scikit-learn
 , sentry-sdk
+, setproctitle
 , setuptools
 , shortuuid
 , stdenv
@@ -37,13 +38,13 @@
 
 buildPythonPackage rec {
   pname = "wandb";
-  version = "0.12.10";
+  version = "0.12.11";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "client";
     rev = "v${version}";
-    sha256 = "198c6zx7xih74cw0dwfqw7s7b7whik7wv4nfq6x6xw0kw86r6hby";
+    sha256 = "0av4vv4llan40678bw0vlah0gn6hjg5pdqwq0c5cv15lqrdb8g32";
   };
 
   # The wandb requirements.txt does not distinguish python2/3 dependencies. We
@@ -70,6 +71,7 @@ buildPythonPackage rec {
     pyyaml
     requests
     sentry-sdk
+    setproctitle
     setuptools
     shortuuid
     yaspin
@@ -99,11 +101,11 @@ buildPythonPackage rec {
     "tests/test_telemetry_full.py"
     "tests/wandb_agent_test.py"
     "tests/wandb_artifacts_test.py"
-    "tests/wandb_history_test.py"
     "tests/wandb_integration_test.py"
     "tests/wandb_run_test.py"
     "tests/wandb_settings_test.py"
     "tests/wandb_sweep_test.py"
+    "tests/wandb_verify_test.py"
 
     # Fails and borks the pytest runner as well.
     "tests/wandb_test.py"
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index 27c7521cef8..3d752596dec 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "weasyprint";
-  version = "54.1";
+  version = "54.2";
   disabled = !isPy3k;
 
   format = "pyproject";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "weasyprint";
-    sha256 = "sha256-+lfbhi4GvQHF59gtrTmbO5lSo5gnAjwXvumxwGH/G70=";
+    sha256 = "sha256-1eiqguPiokd6RUPwZG2fsUCAybo0oIWXUesjdXzABGY=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 2a8ce7faed9..0d634e3ec46 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -32,13 +32,13 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.908";
+  version = "2.0.913";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    hash = "sha256-2ssVFnRd8TIxZSUUq9jOmiNHY1yuDv7mMqpKtJ3vq24=";
+    hash = "sha256-gSWD3Y7yySJvWicL5zgCGvMWfk98mBdTXB+Xwo4fork=";
   };
 
   nativeBuildInputs = with py.pkgs; [
diff --git a/pkgs/games/steam-tui/default.nix b/pkgs/games/steam-tui/default.nix
index 66e17b1752e..63deb3b969c 100644
--- a/pkgs/games/steam-tui/default.nix
+++ b/pkgs/games/steam-tui/default.nix
@@ -2,7 +2,7 @@
 , rustPlatform
 , steamcmd
 , fetchFromGitHub
-, steam-run-native
+, steam-run
 , runtimeShell
 , withWine ? false
 , wine
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-VYBzwDLSV4N4qt2dNgIS399T2HIbPTdQ2rDIeheLlfo=";
 
-  buildInputs = [ steamcmd steam-run-native ]
+  buildInputs = [ steamcmd ]
     ++ lib.optional withWine wine;
 
   preFixup = ''
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
     cat > $out/bin/steam-tui <<EOF
     #!${runtimeShell}
     export PATH=${steamcmd}/bin:\$PATH
-    exec ${steam-run-native}/bin/steam-run $out/bin/.steam-tui-unwrapped '\$@'
+    exec ${steam-run}/bin/steam-run $out/bin/.steam-tui-unwrapped '\$@'
     EOF
     chmod +x $out/bin/steam-tui
   '';
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index 447ff94bf9d..e54e87bf48b 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -3,7 +3,6 @@
 , extraPkgs ? pkgs: [ ] # extra packages to add to targetPkgs
 , extraLibraries ? pkgs: [ ] # extra packages to add to multiPkgs
 , extraProfile ? "" # string to append to profile
-, nativeOnly ? false
 , runtimeOnly ? false
 , runtimeShell
 , stdenv
@@ -51,7 +50,6 @@ let
   # Zachtronics and a few other studios expect STEAM_LD_LIBRARY_PATH to be present
   exportLDPath = ''
     export LD_LIBRARY_PATH=${lib.concatStringsSep ":" ldPath}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
-    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
   '';
 
   # bootstrap.tar.xz has 444 permissions, which means that simple deletes fail
@@ -62,22 +60,6 @@ let
     fi
   '';
 
-  setupSh = writeScript "setup.sh" ''
-    #!${runtimeShell}
-  '';
-
-  runSh = writeScript "run.sh" ''
-    #!${runtimeShell}
-    runtime_paths="${lib.concatStringsSep ":" ldPath}"
-    if [ "$1" == "--print-steam-runtime-library-paths" ]; then
-      echo "$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
-      exit 0
-    fi
-    export LD_LIBRARY_PATH="$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
-    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
-    exec "$@"
-  '';
-
 in buildFHSUserEnv rec {
   name = "steam";
 
@@ -123,7 +105,6 @@ in buildFHSUserEnv rec {
     gtk3
     dbus
     zlib
-    glib
     atk
     cairo
     freetype
@@ -149,9 +130,6 @@ in buildFHSUserEnv rec {
     openssl_1_1
     rtmpdump
 
-    # needed by getcap for vr startup
-    libcap
-
     # dependencies for mesa drivers, needed inside pressure-vessel
     mesa.drivers
     mesa.llvmPackages.llvm.lib
@@ -163,44 +141,30 @@ in buildFHSUserEnv rec {
     xorg.libxshmfence
     xorg.libXxf86vm
     libelf
-  ] ++ (if (!nativeOnly) then [
-    (steamPackages.steam-runtime-wrapped.override {
-      inherit runtimeOnly;
-    })
-  ] else [
+
     # Required
     glib
     gtk2
     bzip2
-    zlib
-    gdk-pixbuf
 
     # Without these it silently fails
     xorg.libXinerama
-    xorg.libXdamage
     xorg.libXcursor
     xorg.libXrender
     xorg.libXScrnSaver
-    xorg.libXxf86vm
     xorg.libXi
     xorg.libSM
     xorg.libICE
     gnome2.GConf
-    freetype
     (curl.override { gnutlsSupport = true; opensslSupport = false; })
     nspr
     nss
-    fontconfig
-    cairo
-    expat
-    dbus
     cups
     libcap
     SDL2
     libusb1
     dbus-glib
     ffmpeg
-    atk
     # Only libraries are needed from those two
     libudev0-shim
     networkmanager098
@@ -208,7 +172,6 @@ in buildFHSUserEnv rec {
     # Verified games requirements
     xorg.libXt
     xorg.libXmu
-    xorg.libxcb
     libogg
     libvorbis
     SDL
@@ -216,7 +179,6 @@ in buildFHSUserEnv rec {
     glew110
     libidn
     tbb
-    wayland
 
     # Other things from runtime
     flac
@@ -242,21 +204,14 @@ in buildFHSUserEnv rec {
     librsvg
     xorg.libXft
     libvdpau
-  ] ++ steamPackages.steam-runtime-wrapped.overridePkgs) ++ extraLibraries pkgs;
-
-  extraBuildCommands = if (!nativeOnly) then ''
-    mkdir -p steamrt
-    ln -s ../lib/steam-runtime steamrt/${steam-runtime-wrapped.arch}
-    ${lib.optionalString (steam-runtime-wrapped-i686 != null) ''
-      ln -s ../lib32/steam-runtime steamrt/${steam-runtime-wrapped-i686.arch}
-    ''}
-    ln -s ${runSh} steamrt/run.sh
-    ln -s ${setupSh} steamrt/setup.sh
-  '' else ''
+  ]
+  ++ steamPackages.steam-runtime-wrapped.overridePkgs
+  ++ extraLibraries pkgs;
+
+  extraBuildCommands = ''
     ln -s /usr/lib/libbz2.so usr/lib/libbz2.so.1.0
-    ${lib.optionalString (steam-runtime-wrapped-i686 != null) ''
-      ln -s /usr/lib32/libbz2.so usr/lib32/libbz2.so.1.0
-    ''}
+  '' + lib.optionalString (steam-runtime-wrapped-i686 != null) ''
+    ln -s /usr/lib32/libbz2.so usr/lib32/libbz2.so.1.0
   '';
 
   extraInstallCommands = ''
@@ -276,8 +231,6 @@ in buildFHSUserEnv rec {
       fi
     fi
 
-    export STEAM_RUNTIME=${if nativeOnly then "0" else "/steamrt"}
-
     # XDG_DATA_DIRS is used by pressure-vessel and vulkan loaders to find the corresponding icd
     export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/run/opengl-driver/share:/run/opengl-driver-32/share
   '' + extraProfile;
@@ -300,14 +253,13 @@ in buildFHSUserEnv rec {
     EOF
       fi
     fi
-    ${lib.optionalString (!nativeOnly) exportLDPath}
+
+    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
     ${fixBootstrap}
     exec steam "$@"
   '';
 
-  meta = steam.meta // {
-    broken = nativeOnly;
-  };
+  inherit (steam) meta;
 
   # allows for some gui applications to share IPC
   # this fixes certain issues where they don't render correctly
@@ -334,7 +286,7 @@ in buildFHSUserEnv rec {
         exit 1
       fi
       shift
-      ${lib.optionalString (!nativeOnly) exportLDPath}
+      export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
       ${fixBootstrap}
       exec -- "$run" "$@"
     '';
diff --git a/pkgs/tools/admin/pulumi/data.nix b/pkgs/tools/admin/pulumi/data.nix
index 9bb3ef46d92..8a2e7398b20 100644
--- a/pkgs/tools/admin/pulumi/data.nix
+++ b/pkgs/tools/admin/pulumi/data.nix
@@ -1,40 +1,64 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.22.1";
+  version = "3.25.1";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.22.1-linux-x64.tar.gz";
-        sha256 = "0yxjlkvyxap4c7ny5x0ch0j4d5360qapb670f6im7vnaqhc00by0";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.25.1-linux-x64.tar.gz";
+        sha256 = "0p2cz6hg2xf28pj2w0avi6hz855llm9kg7v422cf0m1b94s4dsbi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.4.0-linux-amd64.tar.gz";
-        sha256 = "02k3ars9i8pfby3070rnnldfcb5hbh32kd5xnbmgd0202yg5y3pd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.4.0-linux-amd64.tar.gz";
+        sha256 = "0qywihi3k8505qgpr1j5gmqzyalqrrmxxz1k48ipdank48dkxs8g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.34.0-linux-amd64.tar.gz";
-        sha256 = "0c61m2q7944a29dkcqcv5fv9jn2bz8mdfhnd33z8qaybhw2804rd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.7.0-linux-amd64.tar.gz";
+        sha256 = "12vwwmvjsb9fwjkazvcblizdk5xx0l4499r0rg5lr97h5c1j28al";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.33.0-linux-amd64.tar.gz";
-        sha256 = "0k5bpg6lmhj3cxsg43dkyw9jlwyllwwdhml3brkyfgb307cypl9b";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.17.0-linux-amd64.tar.gz";
+        sha256 = "0nkz7mcsgv1lbq0gdfs6nix4bmsn4zspn9jgji10jlawrk5l1ps4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.2.0-linux-amd64.tar.gz";
-        sha256 = "161g5gsr64idz17ffixbjrm0gnbpvpsf440yr26ci4bzdk0s81gh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v0.6.0-linux-amd64.tar.gz";
+        sha256 = "0bcmj8z86dqchc9rgnvjy7q0k2pmmd1c155nm4ik1j87ccclia0p";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.6.0-linux-amd64.tar.gz";
+        sha256 = "08dvkkf153zkpjr2fz6wdrk4rqzmpfhj8nsmly7crr7d3xjhwqsc";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.38.0-linux-amd64.tar.gz";
+        sha256 = "1fm0qhbs0ih1rgr2r46fz9fc6vrl1iwk9fd9q5plra93fxjdjdc4";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.18.0-linux-amd64.tar.gz";
+        sha256 = "06z4h7hpm17zil1vkghlndl4l6fhc6qlgvj95sxx4n1mxdpf7w5l";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.3.1-linux-amd64.tar.gz";
+        sha256 = "0m89na1gqrb41h1dg5j876g5hp0mfk4g7ij7i4md1szk9fp4820k";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.41.0-linux-amd64.tar.gz";
+        sha256 = "1s9s6a5w18zj0y78ar49mbicz8hjmqmzmw2agnwqwk9zhj35jvz8";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.4.0-linux-amd64.tar.gz";
+        sha256 = "1l97awwfd5hyw1q8wjcdz81blybzqklv9wk9pv1319j0251ddzz3";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.5.0-linux-amd64.tar.gz";
         sha256 = "0yfbiv6q2rfm27gwc4vsg2112m1vll5rkk1zwpg510dzvrnjqqn6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.5.0-linux-amd64.tar.gz";
-        sha256 = "1pi98naks37cc0nsrjfrnsknskwzsfj5ia01nhaj44caxzvnd8mh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.6.0-linux-amd64.tar.gz";
+        sha256 = "0q3mj48kddl1cb80s03x5vksx8xa006qlzfkarbc3sa2qqlgqiqr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-linux-amd64.tar.gz";
-        sha256 = "19y5gm5s7ps0cwdv8j7lnlx1r4c94qf6cdc28z725wpyyq1grc38";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.11.1-linux-amd64.tar.gz";
+        sha256 = "1djm9dh1445yn7hnl3m1hm6cw9cj7m9syv08xjjclwc3dj9k7qw5";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-amd64.tar.gz";
@@ -45,24 +69,28 @@
         sha256 = "0hnardid0kbzy65dmn7vz8ddy5hq78nf2871zz6srf2hfyiv7qa4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.7.0-linux-amd64.tar.gz";
-        sha256 = "074ihk1c3g580grbipy0acryjsmaz8n65siyc7yz4gcgcwqwb5mj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v3.13.0-linux-amd64.tar.gz";
+        sha256 = "08r3zks93jcpih6zxjmnpvqjsxvfkj3av5a2iwxb87snmsz0jixz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.9.1-linux-amd64.tar.gz";
-        sha256 = "0ffbsnpgr6wz9xj5yq6m55xj4mqji7hir6dylyjcpdkrxnigyiss";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.14.0-linux-amd64.tar.gz";
+        sha256 = "0lhfxqd600rjbdw16jpj5fysdm324kangi85qpwrd6273aylyv09";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-linux-amd64.tar.gz";
-        sha256 = "14kz4ywhwb0lcsf3nbr9c884x83jdlbxmcg3g9jaq7r739fawpi9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.10.0-linux-amd64.tar.gz";
+        sha256 = "1lni4wzmdhjbchjjx9z5iqawv4x1bixl3s541h39cr4x3y36m66m";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.5.0-linux-amd64.tar.gz";
+        sha256 = "1zzrzsa07af7x4vwv7zgwkdrfmlhw30dcc7hqj92q4mn6valbn5q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.1-linux-amd64.tar.gz";
         sha256 = "0qv3a4d6hnpga7lli7xnbwiig56h080hxrxjr8jbqsy9ymsqb39a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.14.0-linux-amd64.tar.gz";
-        sha256 = "02xgkwfsfkqv38cjyc62rlsldbdd5j801gmlh9pf3qjdjj5d1fl3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.16.0-linux-amd64.tar.gz";
+        sha256 = "1ngpaw5fdlv7hxjnns6ajzj8dqrj3gzkabr5h5hq5dws23x2c999";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-linux-amd64.tar.gz";
@@ -77,62 +105,114 @@
         sha256 = "0lj01hyjyq3qazkryvvxkx6nwai3bac9shqxb6hcqv4pfdjzzxhr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.7.0-linux-amd64.tar.gz";
-        sha256 = "0xaa2gaqgx5lf1vfg0s8y0nr6ygjcy7dbksf0jszizn08ifgpy8h";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-linux-amd64.tar.gz";
-        sha256 = "0glbjhgrb2hiyhd6kwmy7v384j8zw641pw9737g1fczv3x16a3s3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.8.0-linux-amd64.tar.gz";
+        sha256 = "111q7jxkjni1091m3kp9c2n1zqlkiy7lrfsrqk4bzpcf67krk9vj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-linux-amd64.tar.gz";
         sha256 = "05nfdwgfzi5f3hgj2g6dccaidqf9a9xzlv5vp3cd1rsxd159yk9j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-amd64.tar.gz";
-        sha256 = "1ixmsxawp0qbyjs37c74gcvj2icpbda6znl17yp9bhiyvnrdvxn7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.4.0-linux-amd64.tar.gz";
+        sha256 = "18f30j0lmf2mrzynrrm068irlm972hc43vkp0205vkb1gvzf872m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.1.0-linux-amd64.tar.gz";
-        sha256 = "0b44kfvl01b5cmf9ii6zzcj28i1dd4dx4angdah3hghbsc5hypby";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.4.2-linux-amd64.tar.gz";
+        sha256 = "1l4njlk616ksw29vg5jg6cmn9n31iw8f0h65iwv8f5pbvw64m3n0";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.14.0-linux-amd64.tar.gz";
+        sha256 = "1b558l11r8a8xj5h2rk1lf761a83jzcbip7zvdg17f7rbyfilw56";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.4.1-linux-amd64.tar.gz";
+        sha256 = "0k1l6qf85ffbi62r7xs9clgf1g8mch5afrrjagqqb7dwi8sh34xa";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.5.0-linux-amd64.tar.gz";
+        sha256 = "1y67dlrkhrp7x2n0bbx7d8in9h4kwjqjdj4jkdbk1i3mfd46wh0k";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.1.0-linux-amd64.tar.gz";
+        sha256 = "0ayb1r9snjqgmczkvz4kjbswr0a98lmpapll4nws9q0rjj2w48y7";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.2.0-linux-amd64.tar.gz";
+        sha256 = "08vfycws8gw92q43611dixnww4d80pqqjf6a3xh6zfpfn990vy97";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.2.0-linux-amd64.tar.gz";
+        sha256 = "1c7qgzhmd2ifbmfznklaiqsf5mv9wir0iacw58gwyjalkvzb4v4l";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-linux-amd64.tar.gz";
         sha256 = "0hl5liyga4iz7j3wy3qicx43d4mijnqayrnmpa5rws29lambgrql";
       }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.0-linux-amd64.tar.gz";
+        sha256 = "12qdhdbighj76ab3wz965jhybxxq4f2rlwyk9m3w8w4f2aprp0cm";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-amd64.tar.gz";
+        sha256 = "14qsnjafhd8ppachxr7j9541p5rbf1cakqlr7mra86fli1r49z9p";
+      }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.22.1-darwin-x64.tar.gz";
-        sha256 = "0b68pfrd83x02rs2saybxycpkirjciilp4a94ps3788y1plinyih";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.25.1-darwin-x64.tar.gz";
+        sha256 = "0xfirm2pf765q1sx3h2by6s6d9gra95zq8cahljsj46dxm5gc7n9";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.4.0-darwin-amd64.tar.gz";
+        sha256 = "0cpzgbzascmgnzjigmsjs618lv4xnyv1vl1hwab6laryp5832c4h";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.7.0-darwin-amd64.tar.gz";
+        sha256 = "0wm7vvbm747iqzhd8lnpq5zirlkcwcka6c3j9x59c7iwq8a3cba5";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.17.0-darwin-amd64.tar.gz";
+        sha256 = "0xp45n9mhg2x9bsxr5i9nx94vwfzvamnc427hi3p2738h2h3vika";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v0.6.0-darwin-amd64.tar.gz";
+        sha256 = "0vsjiy7sf5brdf1d83n9pb6kpfrphllfndq1f6pfsh7nq7s0xpil";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.6.0-darwin-amd64.tar.gz";
+        sha256 = "0kmy5hf869pp40x7jlzxx6ghl0k4bn6yhh94x82ndz9syin5q21z";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.38.0-darwin-amd64.tar.gz";
+        sha256 = "1fggvxi0salfhi81z9pgchm6pqcw5wh0m5hwgws22clk75x3h4pg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.4.0-darwin-amd64.tar.gz";
-        sha256 = "02s2lyd8rlz86rjraxk5g3g55qhih38kmvq0k2gwkdb2d11npf6r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.18.0-darwin-amd64.tar.gz";
+        sha256 = "1w0iwjny4vxplfi6kkdvglgalwwl5krk9hgfaiw7f1q43nkqw0bd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.34.0-darwin-amd64.tar.gz";
-        sha256 = "1a26schi28ci0zbm85yx4hlhwlwx0j0kk6d6nk9x1zldc3qzhw4y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.3.1-darwin-amd64.tar.gz";
+        sha256 = "0fjynq1ilfv6njjyyadhpc9ks8izwif3nf8mnb7wfxchxn7gqbsi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.33.0-darwin-amd64.tar.gz";
-        sha256 = "04sblbjnxvxhxvzvsgjm83p6qahswwb2mvlylfpgq74ay86l6hki";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.41.0-darwin-amd64.tar.gz";
+        sha256 = "1k6pndyk6kh4db3cp92hj1vbglicx81yqxw1bis94d3cr95xr2pv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.2.0-darwin-amd64.tar.gz";
-        sha256 = "0cri2vqvqh4aghs4j66ykw8f4vm2fg1106xkq4q269ilxdd5ia8l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.4.0-darwin-amd64.tar.gz";
+        sha256 = "0is1dfv0c65sgk2hy5zng9f2jfxkvlp1pjy4ljyic039pvi80137";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.5.0-darwin-amd64.tar.gz";
         sha256 = "1kgk48k4898zxsnhfg6z949m3mgicdm2zfg8ba7z1lbidzc6g3sq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.5.0-darwin-amd64.tar.gz";
-        sha256 = "16dllbbmih9dm728wq86cpq2gkbyhlmpiwyh3r20jzhclrx4mgcw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.6.0-darwin-amd64.tar.gz";
+        sha256 = "16abnsllcf7ap6gvxr1b68cc7k476vhdbg8wrjabx9h9b81lwhbm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-darwin-amd64.tar.gz";
-        sha256 = "115lcaqkliaxqg27hb1j773299kgs44d3l7p2da9kzla3sk7dps0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.11.1-darwin-amd64.tar.gz";
+        sha256 = "11wnk0ssqzfcvks5qvc2yi6iv9nxxxxqwmnjyavdzp5s5vvpi5zm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-amd64.tar.gz";
@@ -143,24 +223,28 @@
         sha256 = "1m5lh59h7nck1flzxs9m4n0ag0klk3jmnpf7hc509vffxs89xnjq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.7.0-darwin-amd64.tar.gz";
-        sha256 = "046j20xl3ibfyqkcra242a5rpix14n4w3h9w9x618fbznk24bcxb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v3.13.0-darwin-amd64.tar.gz";
+        sha256 = "1d9q2q9br44kkpr7swn2qfg4xvbfb2wixbigixg3vjwz9n0bm4p8";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.14.0-darwin-amd64.tar.gz";
+        sha256 = "1200pb1ix308r5m6514s1b97q567f902c1zc1sfprr1r9psz3x16";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.9.1-darwin-amd64.tar.gz";
-        sha256 = "100rqkz0g1w0fhvgvgys9r6a7bqphzizn28lg7pbbkrwjh7s0bxq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.10.0-darwin-amd64.tar.gz";
+        sha256 = "0i49x5s7sw69y19qmsrbrwhmjv7g07qrs5a3l1l8bsqawif5r65z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-darwin-amd64.tar.gz";
-        sha256 = "15aj3vpafrb6hfrmi46pf6z3wj4y84dljsfzrvd6b5v0svmlr90d";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.5.0-darwin-amd64.tar.gz";
+        sha256 = "0mqciml9rzzfpjy7wdqqak1yym2yzilnsjyrpm255q38z77f5nkr";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.1-darwin-amd64.tar.gz";
         sha256 = "1xminhpv7b4nnvfdy5ahlcfrkan1fsmn0sp6gzkp5y4kkjd4a6vy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.14.0-darwin-amd64.tar.gz";
-        sha256 = "1dpr4h35zby8say0kcvin5y5k4yryx06p3qcx16zrlsjaz6lj84k";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.16.0-darwin-amd64.tar.gz";
+        sha256 = "14ab1qsq22c8wyl7k7slxag9g44v3c63qjr8ip5qylbdsxsh7pp7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-darwin-amd64.tar.gz";
@@ -175,62 +259,114 @@
         sha256 = "0fhhc2k0g8mpxzcgci4jl3m59q3n8w3nka94l0n7r9cvs81099n6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.7.0-darwin-amd64.tar.gz";
-        sha256 = "0fbc60l3v7mar0g16mbwgqckp9i4kckwlacv165kkwrkvj8nrbym";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-darwin-amd64.tar.gz";
-        sha256 = "0621njipng32x43lw8n49mapq10lnvibg8vlvgciqsfvrbpz1yp5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.8.0-darwin-amd64.tar.gz";
+        sha256 = "13qxwzfsy0hmvgazry0q3qna0jk7llharcvdwz302fj4ad98s71j";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-darwin-amd64.tar.gz";
         sha256 = "0q19sh7l1mjl40i5vdsrjfldncxnicalmlgv3yjkw5xpxkgr98z0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-amd64.tar.gz";
-        sha256 = "1dy4n03xvirg6fihiid786d88qlkyqkvk4fq6ggnxc92620x7342";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.4.0-darwin-amd64.tar.gz";
+        sha256 = "11k6vbsr2lszipjvpnpspqvj8b0j330cfpmkr5ipws9b02aqpw1c";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.4.2-darwin-amd64.tar.gz";
+        sha256 = "1cr31yz4nmabncnim6vk8wfqihqrmsjpqgm4gmk8rsn0a21r9iry";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.14.0-darwin-amd64.tar.gz";
+        sha256 = "0dp4jvi3bbbggg7s9lmx8qqdh9nd7iff8r827s2f6js98yakhw9g";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.4.1-darwin-amd64.tar.gz";
+        sha256 = "0nzcf84dbiw3chmnwb7d2nl82kkn1scrrjiid1ni75cgwk200m04";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.1.0-darwin-amd64.tar.gz";
-        sha256 = "1f2m3zdxbdn7gb0xb3f0rgj7h54nay1wyrn3bk2nzvrdv5c3bhcm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.5.0-darwin-amd64.tar.gz";
+        sha256 = "1xprdbxf8fza4zc2myf9mv3hl79hda0h34fz4yqfawg4spa0q128";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.1.0-darwin-amd64.tar.gz";
+        sha256 = "1jzirnaxy6y862khqf29i25r8qyrpac2kmacs9ny118l77xp33il";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.2.0-darwin-amd64.tar.gz";
+        sha256 = "0rfl4hxl72n6d15klykhwzxiyscci9jyy20vprqqs5z5d825xal4";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.2.0-darwin-amd64.tar.gz";
+        sha256 = "00sq1v8wkjzxw96y3gal15lqdz2ncbwa7lix3b4izy7c6rd3qfa6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-darwin-amd64.tar.gz";
         sha256 = "1wkyjxgrp3llvis3yjdnw65chscmxxcwigkr71i2crj28db8fhwx";
       }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.0-darwin-amd64.tar.gz";
+        sha256 = "154za5bvq1bgyzn5cfz3n0la1gy27lmjafgs42mgyy511jz4m60l";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-amd64.tar.gz";
+        sha256 = "11wm9c125154brisncm9cgb41nbjl9q9h4bq6z0ym8v681qq0fc4";
+      }
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.22.1-linux-arm64.tar.gz";
-        sha256 = "0551zp5n77jzh8k3jbqq75zj734faryxxdd2fvw881cxf95v39aj";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.25.1-linux-arm64.tar.gz";
+        sha256 = "16vm2kdc53kf6ljb62fx74sl2asj2hg9xnksz582w88xp0mhipw2";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.4.0-linux-arm64.tar.gz";
+        sha256 = "19byg31lcnh7gk2xqf5601d0xj93p0b9svz6zxvv713d9ny36839";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.7.0-linux-arm64.tar.gz";
+        sha256 = "00f38gmdk6yjbqlmfnjqlk7x9sn8c27svabivq93hr0dc8bv2hzy";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.17.0-linux-arm64.tar.gz";
+        sha256 = "13gwhfl11grpv0kqdk3hd1z4mdqxj9czl9cvzkfc7idipim2wi19";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.4.0-linux-arm64.tar.gz";
-        sha256 = "0rlbcxympplq1gwikxalz3c686kpy2vrsc2phfnm45vvrkl22k8j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v0.6.0-linux-arm64.tar.gz";
+        sha256 = "09475k0qqiwxzgb3xm70wx6w3gr8figrsb7iqbyficfar71mvbf7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.34.0-linux-arm64.tar.gz";
-        sha256 = "0639dl0hj2l33mc4vqbcyywpkfn30fikmiw10zjikcdg1jxzj4nd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.6.0-linux-arm64.tar.gz";
+        sha256 = "1w9mdg3jr5skdljxvm16qnssq94cnwpk24r76rbmh16wxb1l0z6x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.33.0-linux-arm64.tar.gz";
-        sha256 = "15lxfilkgh9ansy9n2yv693fms3x718lrxz0g2nxi32hz9hq0ysl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.38.0-linux-arm64.tar.gz";
+        sha256 = "0pxfijmbgwl1srfqhny1wps3qhmjnmi3p5ixffza1a5phffnjzwd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.2.0-linux-arm64.tar.gz";
-        sha256 = "08wasnpm5j1rrpsgdlw2h2rx5m7fl4vrm2js5a1vsaxx35374a6h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.18.0-linux-arm64.tar.gz";
+        sha256 = "17bjngcxjhh4m9zc8rbb2ixqq2dhr405y4xnsxhwyld8lnnrqm7w";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.3.1-linux-arm64.tar.gz";
+        sha256 = "0a6bmiz6ys1h6n59mw3w7b2g8rhbnr0rb40rwidazvkni0s03yha";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.41.0-linux-arm64.tar.gz";
+        sha256 = "1q4hzzsxraw6f7z2dlqbrlrkambqixyj9bq3fk4napgv6hl77qnh";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.4.0-linux-arm64.tar.gz";
+        sha256 = "15acmblgl5xdwrm6ikq420h8g88rvqlj34jdrngc47rlimmdh3l6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.5.0-linux-arm64.tar.gz";
         sha256 = "1wwv6v9srzsdlcxv92kwv4drkx8w1h5xcvcwqqn6gi2mvsf3kj9n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.5.0-linux-arm64.tar.gz";
-        sha256 = "1s77az1b965lca69gqmmx8zfh63rf8vm2bkbzgfkj320zwbfbgj2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.6.0-linux-arm64.tar.gz";
+        sha256 = "1qia1myzcrjiq16sy4vd24wzqgww46wkdi9gq94j1g2ih75pc9k2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-linux-arm64.tar.gz";
-        sha256 = "1hik4456fdln7hxiw02856v02v0m33zsyiad40c9wg4n772ybchy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.11.1-linux-arm64.tar.gz";
+        sha256 = "0vn6kgdwd63c62kaq3b09m3yipg43yh12s0a9zhi48p4wplsgf9s";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-arm64.tar.gz";
@@ -241,24 +377,28 @@
         sha256 = "111pia2f5xwkwaqs6p90ri29l5b3ivmahsa1bji4fwyyjyp22h4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.7.0-linux-arm64.tar.gz";
-        sha256 = "0r53qwf1w68bnqii20b44q1xlgxggsisnlr46463nxm0jb0wwyn9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v3.13.0-linux-arm64.tar.gz";
+        sha256 = "1dy76gsig4gyjg7xzkgb200dlhfvbq2i0zc0002c5vsykc4mji1d";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.14.0-linux-arm64.tar.gz";
+        sha256 = "02gzj3zww0hmdq42d8b65wc12md9r7mygwymcix0f9lwza9gf4l2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.9.1-linux-arm64.tar.gz";
-        sha256 = "1zr9vcr6qiql90bysapmrlafl7xmlv49bgp197w4w2290i5q7f6n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.10.0-linux-arm64.tar.gz";
+        sha256 = "0p8lr9iw1h9ax90aivya513bw1dipm7yycqm5094wgx08r2yfvlm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-linux-arm64.tar.gz";
-        sha256 = "06ii12cl7wsfs9pwjkwz01szacg686vfzc6i253l6xvmmiqp6q0j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.5.0-linux-arm64.tar.gz";
+        sha256 = "0z0ch08xqbyjmizwvgx9jysnp6g3kjjbwh11gbc6vgxacqcajgz3";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.1-linux-arm64.tar.gz";
         sha256 = "14xqlgy0wy223hg9wp1rc4hbj1pvxrqnzxzv901dqjf5434n6aa0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.14.0-linux-arm64.tar.gz";
-        sha256 = "12lnh8hk02w1n28v6i46kxxpkzw1j9zp84ha5p6bnarza6g4wxnk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.16.0-linux-arm64.tar.gz";
+        sha256 = "1y3nzdnh6fil12r0040h6kyyf01dgxjghpp55z49hin3k6yclnq3";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-linux-arm64.tar.gz";
@@ -273,59 +413,114 @@
         sha256 = "17iaf72dzy108v1njan21n72a5gzxbycq396hjh293a141kppn1m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.7.0-linux-arm64.tar.gz";
-        sha256 = "1xh93187s86x4pjm4j9djh2mfqqxrmkal761fhj2bldkgki2rkq8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.8.0-linux-arm64.tar.gz";
+        sha256 = "0dh28hhg2lbvbgw2yadw0ig68z2pcg51h38v74yczblm24k97jvq";
       }
-      # pulumi-resource-packet skipped (does not exist on remote)
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-linux-arm64.tar.gz";
         sha256 = "0j2c23ii4dn9yhpw6nymij65gv82y1xp4gi8lgxxf41b1i9bpb2i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-arm64.tar.gz";
-        sha256 = "12iv8vjnal2ym70rxmdnvi02x6md7fxi8jbzhzfw526pzqs1dc47";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.4.0-linux-arm64.tar.gz";
+        sha256 = "11k721ri7q36ss3kjvw07ki3snv35li167az6f8zp8h7fdhsrcn7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.1.0-linux-arm64.tar.gz";
-        sha256 = "15ambcwhrvv30ykkz9pizfrl4pri7iwvgs6s8f5416vgdj0k26fc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.4.2-linux-arm64.tar.gz";
+        sha256 = "1hdf0zwlrc5i3k0vkqc2x8zz0zvwc1idnnai58d4k7f5qr89hg6z";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.14.0-linux-arm64.tar.gz";
+        sha256 = "0rr2cngqnibbz6d99xswjg7wybgd5xwm8fi6dkqwj51yyrz0izrz";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.4.1-linux-arm64.tar.gz";
+        sha256 = "06gdrjnk5jdnzc3jvzxl7iwf6gyyp9bqk1jrljxpkzr0ck8yz01l";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.5.0-linux-arm64.tar.gz";
+        sha256 = "1hih41dvdpxwh145kghp5xwpv5fn8r0wni8jh12qv5nl6apaa75p";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.1.0-linux-arm64.tar.gz";
+        sha256 = "1275cikf75lnf3d4k4ld0by1r8hr6gq6mih09fsfg98b8f7n16kq";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.2.0-linux-arm64.tar.gz";
+        sha256 = "19iv4jp74j87p1hnqc205i9gl45c4jqc025lwgylgplfmmz9iagy";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.2.0-linux-arm64.tar.gz";
+        sha256 = "12ak3ki97shnzki9gvzc52cprpi3wsqmh4dhhv4ly6m39sj3wgxx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-linux-arm64.tar.gz";
         sha256 = "1f7h6xl3jk9y29ffjxv9r4a748fwip17x7pazs62zwc3h10a65ac";
       }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.0-linux-arm64.tar.gz";
+        sha256 = "00902vymkc841lpdmgh80a1lipb5bjphiivy7d9xw9cldar35nz3";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-arm64.tar.gz";
+        sha256 = "0fd3hgvkr3ch2r5hpmi7h70w4hkbjdyc7z534h151pyc5ssxw8bd";
+      }
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.22.1-darwin-arm64.tar.gz";
-        sha256 = "00jzqrnw6khbw5hsaqwi73hx9h3yxdhy2n3jn3h76az27wfjkhkz";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.25.1-darwin-arm64.tar.gz";
+        sha256 = "1hg6i58vb4hlrp3s08m26wivhr7dg902nd8g19rmyfvkhvdjkax5";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.4.0-darwin-arm64.tar.gz";
+        sha256 = "0z0v4i2k451fi1xz2k4w9cli8g3mc4d7a9b1gkgcs2wpgrfnifly";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.7.0-darwin-arm64.tar.gz";
+        sha256 = "0l4mqwap83rk82fnx7djc66mwnllmb49vzhr3kdavdmd5rbw5pd4";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.17.0-darwin-arm64.tar.gz";
+        sha256 = "1q9d00dp61dv4i31c7z3nk9lqpxgyb0w180xfhg4s02vsk9yc8yf";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v0.6.0-darwin-arm64.tar.gz";
+        sha256 = "1wpsjm191drz8687gv2d4snv8fdrivw3lqklj5cr67jngwiqhirq";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.6.0-darwin-arm64.tar.gz";
+        sha256 = "1ni5nlfiqpxid3s416avzgx30wjayi51j0v87hkvpmy38m4p1w18";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.38.0-darwin-arm64.tar.gz";
+        sha256 = "1b46cksimynk4f7idp37xn95j0is15zfrxwbs4hv9b3rxayg8s30";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.4.0-darwin-arm64.tar.gz";
-        sha256 = "116f1psg3wdl81apxlhgz6w1ykhlqxwqk6ahp82mca1h2qc7bg0h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.18.0-darwin-arm64.tar.gz";
+        sha256 = "1ajanl6xgi00qc8a1apzfy45gaqxd7038hc3kmqgkrgzv8b943w4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.34.0-darwin-arm64.tar.gz";
-        sha256 = "1rzds5wrq51mzs7sgzwna016qcay3dzp5ys25cxmr47025kyv84p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.3.1-darwin-arm64.tar.gz";
+        sha256 = "0hlcfyxmjcq3axg35fx1dj081il60rqs7na0wx573gf028g6jj9v";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.33.0-darwin-arm64.tar.gz";
-        sha256 = "1lqmjkqqq3rlsixv2kam50d5m95c81mn23y3dblbkh8d6qpwkfdp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.41.0-darwin-arm64.tar.gz";
+        sha256 = "13xbscyg7s5cbrrsy5xcl63z31y6aa30r2d8gwchdgla3kqafjmm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.2.0-darwin-arm64.tar.gz";
-        sha256 = "18h8k6wz1givlkrd2fh6mpyc6syzsqr3a29c36cbly103nvr43jy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.4.0-darwin-arm64.tar.gz";
+        sha256 = "0848db2hv0r5brjdfq1k45bkx7iz0xpwbkmmhg47ymr3g0bhr8db";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.5.0-darwin-arm64.tar.gz";
         sha256 = "16nnb6ql4j2207dgwmrhgx8mg19asf2n450lrmwvdzyvcy5zjm7p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.5.0-darwin-arm64.tar.gz";
-        sha256 = "1z74a9j7ih444lsg4zy3wf8vqqk67jf4cis14x6vpzbpyqpdsyvz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.6.0-darwin-arm64.tar.gz";
+        sha256 = "0irhy7vda2abcdzj6g73xh0p3kpxn1xi8agkfq4r9zpqrjp86pcr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-darwin-arm64.tar.gz";
-        sha256 = "1agi0dpck35rqsvxikdcl6xl2fpha2l4144mzgyslki4q86rqmhs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.11.1-darwin-arm64.tar.gz";
+        sha256 = "0nl47s8v47jvr4w3v5s2fnwhm56yb3knfb1za7ncynybgw8hizv0";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-arm64.tar.gz";
@@ -336,24 +531,28 @@
         sha256 = "12bzicm43l7yvh02v5fx3z8v46l9i7a9f677735xi5rjbmd2an4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.7.0-darwin-arm64.tar.gz";
-        sha256 = "1w5nhmc6bzfw0ihv5mwn316sj7w27psknnyffqm1pyw6drp0z58v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v3.13.0-darwin-arm64.tar.gz";
+        sha256 = "0jbgcw62hmhm5k8q4k948595nm2qslz7wic66iy0jr6ylhpm7hcz";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.14.0-darwin-arm64.tar.gz";
+        sha256 = "0rh9b19aqw15wzmijyyk7dv38cgf4abp6pk5abx4bp0277vl2a76";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.9.1-darwin-arm64.tar.gz";
-        sha256 = "13w91xxma00zi7llk0hnqi10m90a5b2zhb08j6l0dn7x5a33dqay";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.10.0-darwin-arm64.tar.gz";
+        sha256 = "167f7c7mpyjym0sw71adz5ffd7g8zmn87923xmjlrsz3wm6ybsq7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-darwin-arm64.tar.gz";
-        sha256 = "0sgg8bnsi5yyfv8gwzy8jw3f0fmkvizrgzh4jyc802qqc449p1ix";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.5.0-darwin-arm64.tar.gz";
+        sha256 = "0dc7cpgvb20s6qyyfm2i4hc4rbg8zdv0j92wc397pacd6i6jhvgn";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.1-darwin-arm64.tar.gz";
         sha256 = "0n0303423gkwi3b6dwzaqmzsbn2rh4vki6n54mmgd44a3cxbhkak";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.14.0-darwin-arm64.tar.gz";
-        sha256 = "1rq2wxw0kch7xrk0sr1l6fyz1sslyvk44l3jilzbm7mgi0d77w23";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.16.0-darwin-arm64.tar.gz";
+        sha256 = "1n2dh350pwhcvk8vs9mh3g6dijxrg2vh03h9x9fq7qhpgzgxq6km";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-darwin-arm64.tar.gz";
@@ -368,26 +567,57 @@
         sha256 = "0kym9f36h8b7s1smlmgazbzv8jjfpwxk6wv036bhx2xm3ysc7rgp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.7.0-darwin-arm64.tar.gz";
-        sha256 = "0w7gbdzs47ndvfig8qcnn5mar22plxjjsx0d4dgyhf1k391fz1jh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.8.0-darwin-arm64.tar.gz";
+        sha256 = "0xqxk9xp49s0l5cxxz9wg26fg4fj57h4yjpvs4xs8fpaqa1saynd";
       }
-      # pulumi-resource-packet skipped (does not exist on remote)
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-darwin-arm64.tar.gz";
         sha256 = "1i5ipmidg0yspayxyglbjaihajhj1bsk46saxkncfrkvqnh4iq50";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-arm64.tar.gz";
-        sha256 = "0jrihnwfh5wvc95nipqv7ak77kq9xj0pk5hlapv9w2ls5pwykv0r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.4.0-darwin-arm64.tar.gz";
+        sha256 = "1dx39lm57sc9j715z62v74fw1gpnr8sn71d6a38gib83iiyagl3s";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.1.0-darwin-arm64.tar.gz";
-        sha256 = "1zc8jhrf7vm2p9mjldvgcnfrzh53zvinpikhsc8b206j3pm6gmbl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.4.2-darwin-arm64.tar.gz";
+        sha256 = "02x584440hw25nbkj880dd113ywdm280frfadyz2psy1sqfi949h";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.14.0-darwin-arm64.tar.gz";
+        sha256 = "1nl18z6i2p7dmc4f2i7wfw7ss76kmhb3jc4gfyirzp0qr2v8bs8p";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.4.1-darwin-arm64.tar.gz";
+        sha256 = "0i6hzqfvsjiyb1bzv70pwr1716scy60w7f8jkv3ayrxddaw7iwwg";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.5.0-darwin-arm64.tar.gz";
+        sha256 = "0bn8i1271mm3hqqqlidipsfdalxgc2fx8l4apdjin6k1zrnm44p1";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.1.0-darwin-arm64.tar.gz";
+        sha256 = "08dhxd39w7wjpqjfy59vxfipjl45psd6yh53h2g025y8hh80gcrs";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.2.0-darwin-arm64.tar.gz";
+        sha256 = "0aqicfci56i3i9vkpm0ikg3amkzf7is6r9p2477dqm7gjphl9wmy";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.2.0-darwin-arm64.tar.gz";
+        sha256 = "1m177hv8bfgsgcch8vbzwkb797i09l7lpfpai27cnljfk03vdhwr";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-darwin-arm64.tar.gz";
         sha256 = "1915f5d24vfrwgzvs5nkj5p05fjgqjyxpm54ym2wshl9s4fjb6sp";
       }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v1.1.0-darwin-arm64.tar.gz";
+        sha256 = "0xzh9n69prbaf0795dzmyp4jbzmgqvg4sl2sad3l3mkbgghx4cll";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-arm64.tar.gz";
+        sha256 = "1qaccfqw24g862ij2p49m78hnymg0j2nghshszqrg45v0d0qnknm";
+      }
     ];
   };
 }
diff --git a/pkgs/tools/admin/pulumi/update.sh b/pkgs/tools/admin/pulumi/update.sh
index c2b0818e5b9..f7e7b0948b7 100755
--- a/pkgs/tools/admin/pulumi/update.sh
+++ b/pkgs/tools/admin/pulumi/update.sh
@@ -10,22 +10,29 @@ fi
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="3.22.1"
+VERSION="3.25.1"
 
 # An array of plugin names. The respective repository inside Pulumi's
 # Github organization is called pulumi-$name by convention.
 
 declare -a pulumi_repos
 pulumi_repos=(
+  "aiven"
+  "akamai"
+  "alicloud"
+  "artifactory"
   "auth0"
   "aws"
   "azure"
+  "azuread"
+  "azuredevops"
   "cloudflare"
   "consul"
   "datadog"
   "digitalocean"
   "docker"
   "equinix-metal"
+  "fastly"
   "gcp"
   "github"
   "gitlab"
@@ -35,11 +42,18 @@ pulumi_repos=(
   "mailgun"
   "mysql"
   "openstack"
-  "packet"
   "postgresql"
   "random"
+  "snowflake"
+  "spotinst"
+  "sumologic"
+  "tailscale"
+  "tls"
   "vault"
+  "venafi"
   "vsphere"
+  "wavefront"
+  "yandex"
 )
 
 # Contains latest release ${VERSION} from
diff --git a/pkgs/tools/networking/opensnitch/daemon.nix b/pkgs/tools/networking/opensnitch/daemon.nix
index e636950cd98..25b42066419 100644
--- a/pkgs/tools/networking/opensnitch/daemon.nix
+++ b/pkgs/tools/networking/opensnitch/daemon.nix
@@ -48,7 +48,12 @@ buildGoModule rec {
 
   postBuild = ''
     mv $GOPATH/bin/daemon $GOPATH/bin/opensnitchd
-    mkdir -p $out/lib/systemd/system
+    mkdir -p $out/etc/opensnitchd $out/lib/systemd/system
+    cp system-fw.json $out/etc/opensnitchd/
+    substitute default-config.json $out/etc/default-config.json \
+      --replace "/var/log/opensnitchd.log" "/dev/stdout" \
+      --replace "iptables" "nftables" \
+      --replace "ebpf" "proc"
     substitute opensnitchd.service $out/lib/systemd/system/opensnitchd.service \
       --replace "/usr/local/bin/opensnitchd" "$out/bin/opensnitchd" \
       --replace "/etc/opensnitchd/rules" "/var/lib/opensnitch/rules" \
diff --git a/pkgs/tools/security/fprot/default.nix b/pkgs/tools/security/fprot/default.nix
deleted file mode 100644
index 6b930adcc26..00000000000
--- a/pkgs/tools/security/fprot/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, stdenv, fetchurl }:
-
-stdenv.mkDerivation {
-
-  pname = "f-prot";
-  version = "6.2.1";
-
-  src = fetchurl {
-    url = "http://files.f-prot.com/files/unix-trial/fp-Linux.x86.32-ws.tar.gz";
-    sha256 = "0qlsrkanf0inplwv1i6hqbimdg91syf5ggd1vahsm9lhivmnr0v5";
-  };
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp fpscan $out/bin
-
-    mkdir -p $out/opt/f-prot
-    cp fpupdate $out/opt/f-prot
-    cp product.data.default $out/opt/f-prot/product.data
-    cp license.key $out/opt/f-prot/
-    cp f-prot.conf.default $out/opt/f-prot/f-prot.conf
-    ln -s $out/opt/f-prot/fpupdate $out/bin/fpupdate
-
-    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/f-prot/fpupdate
-
-    mkdir -p $out/share/man/
-    mkdir -p $out/share/man/man1
-    cp doc/man/fpscan.1 $out/share/man/man1
-    mkdir -p $out/share/man/man5
-    cp doc/man/f-prot.conf.5 $out/share/man/man5
-    mkdir -p $out/share/man/man8
-    cp doc/man/fpupdate.8 $out/share/man/man8
-  '';
-
-  meta = with lib; {
-    homepage = "http://www.f-prot.com";
-    description = "A popular proprietary antivirus program";
-    license = licenses.unfree;
-    maintainers = [ ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/security/step-cli/default.nix b/pkgs/tools/security/step-cli/default.nix
index e91a35b808c..0f8f37a4890 100644
--- a/pkgs/tools/security/step-cli/default.nix
+++ b/pkgs/tools/security/step-cli/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "step-cli";
-  version = "0.18.1";
+  version = "0.18.2";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-gMJFzfqQsxOXPRdRj48c3FKhXsPLEmegiENa2OHWEGo=";
+    sha256 = "sha256-Ki6MrLVJf2U4Q0y6jtOQZOti/m3SULWNKZ9SdirlOVA=";
   };
 
   ldflags = [
@@ -25,7 +25,7 @@ buildGoModule rec {
     rm command/certificate/remote_test.go
   '';
 
-  vendorSha256 = "sha256-wnMQPnL8M57BOY9QmawLpqtWv+n3GdfIadJ3PwuicOU=";
+  vendorSha256 = "sha256-ftBZQmtrnGFMZRXDKmMyqnfxuY5vtrZDXVR43yd1shk=";
 
   meta = with lib; {
     description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 1972123bd98..04f4955b803 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -1143,6 +1143,7 @@ mapAliases ({
   squid4 = squid;  # added 2019-08-22
   sshfsFuse = throw "'sshfsFuse' has been renamed to/replaced by 'sshfs-fuse'"; # Converted to throw 2022-02-22
   stanchion = throw "Stanchion was part of riak-cs which is not maintained anymore"; # added 2020-10-14
+  steam-run-native = steam-run; # added 2022-02-21
   stumpwm-git = throw "stumpwm-git has been broken for a long time and lispPackages.stumpwm follows Quicklisp that is close to git version"; # Added 2021-05-09
   subversion19 = throw "subversion19 has been removed as it has reached its end of life"; # Added 2021-03-31
   sundials_3 = throw "sundials_3 was removed in 2020-02. outdated and no longer needed";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0b4a208c1c9..9f9f2070ff4 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -469,6 +469,8 @@ with pkgs;
 
   buildDotnetModule = callPackage ../build-support/dotnet/build-dotnet-module { };
   nuget-to-nix = callPackage ../build-support/dotnet/nuget-to-nix { };
+  mkNugetSource = callPackage ../build-support/dotnet/make-nuget-source { };
+  mkNugetDeps = callPackage ../build-support/dotnet/make-nuget-deps { };
 
   dotnetenv = callPackage ../build-support/dotnet/dotnetenv {
     dotnetfx = dotnetfx40;
@@ -5558,8 +5560,6 @@ with pkgs;
 
   fpm = callPackage ../tools/package-management/fpm { };
 
-  fprot = callPackage ../tools/security/fprot { };
-
   fprintd = callPackage ../tools/security/fprintd { };
 
   fprintd-tod = callPackage ../tools/security/fprintd/tod.nix { };
@@ -25307,12 +25307,12 @@ with pkgs;
     inherit (darwin) sigtool;
   };
 
-  emacs27-nox = lowPrio (appendToName "nox" (emacs27.override {
+  emacs27-nox = lowPrio (emacs27.override {
     withX = false;
     withNS = false;
     withGTK2 = false;
     withGTK3 = false;
-  }));
+  });
 
   emacsMacport = callPackage ../applications/editors/emacs/macport.nix {
     inherit (darwin.apple_sdk.frameworks)
@@ -31450,9 +31450,6 @@ with pkgs;
   steam = steamPackages.steam-fhsenv;
 
   steam-run = steam.run;
-  steam-run-native = (steam.override {
-    nativeOnly = true;
-  }).run;
 
   steam-tui = callPackage ../games/steam-tui { };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 2f3ba8705a7..2621b03d4f9 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -176,6 +176,8 @@ in {
 
   actdiag = callPackage ../development/python-modules/actdiag { };
 
+  adafruit-io = callPackage ../development/python-modules/adafruit-io { };
+
   adafruit-platformdetect = callPackage ../development/python-modules/adafruit-platformdetect { };
 
   adafruit-pureio = callPackage ../development/python-modules/adafruit-pureio { };
@@ -6080,6 +6082,8 @@ in {
 
   pdunehd = callPackage ../development/python-modules/pdunehd { };
 
+  pyprecice = callPackage ../development/python-modules/pyprecice { };
+
   phonopy = callPackage ../development/python-modules/phonopy { };
 
   phpserialize = callPackage ../development/python-modules/phpserialize { };
@@ -9979,6 +9983,8 @@ in {
 
   toposort = callPackage ../development/python-modules/toposort { };
 
+  torch-tb-profiler = callPackage ../development/python-modules/torch-tb-profiler/default.nix { };
+
   torchaudio-bin = callPackage ../development/python-modules/torchaudio/bin.nix { };
 
   torchgpipe = callPackage ../development/python-modules/torchgpipe { };
@@ -10105,6 +10111,8 @@ in {
 
   twitch-python = callPackage ../development/python-modules/twitch-python { };
 
+  twitchapi = callPackage ../development/python-modules/twitchapi { };
+
   twitter = callPackage ../development/python-modules/twitter { };
 
   twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };