about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch355
-rw-r--r--pkgs/applications/audio/audacity/default.nix93
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix4
-rw-r--r--pkgs/applications/audio/callaudiod/default.nix4
-rw-r--r--pkgs/applications/audio/dragonfly-reverb/default.nix4
-rw-r--r--pkgs/applications/audio/pianobar/default.nix4
-rw-r--r--pkgs/applications/blockchains/openethereum/default.nix6
-rw-r--r--pkgs/applications/blockchains/stellar-core/default.nix10
-rw-r--r--pkgs/applications/editors/cudatext/default.nix4
-rw-r--r--pkgs/applications/editors/cudatext/deps.json4
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/control-lock/default.nix23
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix2
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix10
-rw-r--r--pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patch37
-rw-r--r--pkgs/applications/emulators/mame/default.nix78
-rw-r--r--pkgs/applications/emulators/proton-caller/default.nix6
-rw-r--r--pkgs/applications/emulators/retroarch/cores.nix58
-rw-r--r--pkgs/applications/emulators/retroarch/default.nix33
-rw-r--r--pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patch13
-rw-r--r--pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch (renamed from pkgs/applications/emulators/retroarch/0001-Disable-menu_show_core_updater.patch)2
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json289
-rwxr-xr-xpkgs/applications/emulators/retroarch/update_cores.py (renamed from pkgs/applications/emulators/retroarch/update.py)14
-rw-r--r--pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch (renamed from pkgs/applications/emulators/retroarch/0002-Use-fixed-paths-on-libretro_info_path.patch)38
-rw-r--r--pkgs/applications/emulators/retroarch/wrapper.nix16
-rw-r--r--pkgs/applications/emulators/ryujinx/default.nix10
-rw-r--r--pkgs/applications/emulators/ryujinx/deps.nix5
-rwxr-xr-xpkgs/applications/emulators/ryujinx/updater.sh75
-rw-r--r--pkgs/applications/emulators/tinyemu/default.nix7
-rw-r--r--pkgs/applications/graphics/drawing/default.nix11
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix4
-rw-r--r--pkgs/applications/graphics/mypaint/default.nix10
-rw-r--r--pkgs/applications/misc/bikeshed/default.nix77
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/firestarter/default.nix4
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/gpsprune/default.nix4
-rw-r--r--pkgs/applications/misc/gsctl/default.nix6
-rw-r--r--pkgs/applications/misc/index-fm/default.nix2
-rw-r--r--pkgs/applications/misc/join-desktop/default.nix73
-rw-r--r--pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--pkgs/applications/misc/mop/default.nix15
-rw-r--r--pkgs/applications/misc/mop/deps.nix11
-rw-r--r--pkgs/applications/misc/obsidian/default.nix44
-rw-r--r--pkgs/applications/misc/prusa-slicer/super-slicer.nix4
-rw-r--r--pkgs/applications/misc/seatd/default.nix10
-rw-r--r--pkgs/applications/misc/toipe/default.nix20
-rw-r--r--pkgs/applications/misc/upwork/default.nix17
-rw-r--r--pkgs/applications/misc/zathura/core/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix8
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json10
-rw-r--r--pkgs/applications/networking/browsers/firefox/librewolf/src.json10
-rw-r--r--pkgs/applications/networking/browsers/lagrange/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/vieb/default.nix4
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argocd-autopilot/default.nix9
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix18
-rw-r--r--pkgs/applications/networking/cluster/driftctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/sonobuoy/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/talosctl/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix5
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json186
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/threema-desktop/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/networking/n8n/node-packages.nix288
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix6
-rw-r--r--pkgs/applications/networking/shellhub-agent/default.nix6
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix16
-rw-r--r--pkgs/applications/office/foliate/default.nix1
-rw-r--r--pkgs/applications/office/morgen/default.nix4
-rw-r--r--pkgs/applications/office/vnote/default.nix4
-rw-r--r--pkgs/applications/radio/splat/default.nix55
-rw-r--r--pkgs/applications/science/logic/cvc5/default.nix34
-rw-r--r--pkgs/applications/science/logic/symfpu/default.nix26
-rw-r--r--pkgs/applications/science/logic/z3/default.nix132
-rw-r--r--pkgs/applications/science/math/caffe/default.nix11
-rw-r--r--pkgs/applications/science/math/cntk/default.nix8
-rw-r--r--pkgs/applications/science/math/mxnet/default.nix16
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix2
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix24
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix11
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghorg/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-branchless/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/scmpuff/default.nix23
-rw-r--r--pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix273
-rw-r--r--pkgs/applications/version-management/subversion/default.nix4
-rw-r--r--pkgs/applications/version-management/yadm/default.nix4
-rw-r--r--pkgs/applications/video/obs-studio/default.nix4
-rw-r--r--pkgs/applications/video/webtorrent_desktop/default.nix155
-rw-r--r--pkgs/applications/virtualization/docker/buildx.nix4
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix4
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix5
-rw-r--r--pkgs/applications/virtualization/x11docker/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/status-rust.nix6
-rw-r--r--pkgs/applications/window-managers/sway/idle.nix2
105 files changed, 1464 insertions, 1569 deletions
diff --git a/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch b/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
deleted file mode 100644
index 33b7554db4483..0000000000000
--- a/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
+++ /dev/null
@@ -1,355 +0,0 @@
-From deeb435829d73524df851f6f4c2d4be552c99230 Mon Sep 17 00:00:00 2001
-From: Dmitry Vedenko <dmitry@crsib.me>
-Date: Fri, 1 Oct 2021 16:21:22 +0300
-Subject: [PATCH] Use a different approach to estimate the disk space usage
-
-New a approach is a bit less precise, but removes the requirement for the "private" SQLite3 table and allows Audacity to be built against system SQLite3.
----
- cmake-proxies/sqlite/CMakeLists.txt |   5 -
- src/DBConnection.h                  |   4 +-
- src/ProjectFileIO.cpp               | 269 +++++-----------------------
- 3 files changed, 44 insertions(+), 234 deletions(-)
-
-diff --git a/cmake-proxies/sqlite/CMakeLists.txt b/cmake-proxies/sqlite/CMakeLists.txt
-index 63d70637c..d7b9b95ef 100644
---- a/cmake-proxies/sqlite/CMakeLists.txt
-+++ b/cmake-proxies/sqlite/CMakeLists.txt
-@@ -19,11 +19,6 @@ list( APPEND INCLUDES
- 
- list( APPEND DEFINES
-    PRIVATE
--      #
--      # We need the dbpage table for space calculations.
--      #
--      SQLITE_ENABLE_DBPAGE_VTAB=1
--
-       # Can't be set after a WAL mode database is initialized, so change
-       # the default here to ensure all project files get the same page 
-       # size.
-diff --git a/src/DBConnection.h b/src/DBConnection.h
-index 16a7fc9d4..07d3af95e 100644
---- a/src/DBConnection.h
-+++ b/src/DBConnection.h
-@@ -75,8 +75,8 @@ public:
-       LoadSampleBlock,
-       InsertSampleBlock,
-       DeleteSampleBlock,
--      GetRootPage,
--      GetDBPage
-+      GetSampleBlockSize,
-+      GetAllSampleBlocksSize
-    };
-    sqlite3_stmt *Prepare(enum StatementID id, const char *sql);
- 
-diff --git a/src/ProjectFileIO.cpp b/src/ProjectFileIO.cpp
-index 3b3e2e1fd..c9bc45af4 100644
---- a/src/ProjectFileIO.cpp
-+++ b/src/ProjectFileIO.cpp
-@@ -35,6 +35,7 @@ Paul Licameli split from AudacityProject.cpp
- #include "widgets/ProgressDialog.h"
- #include "wxFileNameWrapper.h"
- #include "xml/XMLFileReader.h"
-+#include "MemoryX.h"`
- 
- #undef NO_SHM
- #if !defined(__WXMSW__)
-@@ -2357,255 +2358,69 @@ int64_t ProjectFileIO::GetTotalUsage()
- }
- 
- //
--// Returns the amount of disk space used by the specified sample blockid or all
--// of the sample blocks if the blockid is 0.  It does this by using the raw SQLite
--// pages available from the "sqlite_dbpage" virtual table to traverse the SQLite
--// table b-tree described here:  https://www.sqlite.org/fileformat.html
-+// Returns the estimation of disk space used by the specified sample blockid or all
-+// of the sample blocks if the blockid is 0. This does not include small overhead
-+// of the internal SQLite structures, only the size used by the data
- //
- int64_t ProjectFileIO::GetDiskUsage(DBConnection &conn, SampleBlockID blockid /* = 0 */)
- {
--   // Information we need to track our travels through the b-tree
--   typedef struct
--   {
--      int64_t pgno;
--      int currentCell;
--      int numCells;
--      unsigned char data[65536];
--   } page;
--   std::vector<page> stack;
--
--   int64_t total = 0;
--   int64_t found = 0;
--   int64_t right = 0;
--   int rc;
-+   sqlite3_stmt* stmt = nullptr;
- 
--   // Get the rootpage for the sampleblocks table.
--   sqlite3_stmt *stmt =
--      conn.Prepare(DBConnection::GetRootPage,
--                    "SELECT rootpage FROM sqlite_master WHERE tbl_name = 'sampleblocks';");
--   if (stmt == nullptr || sqlite3_step(stmt) != SQLITE_ROW)
-+   if (blockid == 0)
-    {
--      return 0;
--   }
--
--   // And store it in our first stack frame
--   stack.push_back({sqlite3_column_int64(stmt, 0)});
-+      static const char* statement =
-+R"(SELECT 
-+	sum(length(blockid) + length(sampleformat) + 
-+	length(summin) + length(summax) + length(sumrms) + 
-+	length(summary256) + length(summary64k) +
-+	length(samples))
-+FROM sampleblocks;)";
- 
--   // All done with the statement
--   sqlite3_clear_bindings(stmt);
--   sqlite3_reset(stmt);
--
--   // Prepare/retrieve statement to read raw database page
--   stmt = conn.Prepare(DBConnection::GetDBPage,
--      "SELECT data FROM sqlite_dbpage WHERE pgno = ?1;");
--   if (stmt == nullptr)
--   {
--      return 0;
-+      stmt = conn.Prepare(DBConnection::GetAllSampleBlocksSize, statement);
-    }
--
--   // Traverse the b-tree until we've visited all of the leaf pages or until
--   // we find the one corresponding to the passed in sample blockid. Because we
--   // use an integer primary key for the sampleblocks table, the traversal will
--   // be in ascending blockid sequence.
--   do
-+   else
-    {
--      // Acces the top stack frame
--      page &pg = stack.back();
-+      static const char* statement =
-+R"(SELECT 
-+	length(blockid) + length(sampleformat) + 
-+	length(summin) + length(summax) + length(sumrms) + 
-+	length(summary256) + length(summary64k) +
-+	length(samples)
-+FROM sampleblocks WHERE blockid = ?1;)";
- 
--      // Read the page from the sqlite_dbpage table if it hasn't yet been loaded
--      if (pg.numCells == 0)
--      {
--         // Bind the page number
--         sqlite3_bind_int64(stmt, 1, pg.pgno);
-+      stmt = conn.Prepare(DBConnection::GetSampleBlockSize, statement);
-+   }
- 
--         // And retrieve the page
--         if (sqlite3_step(stmt) != SQLITE_ROW)
-+   auto cleanup = finally(
-+      [stmt]() {
-+         // Clear statement bindings and rewind statement
-+         if (stmt != nullptr)
-          {
--            // REVIEW: Likely harmless failure - says size is zero on
--            // this error.
--            // LLL: Yea, but not much else we can do.
--            return 0;
-+            sqlite3_clear_bindings(stmt);
-+            sqlite3_reset(stmt);
-          }
-+      });
- 
--         // Copy the page content to the stack frame
--         memcpy(&pg.data,
--                sqlite3_column_blob(stmt, 0),
--                sqlite3_column_bytes(stmt, 0));
--
--         // And retrieve the total number of cells within it
--         pg.numCells = get2(&pg.data[3]);
--
--         // Reset statement for next usage
--         sqlite3_clear_bindings(stmt);
--         sqlite3_reset(stmt);
--      }
--
--      //wxLogDebug("%*.*spgno %lld currentCell %d numCells %d", (stack.size() - 1) * 2, (stack.size() - 1) * 2, "", pg.pgno, pg.currentCell, pg.numCells);
--
--      // Process an interior table b-tree page
--      if (pg.data[0] == 0x05)
--      {
--         // Process the next cell if we haven't examined all of them yet
--         if (pg.currentCell < pg.numCells)
--         {
--            // Remember the right-most leaf page number.
--            right = get4(&pg.data[8]);
--
--            // Iterate over the cells.
--            //
--            // If we're not looking for a specific blockid, then we always push the
--            // target page onto the stack and leave the loop after a single iteration.
--            //
--            // Otherwise, we match the blockid against the highest integer key contained
--            // within the cell and if the blockid falls within the cell, we stack the
--            // page and stop the iteration.
--            //
--            // In theory, we could do a binary search for a specific blockid here, but
--            // because our sample blocks are always large, we will get very few cells
--            // per page...usually 6 or less.
--            //
--            // In both cases, the stacked page can be either an internal or leaf page.
--            bool stacked = false;
--            while (pg.currentCell < pg.numCells)
--            {
--               // Get the offset to this cell using the offset in the cell pointer
--               // array.
--               //
--               // The cell pointer array starts immediately after the page header
--               // at offset 12 and the retrieved offset is from the beginning of
--               // the page.
--               int celloff = get2(&pg.data[12 + (pg.currentCell * 2)]);
--
--               // Bump to the next cell for the next iteration.
--               pg.currentCell++;
--
--               // Get the page number this cell describes
--               int pagenum = get4(&pg.data[celloff]);
--
--               // And the highest integer key, which starts at offset 4 within the cell.
--               int64_t intkey = 0;
--               get_varint(&pg.data[celloff + 4], &intkey);
--
--               //wxLogDebug("%*.*sinternal - right %lld celloff %d pagenum %d intkey %lld", (stack.size() - 1) * 2, (stack.size() - 1) * 2, " ", right, celloff, pagenum, intkey);
--
--               // Stack the described page if we're not looking for a specific blockid
--               // or if this page contains the given blockid.
--               if (!blockid || blockid <= intkey)
--               {
--                  stack.push_back({pagenum, 0, 0});
--                  stacked = true;
--                  break;
--               }
--            }
--
--            // If we pushed a new page onto the stack, we need to jump back up
--            // to read the page
--            if (stacked)
--            {
--               continue;
--            }
--         }
-+   if (blockid != 0)
-+   {
-+      int rc = sqlite3_bind_int64(stmt, 1, blockid);
- 
--         // We've exhausted all the cells with this page, so we stack the right-most
--         // leaf page.  Ensure we only process it once.
--         if (right)
--         {
--            stack.push_back({right, 0, 0});
--            right = 0;
--            continue;
--         }
--      }
--      // Process a leaf table b-tree page
--      else if (pg.data[0] == 0x0d)
-+      if (rc != SQLITE_OK)
-       {
--         // Iterate over the cells
--         //
--         // If we're not looking for a specific blockid, then just accumulate the
--         // payload sizes. We will be reading every leaf page in the sampleblocks
--         // table.
--         //
--         // Otherwise we break out when we find the matching blockid. In this case,
--         // we only ever look at 1 leaf page.
--         bool stop = false;
--         for (int i = 0; i < pg.numCells; i++)
--         {
--            // Get the offset to this cell using the offset in the cell pointer
--            // array.
--            //
--            // The cell pointer array starts immediately after the page header
--            // at offset 8 and the retrieved offset is from the beginning of
--            // the page.
--            int celloff = get2(&pg.data[8 + (i * 2)]);
--
--            // Get the total payload size in bytes of the described row.
--            int64_t payload = 0;
--            int digits = get_varint(&pg.data[celloff], &payload);
--
--            // Get the integer key for this row.
--            int64_t intkey = 0;
--            get_varint(&pg.data[celloff + digits], &intkey);
--
--            //wxLogDebug("%*.*sleaf - celloff %4d intkey %lld payload %lld", (stack.size() - 1) * 2, (stack.size() - 1) * 2, " ", celloff, intkey, payload);
--
--            // Add this payload size to the total if we're not looking for a specific
--            // blockid
--            if (!blockid)
--            {
--               total += payload;
--            }
--            // Otherwise, return the payload size for a matching row
--            else if (blockid == intkey)
--            {
--               return payload;
--            }
--         }
-+         conn.ThrowException(false);
-       }
-+   }
- 
--      // Done with the current branch, so pop back up to the previous one (if any)
--      stack.pop_back();
--   } while (!stack.empty());
--
--   // Return the total used for all sample blocks
--   return total;
--}
--
--// Retrieves a 2-byte big-endian integer from the page data
--unsigned int ProjectFileIO::get2(const unsigned char *ptr)
--{
--   return (ptr[0] << 8) | ptr[1];
--}
--
--// Retrieves a 4-byte big-endian integer from the page data
--unsigned int ProjectFileIO::get4(const unsigned char *ptr)
--{
--   return ((unsigned int) ptr[0] << 24) |
--          ((unsigned int) ptr[1] << 16) |
--          ((unsigned int) ptr[2] << 8)  |
--          ((unsigned int) ptr[3]);
--}
--
--// Retrieves a variable length integer from the page data. Returns the
--// number of digits used to encode the integer and the stores the
--// value at the given location.
--int ProjectFileIO::get_varint(const unsigned char *ptr, int64_t *out)
--{
--   int64_t val = 0;
--   int i;
-+   int rc = sqlite3_step(stmt);
- 
--   for (i = 0; i < 8; ++i)
-+   if (rc != SQLITE_ROW)
-    {
--      val = (val << 7) + (ptr[i] & 0x7f);
--      if ((ptr[i] & 0x80) == 0)
--      {
--         *out = val;
--         return i + 1;
--      }
-+      conn.ThrowException(false);
-    }
- 
--   val = (val << 8) + (ptr[i] & 0xff);
--   *out = val;
-+   const int64_t size = sqlite3_column_int64(stmt, 0);
- 
--   return 9;
-+   return size;
- }
- 
- InvisibleTemporaryProject::InvisibleTemporaryProject()
--- 
-2.33.1
-
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 9d4c522edc1a9..653d5555eb144 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , fetchpatch
 , cmake
+, makeWrapper
 , pkg-config
 , python3
 , gettext
@@ -20,14 +21,17 @@
 , libsndfile
 , soxr
 , flac
+, lame
 , twolame
 , expat
 , libid3tag
 , libopus
+, libuuid
 , ffmpeg_4
 , soundtouch
 , pcre
-/*, portaudio - given up fighting their portaudio.patch */
+, portaudio # given up fighting their portaudio.patch?
+, portmidi
 , linuxHeaders
 , alsa-lib
 , at-spi2-core
@@ -36,11 +40,14 @@
 , libXdmcp
 , libXtst
 , libpthreadstubs
+, libsbsms_2_3_0
 , libselinux
 , libsepol
 , libxkbcommon
 , util-linux
 , wxGTK
+, libpng
+, libjpeg
 , AppKit ? null
 , AudioToolbox ? null
 , AudioUnit ? null
@@ -58,12 +65,14 @@
 
 let
   inherit (lib) optionals;
+  pname = "audacity";
+  version = "3.1.3";
 
   wxWidgets_src = fetchFromGitHub {
-    owner = "audacity";
+    owner = pname;
     repo = "wxWidgets";
-    rev = "07e7d832c7a337aedba3537b90b2c98c4d8e2985";
-    sha256 = "1mawnkcrmqj98jp0jxlnh9xkc950ca033ccb51c7035pzmi9if9a";
+    rev = "v${version}-${pname}";
+    sha256 = "sha256-KrmYYv23DHBYKIuxMYBioCQ2e4KWdgmuREnimtm0XNU=";
     fetchSubmodules = true;
   };
 
@@ -74,41 +83,20 @@ let
   wxmac' = wxmac.overrideAttrs (oldAttrs: rec {
     src = wxWidgets_src;
   });
-
-in
-stdenv.mkDerivation rec {
-  pname = "audacity";
-  # nixpkgs-update: no auto update
-  # Humans too! Let's wait to see how the situation with
-  # https://github.com/audacity/audacity/issues/1213 develops before
-  # pulling any updates that are subject to this privacy policy. We
-  # may wish to switch to a fork, but at the time of writing
-  # (2021-07-05) it's too early to tell how well any of the forks will
-  # be maintained.
-  version = "3.0.2";
+in stdenv.mkDerivation rec {
+  inherit pname version;
 
   src = fetchFromGitHub {
-    owner = "audacity";
-    repo = "audacity";
+    owner = pname;
+    repo = pname;
     rev = "Audacity-${version}";
-    sha256 = "035qq2ff16cdl2cb9iply2bfjmhfl1dpscg79x6c9l0i9m8k41zj";
+    sha256 = "sha256-sdI4paxIHDZgoWTCekjrkFR4JFpQC6OatcnJdVXCCZk=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/audacity/audacity/commit/7f8135e112a0e1e8e906abab9339680d1e491441.patch";
-      sha256 = "0zp2iydd46analda9cfnbmzdkjphz5m7dynrdj5qdnmq6j3px9fw";
-      name = "audacity_xdg_paths.patch";
-    })
-    # This is required to make audacity work with nixpkgs’ sqlite
-    # https://github.com/audacity/audacity/pull/1802 rebased onto 3.0.2
-    ./0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
-  ];
-
   postPatch = ''
-    touch src/RevisionIdent.h
+    mkdir src/private
   '' + lib.optionalString stdenv.isLinux ''
-    substituteInPlace src/FileNames.cpp \
+    substituteInPlace libraries/lib-files/FileNames.cpp \
       --replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
   '';
 
@@ -119,6 +107,7 @@ stdenv.mkDerivation rec {
     python3
   ] ++ optionals stdenv.isLinux [
     linuxHeaders
+    makeWrapper
   ];
 
   buildInputs = [
@@ -126,15 +115,18 @@ stdenv.mkDerivation rec {
     ffmpeg_4
     file
     flac
+    lame
     libid3tag
     libjack2
     libmad
     libopus
+    libsbsms_2_3_0
     libsndfile
     libvorbis
     lilv
     lv2
     pcre
+    portmidi
     serd
     sord
     soundtouch
@@ -143,6 +135,7 @@ stdenv.mkDerivation rec {
     sratom
     suil
     twolame
+    portaudio
   ] ++ optionals stdenv.isLinux [
     alsa-lib # for portaudio
     at-spi2-core
@@ -154,6 +147,7 @@ stdenv.mkDerivation rec {
     libxkbcommon
     libselinux
     libsepol
+    libuuid
     util-linux
     wxGTK'
     wxGTK'.gtk
@@ -163,20 +157,49 @@ stdenv.mkDerivation rec {
     Cocoa
     CoreAudioKit
     AudioUnit AudioToolbox CoreAudio CoreServices Carbon # for portaudio
+    libpng
+    libjpeg
   ];
 
   cmakeFlags = [
-    "-Daudacity_use_ffmpeg=linked"
+    "-DAUDACITY_REV_LONG=nixpkgs"
+    "-DAUDACITY_REV_TIME=nixpkgs"
     "-DDISABLE_DYNAMIC_LOADING_FFMPEG=ON"
+    "-Daudacity_conan_enabled=Off"
+    "-Daudacity_use_ffmpeg=loaded"
   ];
 
   doCheck = false; # Test fails
 
+  # Replace audacity's wrapper, to:
+  # - put it in the right place, it shouldn't be in "$out/audacity"
+  # - Add the ffmpeg dynamic dependency
+  postInstall = lib.optionalString stdenv.isLinux ''
+    rm "$out/audacity"
+    wrapProgram "$out/bin/audacity" \
+      --prefix LD_LIBRARY_PATH : "$out/lib/audacity":${lib.makeLibraryPath [ ffmpeg_4 ]} \
+      --suffix AUDACITY_MODULES_PATH : "$out/lib/audacity/modules" \
+      --suffix AUDACITY_PATH : "$out/share/audacity"
+  '';
+
   meta = with lib; {
     description = "Sound editor with graphical UI";
-    homepage = "https://www.audacityteam.org/";
-    license = licenses.gpl2Plus;
+    homepage = "https://www.audacityteam.org";
+    changelog = "https://github.com/audacity/audacity/releases";
+    license = with licenses; [
+      gpl2Plus
+      # Must be GPL3 when building with "technologies that require it,
+      # such as the VST3 audio plugin interface".
+      # https://github.com/audacity/audacity/discussions/2142.
+      gpl3
+      # Documentation.
+      cc-by-30
+    ];
     maintainers = with maintainers; [ lheckemann veprbl ];
     platforms = platforms.unix;
+    # darwin-aarch due to qtbase broken for it.
+    # darwin-x86_64 due to
+    # https://logs.nix.ci/?attempt_id=5cbc4581-09b4-4148-82fe-0326411a56b3&key=nixos%2Fnixpkgs.152273.
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index 6f438a106ffbb..10cbbeb21de0b 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "4.2.1";
+  version = "4.2.2";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-kkpb8tLuj4QO+TBW2yNDugS4c6dCQ9Lddv6Z8NS0uio=";
+    sha256 = "sha256-cpEV0EWW9vd2ZE+RaqN9fhyy7axgPlx4PmlOeX3TSfY=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/pkgs/applications/audio/callaudiod/default.nix b/pkgs/applications/audio/callaudiod/default.nix
index 74f4b2de49ea0..562a53fe59275 100644
--- a/pkgs/applications/audio/callaudiod/default.nix
+++ b/pkgs/applications/audio/callaudiod/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "callaudiod";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitLab {
     domain = "gitlab.com";
     owner = "mobian1";
     repo = pname;
     rev = version;
-    sha256 = "sha256-WZ23jacCsZiNeMJfnYMaGdHXY9OCIBbeU9dWGDroaHE=";
+    sha256 = "sha256-71+9ALz55aqxXRBRwOcs9fwiQK31pJ9E72pGRmt0OkE=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
index a07dca699d793..4c62e6a8b6ade 100644
--- a/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dragonfly-reverb";
-  version = "3.2.5";
+  version = "3.2.6";
 
   src = fetchFromGitHub {
     owner = "michaelwillis";
     repo = "dragonfly-reverb";
     rev = version;
-    sha256 = "14kia9wjs0nqfx4psnr3vf4x6hihkf80gb0mjzmdnnnk4cnrdydm";
+    sha256 = "sha256-hTapy/wXt1rRZVdkx2RDW8LS/DcY30p+WaAWgemGqVo=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
index c5ef0352503fc..9949fce8b09c7 100644
--- a/pkgs/applications/audio/pianobar/default.nix
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pianobar";
-  version = "2020.11.28";
+  version = "2022.04.01";
 
   src = fetchurl {
     url = "https://6xq.net/projects/pianobar/${pname}-${version}.tar.bz2";
-    sha256 = "1znlwybfpxsjqr1jmr8j0ci8wzmpzmk2yxb0qcx9w9a8nnbgnfv5";
+    sha256 = "sha256-FnCyiGWouCpXu23+p/FuL6QUXS81SRC7FzgLMsm5R2M=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/blockchains/openethereum/default.nix b/pkgs/applications/blockchains/openethereum/default.nix
index 79ab37c7adb5d..e9f5374f6ee4d 100644
--- a/pkgs/applications/blockchains/openethereum/default.nix
+++ b/pkgs/applications/blockchains/openethereum/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "openethereum";
-  version = "3.2.6";
+  version = "3.3.5";
 
   src = fetchFromGitHub {
     owner = "openethereum";
     repo = "openethereum";
     rev = "v${version}";
-    sha256 = "0lxps3cyg8dzb9qr1kg91s9jc3mnm6hxybwcbhva38pcq4yc40xc";
+    sha256 = "sha256-PpRRoufuZ9fXbLonMAo6qaA/jtJZXW98uM0BEXdJ2oU=";
   };
 
-  cargoSha256 = "08yrpls3szmw6vy2c4d6b1k907ga0809ylvyx0zb6f8mp8z7ahl2";
+  cargoSha256 = "sha256-xXUNXQvVq6XqW/hmCfJ2/mHKkZu0amRZ77vX+Jib0iM=";
 
   nativeBuildInputs = [ cmake pkg-config ];
 
diff --git a/pkgs/applications/blockchains/stellar-core/default.nix b/pkgs/applications/blockchains/stellar-core/default.nix
index 6ecc4e241cb4e..f89ad0eb7800b 100644
--- a/pkgs/applications/blockchains/stellar-core/default.nix
+++ b/pkgs/applications/blockchains/stellar-core/default.nix
@@ -1,22 +1,26 @@
 { lib, stdenv, fetchFromGitHub, autoconf, libtool, automake, pkg-config, git
-, bison, flex, postgresql, ripgrep }:
+, bison, flex, postgresql, ripgrep, libunwind }:
 
 stdenv.mkDerivation rec {
   pname = "stellar-core";
-  version = "17.0.0";
+  version = "18.5.0";
 
   src = fetchFromGitHub {
     owner = "stellar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ngl8yjqb8xzhdwzlxzzxf14q2hgwy2ysb17sn5380rrn0jswin1";
+    sha256 = "sha256-wEi22R4zb8d5CJV5eWb776Yob8B6Ok4FrbYI0SGM0H8=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ automake autoconf git libtool pkg-config ripgrep ];
 
+  buildInputs = [ libunwind ];
+
   propagatedBuildInputs = [ bison flex postgresql ];
 
+  enableParallelBuilding = true;
+
   preConfigure = ''
     # Due to https://github.com/NixOS/nixpkgs/issues/8567 we cannot rely on
     # having the .git directory present, so directly provide the version
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index d142551a11415..c94ee471c28a3 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.159.2";
+  version = "1.160.0";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "sha256-dSZd+Dsln7xUfN/cqTZSdnpnINHsDCBrbNGcDLwqzzU=";
+    sha256 = "sha256-42V6RFa+mAXyaUuKeDQa9Voi1MjnzcVl+cOA65VabxM=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json
index 430061e0eb726..efb179333bf22 100644
--- a/pkgs/applications/editors/cudatext/deps.json
+++ b/pkgs/applications/editors/cudatext/deps.json
@@ -16,8 +16,8 @@
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2022.03.23",
-    "sha256": "sha256-D/pQ4TSWUaL97Nau3bGi7rc8MxnvuoDcD7HDNEDwmsk="
+    "rev": "2022.04.06",
+    "sha256": "sha256-EnPOAl1qsdcYzmUgT5rSYqY/xOLSfDcMNCXIG8LC4H0="
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
diff --git a/pkgs/applications/editors/emacs/elisp-packages/control-lock/default.nix b/pkgs/applications/editors/emacs/elisp-packages/control-lock/default.nix
new file mode 100644
index 0000000000000..82ea42aa2b83e
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/control-lock/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "control-lock";
+
+  src = fetchurl {
+    url = "https://github.com/emacsmirror/emacswiki.org/blob/185fdc34fb1e02b43759ad933d3ee5646b0e78f8/control-lock.el";
+    sha256 = "1b5xcgq2r565pr1c14dwrmn1fl05p56infapa5pqvajv2kpfla7h";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install $src $out/share/emacs/site-lisp/control-lock.el
+  '';
+
+  meta = {
+    description = "Like caps-lock, but for your control key.  Give your pinky a rest!";
+    homepage = "https://www.emacswiki.org/emacs/control-lock.el";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index 676b9bfca9a61..a27135032e184 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -190,6 +190,8 @@
 
   perl-completion = callPackage ./perl-completion { };
 
+  control-lock = callPackage ./control-lock { };
+
   plz = callPackage ./plz { };
 
   pod-mode = callPackage ./pod-mode { };
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index a9ab7e8e55dee..46864a05570d9 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -14,17 +14,17 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "077a847p8l2yk3dpn8qqwjdch5nqm8a7fxlnwg5xzx892lr6l4ax";
-    x86_64-darwin = "03gbrnkzks4if3mkpwn4yjajj3z9cax0jskhw8pz5n1mibv4kg4p";
-    aarch64-linux = "0xqpc69m5jmm6dyvhlc20bpbr2czmi0pn00jxpf5md8fqxmbvj90";
-    aarch64-darwin = "1zd2s841xpq5fk6bkrbqbzbcyladpp8sp7wx2spkzj1gmbjfzw4a";
-    armv7l-linux = "1swbg3zklixyk3cf0nh0xcwszm9rrvw1caqzmb80lc3c7qx9qx1s";
+    x86_64-linux = "1j75ivy7lwxjpfhwsikk517a9bxhrbwfy8f8liql392839qryblj";
+    x86_64-darwin = "0sjsrm31rbgq9j6hnry8f69mhhwlsd7drzz5jr31ljk75vgx3j8f";
+    aarch64-linux = "1ll28djzf5xvc0yin1irxzn3nkizpgfz0azknaycjar261q3akdp";
+    aarch64-darwin = "0mfhbdmz0db851mab83dmq654gwgdz9p20igwm9g5h4y6zrvdhg6";
+    armv7l-linux = "1vicvzdj83vcj64rla9v5n9bmi0wgz507xxch3anjszah3n7ld89";
   }.${system};
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.66.0";
+    version = "1.66.1";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index 0101b896e8cf7..50bfcc48f2f59 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0dv28i8mxf45n7xj4gzgh4gsx76875nxs4yfqswxij8kzz72vqfn";
-    x86_64-darwin = "0xs4f1ffqcbvzw1v64f9l8i7rflz7h1j5xgjxdz6l0hw0j4aalb2";
-    aarch64-linux = "1fa7g531apigp8k7fxkp2ijmhz5axx7ixzdhlwgbsb80rb2mqhi0";
-    armv7l-linux = "1ry9qm6rk46s0jn7hl30jbjdhi3fshzcs0x9krd9qin7by18hhz3";
+    x86_64-linux = "0r5bzy1r9f0rp2wvcb703vpcfclqn8d4n9g8p9021hz0llslfha7";
+    x86_64-darwin = "15aawk2b7a5dack2bgnp4axki8y3n0ilncww15sjnvwbgk94d4pg";
+    aarch64-linux = "0kq39jx9nrfikcfcylz2gcg2d89yw6gf9sc8blyg1yfimfr9jcjv";
+    armv7l-linux = "0581ksdb1j9xsin7s505gk9kxhf3i5dw8yvyfkxck84wrrvfh6pq";
   }.${system};
 
   sourceRoot = {
@@ -31,7 +31,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.66.0";
+    version = "1.66.1";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patch b/pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patch
new file mode 100644
index 0000000000000..cee425eaa93df
--- /dev/null
+++ b/pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patch
@@ -0,0 +1,37 @@
+From 54aebffc4584ee68149d4b5b64ceaa79a82b8427 Mon Sep 17 00:00:00 2001
+From: Thiago Kenji Okada <thiagokokada@gmail.com>
+Date: Sat, 9 Apr 2022 13:16:08 +0100
+Subject: [PATCH] Revert "Added PDF documentation to dist.mak"
+
+This reverts commit c0e93076232e794c919231e4386445d78b2d80b1.
+---
+ dist.mak | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/dist.mak b/dist.mak
+index edbb4cd67cb..c378dfdf708 100644
+--- a/dist.mak
++++ b/dist.mak
+@@ -109,7 +109,7 @@ GEN_FOLDERS := $(addprefix $(STAGEDIR)/,$(CREATED_DIRS))
+ COPY_BINARIES := $(addprefix $(STAGEDIR)/,$(addsuffix $(EXE),$(BINARIES)))
+ COPY_FILES := $(addprefix $(STAGEDIR)/,$(COPIED_FILES))
+ 
+-all: $(COPY_BINARIES) $(COPY_FILES) $(STAGEDIR)/docs/MAME.pdf
++all: $(COPY_BINARIES) $(COPY_FILES)
+ 
+ clean:
+ 	$(SILENT) rm -rf $(STAGEDIR)
+@@ -124,10 +124,4 @@ $(STAGEDIR)/%: $(BINDIR)/% | $(GEN_FOLDERS)
+ $(STAGEDIR)/%: % | $(GEN_FOLDERS)
+ 	$(call COPY,$<,$@)
+ 
+-$(STAGEDIR)/docs/MAME.pdf: docs/build/latex/MAME.pdf | $(GEN_FOLDERS)
+-	$(call COPY,$<,$@)
+-
+-docs/build/latex/MAME.pdf:
+-	$(MAKE) -C docs latexpdf
+-
+ .PHONY: all clean
+-- 
+2.33.1
+
diff --git a/pkgs/applications/emulators/mame/default.nix b/pkgs/applications/emulators/mame/default.nix
index ce3fb3d06aed2..a024433e3edff 100644
--- a/pkgs/applications/emulators/mame/default.nix
+++ b/pkgs/applications/emulators/mame/default.nix
@@ -2,22 +2,34 @@
 , stdenv
 , alsa-lib
 , CoreAudioKit
+, expat
 , fetchFromGitHub
+, flac
 , fontconfig
 , ForceFeedback
+, glm
 , installShellFiles
+, libjpeg
 , libpcap
 , libpulseaudio
 , libXi
 , libXinerama
+, lua5_3
 , makeDesktopItem
 , makeWrapper
 , pkg-config
+, portaudio
+, portmidi
+, pugixml
 , python3
 , qtbase
+, rapidjson
 , SDL2
 , SDL2_ttf
+, utf8proc
 , which
+, writeScript
+, zlib
 }:
 
 let
@@ -33,39 +45,69 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mame";
-  version = "0.239";
+  version = "0.242";
 
   src = fetchFromGitHub {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${builtins.replaceStrings [ "." ] [ "" ] version}";
-    sha256 = "sha256-svclBaFkp4d6db+zWZNvZP8vWIFz/7M5N1M6WseOFEk=";
+    sha256 = "sha256-06iKM9cpjXuNvChQTPjhb9oQptC4KTZEoxzZk8+x3/k=";
   };
 
   hardeningDisable = [ "fortify" ];
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" "-Wno-error=missing-braces" ];
 
   makeFlags = [
-    "TOOLS=1"
-    "USE_LIBSDL=1"
     "CC=${stdenv.cc.targetPrefix}cc"
     "CXX=${stdenv.cc.targetPrefix}c++"
+    "TOOLS=1"
+    "USE_LIBSDL=1"
+    # "USE_SYSTEM_LIB_ASIO=1"
+    "USE_SYSTEM_LIB_EXPAT=1"
+    "USE_SYSTEM_LIB_FLAC=1"
+    "USE_SYSTEM_LIB_GLM=1"
+    "USE_SYSTEM_LIB_JPEG=1"
+    "USE_SYSTEM_LIB_LUA=1"
+    "USE_SYSTEM_LIB_PORTAUDIO=1"
+    "USE_SYSTEM_LIB_PORTMIDI=1"
+    "USE_SYSTEM_LIB_PUGIXML=1"
+    "USE_SYSTEM_LIB_RAPIDJSON=1"
+    "USE_SYSTEM_LIB_UTF8PROC=1"
+    "USE_SYSTEM_LIB_ZLIB=1"
   ];
 
   dontWrapQtApps = true;
 
   # https://docs.mamedev.org/initialsetup/compilingmame.html
-  buildInputs =
-    [ SDL2 SDL2_ttf qtbase ]
-    ++ lib.optionals stdenv.isLinux [ alsa-lib libpulseaudio libXinerama libXi fontconfig ]
-    ++ lib.optionals stdenv.isDarwin [ libpcap CoreAudioKit ForceFeedback ];
+  buildInputs = [
+    expat
+    zlib
+    flac
+    lua5_3
+    portmidi
+    portaudio
+    utf8proc
+    libjpeg
+    rapidjson
+    pugixml
+    glm
+    SDL2
+    SDL2_ttf
+    qtbase
+  ]
+  ++ lib.optionals stdenv.isLinux [ alsa-lib libpulseaudio libXinerama libXi fontconfig ]
+  ++ lib.optionals stdenv.isDarwin [ libpcap CoreAudioKit ForceFeedback ];
 
   nativeBuildInputs = [ python3 pkg-config which makeWrapper installShellFiles ];
 
-  # by default MAME assumes that paths with stock resources
-  # are relative and that you run MAME changing to
-  # install directory, so we add absolute paths here
   patches = [
+    # MAME is now generating the PDF documentation on its release script since commit:
+    # https://github.com/mamedev/mame/commit/c0e93076232e794c919231e4386445d78b2d80b1
+    # however this needs sphinx+latex to build, and it is available in the website
+    # anyway for those who need it
+    ./0001-Revert-Added-PDF-documentation-to-dist.mak.patch
+    # by default MAME assumes that paths with stock resources
+    # are relative and that you run MAME changing to
+    # install directory, so we add absolute paths here
     ./emuopts.patch
   ];
 
@@ -93,13 +135,21 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = writeScript "mame-update-script" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl common-updater-scripts jq
+
+    set -eu -o pipefail
+
+    latest_version=$(curl -s https://api.github.com/repos/mamedev/mame/releases/latest | jq --raw-output .tag_name)
+    update-source-version mame "''${latest_version/mame0/0.}"
+  '';
+
   meta = with lib; {
     description = "Is a multi-purpose emulation framework";
     homepage = "https://www.mamedev.org/";
     license = with licenses; [ bsd3 gpl2Plus ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ thiagokokada ];
-    # macOS needs more time to build
-    timeout = 24 * 3600;
   };
 }
diff --git a/pkgs/applications/emulators/proton-caller/default.nix b/pkgs/applications/emulators/proton-caller/default.nix
index d10c43642325b..14c5b7be73181 100644
--- a/pkgs/applications/emulators/proton-caller/default.nix
+++ b/pkgs/applications/emulators/proton-caller/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "proton-caller";
-  version = "2.3.2";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "caverym";
     repo = pname;
     rev = version;
-    sha256 = "sha256-k+cH86atuVoLCQ+I1zu08f4T+y0u8vnjo3VA+Otg+a4=";
+    sha256 = "sha256-eyHFKAGx8du4osoGDsMFzVE/TC/ZMPsx6mrWUPDCLJ4=";
   };
 
-  cargoSha256 = "sha256-rkgg96IdIhVXZ5y/ECUxNPyPV9Nv5XGAtlxAkILry2s=";
+  cargoSha256 = "sha256-/4+r5rvRUqQL8EVIg/22ZytXyE4+SV4UEcXiEw4795U=";
 
   meta = with lib; {
     description = "Run Windows programs with Proton";
diff --git a/pkgs/applications/emulators/retroarch/cores.nix b/pkgs/applications/emulators/retroarch/cores.nix
index e0045a3827d18..64de314c760f0 100644
--- a/pkgs/applications/emulators/retroarch/cores.nix
+++ b/pkgs/applications/emulators/retroarch/cores.nix
@@ -1,23 +1,22 @@
 { lib
 , stdenv
-, SDL
 , alsa-lib
 , boost
-, buildPackages
 , bzip2
 , cmake
 , curl
 , fetchFromGitHub
 , ffmpeg
 , fluidsynth
+, gcc10Stdenv
 , gettext
 , hexdump
 , hidapi
 , icu
 , libaio
+, libevdev
 , libGL
 , libGLU
-, libevdev
 , libjpeg
 , libpcap
 , libpng
@@ -32,6 +31,7 @@
 , portaudio
 , python3
 , retroarch
+, SDL
 , sfml
 , snappy
 , udev
@@ -53,17 +53,19 @@ let
     , description
       # Check https://github.com/libretro/libretro-core-info for license information
     , license
+    , stdenvOverride ? stdenv
     , src ? (getCoreSrc core)
     , broken ? false
-    , version ? "unstable-2022-01-21"
+    , version ? "unstable-2022-04-08"
     , platforms ? retroarch.meta.platforms
       # The resulting core file is based on core name
       # Setting `normalizeCore` to `true` will convert `-` to `_` on the core filename
     , normalizeCore ? true
     , ...
     }@args:
-    stdenv.mkDerivation (
+    stdenvOverride.mkDerivation (
       let
+        inherit (stdenvOverride) hostPlatform;
         d2u = if normalizeCore then (lib.replaceChars [ "-" ] [ "_" ]) else (x: x);
       in
       (rec {
@@ -79,12 +81,12 @@ let
             linux = "unix";
             darwin = "osx";
             windows = "win";
-          }.${stdenv.hostPlatform.parsed.kernel.name} or stdenv.hostPlatform.parsed.kernel.name}"
+          }.${hostPlatform.parsed.kernel.name} or hostPlatform.parsed.kernel.name}"
           "ARCH=${{
             armv7l = "arm";
             armv6l = "arm";
             i686 = "x86";
-          }.${stdenv.hostPlatform.parsed.cpu.name} or stdenv.hostPlatform.parsed.cpu.name}"
+          }.${hostPlatform.parsed.cpu.name} or hostPlatform.parsed.cpu.name}"
         ] ++ (args.makeFlags or [ ]);
 
         coreDir = "${placeholder "out"}/lib/retroarch/cores";
@@ -94,9 +96,9 @@ let
 
           mkdir -p $out/bin
           mkdir -p $coreDir
-          mv ${d2u args.core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $coreDir
+          mv ${d2u args.core}_libretro${hostPlatform.extensions.sharedLibrary} $coreDir
           makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
-            --add-flags "-L $coreDir/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
+            --add-flags "-L $coreDir/${d2u core}_libretro${hostPlatform.extensions.sharedLibrary} $@"
 
           runHook postInstall
         '';
@@ -298,37 +300,11 @@ in
   citra = mkLibRetroCore {
     core = "citra";
     description = "Port of Citra to libretro";
+    stdenvOverride = gcc10Stdenv;
     license = lib.licenses.gpl2Plus;
-    extraNativeBuildInputs = [ cmake pkg-config ];
-    extraBuildInputs = [ libGLU libGL boost ];
-    makefile = "Makefile";
-    cmakeFlags = [
-      "-DENABLE_LIBRETRO=ON"
-      "-DENABLE_QT=OFF"
-      "-DENABLE_SDL2=OFF"
-      "-DENABLE_WEB_SERVICE=OFF"
-      "-DENABLE_DISCORD_PRESENCE=OFF"
-    ];
-    preConfigure = "sed -e '77d' -i externals/cmake-modules/GetGitRevisionDescription.cmake";
-    postBuild = "cd src/citra_libretro";
-  };
-
-  citra-canary = mkLibRetroCore {
-    core = "citra-canary";
-    description = "Port of Citra Canary/Experimental to libretro";
-    license = lib.licenses.gpl2Plus;
-    extraNativeBuildInputs = [ cmake pkg-config ];
-    extraBuildInputs = [ libGLU libGL boost ];
+    extraBuildInputs = [ libGLU libGL boost ffmpeg nasm ];
     makefile = "Makefile";
-    cmakeFlags = [
-      "-DENABLE_LIBRETRO=ON"
-      "-DENABLE_QT=OFF"
-      "-DENABLE_SDL2=OFF"
-      "-DENABLE_WEB_SERVICE=OFF"
-      "-DENABLE_DISCORD_PRESENCE=OFF"
-    ];
-    preConfigure = "sed -e '77d' -i externals/cmake-modules/GetGitRevisionDescription.cmake";
-    postBuild = "cd src/citra_libretro";
+    makeFlags = [ "HAVE_FFMPEG_STATIC=0" ];
   };
 
   desmume = mkLibRetroCore {
@@ -476,11 +452,9 @@ in
     description = "Port of Hatari to libretro";
     license = lib.licenses.gpl2Only;
     extraBuildInputs = [ SDL zlib ];
-    extraNativeBuildInputs = [ cmake which ];
-    dontUseCmakeConfigure = true;
+    extraNativeBuildInputs = [ which ];
     dontConfigure = true;
     makeFlags = [ "EXTERNAL_ZLIB=1" ];
-    depsBuildBuild = [ buildPackages.stdenv.cc ];
   };
 
   mame = mkLibRetroCore {
@@ -488,7 +462,6 @@ in
     description = "Port of MAME to libretro";
     license = with lib.licenses; [ bsd3 gpl2Plus ];
     extraBuildInputs = [ alsa-lib libGLU libGL portaudio python3 xorg.libX11 ];
-    makefile = "Makefile.libretro";
   };
 
   mame2000 = mkLibRetroCore {
@@ -619,7 +592,6 @@ in
     src = getCoreSrc core;
     description = "Neko Project II kai libretro port";
     license = lib.licenses.mit;
-    makefile = "Makefile.libretro";
     makeFlags = [
       # See https://github.com/AZO234/NP2kai/tags
       "NP2KAI_VERSION=rev.22"
diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix
index 2c49874e54468..c32f46cf26653 100644
--- a/pkgs/applications/emulators/retroarch/default.nix
+++ b/pkgs/applications/emulators/retroarch/default.nix
@@ -35,11 +35,11 @@
 }:
 
 let
-  version = "1.10.0";
+  version = "1.10.2";
   libretroCoreInfo = fetchFromGitHub {
     owner = "libretro";
     repo = "libretro-core-info";
-    sha256 = "sha256-3j7fvcfbgyk71MmbUUKYi+/0cpQFNbYXO+DMDUjDqkQ=";
+    sha256 = "sha256-XOSIVH3BSwAFKUeRvyYc2OXDa+TLjoKVGl+b8fgnvtY=";
     rev = "v${version}";
   };
   runtimeLibs = lib.optional withVulkan vulkan-loader
@@ -52,13 +52,13 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "RetroArch";
-    sha256 = "sha256-bpTSzODVRKRs1OW6JafjbU3e/AqdQeGzWcg1lb9SIyo=";
+    sha256 = "sha256-fMsHMQiEoXeFKITxeEyRH829z5SCf8p0Hxq6ww1p3z4=";
     rev = "v${version}";
   };
 
   patches = [
-    ./0001-Disable-menu_show_core_updater.patch
-    ./0002-Use-fixed-paths-on-libretro_info_path.patch
+    ./disable-menu_show_core_updater.patch
+    ./use-fixed-paths-on-libretro_info_path.patch
   ];
 
   postPatch = ''
@@ -104,10 +104,30 @@ stdenv.mkDerivation rec {
   '' + lib.optionalString (runtimeLibs != [ ]) ''
     wrapProgram $out/bin/retroarch \
       --prefix LD_LIBRARY_PATH ':' ${lib.makeLibraryPath runtimeLibs}
+  '' + lib.optionalString stdenv.isDarwin ''
+    # https://github.com/libretro/RetroArch/blob/master/retroarch-apple-packaging.sh
+    app=$out/Applications/RetroArch.app
+    mkdir -p $app/Contents/MacOS
+    cp -r pkg/apple/OSX/* $app/Contents
+    cp $out/bin/retroarch $app/Contents/MacOS
+    # FIXME: using Info_Metal.plist results in input not working
+    # mv $app/Contents/Info_Metal.plist $app/Contents/Info.plist
+
+    substituteInPlace $app/Contents/Info.plist \
+      --replace '${"\${EXECUTABLE_NAME}"}' 'RetroArch' \
+      --replace '$(PRODUCT_BUNDLE_IDENTIFIER)' 'com.libretro.RetroArch' \
+      --replace '${"\${PRODUCT_NAME}"}' 'RetroArch' \
+      --replace '${"\${MACOSX_DEPLOYMENT_TARGET}"}' '10.13'
+
+    cp media/retroarch.icns $app/Contents/Resources/
   '';
 
   preFixup = "rm $out/bin/retroarch-cg2glsl";
 
+  # Workaround for the following error affecting newer versions of Clang:
+  # ./config.def.h:xxx:x: error: 'TARGET_OS_TV' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_]
+  NIX_CFLAGS_COMPILE = lib.optional stdenv.cc.isClang [ "-Wno-undef-prefix" ];
+
   meta = with lib; {
     homepage = "https://libretro.com";
     description = "Multi-platform emulator frontend for libretro cores";
@@ -115,8 +135,5 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     changelog = "https://github.com/libretro/RetroArch/blob/v${version}/CHANGES.md";
     maintainers = with maintainers; [ MP2E edwtjo matthewbauer kolbycrouch thiagokokada ];
-    # FIXME: exits with error on macOS:
-    # No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patch b/pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patch
deleted file mode 100644
index 34fea554ef71e..0000000000000
--- a/pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/retroarch.cfg b/retroarch.cfg
-index cdcb199c9f..ab72f3920f 100644
---- a/retroarch.cfg
-+++ b/retroarch.cfg
-@@ -681,7 +681,7 @@
- # menu_show_online_updater = true
- 
- # If disabled, will hide the ability to update cores (and core info files) inside the menu.
--# menu_show_core_updater = true
-+menu_show_core_updater = false
- 
- # If disabled, the libretro core will keep running in the background when we
- # are in the menu.
diff --git a/pkgs/applications/emulators/retroarch/0001-Disable-menu_show_core_updater.patch b/pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch
index 75018dc8c4d1e..427cb4871dc96 100644
--- a/pkgs/applications/emulators/retroarch/0001-Disable-menu_show_core_updater.patch
+++ b/pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch
@@ -1,7 +1,7 @@
 From 546b343294209abbb193883ab76b679b7f99c6d3 Mon Sep 17 00:00:00 2001
 From: Thiago Kenji Okada <thiagokokada@gmail.com>
 Date: Sat, 20 Nov 2021 16:03:50 -0300
-Subject: [PATCH 1/2] Disable "menu_show_core_updater"
+Subject: [PATCH] Disable "menu_show_core_updater"
 
 ---
  retroarch.cfg | 2 +-
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index 1280f25047d89..78969df95d30f 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -2,8 +2,8 @@
     "atari800": {
         "owner": "libretro",
         "repo": "libretro-atari800",
-        "rev": "478a8ec99a7f8436a39d5ac193c5fe313233ee7b",
-        "sha256": "LJpRegJVR2+sS1UmTTpVest0rMrNDBMXmj/jRFVglWI="
+        "rev": "beab30e7ea10b7ed14d0514064f47d16f76cd995",
+        "sha256": "r9MsnasNhhYdFyr2VHJXkTXssB5U00JW6wN/+i+SNUk="
     },
     "beetle-gba": {
         "owner": "libretro",
@@ -14,62 +14,62 @@
     "beetle-lynx": {
         "owner": "libretro",
         "repo": "beetle-lynx-libretro",
-        "rev": "8930e88a4342945c023cbf713031a65de11a8e75",
-        "sha256": "bg/a+9ZJNTUIuEHKrFIss8sia3JWMWXIXbxha5qKVeI="
+        "rev": "de0d520d679cb92767876d4e98da908b1ea6a2d6",
+        "sha256": "BszU5bnlHBOwQSZOM9P4WIP863rS5RluNWvGBFxqzYs="
     },
     "beetle-ngp": {
         "owner": "libretro",
         "repo": "beetle-ngp-libretro",
-        "rev": "f7c393184e5228c3d3807ee74c951c4c549107d8",
-        "sha256": "7vki8VkwOzxwMZcUxekg1DFSskV7VNQ1SRaU3M1xHZ0="
+        "rev": "6abc74d9dc6a86460ab71c93c153fe1cb8ef4dbb",
+        "sha256": "+p3MwlzwwTghIKTDMzkqGlxhZiy/Px7xaDK3a0JagUE="
     },
     "beetle-pce-fast": {
         "owner": "libretro",
         "repo": "beetle-pce-fast-libretro",
-        "rev": "0f43fd4dc406e7da6bbdc13b6eb1c105d6072f8a",
-        "sha256": "u1lOgXEYuGAF4sOLdsBzcA4/A5Yz1b82TjFBiM57yE4="
+        "rev": "e8801687f232a6f8828b3ff5dadbc9fe1b0076fc",
+        "sha256": "YM+URLnMqsdmk/5yqCg8U4mPpgtmj5qne2CrbTpTeN8="
     },
     "beetle-pcfx": {
         "owner": "libretro",
         "repo": "beetle-pcfx-libretro",
-        "rev": "6d2b11e17ad5a95907c983e7c8a70e75508c2d41",
-        "sha256": "WG2YpCYdL/MxW5EbiP2+1VtAjbX7yYDIcLXhb+YySI4="
+        "rev": "00abc26cafb15cc33dcd73f4bd6b93cbaab6e1ea",
+        "sha256": "4a1wV3WKZmg1ed3BD0PN0Ap9E9XahQtilRWTGV5Ns3g="
     },
     "beetle-psx": {
         "owner": "libretro",
         "repo": "beetle-psx-libretro",
-        "rev": "297970e4ff080ea80a5670209aeea4fde8059020",
-        "sha256": "6kZher3/+5ywXyC3n9R9JVA4IVLZBaSfAcWEKp2SsDE="
+        "rev": "88929ae90b4807a41b1b240377ab440e39ecf2cc",
+        "sha256": "5AX5FPsmsqGWCNzLgJ7lsekZaIdano2j5sb4qUkD4cQ="
     },
     "beetle-saturn": {
         "owner": "libretro",
         "repo": "beetle-saturn-libretro",
-        "rev": "e6ba71f8bcc647b646d94dec812b24d00c41cf3f",
-        "sha256": "tDbV+CsDr4bowBbJ/C8J9scfCryTAXxz58pGaUHU5yU="
+        "rev": "ae30f29e340a00b33e38df85ceaa599151a47cd7",
+        "sha256": "nc239PRM/TfkZMWm4Zl5kSoZBQcrMcMudupvCJtTBlc="
     },
     "beetle-snes": {
         "owner": "libretro",
         "repo": "beetle-bsnes-libretro",
-        "rev": "bc867656d7438aaffc6818b3b92350587bc78a47",
-        "sha256": "TyUCRGK+uyXowDjXW9/4m+zL8Vh/3GGsX1eznrTCbAg="
+        "rev": "d770563fc3c4bd9abb522952cefb4aa923ba0b91",
+        "sha256": "zHPtfgp9hc8Q4gXJ5VgfJLWLeYjCsQhkfU1T5RM7AL0="
     },
     "beetle-supergrafx": {
         "owner": "libretro",
         "repo": "beetle-supergrafx-libretro",
-        "rev": "7bae6fb1a238f1e66b129c7c70c7cb6dbdc09fa1",
-        "sha256": "OAJ86XrwjDrgCjrk0RHMn8sHYaJFhJhLaQnhaEVXN38="
+        "rev": "59991a98c232b1a8350a9d67ac554c5b22771d3c",
+        "sha256": "zv3dAPWrj6hkNaFQ5vUKm5Orcrb2XO48WSkAFiAVUO0="
     },
     "beetle-vb": {
         "owner": "libretro",
         "repo": "beetle-vb-libretro",
-        "rev": "aa77198c6c60b935503b5ea2149b8ff7598344da",
-        "sha256": "ShsMYc2vjDoiN1yCCoSl91P5ecYJDj/V+VWUYuYVxas="
+        "rev": "a91437af0879124aa00b6cb30ca1189f2c84b7cb",
+        "sha256": "ryahr/g6PDvUKCPkF1D8xozNGNCa4bLw63b5Ra9Vsfo="
     },
     "beetle-wswan": {
         "owner": "libretro",
         "repo": "beetle-wswan-libretro",
-        "rev": "5717c101b314f64d4c384c23b1934d09fcbf82bb",
-        "sha256": "Nfezb6hja1qHv1fMGU9HMbbb56GHAfe/zIgRqrzz334="
+        "rev": "089a62477c5f51ac746a5fc8eacf3599e9feb649",
+        "sha256": "yaaEJ+XgrBgtTEkffgnxvt2mrp5dsDYJ+TTxCZZU5OE="
     },
     "blastem": {
         "owner": "libretro",
@@ -80,14 +80,14 @@
     "bluemsx": {
         "owner": "libretro",
         "repo": "bluemsx-libretro",
-        "rev": "5dfdb75106e10ef8bc21b8bcea1432ecbd590b2a",
-        "sha256": "0D0xufIt3qmQ+/UjyWynoLyLDSza8cTrFp3UwGWBXko="
+        "rev": "92d0c41b4973854114c7b2d06ab727a266d404c5",
+        "sha256": "dL4k+zG8L4KK4lwf9eXPVGk/u5xQn2htIEpoKyj9kQI="
     },
     "bsnes": {
         "owner": "libretro",
         "repo": "bsnes-libretro",
-        "rev": "1b2987ab1e9caf5c8d7550da01ffa08edff2f128",
-        "sha256": "l6Jvn0ZgFaKSWjiV2bN9aemxLyfnNEQFc+HS1/MuiaY="
+        "rev": "26c583e1c5d09253b6c61e2b9d418e8758eef632",
+        "sha256": "Qa0ScFHcEgBUoWouNoW4JINZ2aHjNATndxhcwKw476Q="
     },
     "bsnes-hd": {
         "owner": "DerKoun",
@@ -98,152 +98,141 @@
     "bsnes-mercury": {
         "owner": "libretro",
         "repo": "bsnes-mercury",
-        "rev": "d232c6ea90552f5921fec33a06626f08d3e18b24",
-        "sha256": "fpl7hmqz+Ca+9ZeM6E1JSikbiu+NJUU8xXtyl6Dd9Gg="
+        "rev": "4ba6d8d88e57d3193d95e1bcf39e8d31121f76d4",
+        "sha256": "w2MVslgRlxW4SMzgcXP4gXr9A8B07N7LNrB1LXzk1Zk="
     },
     "citra": {
         "owner": "libretro",
         "repo": "citra",
-        "rev": "b1959d07a340bfd9af65ad464fd19eb6799a96ef",
-        "sha256": "bwnYkMvbtRF5bGZRYVtMWxnCu9P45qeX4+ntOj9eRds=",
-        "fetchSubmodules": true,
-        "leaveDotGit": true,
-        "deepClone": true
-    },
-    "citra-canary": {
-        "owner": "libretro",
-        "repo": "citra",
-        "rev": "5401990a9be46e4497abc92db3d5f2042674303d",
-        "sha256": "JKKJBa840i7ESwMrB5tKamCBmrYvvoEUdibqxkWg5Gc=",
-        "fetchSubmodules": true,
-        "leaveDotGit": true,
-        "deepClone": true
+        "rev": "44e01f99016008eff18bc7a28234d1098382358d",
+        "sha256": "vIrUStv+VM8pYeznnWSVBRfSA71/B7VIY7B/syymGzE=",
+        "fetchSubmodules": true
     },
     "desmume": {
         "owner": "libretro",
         "repo": "desmume",
-        "rev": "7ea0fc96804fcd9c8d33e8f76cf64b1be50cc5ea",
-        "sha256": "4S/CirRVOBN6PVbato5X5fu0tBn3Fu5FEAbdf3TBqng="
+        "rev": "5d0ae2be2c9fb6362af528b3722e81323318eb9f",
+        "sha256": "4bJ6fLZ+fV7SnZ71YT3JFcXFOgmskNUCmCHwc2QNl0A="
     },
     "desmume2015": {
         "owner": "libretro",
         "repo": "desmume2015",
-        "rev": "cd89fb7c48c735cb321311fbce7e6e9889dda1ce",
-        "sha256": "9Ou/n6pxRjJOp/Ybpyg4+Simosj2X26kLZCMEqeVL6U="
+        "rev": "af397ff3d1f208c27f3922cc8f2b8e08884ba893",
+        "sha256": "kEb+og4g7rJvCinBZKcb42geZO6W8ynGsTG9yqYgI+U="
     },
     "dolphin": {
         "owner": "libretro",
         "repo": "dolphin",
-        "rev": "3b19e6d1781584f3e1fd2922b48b8ae6b3bcb686",
-        "sha256": "EcgJhkMzdZfYRwSpU1OcsJqQyq4V8dq5PndVufZFy7k="
+        "rev": "6a0b6ee8a4d5363e669f5faf43abc8f17e4278a8",
+        "sha256": "TeeHnttGmCeOTDTK/gJM+RpusjDDndapZAa3T+oLiq0="
     },
     "dosbox": {
         "owner": "libretro",
         "repo": "dosbox-libretro",
-        "rev": "aa71b67d54eaaf9e41cdd3cb5153d9cff0ad116e",
-        "sha256": "L0Y67UROjldnXUlLQ+Xbd7RHLb96jDxlB/k+LR9Kbas="
+        "rev": "74cd17ed0ff810ff78cb8c1f1e45513bfe8a0f32",
+        "sha256": "0PIloW7j/87asDJ8IDw4r3r4muxNF+RbvkIRPLZQvRc="
     },
     "eightyone": {
         "owner": "libretro",
         "repo": "81-libretro",
-        "rev": "86d7d5afe98f16006d4b1fdb99d281f1d7ea6b2f",
-        "sha256": "QN7anzqv1z8SgY8dlkjr8Ns7reGWc7hTneiRmorXZSk="
+        "rev": "6aba19246c1ec08f3de5659b2dbc3277ec6bfb97",
+        "sha256": "2G6NkNlvqvP5RM35ydppnr2/RRbeiIpM2HKOpt8PkgU="
     },
     "fbalpha2012": {
         "owner": "libretro",
         "repo": "fbalpha2012",
-        "rev": "23f98fc7cf4f2f216149c263cf5913d2e28be8d4",
-        "sha256": "dAInW6tTV7oXcPhKMnHWcmQaWQCTqRrYHD2yuaI1I1w="
+        "rev": "7f8860543a81ba79c0e1ce1aa219af44568c628a",
+        "sha256": "r1lH+CR+nVRCPkVo0XwLi35/ven/FEkNhWUTA6cUVxc="
     },
     "fbneo": {
         "owner": "libretro",
         "repo": "fbneo",
-        "rev": "4ecf2782a4eee042d1e126d1671e5231b6437b6e",
-        "sha256": "15MYI03r45mmRsXCwzWnjfBdtzSaHLp7DfmcACQFTvU="
+        "rev": "01bf2e189dcd96f978c3a4ae7bbbb00f2d90aabf",
+        "sha256": "naCfGSrwA9vO3Cu2rHLplCMcTbpx6S/sapwisFCcL5c="
     },
     "fceumm": {
         "owner": "libretro",
         "repo": "libretro-fceumm",
-        "rev": "eb06d17e7912780a3ee117ae73bc50c3948c761c",
-        "sha256": "aBqskJtK1bFBjwaoo9hilr33fyAWsdj5+hFC3WY3sKk="
+        "rev": "b3c35b6515b2b6a789c589f976a4a323ebebe3eb",
+        "sha256": "zwFQGQyO0Vj/IBM1k8JB3D/jB3OwDuGdSHLavr8Fxgw="
     },
     "flycast": {
         "owner": "libretro",
         "repo": "flycast",
-        "rev": "0d8c6a2e717c002bc76ce26a152353b004fb15e7",
-        "sha256": "t2RGHAyYXeHVqTqqhayOUWx/msFN9q/Z9P2wXJUtQTI="
+        "rev": "4c293f306bc16a265c2d768af5d0cea138426054",
+        "sha256": "9IxpRBY1zifhOebLJSDMA/wiOfcZj+KOiPrgmjiFxvo="
     },
     "fmsx": {
         "owner": "libretro",
         "repo": "fmsx-libretro",
-        "rev": "dfcda056896576c6a1c75c002a82d0e6c1160ccc",
-        "sha256": "9ANZ1suAQcYOhqSchQ20Yuqvgw06j5Sd3Z1fjrp2UFc="
+        "rev": "f9ea9eacd49297783c216d147dcc1a22465b2749",
+        "sha256": "nDsaaUeZUm4zTj07+2nPDefoDpw18vXdhQr1BH6/4eY="
     },
     "freeintv": {
         "owner": "libretro",
         "repo": "freeintv",
-        "rev": "d58caf23ed1438a1db58f8d6ac24ca521b411d3b",
-        "sha256": "nUV+A3Zh66M1K5NDK0ksNF5H1HS3AQdeYLaGfaA34n4="
+        "rev": "295dd3c9e4b2d4f652f6a6a904afbe90a8187068",
+        "sha256": "tz0X6AfD7IL3Y50vjgSO5r6sDhu++6Gj8Rp7de5OqMk="
     },
     "gambatte": {
         "owner": "libretro",
         "repo": "gambatte-libretro",
-        "rev": "79bb2e56d034c30d8dcac02b6c34a59ec8fe91bc",
-        "sha256": "H+Hkeep18whaSYbyG8DcaJqsVVu7DEX9T28pkfXfyCg="
+        "rev": "15536214cdce31894d374b2ffa2494543057082b",
+        "sha256": "cTSoK6rezRajnuWPt7WkYn3SWL0sTu7h5X3Ig1KukDA="
     },
     "genesis-plus-gx": {
         "owner": "libretro",
         "repo": "Genesis-Plus-GX",
-        "rev": "88c9ad000ba553b9c819d9eb259f741fabd877bb",
-        "sha256": "8ZCMq8/sk5TqwTNWMfDevZHRPSOM1PJ57kiZZ7qfQxA="
+        "rev": "144045b30a18ab4b27c3ae46490274988f302748",
+        "sha256": "ydnyPdkJmM+xhuJqIOxZISFcTN8RFgOLbnRvOBJORek="
     },
     "gpsp": {
         "owner": "libretro",
         "repo": "gpsp",
-        "rev": "e554360dd3ed283696fc607877024a219248b735",
-        "sha256": "ImsqB89XmjF8nvs7j8IZVvFltgZRYvF2L7LTcJG/xCU="
+        "rev": "d4547baf26dd70a18eeb38d231ce3f998004ec30",
+        "sha256": "9XU9TmBpuZeAOzqxuKVQZvdHRgX8fm4HcEfleM3jB7E="
     },
     "gw": {
         "owner": "libretro",
         "repo": "gw-libretro",
-        "rev": "0f1ccca156388880bf4507ad44741f80945dfc6f",
-        "sha256": "BVpx8pL224J2u9W6UDrxzfEv4qIsh6wrf3bDdd1R850="
+        "rev": "85bf5c936044db0bf4138e7eb8ab20d3a7330035",
+        "sha256": "yCAnveQw+VyZFQ/GsUBuyoMRQ4yfhA0f3tYghZ2HecU="
     },
     "handy": {
         "owner": "libretro",
         "repo": "libretro-handy",
-        "rev": "3b02159ba32aa37c1b93d7f7eac56b28e3715645",
-        "sha256": "mBKK+pdWgkxYkV4OOiBrlWbLAMugDX0fd6QRh0D7JYU="
+        "rev": "5145f79bb746f6d9c0b340c2f9cc4bf059848924",
+        "sha256": "madTjJWKM8elM35LRAwm0RwnA44skLtIK2/7RXPSNl0="
     },
     "hatari": {
         "owner": "libretro",
         "repo": "hatari",
-        "rev": "79d128888ca3efdd27d639a35edf72a9bc81a798",
-        "sha256": "du2xORgAXTSQArqNuFa5gjticgZ+weqySFHVz2Y2qzI="
+        "rev": "e5e36a5262cfeadc3d1c7b411b7a70719c4f293c",
+        "sha256": "T4I3NVEMBKr5HLs60x48VNRl2TMnhqvaF+LTtYQ7qdU="
     },
     "mame": {
         "owner": "libretro",
         "repo": "mame",
-        "rev": "2f9c793a77222ae46266c71f64d491cf7870dc1e",
-        "sha256": "WAhm6QMMVbnuSIK4PW7Ek+AAkMs7s95gGb6ERzlon0w="
+        "rev": "2a0e4ea0e2362bb7dcf77216c9fcb48426cea1e8",
+        "sha256": "imuHEwzDpI8jbdOeOhBBfzl4k74mDq/3SrKD8upzZmo="
     },
     "mame2000": {
         "owner": "libretro",
         "repo": "mame2000-libretro",
-        "rev": "4793742b457945afb74053c8a895e6ff0b36b033",
-        "sha256": "DA9fZTic/jlYzSAIiOjfhohyEyQZiBNdIa8YCZoKZNs="
+        "rev": "f35db3877f8a79a174dd3b2e37f4ebf39d71d5a4",
+        "sha256": "JmtvxKWAYNk1SyV1YpFeLX49zzGqpUv6nqM82xU70OM="
     },
     "mame2003": {
         "owner": "libretro",
         "repo": "mame2003-libretro",
-        "rev": "dbda6ddacdd8962cfea25000421dba398e551aef",
-        "sha256": "RSL3iZZEJCxOtsJqjnM5ZiT0yM2nAgg/Ujq6FBLMHkk="
+        "rev": "3eb27d5f161522cf873c0642f14b8e2267b3820f",
+        "sha256": "TQ4FwboKeEP58hOL2hYs4OYes2o0wSKFSp4CqZV5r6I="
     },
     "mame2003-plus": {
         "owner": "libretro",
         "repo": "mame2003-plus-libretro",
-        "rev": "9c0c954f0f88730f44abdd4d414691fef6b1cd7c",
-        "sha256": "NLdHc0VuZhqQhAzv+8kipc0mhqT2BNaJeLYZUx7DwRU="
+        "rev": "e5ee29ecb8182952f861f22516e5791625fe2671",
+        "sha256": "YunfAITR/Etm8lvEab/HigZoBz+ayJQ7ezjItWI/HvE="
     },
     "mame2010": {
         "owner": "libretro",
@@ -260,26 +249,26 @@
     "mame2016": {
         "owner": "libretro",
         "repo": "mame2016-libretro",
-        "rev": "bcff8046328da388d100b1634718515e1b15415d",
-        "sha256": "XxnX39+0VUbG9TF8+wFEFVxHCm2rzrJsIQryyNsF6zU="
+        "rev": "01058613a0109424c4e7211e49ed83ac950d3993",
+        "sha256": "IsM7f/zlzvomVOYlinJVqZllUhDfy4NNTeTPtNmdVak="
     },
     "melonds": {
         "owner": "libretro",
         "repo": "melonds",
-        "rev": "0053daa700018657bf2e47562b3b4eb86f9b9d03",
-        "sha256": "K6ZYuk7cE+ioq1rLRyAKNQxddCYIOXLU5SXT7sYgGnc="
+        "rev": "e93ec3e462d3dfc1556781510a3cee113f02abb2",
+        "sha256": "NDrsqX17OKw1/PIZSrWAxhVl+Qk/xG7lCnr6Ts+7YJ4="
     },
     "mesen": {
         "owner": "libretro",
         "repo": "mesen",
-        "rev": "094d82bf724448426acbaad45e83bc38994e32f6",
-        "sha256": "9+AqZRv8lugNNa+ZZzIPJNO87J1aBUEiOggL8aYno1M="
+        "rev": "bb9ea02eba28682986044a6f49329ec533aa26ba",
+        "sha256": "G2NQDpByvI9RFEwrRiKXcMnPtVtqpvEoZgk7/fk5qCU="
     },
     "mesen-s": {
         "owner": "libretro",
         "repo": "mesen-s",
-        "rev": "42eb0e8ad346608dae86feb8a04833d16ad21541",
-        "sha256": "q6zeoNiZtFy8ZYls9/E+O7o9BYTcVcmYjbJA48qiraU="
+        "rev": "3694c7f9692a0be32d86979c347884ae9def0a3b",
+        "sha256": "VBNl4682e2X12WNjtXZ3P4/Kw4OeRLSRWyZqYDpfmCo="
     },
     "meteor": {
         "owner": "libretro",
@@ -290,39 +279,39 @@
     "mgba": {
         "owner": "libretro",
         "repo": "mgba",
-        "rev": "43da6e1d54ad0395f474346db88fe59a4c0aa451",
-        "sha256": "JxiWIBQi1fZoBV2lvx2r7iIvlQm0BYuJFz0TsxngUT8="
+        "rev": "5d48e0744059ebf38a4e937b256ffd5df4e0d103",
+        "sha256": "OYw2nlldFx5B7WX0E8Gbgfp1j4h65ZxyKDS9tneHXQg="
     },
     "mupen64plus": {
         "owner": "libretro",
         "repo": "mupen64plus-libretro-nx",
-        "rev": "350f90a73cf0f5d65357ce982ccbaa3b22fc3569",
-        "sha256": "9Hq93+dvO60LBbcXLIHsTq243QThicI0rVJW3tou/5Y="
+        "rev": "6e9dcd2cd9d23d3e79eaf2349bf7e9f25ad45bf1",
+        "sha256": "rs/VL2K6aS8Rl01IyxUiWipzLEzg+7+fbXxI0qN5X/I="
     },
     "neocd": {
         "owner": "libretro",
         "repo": "neocd_libretro",
-        "rev": "83d10f3be10fff2f28aa56fc674c687528cb7f5c",
-        "sha256": "yYZGoMsUfE8cpU9i826UWQGi1l0zPJPcBDb2CINxGeQ="
+        "rev": "327aeceecdf71c8a0c0af3d6dc53686c94fe44ad",
+        "sha256": "cY0P+0EQ0b9df+YT2EMvrxjp5L+DwIg31rEJqchU+hc="
     },
     "nestopia": {
         "owner": "libretro",
         "repo": "nestopia",
-        "rev": "8af07b7ab49e45495cbc4ba73cd2f879d9908b55",
-        "sha256": "Z447flP1L/7gWEovWhbBearPKzsZNnGE2cz7jH7kEnY="
+        "rev": "7dbd5c6384c4c6326004c97fd8e6fa07cb4edcef",
+        "sha256": "OBkWP36BzwsEW+ORF2opHlXwXHgGN0l2ZxBuyDO/sKY="
     },
     "np2kai": {
         "owner": "AZO234",
         "repo": "NP2kai",
-        "rev": "30d4b6959c48db039207a37e278c868c7737ed69",
-        "sha256": "uIcgbpcEz6yUKrBe0r84Yq2ihWfT0+TdUTIF5kMT5mI=",
+        "rev": "2b09ea6a589cdcae27bca27160b3f82638fbb45d",
+        "sha256": "M3kGA1TU3xui6of9XgUspI+Zf+hjYP1d2mgKwxsy3IQ=",
         "fetchSubmodules": true
     },
     "o2em": {
         "owner": "libretro",
         "repo": "libretro-o2em",
-        "rev": "f1050243e0d5285e7769e94a882b0cf39d2b7370",
-        "sha256": "wD+iJ8cKC8jYFZ6OVvX71uO7sSh5b/LLoc5+g7f3Yyg="
+        "rev": "efd749cec2dd1ce42a8aa3048a89f817d271d804",
+        "sha256": "aw0bJyQzYFOlQQOfNsRgqdeUJP1qF4llJxLq5t9oc5g="
     },
     "opera": {
         "owner": "libretro",
@@ -333,59 +322,59 @@
     "parallel-n64": {
         "owner": "libretro",
         "repo": "parallel-n64",
-        "rev": "28c4572c9a09447b3bf5ed5fbd3594a558bc210d",
-        "sha256": "by8NvKjVT9OrgVhNtv5E4Fqmdva42lWV8UQi0SKfBL8="
+        "rev": "b804ab1a199d6ff1f8fef4aa7dfcf663990e430b",
+        "sha256": "zAet6hYa/79CBbvwZNTNs/ayWuHHlwg+0Y4BAUFddBc="
     },
     "pcsx2": {
         "owner": "libretro",
         "repo": "pcsx2",
-        "rev": "3ef2a36b0608e9dcae808c7ef01c7a760d628735",
-        "sha256": "ezqVntonhGfejiGx9cxQEnjsXEHqT++M1fO0Jz1t/Us="
+        "rev": "0251730a21d7238856d79aa25e2942b48edb38f6",
+        "sha256": "a/lWLBCww4QwxdO7Sbvmfq0XF9FnP4xzF51ljsWk46I="
     },
     "pcsx_rearmed": {
         "owner": "libretro",
         "repo": "pcsx_rearmed",
-        "rev": "12fc12797064599dfca2d44043d5c02a949711ef",
-        "sha256": "SXmNfHGyk+KChiwkKlA+d/oezzp/7p1DJY+w2bES6kg="
+        "rev": "37d9bf8315be570a350cd44876ae14f9b0eff20b",
+        "sha256": "ieuEWs+NIQFCgMl/yTnaFdClxEv5NurrLuUvkjSUar0="
     },
     "picodrive": {
         "owner": "libretro",
         "repo": "picodrive",
-        "rev": "50b8b47838fea8096535d543caaacdcc56aa7df2",
-        "sha256": "C1Htwel5PHZcjkKmjiiN/QgRofMhqlArxktOSqoTxTc=",
+        "rev": "bb6a52fe60e6f3bdcd17effe75e68fd0f8c44ba7",
+        "sha256": "wztctLbK7VE4OPJS7ixKwnN4VkQv96Te3FmJlZ5m4A0=",
         "fetchSubmodules": true
     },
     "play": {
         "owner": "jpd002",
         "repo": "Play-",
-        "rev": "fd6a5161030215090d48a8036680f57914c71bb0",
-        "sha256": "g6UBRV7biLjPBXdlejjXUSk3v1wrsYWA3quZlpPj23U=",
+        "rev": "ec2a9460ea2beeb69d30534ee8affbda4fc4b156",
+        "sha256": "8maLaSJiF9soJdIlYoFHSG+2XXYTdLmWH6cq9vZRd/4=",
         "fetchSubmodules": true
     },
     "ppsspp": {
         "owner": "hrydgard",
         "repo": "ppsspp",
-        "rev": "54d63cc1daf2a0cdc812e9af85854bb4ae5ef399",
-        "sha256": "iB/8zf4FYdsbiKZVq/YISTEQSoo1kme1uZsyuhbOcoc=",
+        "rev": "0eea0acf13022ff8d910adb55cec14ebad825afc",
+        "sha256": "f1Tscndz0TcW0bUhixEvsrbFKefLfsCFjqWA7ANnfB4=",
         "fetchSubmodules": true
     },
     "prboom": {
         "owner": "libretro",
         "repo": "libretro-prboom",
-        "rev": "af1b5bf89d01095326ee27e178f9257f9e728873",
-        "sha256": "pvTUv4E+wBOYfjz8Ph11CK4E7rIm1T+u90TWDNXEBIU="
+        "rev": "b22a6b19fd976a14374db9083baea9c91b079106",
+        "sha256": "NmEWRTHaZjV2Y6Wrc3WOamXCnOawKc2ja1KBDxokRiY="
     },
     "prosystem": {
         "owner": "libretro",
         "repo": "prosystem-libretro",
-        "rev": "89e6df7b60d151310fedbe118fb472959a9dcd61",
-        "sha256": "uxgKddS53X7ntPClE8MGezBAG+7OAFvMXTnyKpOOau0="
+        "rev": "fbf62c3dacaac694f7ec26cf9be10a51b27271e7",
+        "sha256": "Opb6CUeT/bnaTg4MJo7DNsVyaPa73PLbIor25HHWzZ0="
     },
     "quicknes": {
         "owner": "libretro",
         "repo": "QuickNES_Core",
-        "rev": "743e6e06db246c5edab27c738c7a573d83140485",
-        "sha256": "NYmP+HFeZGUeIRaT3bzdpWw9cmEAaBkA3EGnw/zpDXA="
+        "rev": "e6f08c165af45fc2d2f26c80ba0cfc33e26f9cfe",
+        "sha256": "JQtlqN3mvIwKy6iN9opHPHnh0E7AIn9JVitIfXklI/I="
     },
     "sameboy": {
         "owner": "libretro",
@@ -396,56 +385,56 @@
     "scummvm": {
         "owner": "libretro",
         "repo": "scummvm",
-        "rev": "80cb7269a33b233dcea27d8d01df084b0d35c80a",
-        "sha256": "5kMWM8d5aBbT7TseNyaYxw7VDkrLL0G+KUvJcUboQgA="
+        "rev": "2fb2e4c551c9c1510c56f6e890ee0300b7b3fca3",
+        "sha256": "wrlFqu+ONbYH4xMFDByOgySobGrkhVc7kYWI4JzA4ew="
     },
     "smsplus-gx": {
         "owner": "libretro",
         "repo": "smsplus-gx",
-        "rev": "3f1ffede55bcfe0168caa484a00bf041ab591abf",
-        "sha256": "fD+grzMPk4uXvmzGf+f9Mor0eefBLHIumCydsSHUsck="
+        "rev": "8e8378896bc15c8a9f756339b596171ba266cc14",
+        "sha256": "zvG2SF4zx3Yaaf54NZ2DgsGPN59msW8TvQFCS4OMcHQ="
     },
     "snes9x": {
         "owner": "snes9xgit",
         "repo": "snes9x",
-        "rev": "34b6160805c4995a8edf5f9b3328f5e492ae4c44",
-        "sha256": "YRRqtd5iu2evRk+7SyQpqpxqTaEFOkDZ/XQHEjpSBcM="
+        "rev": "78d006ffdbb5cb6944177db52c3640152948d928",
+        "sha256": "Qh+nLtwdLfjwYxXCv49pPPf0mqdxKRv/JLRm82knJu0="
     },
     "snes9x2002": {
         "owner": "libretro",
         "repo": "snes9x2002",
-        "rev": "e16cb16efa00765b1bc3b8fee195680efb1542c7",
-        "sha256": "0dhLpNy+NUE3mE/ejEwbq3G28/a2HONS5NPslI5LOEc="
+        "rev": "25d9d4fea4c7d7fcc8608c65c2bec9bcbc41f26e",
+        "sha256": "EYcaWckvTfi2ajx6C1olE5pW51diLSjMdqZdyH8U2Ck="
     },
     "snes9x2005": {
         "owner": "libretro",
         "repo": "snes9x2005",
-        "rev": "77e9cd293c791b47f4397da0a47242b329243cb5",
-        "sha256": "iHGfZIGzE4n3EHrVRxTULuYKsOse5NcJftmasoJFwFo="
+        "rev": "23f759bc4bf2e39733296f7749e446418e3cd0f3",
+        "sha256": "/bZrMp7NHgdYvA3Tw1ZoWXRg7VxmatRUX5cCJsU3NCY="
     },
     "snes9x2010": {
         "owner": "libretro",
         "repo": "snes9x2010",
-        "rev": "714b1c8e08c7580430190119b07e793405773ac2",
-        "sha256": "yKSQEE+lT4V2V1XqemfziHuIt79TcvC0ranU9ounTXo="
+        "rev": "b12f3ba46f09dd5d0254676ed4b9e289d16b9ea8",
+        "sha256": "i4GEqZkgwlehuUQGcjLdMkO9xNWRs8k+3y2OGivwXCw="
     },
     "stella": {
         "owner": "stella-emu",
         "repo": "stella",
-        "rev": "1db9de390a331a7d55c35591c93d9e89184cce5f",
-        "sha256": "vICKxx+UBYvMzZ3a3F86yzJRKfdo0jMxa27wsUX0KZw="
+        "rev": "071e8f7eb1096dfe95d9eb2e5b7b27b30f28fbf9",
+        "sha256": "8WzBL8ojsHYxOqItHeeG4djALhqBBOV7nHE078UzqAY="
     },
     "stella2014": {
         "owner": "libretro",
         "repo": "stella2014-libretro",
-        "rev": "934c7a2a44ef038af529b68950ddba4f7ea3478e",
-        "sha256": "s7LQ47sAPTyk4COONk4qnebxCq78zGLIjh3Y2+1fIak="
+        "rev": "1a2e96bc6ccf91de6fb4322048da05f67a9d21d4",
+        "sha256": "yINO6EU2kCldfxKcqym5ha3uIEQg7I6t4Wmu+8b6Hmw="
     },
     "swanstation": {
         "owner": "libretro",
         "repo": "swanstation",
-        "rev": "61c5debe60192b0fecd8c15310b2e4c4473f9438",
-        "sha256": "DZJApJnGDMsUhjO35TBc7tMldCGKDPPtrwxPLe0Ey1s="
+        "rev": "0932243b0e5f1a5a237b0521b30b39473b61fa31",
+        "sha256": "krA7X9CIOg53giWSMXgzgazeyWFXEpMobPSnOB7g994="
     },
     "tgbdual": {
         "owner": "libretro",
@@ -462,8 +451,8 @@
     "tic80": {
         "owner": "libretro",
         "repo": "tic-80",
-        "rev": "967eb78c3610385a0e6cba8bb5c60ebc3b886d3e",
-        "sha256": "N0QFNTYFVbhWwt2yx5fLM7Dl6pJZPYrt9o3+6rjnWa8=",
+        "rev": "e9f62f85a154796c6baaee8a9f6fd0cfdd447019",
+        "sha256": "JTAoIqxqpaLjsQiIpJ4wQsREI5/rTxVxDywoL3oLI4Q=",
         "fetchSubmodules": true
     },
     "vba-m": {
@@ -475,25 +464,25 @@
     "vba-next": {
         "owner": "libretro",
         "repo": "vba-next",
-        "rev": "b218f48bb27b5d3885fa4076ff325922b5acd817",
-        "sha256": "idqGMbMA9mZlIh0QAba3BxpPDi/bFJJkUbnxV3xMOCo="
+        "rev": "ebd175d57ebb2065726099d32034cb25934787ce",
+        "sha256": "hTUlhLzvsemNz6wSmlnQNoNtzaVhipA+hmVmhzZVN+w="
     },
     "vecx": {
         "owner": "libretro",
         "repo": "libretro-vecx",
-        "rev": "28d6efc8972313903d0802a736ff8c3bc115e78f",
-        "sha256": "VYa8s+HB8IYF+HS6SA+sO5DzpgCtnMGrh88KTVNGICY="
+        "rev": "141af284202c86ed0d4ce9030c76954a144287cf",
+        "sha256": "p5vMuG2vr3BTJOQWNcTPb89MlkVrRvJNTIJSU8r9zfU="
     },
     "virtualjaguar": {
         "owner": "libretro",
         "repo": "virtualjaguar-libretro",
-        "rev": "d1b1b28a6ad2518b746e3f7537ec6d66db96ec57",
-        "sha256": "Io25dt80fqIqIxwzF2DK9J5UFz6YCUQoqThcIuxdEBo="
+        "rev": "263c979be4ca757c43fb525bd6f0887998e57041",
+        "sha256": "6Q6Y0IFUWS9ZPhnAK3EUo4hMGPdBn8eNEYCK/zLgAKU="
     },
     "yabause": {
         "owner": "libretro",
         "repo": "yabause",
-        "rev": "f30153ff9e534b96049c6f1ac3075b572642ceb5",
-        "sha256": "AdqCr5X3Bq8ic2jkIestmYi+CBByZ5Fyf0BUYwBkWnA="
+        "rev": "17dfcd8de4700341d972993501d3a043925675ce",
+        "sha256": "xwW7Oe3Cy3yC0xC5acLW6OGUIG+dKd1mwiXK5ZAumdo="
     }
 }
diff --git a/pkgs/applications/emulators/retroarch/update.py b/pkgs/applications/emulators/retroarch/update_cores.py
index 68f72103168e8..0facf4e2656ee 100755
--- a/pkgs/applications/emulators/retroarch/update.py
+++ b/pkgs/applications/emulators/retroarch/update_cores.py
@@ -26,19 +26,7 @@ CORES = {
     "bsnes": {"repo": "bsnes-libretro"},
     "bsnes-hd": {"repo": "bsnes-hd", "owner": "DerKoun"},
     "bsnes-mercury": {"repo": "bsnes-mercury"},
-    "citra": {
-        "repo": "citra",
-        "fetch_submodules": True,
-        "deep_clone": True,
-        "leave_dot_git": True,
-    },
-    "citra-canary": {
-        "repo": "citra",
-        "fetch_submodules": True,
-        "deep_clone": True,
-        "leave_dot_git": True,
-        "rev": "canary",
-    },
+    "citra": { "repo": "citra", "fetch_submodules": True },
     "desmume": {"repo": "desmume"},
     "desmume2015": {"repo": "desmume2015"},
     "dolphin": {"repo": "dolphin"},
diff --git a/pkgs/applications/emulators/retroarch/0002-Use-fixed-paths-on-libretro_info_path.patch b/pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch
index 9aa8db6ab048b..fd3913ea157ea 100644
--- a/pkgs/applications/emulators/retroarch/0002-Use-fixed-paths-on-libretro_info_path.patch
+++ b/pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch
@@ -1,7 +1,7 @@
-From 6788718299e1aba3ff8b31cd6ef012e8d3643bd3 Mon Sep 17 00:00:00 2001
+From 7bf021529ff15ca2580b15b3c0bfdc137d5beffe Mon Sep 17 00:00:00 2001
 From: Thiago Kenji Okada <thiagokokada@gmail.com>
-Date: Sat, 20 Nov 2021 15:59:23 -0300
-Subject: [PATCH 2/2] Use fixed paths on "libretro_info_path"
+Date: Wed, 9 Mar 2022 18:24:15 +0000
+Subject: [PATCH] Use fixed paths on "libretro_info_path"
 
 This patch sets "libretro_info_path" to `handle = false`, so instead of
 using the values from `retroarch.cfg`, it will always use the default.
@@ -10,16 +10,16 @@ Also, it patches the default "libretro_info_path" to the
 `@libretro_info_path` string, so we can substitute it with the full path
 to it during build.
 ---
- configuration.c                    | 2 +-
- frontend/drivers/platform_darwin.m | 9 ++-------
- frontend/drivers/platform_unix.c   | 8 ++++----
- 3 files changed, 7 insertions(+), 12 deletions(-)
+ configuration.c                    |  2 +-
+ frontend/drivers/platform_darwin.m |  9 ++-------
+ frontend/drivers/platform_unix.c   | 12 ++++--------
+ 3 files changed, 7 insertions(+), 16 deletions(-)
 
 diff --git a/configuration.c b/configuration.c
-index e6a3841324..afb1d6e2ce 100644
+index 7e346ff6e9..c4b2100203 100644
 --- a/configuration.c
 +++ b/configuration.c
-@@ -1456,7 +1456,7 @@ static struct config_path_setting *populate_settings_path(
+@@ -1466,7 +1466,7 @@ static struct config_path_setting *populate_settings_path(
     SETTING_PATH("core_options_path",
           settings->paths.path_core_options, false, NULL, true);
     SETTING_PATH("libretro_info_path",
@@ -29,10 +29,10 @@ index e6a3841324..afb1d6e2ce 100644
           settings->paths.path_content_database, false, NULL, true);
     SETTING_PATH("cheat_database_path",
 diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m
-index f922e50c55..52732f65ae 100644
+index 6c5fdca400..552dcb7e2b 100644
 --- a/frontend/drivers/platform_darwin.m
 +++ b/frontend/drivers/platform_darwin.m
-@@ -383,14 +383,9 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
+@@ -388,14 +388,9 @@ static void frontend_darwin_get_env(int *argc, char *argv[],
           home_dir_buf, "shaders_glsl",
           sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER]));
  #endif
@@ -50,21 +50,25 @@ index f922e50c55..52732f65ae 100644
  #ifdef HAVE_VIDEO_LAYOUT
     fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], home_dir_buf, "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT]));
 diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c
-index 722e1c595c..d87e01cf12 100644
+index b3b5dad173..7f1561e523 100644
 --- a/frontend/drivers/platform_unix.c
 +++ b/frontend/drivers/platform_unix.c
-@@ -1815,8 +1815,8 @@ static void frontend_unix_get_env(int *argc,
+@@ -1820,12 +1820,8 @@ static void frontend_unix_get_env(int *argc,
        strcpy_literal(base_path, "retroarch");
  #endif
  
--   fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], base_path,
--         "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
+-   if (!string_is_empty(libretro_directory))
+-      strlcpy(g_defaults.dirs[DEFAULT_DIR_CORE], libretro_directory,
+-            sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
+-   else
+-      fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], base_path,
+-            "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
 +   fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], "@libretro_directory@",
 +         "", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE]));
  #if defined(DINGUX)
     /* On platforms that require manual core installation/
      * removal, placing core info files in the same directory
-@@ -1825,8 +1825,8 @@ static void frontend_unix_get_env(int *argc,
+@@ -1834,8 +1830,8 @@ static void frontend_unix_get_env(int *argc,
     fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], base_path,
           "core_info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO]));
  #else
@@ -76,5 +80,5 @@ index 722e1c595c..d87e01cf12 100644
     fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], base_path,
           "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG]));
 -- 
-2.31.1
+2.32.0
 
diff --git a/pkgs/applications/emulators/retroarch/wrapper.nix b/pkgs/applications/emulators/retroarch/wrapper.nix
index b3797c9e9e368..6adcb8ffd8b44 100644
--- a/pkgs/applications/emulators/retroarch/wrapper.nix
+++ b/pkgs/applications/emulators/retroarch/wrapper.nix
@@ -8,8 +8,7 @@ stdenv.mkDerivation {
 
   buildCommand = ''
     mkdir -p $out/lib
-    for coreDir in $cores
-    do
+    for coreDir in $cores; do
       ln -s $coreDir/* $out/lib/.
     done
 
@@ -29,9 +28,14 @@ stdenv.mkDerivation {
 
   meta = with retroarch.meta; {
     inherit changelog description homepage license maintainers platforms;
-    longDescription =
-      "RetroArch is the reference frontend for the libretro API. The following cores are included: "
-      + lib.concatStringsSep ", " (map (x: "${x.name}") cores)
-      + ".";
+    longDescription = ''
+      RetroArch is the reference frontend for the libretro API.
+
+      The following cores are included:
+      ${lib.concatStringsSep "\n" (map (x: "  - ${x.name}") cores)}
+    '';
+    # FIXME: exits with error on macOS:
+    # No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/emulators/ryujinx/default.nix b/pkgs/applications/emulators/ryujinx/default.nix
index 7a4f4351dc943..e235b2c80fb47 100644
--- a/pkgs/applications/emulators/ryujinx/default.nix
+++ b/pkgs/applications/emulators/ryujinx/default.nix
@@ -17,13 +17,13 @@
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.1.77"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+  version = "1.1.100"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "df70442c46e7ee133b1fb79dc23ddd134e618085";
-    sha256 = "1m9msp7kxsj7251l2yjcfzrb4k1lisk9sip7acm22pxmi1a7gw73";
+    rev = "26a881176eb6513a98889648e0d5b7fe647cd0e3";
+    sha256 = "09wjygkdr9sr0hwv77czi0x5xw8y585k9pghdm5s3iqjn9gbb45k";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_6_0;
@@ -63,6 +63,10 @@ buildDotnetModule rec {
   ];
 
   preInstall = ''
+    # workaround for https://github.com/Ryujinx/Ryujinx/issues/2349
+    mkdir -p $out/lib/sndio-6
+    ln -s ${sndio}/lib/libsndio.so $out/lib/sndio-6/libsndio.so.6
+
     # Ryujinx tries to use ffmpeg from PATH
     makeWrapperArgs+=(
       --suffix PATH : ${lib.makeBinPath [ ffmpeg ]}
diff --git a/pkgs/applications/emulators/ryujinx/deps.nix b/pkgs/applications/emulators/ryujinx/deps.nix
index 33f55f8cb6e8c..c8127b0f3e51e 100644
--- a/pkgs/applications/emulators/ryujinx/deps.nix
+++ b/pkgs/applications/emulators/ryujinx/deps.nix
@@ -11,7 +11,7 @@
   (fetchNuGet { pname = "GLibSharp"; version = "3.22.25.128"; sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5"; })
   (fetchNuGet { pname = "GtkSharp"; version = "3.22.25.128"; sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy"; })
   (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; })
-  (fetchNuGet { pname = "LibHac"; version = "0.16.0"; sha256 = "1kivnf4c4km1a8y0sl34z9gfazlivna0x31q0065n0sz13g82spi"; })
+  (fetchNuGet { pname = "LibHac"; version = "0.16.1"; sha256 = "131qnqa1asdmymwdvpjza6w646b05jzn1cxjdxgwh7qdcdb77xyx"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0rrrfgkr7rzhlnsnajvzb1ijkybp99d992bqxy9pbawmq7d60bdk"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.3"; sha256 = "09whyl3i9mzy10n5zxlq66lj3l4p29hm75igmdip2fb376zxyam3"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.3"; sha256 = "11kv50kll3iq88kn40f5v5qlq8mydv6y6xz2cbzjw4aadd44njwq"; })
@@ -23,9 +23,8 @@
   (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.15.0"; sha256 = "0jn9a20a2zixnkm3bmpmvmiv7mk0hqdlnpi0qgjkg1nir87czm19"; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.15.0"; sha256 = "1nbgydr45f7lp980xyrkzpyaw2mkkishjwp3slgxk7f0mz6q8i1v"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.8.0"; sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.3"; sha256 = "1py3nrfvllqlnb9mhs0qwgy7c14n33b2hfb0qc49rx22sqv8ylbp"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.3"; sha256 = "1y428glba68s76icjzfl1v3p61pcz7rd78wybhabs8zq8w9cp2pj"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.3"; sha256 = "0k9gc94cvn36p0v3pj296asg2sq9a8ah6lfw0xvvmd4hq2k72s79"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.3"; sha256 = "1y428glba68s76icjzfl1v3p61pcz7rd78wybhabs8zq8w9cp2pj"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.3"; sha256 = "0f04srx6q0jk81a60n956hz32fdngzp0xmdb2x7gyl77gsq8yijj"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.3"; sha256 = "0180ipzzz9pc6f6l17rg5bxz1ghzbapmiqq66kdl33bmbny6vmm9"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.3"; sha256 = "1rjkzs2013razi2xs943q62ys1jh8blhjcnj75qkvirf859d11qw"; })
diff --git a/pkgs/applications/emulators/ryujinx/updater.sh b/pkgs/applications/emulators/ryujinx/updater.sh
index 9c2f69e606cac..3f6acf5e44d47 100755
--- a/pkgs/applications/emulators/ryujinx/updater.sh
+++ b/pkgs/applications/emulators/ryujinx/updater.sh
@@ -1,33 +1,60 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i bash -p coreutils gnused curl common-updater-scripts nuget-to-nix nix-prefetch-git jq dotnet-sdk_6
+#! nix-shell -I nixpkgs=./. -i bash -p coreutils gnused curl common-updater-scripts nuget-to-nix nix-prefetch-git jq dotnet-sdk_6
 set -euo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
 DEPS_FILE="$(realpath "./deps.nix")"
 
-RELEASE_JOB_DATA=$(
-    curl -s -H "Accept: application/vnd.github.v3+json" \
-        https://api.github.com/repos/Ryujinx/Ryujinx/actions/workflows |
-        jq -r '.workflows[] | select(.name == "Release job") | { id, path }'
-)
-RELEASE_JOB_ID=$(echo "$RELEASE_JOB_DATA" | jq -r '.id')
-RELEASE_JOB_FILE=$(echo "$RELEASE_JOB_DATA" | jq -r '.path')
-
-BASE_VERSION=$(
-    curl -s "https://raw.githubusercontent.com/Ryujinx/Ryujinx/master/${RELEASE_JOB_FILE}" |
-        grep -Po 'RYUJINX_BASE_VERSION:.*?".*"' |
-        sed 's/RYUJINX_BASE_VERSION: "\(.*\)"/\1/'
-)
-
-LATEST_RELEASE_JOB_DATA=$(
-    curl -s -H "Accept: application/vnd.github.v3+json" \
-        "https://api.github.com/repos/Ryujinx/Ryujinx/actions/workflows/${RELEASE_JOB_ID}/runs" |
-        jq -r '.workflow_runs[0] | { head_sha, run_number }'
-)
-COMMIT=$(echo "$LATEST_RELEASE_JOB_DATA" | jq -r '.head_sha')
-PATCH_VERSION=$(echo "$LATEST_RELEASE_JOB_DATA" | jq -r '.run_number')
-
-NEW_VERSION="${BASE_VERSION}.${PATCH_VERSION}"
+# provide a github token so you don't get rate limited
+# if you use gh cli you can use:
+#     `export GITHUB_TOKEN="$(cat ~/.config/gh/config.yml | yq '.hosts."github.com".oauth_token' -r)"`
+# or just set your token by hand:
+#     `read -s -p "Enter your token: " GITHUB_TOKEN; export GITHUB_TOKEN`
+#     (we use read so it doesn't show in our shell history and in secret mode so the token you paste isn't visible)
+if [ -z "${GITHUB_TOKEN:-}" ]; then
+    echo "no GITHUB_TOKEN provided - you could meet API request limiting" >&2
+fi
+
+# or provide the new version manually
+# manually modify and uncomment or export these env vars in your shell so they're accessable within the script
+# make sure you don't commit your changes here
+#
+# NEW_VERSION=""
+# COMMIT=""
+
+if [ -z ${NEW_VERSION+x} ] && [ -z ${COMMIT+x} ]; then
+    RELEASE_JOB_DATA=$(
+        curl -s -H "Accept: application/vnd.github.v3+json" \
+            ${GITHUB_TOKEN:+ -H "Authorization: bearer $GITHUB_TOKEN"} \
+            https://api.github.com/repos/Ryujinx/Ryujinx/actions/workflows
+    )
+    if [ -z "$RELEASE_JOB_DATA" ] || [[ $RELEASE_JOB_DATA =~ "rate limit exceeded" ]]; then
+        echo "failed to get release job data" >&2
+        exit 1
+    fi
+    RELEASE_JOB_ID=$(echo "$RELEASE_JOB_DATA" | jq -r '.workflows[] | select(.name == "Release job") | .id')
+    RELEASE_JOB_FILE=$(echo "$RELEASE_JOB_DATA" | jq -r '.workflows[] | select(.name == "Release job") | .path')
+
+    LATEST_RELEASE_JOB_DATA=$(
+        curl -s -H "Accept: application/vnd.github.v3+json" \
+            ${GITHUB_TOKEN:+ -H "Authorization: bearer $GITHUB_TOKEN"} \
+            "https://api.github.com/repos/Ryujinx/Ryujinx/actions/workflows/${RELEASE_JOB_ID}/runs"
+    )
+    if [ -z "$LATEST_RELEASE_JOB_DATA" ] || [[ $LATEST_RELEASE_JOB_DATA =~ "rate limit exceeded" ]]; then
+        echo "failed to get latest release job data" >&2
+        exit 1
+    fi
+    COMMIT=$(echo "$LATEST_RELEASE_JOB_DATA" | jq -r '.workflow_runs[0] | .head_sha')
+    PATCH_VERSION=$(echo "$LATEST_RELEASE_JOB_DATA" | jq -r '.workflow_runs[0] | .run_number')
+
+    BASE_VERSION=$(
+        curl -s "https://raw.githubusercontent.com/Ryujinx/Ryujinx/master/${RELEASE_JOB_FILE}" |
+            grep -Po 'RYUJINX_BASE_VERSION:.*?".*"' |
+            sed 's/RYUJINX_BASE_VERSION: "\(.*\)"/\1/'
+    )
+
+    NEW_VERSION="${BASE_VERSION}.${PATCH_VERSION}"
+fi
 
 OLD_VERSION="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
 
diff --git a/pkgs/applications/emulators/tinyemu/default.nix b/pkgs/applications/emulators/tinyemu/default.nix
index c32fd24fe4770..ca3f8acd88ca2 100644
--- a/pkgs/applications/emulators/tinyemu/default.nix
+++ b/pkgs/applications/emulators/tinyemu/default.nix
@@ -21,7 +21,12 @@ stdenv.mkDerivation rec {
     openssl
   ];
 
-  makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" ];
+  makeFlags = [
+    "CC:=$(CC)"
+    "STRIP:=$(STRIP)"
+    "DESTDIR=$(out)"
+    "bindir=/bin"
+  ];
 
   preInstall = ''
     mkdir -p "$out/bin"
diff --git a/pkgs/applications/graphics/drawing/default.nix b/pkgs/applications/graphics/drawing/default.nix
index 40c651ac25705..cd92a0d39ec76 100644
--- a/pkgs/applications/graphics/drawing/default.nix
+++ b/pkgs/applications/graphics/drawing/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -29,6 +30,16 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "sha256-qNaljtuA5E/QaLJ9QILPRQCqOvKmX4ZGq/0z5unA8KA=";
   };
 
+  patches = [
+    # Fix build with meson 0.61, can be removed on next update.
+    # https://github.com/NixOS/nixpkgs/issues/167584
+    (fetchpatch {
+      url = "https://github.com/maoschanz/drawing/commit/6dd271089af76b69322500778e3ad6615a117dcc.patch";
+      sha256 = "sha256-4pKWm3LYstVxZ4+gGsZDfM4K+7WBY8EYjylzc/CQZmo=";
+      includes = [ "data/meson.build" "help/meson.build" ];
+    })
+  ];
+
   nativeBuildInputs = [
     appstream-glib
     desktop-file-utils
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index 1d0cf4bec7d08..63174ecba98d5 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "478";
+  version = "479";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
     rev = "v${version}";
-    sha256 = "sha256-ZsQzKc2fOFTzI/kBS8ws2+XT9kRAn4L55n1EZgVy4Kk=";
+    sha256 = "sha256-hP+tOrtYfxAKmNCJSYWQzmd0hjxktNEjJqb42lPG9IM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/mypaint/default.nix b/pkgs/applications/graphics/mypaint/default.nix
index 7b83bdec8c6bc..b93b4794db81f 100644
--- a/pkgs/applications/graphics/mypaint/default.nix
+++ b/pkgs/applications/graphics/mypaint/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , gtk3
 , gettext
 , json_c
@@ -31,6 +32,15 @@ in buildPythonApplication rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Fix build due to setuptools issue.
+    # https://github.com/mypaint/mypaint/pull/1183
+    (fetchpatch {
+      url = "https://github.com/mypaint/mypaint/commit/423950bec96d6057eac70442de577364d784a847.patch";
+      sha256 = "OxJJOi20bFMRibL59zx6svtMrkgeMYyEvbdSXbZHqpc=";
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     pkg-config
diff --git a/pkgs/applications/misc/bikeshed/default.nix b/pkgs/applications/misc/bikeshed/default.nix
new file mode 100644
index 0000000000000..330235b80d73c
--- /dev/null
+++ b/pkgs/applications/misc/bikeshed/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+# build inputs
+, aiofiles
+, aiohttp
+, attrs
+, certifi
+, cssselect
+, html5lib
+, isodate
+, json-home-client
+, lxml
+, pillow
+, pygments
+, requests
+, result
+, setuptools
+, tenacity
+, widlparser
+}:
+
+buildPythonApplication rec {
+  pname = "bikeshed";
+  version = "3.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-vJW4yNbKCZraJ5vx8FheNsBl+zObGoLFgAVqoU0p9QQ=";
+  };
+
+  # Relax requirements from "==" to ">="
+  # https://github.com/tabatkins/bikeshed/issues/2178
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "==" ">="
+  '';
+
+  propagatedBuildInputs = [
+    aiofiles
+    aiohttp
+    attrs
+    certifi
+    cssselect
+    html5lib
+    isodate
+    json-home-client
+    lxml
+    pillow
+    pygments
+    requests
+    result
+    setuptools
+    tenacity
+    widlparser
+  ];
+
+  checkPhase = ''
+    $out/bin/bikeshed test
+  '';
+
+  pythonImportsCheck = [ "bikeshed" ];
+
+  meta = with lib; {
+    description = "Preprocessor for anyone writing specifications that converts source files into actual specs";
+    longDescription = ''
+      Bikeshed is a pre-processor for spec documents, turning a source document
+      (containing only the actual spec content, plus several shorthands for linking
+      to terms and other things) into a final spec document, with appropriate boilerplate,
+      bibliography, indexes, etc all filled in. It's used on specs for CSS
+      and many other W3C working groups, WHATWG, the C++ standards committee, and elsewhere!
+    '';
+    homepage = "https://tabatkins.github.io/bikeshed/";
+    license = licenses.cc0;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index a0467b817142c..2e3ff53550a96 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -5,7 +5,7 @@
 , openvdb, libXxf86vm, tbb, alembic
 , zlib, zstd, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
 , jackaudioSupport ? false, libjack2
-, cudaSupport ? config.cudaSupport or false, cudatoolkit_11
+, cudaSupport ? config.cudaSupport or false, cudaPackages ? {}
 , colladaSupport ? true, opencollada
 , spaceNavSupport ? stdenv.isLinux, libspnav
 , makeWrapper
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
       llvmPackages.openmp SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
     ])
     ++ optional jackaudioSupport libjack2
-    ++ optional cudaSupport cudatoolkit_11
+    ++ optional cudaSupport cudaPackages.cudatoolkit
     ++ optional colladaSupport opencollada
     ++ optional spaceNavSupport libspnav;
   pythonPath = with python310Packages; [ numpy requests ];
diff --git a/pkgs/applications/misc/firestarter/default.nix b/pkgs/applications/misc/firestarter/default.nix
index 92c517835d834..dca8e12569192 100644
--- a/pkgs/applications/misc/firestarter/default.nix
+++ b/pkgs/applications/misc/firestarter/default.nix
@@ -8,11 +8,13 @@
 , glibc
 , git
 , pkg-config
-, cudatoolkit
+, cudaPackages ? {}
 , withCuda ? false
 }:
 
 let
+  inherit (cudaPackages) cudatoolkit;
+
   hwloc = stdenv.mkDerivation rec {
     pname = "hwloc";
     version = "2.2.0";
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index dc5dedbd1ad9a..46bd189fcf8a8 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.21.0";
+  version = "1.21.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-D/K+C7IX4VGv+FFYuPQEqwVYSjiDcSeElVunVMiFWI8=";
+    sha256 = "sha256-oLVrYM7F9JFDYgQL/XgJS9LeUexqcSlvmkwyAk1bpoY=";
   };
 
   propagatedBuildInputs = [ requests yt-dlp ];
diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix
index 1c898fa343ce2..48708bc057c7c 100644
--- a/pkgs/applications/misc/gpsprune/default.nix
+++ b/pkgs/applications/misc/gpsprune/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gpsprune";
-  version = "21.1";
+  version = "21.2";
 
   src = fetchurl {
     url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
-    sha256 = "sha256-WyI9IKzUmKGiqiYs6SSuGhVUdO2UCsPSSL/IjPLykiM=";
+    sha256 = "sha256-QgbLbpqlC2sITbPK4ZcaovmycwhWtnu06x8F0grpECc=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/misc/gsctl/default.nix b/pkgs/applications/misc/gsctl/default.nix
index 95a909c29a977..de6071ef06008 100644
--- a/pkgs/applications/misc/gsctl/default.nix
+++ b/pkgs/applications/misc/gsctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gsctl";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "giantswarm";
     repo = pname;
     rev = version;
-    sha256 = "sha256-uCNWgaLZMm1vPxFduj8mpjKYuYlp1ChF6bK+bmAWy50=";
+    sha256 = "sha256-P1hJoZ1YSZTCo5ha/Um/nYVVhbYC3dcrQGJYTSnqNu4=";
   };
 
-  vendorSha256 = "sha256-lZgHrQYqoyoM1Iv6vCqTMcv62zSKyxaAsq56kUXHrIA=";
+  vendorSha256 = "sha256-NeRABlKUpD2ZHRid/vu34Dh9uHZ+7IXWFPX8jkexUog=";
 
   ldflags =
     [ "-s" "-w" "-X github.com/giantswarm/gsctl/buildinfo.Version=${version}" ];
diff --git a/pkgs/applications/misc/index-fm/default.nix b/pkgs/applications/misc/index-fm/default.nix
index 4ab933aefe073..7414fb2a7e293 100644
--- a/pkgs/applications/misc/index-fm/default.nix
+++ b/pkgs/applications/misc/index-fm/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitLab
 , cmake
 , extra-cmake-modules
-, applet-window-buttons
 , karchive
 , kcoreaddons
 , ki18n
@@ -38,7 +37,6 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    applet-window-buttons
     karchive
     kcoreaddons
     ki18n
diff --git a/pkgs/applications/misc/join-desktop/default.nix b/pkgs/applications/misc/join-desktop/default.nix
new file mode 100644
index 0000000000000..0b09911ddb24b
--- /dev/null
+++ b/pkgs/applications/misc/join-desktop/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchurl
+, alsa-lib
+, autoPatchelfHook
+, dpkg
+, gtk3
+, makeWrapper
+, mesa
+, nss
+, systemd
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "join-desktop";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/joaomgcd/JoinDesktop/releases/download/v${version}/com.joaomgcd.join_${version}_amd64.deb";
+    sha256 = "sha256-k1LX/HC3tfL4Raipo7wp/LnfrPa38x8NBeKRyHJ72CU=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    makeWrapper
+  ];
+
+  buildInputs = [
+    alsa-lib
+    gtk3
+    mesa
+    nss
+    xorg.libXScrnSaver
+    xorg.libXtst
+  ];
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  runtimeDependencies = [
+    (lib.getLib systemd)
+    # TODO: check if they are required
+    # libnotify
+    # libappindicator
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/join-desktop
+
+    mv usr/share/* $out/share
+    mv opt/Join\ Desktop/* $out/share/join-desktop
+
+    ln -s $out/share/join-desktop/com.joaomgcd.join $out/bin/
+
+    substituteInPlace $out/share/applications/com.joaomgcd.join.desktop \
+      --replace "/opt/Join Desktop/com.joaomgcd.join" "com.joaomgcd.join"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/joaomgcd/JoinDesktop/";
+    description = "Desktop app for Join";
+    # on https://joaoapps.com/join/desktop/ "Join Desktop is an open source app" but no license
+    license = licenses.free;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+
+}
diff --git a/pkgs/applications/misc/mediainfo/default.nix b/pkgs/applications/misc/mediainfo/default.nix
index 146df27726bb1..a6dfa557b2c52 100644
--- a/pkgs/applications/misc/mediainfo/default.nix
+++ b/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "21.09";
+  version = "22.03";
   pname = "mediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "0mqcqm8y2whnbdi2ry7jd755gfl5ccdqhwjh67hsyr7c0ajxk3vv";
+    sha256 = "sha256-Yjb5Kh1XqBdLPzDqbd6Kq1ONj2IPcoIk2FE3MWmAK+Q=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/misc/mop/default.nix b/pkgs/applications/misc/mop/default.nix
index 105728b7f044e..e07fce797507a 100644
--- a/pkgs/applications/misc/mop/default.nix
+++ b/pkgs/applications/misc/mop/default.nix
@@ -1,18 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "mop";
-  version = "0.2.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "mop-tracker";
     repo = "mop";
-    rev = "bc666ec165d08b43134f7ec0bf29083ad5466243";
-    sha256 = "sha256-fX7G4M3gfv31Eb2HChTY4RfVF2U92000U4ZnFNML5X4=";
+    rev = "v${version}";
+    sha256 = "sha256-oe8RG8E7xcp3ZqdDXYvpOVF3AfeSBFMherHD1YYFE/M=";
   };
 
-  goPackagePath = "github.com/michaeldv/mop";
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-kLQH7mMmBSsS9av+KnnEuBwiH6hzBOSozrn+1X+8774=";
 
   preConfigure = ''
     for i in *.go **/*.go; do
@@ -24,7 +23,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "Simple stock tracker implemented in go";
-    homepage =  "https://github.com/mop-tracker/mop";
+    homepage = "https://github.com/mop-tracker/mop";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/applications/misc/mop/deps.nix b/pkgs/applications/misc/mop/deps.nix
deleted file mode 100644
index 4081cd1ddaa27..0000000000000
--- a/pkgs/applications/misc/mop/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/nsf/termbox-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nsf/termbox-go";
-      rev = "9aecf65084a5754f12d27508fa2e6ed56851953b";
-      sha256 = "16sak07bgvmax4zxfrd4jia1dgygk733xa8vk8cdx28z98awbfsh";
-    };
-  }
-]
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index 3dad5c846952b..d34770051d0b8 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , lib
 , makeWrapper
-, electron_16
+, electron_17
 , makeDesktopItem
 , graphicsmagick
 , writeScript
@@ -13,6 +13,7 @@ let
   inherit (stdenv.hostPlatform) system;
   pname = "obsidian";
   version = "0.14.2";
+  appname = "Obsidian";
   meta = with lib; {
     description = "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
     homepage = "https://obsidian.md";
@@ -27,29 +28,29 @@ let
     sha256 = if stdenv.isDarwin then "128kgqkf54ljkglwqa6i0qnfqhhmsv7hwbaqnml95n5dzyxrbm4s" else "00gip6pvkbywywlx71j87sxyh8yhkd36i1ydncbpnhsplr6smsq3";
   };
 
-  linux = stdenv.mkDerivation rec {
-    icon = fetchurl {
-      url = "https://forum.obsidian.md/uploads/default/original/1X/bf119bd48f748f4fd2d65f2d1bb05d3c806883b5.png";
-      sha256 = "18ylnbvxr6k4x44c4i1d55wxy2dq4fdppp43a4wl6h6zar0sc9s2";
-    };
+  icon = fetchurl {
+    url = "https://forum.obsidian.md/uploads/default/original/1X/bf119bd48f748f4fd2d65f2d1bb05d3c806883b5.png";
+    sha256 = "18ylnbvxr6k4x44c4i1d55wxy2dq4fdppp43a4wl6h6zar0sc9s2";
+  };
 
-    desktopItem = makeDesktopItem {
-      name = "obsidian";
-      desktopName = "Obsidian";
-      comment = "Knowledge base";
-      icon = "obsidian";
-      exec = "obsidian %u";
-      categories = [ "Office" ];
-      mimeTypes = [ "x-scheme-handler/obsidian" ];
-    };
+  desktopItem = makeDesktopItem {
+    name = "obsidian";
+    desktopName = "Obsidian";
+    comment = "Knowledge base";
+    icon = "obsidian";
+    exec = "obsidian %u";
+    categories = [ "Office" ];
+    mimeTypes = [ "x-scheme-handler/obsidian" ];
+  };
 
-    inherit pname version src;
-    meta.platforms = [ "x86_64-linux" ];
+  linux = stdenv.mkDerivation {
+    inherit pname version src desktopItem icon;
+    meta = meta // { platforms = [ "x86_64-linux" "aarch64-linux" ]; };
     nativeBuildInputs = [ makeWrapper graphicsmagick ];
     installPhase = ''
       runHook preInstall
       mkdir -p $out/bin
-      makeWrapper ${electron_16}/bin/electron $out/bin/obsidian \
+      makeWrapper ${electron_17}/bin/electron $out/bin/obsidian \
         --add-flags $out/share/obsidian/app.asar
       install -m 444 -D resources/app.asar $out/share/obsidian/app.asar
       install -m 444 -D resources/obsidian.asar $out/share/obsidian/obsidian.asar
@@ -71,10 +72,9 @@ let
     '';
   };
 
-  darwin = stdenv.mkDerivation rec {
-    appname = "Obsidian";
-    inherit pname version src;
-    meta.platforms = [ "x86_64-darwin" "aarch64-darwin" ];
+  darwin = stdenv.mkDerivation {
+    inherit pname version src appname;
+    meta = meta // { platforms = [ "x86_64-darwin" "aarch64-darwin" ]; };
     sourceRoot = "${appname}.app";
     nativeBuildInputs = [ makeWrapper undmg unzip ];
     installPhase = ''
diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index c3037f0da8d26..41ba786227087 100644
--- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -5,8 +5,8 @@ let
   description = "PrusaSlicer fork with more features and faster development cycle";
 
   versions = {
-    stable = { version = "2.3.57.10"; sha256 = "sha256-/1oZgmZpRoizVpklKaI12qP4bVIGYyVpybmuCIz3Y0M="; };
-    latest = { version = "2.3.57.10"; sha256 = "sha256-/1oZgmZpRoizVpklKaI12qP4bVIGYyVpybmuCIz3Y0M="; };
+    stable = { version = "2.3.57.12"; sha256 = "sha256-lePhDRHI++9zs54bTt2/Lu6ZQ7egjJCWb752aI0s7Mw=="; };
+    latest = { version = "2.3.57.12"; sha256 = "sha256-lePhDRHI++9zs54bTt2/Lu6ZQ7egjJCWb752aI0s7Mw=="; };
   };
 
   override = { version, sha256 }: super: {
diff --git a/pkgs/applications/misc/seatd/default.nix b/pkgs/applications/misc/seatd/default.nix
index 3149c171bdecd..177476900aa9b 100644
--- a/pkgs/applications/misc/seatd/default.nix
+++ b/pkgs/applications/misc/seatd/default.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , scdoc
 , stdenv
-, systemd
+, systemdSupport ? stdenv.isLinux, systemd
 }:
 
 stdenv.mkDerivation rec {
@@ -25,9 +25,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config scdoc ];
 
-  buildInputs = [ systemd ];
+  buildInputs = lib.optionals systemdSupport [ systemd ];
 
-  mesonFlags = [ "-Dlibseat-logind=systemd" "-Dlibseat-builtin=enabled" ];
+  mesonFlags = [
+    "-Dlibseat-logind=${if systemdSupport then "systemd" else "disabled"}"
+    "-Dlibseat-builtin=enabled"
+    "-Dserver=enabled"
+  ];
 
   meta = with lib; {
     description = "A universal seat management library";
diff --git a/pkgs/applications/misc/toipe/default.nix b/pkgs/applications/misc/toipe/default.nix
new file mode 100644
index 0000000000000..e9cd39162cafd
--- /dev/null
+++ b/pkgs/applications/misc/toipe/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchCrate, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "toipe";
+  version = "0.3.1";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-/vO5ABMldw3soh7mscjhN5TAZOcs+iMTaMxcdMmV0Xo=";
+  };
+
+  cargoSha256 = "sha256-AsRQ8kvDy1cH4/kaFAoU7en3dzDiG1T+O+4r6PKa0hM=";
+
+  meta = with lib; {
+    description = "Trusty terminal typing tester";
+    homepage = "https://github.com/Samyak2/toipe";
+    license = licenses.mit;
+    maintainers = with maintainers; [ loicreynier samyak ];
+  };
+}
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index dc50a3b95678b..9afd1a6930eec 100644
--- a/pkgs/applications/misc/upwork/default.nix
+++ b/pkgs/applications/misc/upwork/default.nix
@@ -2,15 +2,15 @@
 , alsa-lib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
 , gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11, libxcb
 , libXcomposite, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender
-, libXScrnSaver, libXtst, mesa, nspr, nss, pango, systemd }:
+, libXScrnSaver, libXtst, mesa, nspr, nss, openssl, pango, systemd }:
 
 stdenv.mkDerivation rec {
   pname = "upwork";
-  version = "5.6.10.1";
+  version = "5.6.10.7";
 
   src = fetchurl {
-    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_10_1_de501d28cc034306/${pname}_${version}_amd64.deb";
-    sha256 = "8faf896d2570d1d210793f46a3860e934d03498c1f11640d43721b6eb2b56860";
+    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_10_7_f806fd1250954801/${pname}_${version}_amd64.deb";
+    sha256 = "6fe11cd53ffb66a02aa771153c4f58af34fea25847ee5bc13802fec9b0db0280";
   };
 
   nativeBuildInputs = [
@@ -39,13 +39,22 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
+
     mv usr $out
     mv opt $out
+
+    # Now it requires lib{ssl,crypto}.so.1.0.0. Fix based on Spotify pkg.
+    # https://github.com/NixOS/nixpkgs/blob/efea022d6fe0da84aa6613d4ddeafb80de713457/pkgs/applications/audio/spotify/default.nix#L129
+    mkdir -p $out/lib/upwork
+    ln -s ${lib.getLib openssl}/lib/libssl.so $out/lib/upwork/libssl.so.1.0.0
+    ln -s ${lib.getLib openssl}/lib/libcrypto.so $out/lib/upwork/libcrypto.so.1.0.0
+
     sed -e "s|/opt/Upwork|$out/bin|g" -i $out/share/applications/upwork.desktop
     makeWrapper $out/opt/Upwork/upwork \
       $out/bin/upwork \
       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
       --prefix LD_LIBRARY_PATH : ${libPath}
+
     runHook postInstall
   '';
 
diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix
index 000fc06bbf1bd..6398b88ffccd0 100644
--- a/pkgs/applications/misc/zathura/core/default.nix
+++ b/pkgs/applications/misc/zathura/core/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "zathura";
-  version = "0.4.8";
+  version = "0.4.9";
 
   src = fetchurl {
     url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
-    sha256 = "1nr0ym1mi2afk4ycdf1ppmkcv7i7hyzwn4p3r4m0j2qm3nvaiami";
+    sha256 = "0msy7s57mlx0wya99qpia4fpcy40pbj253kmx2y97nb0sqnc8c7w";
   };
 
   outputs = [ "bin" "man" "dev" "out" ];
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 6dd6d98c0efdb..a303dabad327a 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -39,14 +39,12 @@
 , glibc # gconv + locale
 
 # Package customization:
-, gnomeSupport ? false, gnome2 ? null
-, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
 , cupsSupport ? true, cups ? null
 , proprietaryCodecs ? true
 , pulseSupport ? false, libpulseaudio ? null
 , ungoogled ? false, ungoogled-chromium
 # Optional dependencies:
-, libgcrypt ? null # gnomeSupport || cupsSupport
+, libgcrypt ? null # cupsSupport
 , systemdSupport ? stdenv.isLinux
 , systemd
 }:
@@ -154,8 +152,6 @@ let
       curl
       libepoxy
     ] ++ optional systemdSupport systemd
-      ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ]
-      ++ optional gnomeKeyringSupport libgnome-keyring3
       ++ optionals cupsSupport [ libgcrypt cups ]
       ++ optional pulseSupport libpulseaudio;
 
@@ -271,7 +267,7 @@ let
 
       # Optional features:
       use_gio = true;
-      use_gnome_keyring = gnomeKeyringSupport;
+      use_gnome_keyring = false; # Superseded by libsecret
       use_cups = cupsSupport;
 
       # Feature overrides:
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index e8d9a13f9ac74..5bd24faafe409 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -8,8 +8,6 @@
 # package customization
 # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper)
 , channel ? "stable"
-, gnomeSupport ? false, gnome2 ? null
-, gnomeKeyringSupport ? false
 , proprietaryCodecs ? true
 , enableWideVine ? false
 , ungoogled ? false # Whether to build chromium or ungoogled-chromium
@@ -46,7 +44,7 @@ let
 
     mkChromiumDerivation = callPackage ./common.nix ({
       inherit channel chromiumVersionAtLeast versionRange;
-      inherit gnome2 gnomeSupport gnomeKeyringSupport proprietaryCodecs
+      inherit proprietaryCodecs
               cupsSupport pulseSupport ungoogled;
       gnChromium = gn.overrideAttrs (oldAttrs: {
         inherit (upstream-info.deps.gn) version;
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index c19bb1dfe8a55..b83aae6c34bef 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -45,9 +45,9 @@
     }
   },
   "ungoogled-chromium": {
-    "version": "100.0.4896.60",
-    "sha256": "1p7zggnhsz9gj3zil0nyas4ym5bd94vs0z6mdg7r1l0s0vrsaphf",
-    "sha256bin64": "07wavs9r6ilwx5rzyqvydcjskg6sml5b8m6mw7qzykvhs8bnvfh5",
+    "version": "100.0.4896.75",
+    "sha256": "1h60l1g340gvm4lz2lps6dqpvahpzn24hz47y2qvc6mavx9d6ki4",
+    "sha256bin64": "0nrrkgwcnqg4l8x1nk1rdxnv9xa0c24ync1yls7s9rc34wkk8sc5",
     "deps": {
       "gn": {
         "version": "2022-01-21",
@@ -56,8 +56,8 @@
         "sha256": "1dzdvcn2r5c9giknvasf3y5y4901kav7igivjvrpww66ywsj8fzr"
       },
       "ungoogled-patches": {
-        "rev": "100.0.4896.60-1",
-        "sha256": "02q7ghxynkgkbilcb8bx8q26s80fvd4hbc58zq74pnzpmn7qi342"
+        "rev": "100.0.4896.75-1",
+        "sha256": "0s31dclgk3x9302wr5yij77361bqam2sfki39p651gwysfizb73n"
       }
     }
   }
diff --git a/pkgs/applications/networking/browsers/firefox/librewolf/src.json b/pkgs/applications/networking/browsers/firefox/librewolf/src.json
index f24353089488a..d209a83ab9dff 100644
--- a/pkgs/applications/networking/browsers/firefox/librewolf/src.json
+++ b/pkgs/applications/networking/browsers/firefox/librewolf/src.json
@@ -1,11 +1,11 @@
 {
-  "packageVersion": "98.0.2-1",
+  "packageVersion": "99.0-1",
   "source": {
-    "rev": "98.0.2-1",
-    "sha256": "033l6mjmhfhf7b8p652s7ziw8zz725082hhzzvr3ahi498wshkx6"
+    "rev": "99.0-1",
+    "sha256": "0x9c19h4l1djhdq48ylnqjrrfkk2zalfpgj57cba5jqxl2fhglx3"
   },
   "firefox": {
-    "version": "98.0.2",
-    "sha512": "b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e"
+    "version": "99.0",
+    "sha512": "08f6d5a668140c4275aba6df463ed3af596043dfe5f27573583afbc1e9f6b27ebca79a52ce2c9598261c631b400b5378744e9e70f51ef9c4098b419e9904aa7c"
   }
 }
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index 53d5733bb5849..e744f2a31c657 100644
--- a/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lagrange";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "sha256-1eWd4En14p8E04kLWbsbJSEdjManQ87N/P3klFbUQx4=";
+    sha256 = "sha256-CpvoovTn++RTQjyeOlHTG+cjn32F+9qP32+YHpoLB8M=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 28e11814029cf..12ff0aa75ec44 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -87,7 +87,7 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "11.0.9";
+  version = "11.0.10";
 
   lang = "en-US";
 
@@ -98,7 +98,7 @@ let
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
       ];
-      sha256 = "0cl01bx64d6bmajknj7085nzc6841adkp65fz531r3y6nnpwr9ds";
+      sha256 = "1j39v01bb97hkhkfvz7xyfmv6y0sjjcymvn3sa9ahz2av1xlrplp";
     };
 
     i686-linux = fetchurl {
@@ -107,7 +107,7 @@ let
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
       ];
-      sha256 = "0j6alhm1pqp7fb6nk55vzvr1qjz6gyd3vn6v2dkkvj9mgm57x1j5";
+      sha256 = "0vh913z828ncb8pwz461xx61ylxqp44rf9iah7n6lzda7hcw79r3";
     };
   };
 in
diff --git a/pkgs/applications/networking/browsers/vieb/default.nix b/pkgs/applications/networking/browsers/vieb/default.nix
index 7cbf4cad975ef..40ae8502c762d 100644
--- a/pkgs/applications/networking/browsers/vieb/default.nix
+++ b/pkgs/applications/networking/browsers/vieb/default.nix
@@ -2,13 +2,13 @@
 
 mkYarnPackage rec {
   pname = "vieb";
-  version = "7.1.2";
+  version = "7.2.0";
 
   src = fetchFromGitHub {
     owner = "Jelmerro";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4LGg3w/rleTyHJd4867dog+/fIXhtKbYgF1bYKwoh/I=";
+    sha256 = "sha256-4iokmUzs72aVHb95D98ZITRygn4gGAc/K+M5uMnF2NM=";
   };
 
   packageJSON = ./package.json;
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index e5a3fc2060e9d..015612983c296 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2022.3.4";
+  version = "2022.4.0";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    hash   = "sha256-W3XA3AOzuyHlFCps2ne4Fh2X+E48inJT4QrDJLOeD5M=";
+    hash   = "sha256-+40OK2q4WdvlLhoPfZH6q+pghgS7ZLmaZl2VbZK4rdA=";
   };
 
   vendorSha256 = null;
@@ -22,6 +22,6 @@ buildGoModule rec {
     homepage    = "https://www.cloudflare.com/products/tunnel";
     license     = licenses.asl20;
     platforms   = platforms.unix;
-    maintainers = with maintainers; [ bbigras enorris thoughtpolice ];
+    maintainers = with maintainers; [ bbigras enorris thoughtpolice techknowlogick ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/argocd-autopilot/default.nix b/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
index 674db790f2237..58f5dfed85186 100644
--- a/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
+++ b/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
@@ -2,17 +2,16 @@
 
 buildGoModule rec {
   pname = "argocd-autopilot";
-  version = "0.3.0";
-  commit = "c8d17bef976649e4dc2428c14c39e30a0f846552";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "argoproj-labs";
     repo = "argocd-autopilot";
     rev = "v${version}";
-    sha256 = "sha256-tggE1T+oD/dJS9tD9xOExjhy+T1GDd0vwTerD3P2KvA=";
+    sha256 = "sha256-L8+sb0lGPuc6smOFwijRGFS+oSCxEqB5c1tG55MPlgE=";
   };
 
-  vendorSha256 = "sha256-v8UMSObE6w+ULzueEK0UFeebLqoamy/788SQLBmJZ8U=";
+  vendorSha256 = "sha256-sxPTOao3scTmiVKFyGeWPMzXQz/d0HSVmUYocNGm1vA=";
 
   proxyVendor = true;
 
@@ -24,7 +23,7 @@ buildGoModule rec {
       "-X ${package_url}.binaryName=${pname}"
       "-X ${package_url}.version=${src.rev}"
       "-X ${package_url}.buildDate=unknown"
-      "-X ${package_url}.gitCommit=${commit}"
+      "-X ${package_url}.gitCommit=${src.rev}"
       "-X ${package_url}.installationManifestURL=github.com/argoproj-labs/argocd-autopilot/manifests/base?ref=${src.rev}"
       "-X ${package_url}.installationManifestsNamespacedURL=github.com/argoproj-labs/argocd-autopilot/manifests/insecure?ref=${src.rev}"
     ];
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 211c2ce211eb5..9ce9286e610c8 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,20 +2,16 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.3.2";
-  tag = "v${version}";
-  # Update commit to match the tag above
-  # TODO make updadeScript
-  commit = "ecc2af9dcaa12975e654cde8cbbeaffbb315f75c";
+  version = "2.3.3";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
-    rev = tag;
-    sha256 = "sha256-n+C4l4U3cDU+fgCnGWOYLdyjknw7n/xPEtC1i8AaU4o=";
+    rev = "v${version}";
+    sha256 = "sha256-ChgWqhkzVKhbyEA+g2flWK/WMxur7UHWXJUcLzp9RTE=";
   };
 
-  vendorSha256 = "sha256-Km+1o6yuuxJs+DNTQ/XVTUFurD5gM5ohwDc7MwJuu5s=";
+  vendorSha256 = "sha256-XrIIMnn65Y10KnVTsmw6vLE53Zra1lWNFgklmaj3gF8=";
 
   # Set target as ./cmd per release-cli
   # https://github.com/argoproj/argo-cd/blob/master/Makefile#L222
@@ -27,8 +23,8 @@ buildGoModule rec {
       "-s" "-w"
       "-X ${package_url}.version=${version}"
       "-X ${package_url}.buildDate=unknown"
-      "-X ${package_url}.gitCommit=${commit}"
-      "-X ${package_url}.gitTag=${tag}"
+      "-X ${package_url}.gitCommit=${src.rev}"
+      "-X ${package_url}.gitTag=${src.rev}"
       "-X ${package_url}.gitTreeState=clean"
     ];
 
@@ -43,7 +39,7 @@ buildGoModule rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    $out/bin/argocd version --client | grep ${tag} > /dev/null
+    $out/bin/argocd version --client | grep ${src.rev} > /dev/null
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/networking/cluster/driftctl/default.nix b/pkgs/applications/networking/cluster/driftctl/default.nix
index fc8d8da18af83..2961521af5f6b 100644
--- a/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "driftctl";
-  version = "0.26.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "driftctl";
     rev = "v${version}";
-    sha256 = "sha256-cwI27hAfnSKT7P2rfM86tRtSKRR9bruRV9w440uGLIU=";
+    sha256 = "sha256-C+3eXdSU4FdJVlFvZw8LH768Yx6xvlElV1wsKgoju4o=";
   };
 
-  vendorSha256 = "sha256-I0OCRhUvuaF4k5qqPaV6R24mrd9AG5GgQCCF6yodK0E=";
+  vendorSha256 = "sha256-verxBwk83Xgg3XEMZpOXD3j3IgE7G4rHWJTj09BW74g=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index 84ba5330da106..6c88926ca2429 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -37,7 +37,7 @@ buildGoModule rec {
     description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
     homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
     license = licenses.asl20;
-    maintainers = with maintainers; [ veehaitch ];
+    maintainers = with maintainers; [ superherointj bryanasdev000 veehaitch ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/cluster/sonobuoy/default.nix b/pkgs/applications/networking/cluster/sonobuoy/default.nix
index f08f403de2824..4b935027d2e28 100644
--- a/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
 # SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
-let rev = "1005bee8fff1b8daa30ddbcca717d03384630a71";
+let rev = "51c79060fc1433233eb43842de564f0f2e47be86";
 in
 buildGoModule rec {
   pname = "sonobuoy";
-  version = "0.56.3"; # Do not forget to update `rev` above
+  version = "0.56.4"; # Do not forget to update `rev` above
 
   ldflags =
     let t = "github.com/vmware-tanzu/sonobuoy";
@@ -20,10 +20,10 @@ buildGoModule rec {
     owner = "vmware-tanzu";
     repo = "sonobuoy";
     rev = "v${version}";
-    sha256 = "sha256-7yN3/bGjcntzMQRbB//fmqvD7me/xKLytfF+mQ1fcfc=";
+    sha256 = "sha256-6kHqfWDrZL3J5SrZ3JK50Z2Sw8mwM0zrfaKWo22g27A=";
   };
 
-  vendorSha256 = "sha256-qKXm39CwrTcXENIMh2BBS3MUlhJvmTTA3UzZNpF0PCc=";
+  vendorSha256 = "sha256-8n4a1PLUYDU46lVegQoOCmmRSR1XfnjgEGZ+R5f36Ic=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix
index 374d9c972c7c3..7e12f18a78c51 100644
--- a/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 let
   # look for GO_LDFLAGS getting set in the Makefile
-  version = "0.14.3";
-  sha256 = "sha256-toEbWUZxnJkUe9jkZRdJrcPXu+CIh62fUKyX38OkXxU=";
-  vendorSha256 = "sha256-Pj1918TIOGfhkRiFEKkURL4xMFgWroiNsNU6yWzT8yk=";
-  pkgsVersion = "v0.9.0-6-gbfcc795";
-  extrasVersion = "v0.7.0-2-gb4c9d21";
+  version = "1.0.1";
+  sha256 = "sha256-IqFnVOnmYqf2K3TX+gwFPmBBksYz+56Oy/t8xWhi7fc=";
+  vendorSha256 = "sha256-GKdAMmU4HiOFYR0SFeFvwFGTXc2lmzO/fAlR1vCDfX4=";
+  pkgsVersion = "v1.0.0-6-g7c293d5";
+  extrasVersion = "v1.0.0";
 in
 buildGoModule rec {
   pname = "talosctl";
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 0bdb6289a6116..01c7a0a919837 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -104,5 +104,8 @@ let
       ultradns = archived "2022/01";
       vthunder = throw "provider was renamed to thunder on 2022/01";
     };
+
+  # excluding aliases, used by terraform-full
+  actualProviders = automated-providers // special-providers;
 in
-automated-providers // special-providers // removed-providers // { inherit mkProvider; }
+actualProviders // removed-providers // { inherit actualProviders mkProvider; }
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 6f32892d4dafd..0df988b9f98a0 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -21,19 +21,19 @@
     "owner": "aiven",
     "provider-source-address": "registry.terraform.io/aiven/aiven",
     "repo": "terraform-provider-aiven",
-    "rev": "v2.7.0",
-    "sha256": "12n97z3r5bz7hwgcz193x90n7ibk4fdph7pqxwwinrvlc6zb7hz6",
-    "vendorSha256": "12lj7p74mhiy30fhc12ihbf827axlbxhbfzr10iwwhb0nydsfiyl",
-    "version": "2.7.0"
+    "rev": "v2.7.1",
+    "sha256": "sha256-tXg9VpP3kj32Q9ktU5FrcQStIRlDtMLXYzn0RvLQCRk=",
+    "vendorSha256": "sha256-1Eenm7dgQc4jCPm7BfuiXR2B3IJRBAYdGD7CSs49koo=",
+    "version": "2.7.1"
   },
   "akamai": {
     "owner": "akamai",
     "provider-source-address": "registry.terraform.io/akamai/akamai",
     "repo": "terraform-provider-akamai",
-    "rev": "v1.11.0",
-    "sha256": "1ccliv8p36rh7f7zacjsa2x846d36nygbgs0vyjb0bpf5pl7grgd",
-    "vendorSha256": "19n841mby0l7ipjmmqsl5vnfmsj6y8fci1vzi8z6dqy3xcjlhwgb",
-    "version": "1.11.0"
+    "rev": "v1.12.1",
+    "sha256": "sha256-UQD1RiXIRcP0CvVO8Tx/qkBhRD3LFj/KI3WP/yKeBek=",
+    "vendorSha256": "sha256-GZFLnKHk6YaMwFGgy79ric388EMIH6NUVw4JVLNxWZY=",
+    "version": "1.12.1"
   },
   "alicloud": {
     "deleteVendor": true,
@@ -94,28 +94,28 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/aws",
     "repo": "terraform-provider-aws",
-    "rev": "v4.8.0",
-    "sha256": "sha256-Ere41qols4lNnoAIZGWQmituukLnPNbv5d8C/e3rQgI=",
-    "vendorSha256": "sha256-ZXH9YlSii2z1s6Y/TfZVBje0/xQ2DXw3ZpgcBPeQZ2I=",
-    "version": "4.8.0"
+    "rev": "v4.9.0",
+    "sha256": "sha256-VLw2bqL6VEKwqzXYkNJGJtIi8gg+3/oCwbBf9UtATE4=",
+    "vendorSha256": "sha256-7pwwQHgtHO3GfcEAOHALo01i1pt9WsriZZkJjFzjwRE=",
+    "version": "4.9.0"
   },
   "azuread": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azuread",
     "repo": "terraform-provider-azuread",
-    "rev": "v2.19.1",
-    "sha256": "sha256-n5jDlcy5rwCcrqoL3ut+HThDLQ8hPj2mZ15d7hhALFw=",
+    "rev": "v2.20.0",
+    "sha256": "sha256-x1tSrejqsw3A/1n+PbG9wWx7q7qRciCjdwPAFT4lc2E=",
     "vendorSha256": null,
-    "version": "2.19.1"
+    "version": "2.20.0"
   },
   "azurerm": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azurerm",
     "repo": "terraform-provider-azurerm",
-    "rev": "v3.0.2",
-    "sha256": "sha256-T24bfys9OxBnGN4YtJEsJmSUK26a5hMnbgZUANcpg3k=",
+    "rev": "v3.1.0",
+    "sha256": "sha256-idrGxmfhnMKvxtKJtjLs321D008Mcv27cHyhAjwCZfA=",
     "vendorSha256": null,
-    "version": "3.0.2"
+    "version": "3.1.0"
   },
   "azurestack": {
     "owner": "hashicorp",
@@ -194,10 +194,10 @@
     "owner": "cloudflare",
     "provider-source-address": "registry.terraform.io/cloudflare/cloudflare",
     "repo": "terraform-provider-cloudflare",
-    "rev": "v3.11.0",
-    "sha256": "sha256-z7IjLXO/AHWENKYaCospJDcOwOubNcRHKDQzmRkhimw=",
-    "vendorSha256": "sha256-Lx/faIdx4k399sm9p8BVqpiKZtNjZoThBhWWWgEuPyg=",
-    "version": "3.11.0"
+    "rev": "v3.12.0",
+    "sha256": "sha256-y2qq0asEnhnOjthLBFxyQjf1N5KNlXXK0eXjT1/vCXg=",
+    "vendorSha256": "sha256-v6fUzYwrYt4rk5LT0LyNd8e9X79r3dwtd3s1QIV/w/s=",
+    "version": "3.12.0"
   },
   "cloudfoundry": {
     "owner": "cloudfoundry-community",
@@ -411,20 +411,20 @@
     "provider-source-address": "registry.terraform.io/hashicorp/google",
     "proxyVendor": true,
     "repo": "terraform-provider-google",
-    "rev": "v4.15.0",
-    "sha256": "sha256-BHtbBfCihy1zh/A9JB03CDh5KpzMWeR/mbuRErJkVUE=",
-    "vendorSha256": "sha256-7xTABs0O2eBBwjP1JNaFhsodl/ItPC+iv7NnwwlACvU=",
-    "version": "4.15.0"
+    "rev": "v4.16.0",
+    "sha256": "sha256-kp6AldlkjiNd3R3hz+wB2uBQ37TyZ0hoEhxQYiFmO7g=",
+    "vendorSha256": "sha256-l2OviwplP/Sg2ShaEA88pMwVTkREnLkFAzterjr2kvU=",
+    "version": "4.16.0"
   },
   "google-beta": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/google-beta",
     "proxyVendor": true,
     "repo": "terraform-provider-google-beta",
-    "rev": "v4.15.0",
-    "sha256": "sha256-FTT6PS0OS4HPfkM2u4PZwOA/v5VzDwHLdO2s+qgRkW8=",
-    "vendorSha256": "sha256-7xTABs0O2eBBwjP1JNaFhsodl/ItPC+iv7NnwwlACvU=",
-    "version": "4.15.0"
+    "rev": "v4.16.0",
+    "sha256": "sha256-m5K2q83WbWVfjG7vhlh71k14GEXNs+2JfK/S1GnC5c0=",
+    "vendorSha256": "sha256-l2OviwplP/Sg2ShaEA88pMwVTkREnLkFAzterjr2kvU=",
+    "version": "4.16.0"
   },
   "grafana": {
     "owner": "grafana",
@@ -439,10 +439,10 @@
     "owner": "gridscale",
     "provider-source-address": "registry.terraform.io/gridscale/gridscale",
     "repo": "terraform-provider-gridscale",
-    "rev": "v1.14.2",
-    "sha256": "sha256-gGwwyp3NgdcoE6YIBewiiajPoZpJbQ80/Zr2pIw8imE=",
+    "rev": "v1.14.3",
+    "sha256": "sha256-OGVIZ6q8qq4XkkWxjX5BQCJE9qubJ5Xnt2DrD23JGB8=",
     "vendorSha256": null,
-    "version": "1.14.2"
+    "version": "1.14.3"
   },
   "hcloud": {
     "owner": "hetznercloud",
@@ -511,10 +511,10 @@
     "owner": "IBM-Cloud",
     "provider-source-address": "registry.terraform.io/IBM-Cloud/ibm",
     "repo": "terraform-provider-ibm",
-    "rev": "v1.40.0",
-    "sha256": "sha256-msBfnPkClyOvqXcKHIpCxT1YDRHY7p491zl8Uvl8qOQ=",
-    "vendorSha256": "sha256-YgRgm5S7cXHO9yqUUuVVkFRQL+pf0RMPJI9oUaWob2I=",
-    "version": "1.40.0"
+    "rev": "v1.40.1",
+    "sha256": "sha256-7NdpMWEpkcqEwi7xAedc/NPJ6e+RZZ4HdrKtmb/H6xU=",
+    "vendorSha256": "sha256-rVV6oeqIj4o9qxw2V67G3cgERJaccejaAAtEOJVLm4U=",
+    "version": "1.40.1"
   },
   "icinga2": {
     "owner": "Icinga",
@@ -583,19 +583,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v2.9.0",
-    "sha256": "sha256-w16pm2+8M59grW5HUBBtkKaCnvf5p4GQMEHtQa4DLXs=",
+    "rev": "v2.10.0",
+    "sha256": "sha256-pA0yI59iRBmiT3rdvoP4vkSz/+bH29O4eLGPCBjfiZU=",
     "vendorSha256": null,
-    "version": "2.9.0"
+    "version": "2.10.0"
   },
   "launchdarkly": {
     "owner": "launchdarkly",
     "provider-source-address": "registry.terraform.io/launchdarkly/launchdarkly",
     "repo": "terraform-provider-launchdarkly",
-    "rev": "v2.5.0",
-    "sha256": "1083w217y8l6clj3q31f1lanzngfinw682kdqpm0xfssqas7qzx6",
-    "vendorSha256": "13vcxvw56bn7mdz917lvdryd2d7mcvi83ykbzjfbpxr4lzrrm9qw",
-    "version": "2.5.0"
+    "rev": "v2.6.0",
+    "sha256": "sha256-Mf7oV5G5XjnE+3m8EDczDvrtn2s4nrNCTdAJz1n9v2Y=",
+    "vendorSha256": "sha256-HKea86ck97uc/Gv6geJm9TTRfG6bnpB+q8cuU/jubI8=",
+    "version": "2.6.0"
   },
   "libvirt": {
     "owner": "dmacvicar",
@@ -634,13 +634,12 @@
     "version": "2.2.2"
   },
   "logicmonitor": {
-    "deleteVendor": true,
     "owner": "logicmonitor",
     "provider-source-address": "registry.terraform.io/logicmonitor/logicmonitor",
     "repo": "terraform-provider-logicmonitor",
     "rev": "v2.0.0",
     "sha256": "sha256-wamP36zV5HZ1qQlNZWIZyAYx/jOiRO1ODQpcd10Sl4w=",
-    "vendorSha256": "sha256-ccLI662Z+B+xvyuQ5aRHUViREtcdccjOMM5EIJiEaU0=",
+    "vendorSha256": null,
     "version": "2.0.0"
   },
   "lxd": {
@@ -656,10 +655,10 @@
     "owner": "wgebis",
     "provider-source-address": "registry.terraform.io/wgebis/mailgun",
     "repo": "terraform-provider-mailgun",
-    "rev": "v0.7.1",
-    "sha256": "0sw4a5ch8izy9lw9qmbj6s5vxz7gxcarga1s1h3vlng9y1dpvp2r",
-    "vendorSha256": "1qwd3jwdh5pzq9sdb62lpkbspfn54jii725p2jgvzg93xarv4n58",
-    "version": "0.7.1"
+    "rev": "v0.7.2",
+    "sha256": "sha256-Yi258SIFSdD+JSi5oX74bhBFYYGYQfSAyYD07eO8MmM=",
+    "vendorSha256": "sha256-g1PEjNV/RE2q7olGQsdM6AbXcXP2UROHC/SwEMPDk8c=",
+    "version": "0.7.2"
   },
   "matchbox": {
     "owner": "poseidon",
@@ -692,10 +691,10 @@
     "owner": "mongodb",
     "provider-source-address": "registry.terraform.io/mongodb/mongodbatlas",
     "repo": "terraform-provider-mongodbatlas",
-    "rev": "v1.3.0",
-    "sha256": "0lrzbljd8iklyrmplc64lq4v8y7z5fw7l41y27nsfjl4rm0xz5bn",
-    "vendorSha256": "0kkkrdbapyvfzmnbh5kmhlcz5l8g8gf0mfwbya66iy1bb6f6w4mz",
-    "version": "1.3.0"
+    "rev": "v1.3.1",
+    "sha256": "sha256-X2Utt+MUboLc0/nAXB78ko3w2ieTIQaVsDK6MhbUKSQ=",
+    "vendorSha256": "sha256-yZ/TgAVlBxHhrrZU6SH1KXNoZj8oWRqx3BjVHkTtI+Q=",
+    "version": "1.3.1"
   },
   "namecheap": {
     "owner": "namecheap",
@@ -728,10 +727,10 @@
     "owner": "newrelic",
     "provider-source-address": "registry.terraform.io/newrelic/newrelic",
     "repo": "terraform-provider-newrelic",
-    "rev": "v2.41.2",
-    "sha256": "sha256-LCA1K4md1wRRkB7oerUn1MM0TRLcqQBoVpvoxCMGSs8=",
+    "rev": "v2.42.0",
+    "sha256": "sha256-OD0wahsEw86E7TbUxIqEhoZ85An9yRwgTENtdoYnFB0=",
     "vendorSha256": "sha256-G/GWIE+XeLiHW0xxyjbIpncAnpBmC/+iZnI8MFmi80k=",
-    "version": "2.41.2"
+    "version": "2.42.0"
   },
   "nomad": {
     "owner": "hashicorp",
@@ -783,10 +782,10 @@
     "owner": "oracle",
     "provider-source-address": "registry.terraform.io/oracle/oci",
     "repo": "terraform-provider-oci",
-    "rev": "v4.69.0",
-    "sha256": "sha256-VwL+i4HtvAJi3R57cjUrg+7rx1LxEUAMwkorCvJ9DcU=",
+    "rev": "v4.70.0",
+    "sha256": "sha256-KgpYl1DllCkpXbxYp8cqKE28l4digmaB75BoL6CpkQA=",
     "vendorSha256": null,
-    "version": "4.69.0"
+    "version": "4.70.0"
   },
   "okta": {
     "owner": "okta",
@@ -816,13 +815,12 @@
     "version": "1.4.1"
   },
   "opennebula": {
-    "deleteVendor": true,
     "owner": "OpenNebula",
     "provider-source-address": "registry.terraform.io/OpenNebula/opennebula",
     "repo": "terraform-provider-opennebula",
     "rev": "v0.4.3",
     "sha256": "sha256-mnRRMubaz5hin4kG5NK+GMtTPcsIJu6GS8PKDitNszg=",
-    "vendorSha256": "sha256-JTQJH0f8m6yBL8+jk6q02WPuvyre3mHql9Zy9OJW32M=",
+    "vendorSha256": null,
     "version": "0.4.3"
   },
   "openstack": {
@@ -838,10 +836,10 @@
     "owner": "opentelekomcloud",
     "provider-source-address": "registry.terraform.io/opentelekomcloud/opentelekomcloud",
     "repo": "terraform-provider-opentelekomcloud",
-    "rev": "v1.28.2",
-    "sha256": "sha256-qp5H37Zf9oPYA2vvWKuEpfUeHIfK1NYE9Uk7dcX9izA=",
-    "vendorSha256": "sha256-FMcPG7EJvU6XNKd2+8+xmjqSI0Ec9Xx/6gZvK9zJ3wg=",
-    "version": "1.28.2"
+    "rev": "v1.29.0",
+    "sha256": "sha256-jhG2TyinnlPPIVA2K+ckOcxlqxeUFkp+WFJcJqYQ13k=",
+    "vendorSha256": "sha256-qNJ1jkbGgFUxvHYUMPX9kBAwQSx4vfOr7eS0Z6J7X8Q=",
+    "version": "1.29.0"
   },
   "opsgenie": {
     "owner": "opsgenie",
@@ -865,10 +863,10 @@
     "owner": "ovh",
     "provider-source-address": "registry.terraform.io/ovh/ovh",
     "repo": "terraform-provider-ovh",
-    "rev": "v0.16.0",
-    "sha256": "0vvxcm4ff6zw5ngwq9cia2ifjg8a2adyf66dyc2d8lavvfld22v9",
+    "rev": "v0.17.1",
+    "sha256": "sha256-bAwOxRexJuSw3Ntb8zXeTFPp23hCkCEI+zF4Q2SP3lA=",
     "vendorSha256": null,
-    "version": "0.16.0"
+    "version": "0.17.1"
   },
   "pagerduty": {
     "owner": "PagerDuty",
@@ -955,10 +953,10 @@
     "owner": "scaleway",
     "provider-source-address": "registry.terraform.io/scaleway/scaleway",
     "repo": "terraform-provider-scaleway",
-    "rev": "v2.2.1-rc.1",
-    "sha256": "0f4sizgcy3000k67nb3axa8xhpczvzdla3bnpda27jdrx22ckyz8",
-    "vendorSha256": "11g5v5kvs4qxdg34ai7fpinwbshrjwi9hxzav2vpnzhy8lfqpkzb",
-    "version": "2.2.1-rc.1"
+    "rev": "v2.2.1-rc.2",
+    "sha256": "sha256-7T+J4T0qm7QMGWWjIT0nKHkHzd6wfFNP3suF7GitErc=",
+    "vendorSha256": "sha256-kfr8YqLr8CXntkiMEHA5kosZqkloV4rGjEmdXosT7WU=",
+    "version": "2.2.1-rc.2"
   },
   "secret": {
     "owner": "numtide",
@@ -1000,10 +998,10 @@
     "owner": "splunk-terraform",
     "provider-source-address": "registry.terraform.io/splunk-terraform/signalfx",
     "repo": "terraform-provider-signalfx",
-    "rev": "v6.11.0",
-    "sha256": "sha256-ezd4TzckY5yx/UjwGxH36VX+owI8fBUmxtQFztOsFvs=",
+    "rev": "v6.11.1",
+    "sha256": "sha256-37D4nblpGK8duohDiyY4UR0jn+T6QX7LnCfGtPdYQ3k=",
     "vendorSha256": "sha256-PVbqS37MBkIrr8CO6LxB0NjWWiTI5NFDipX6GvokrnY=",
-    "version": "6.11.0"
+    "version": "6.11.1"
   },
   "skytap": {
     "owner": "skytap",
@@ -1018,10 +1016,10 @@
     "owner": "chanzuckerberg",
     "provider-source-address": "registry.terraform.io/chanzuckerberg/snowflake",
     "repo": "terraform-provider-snowflake",
-    "rev": "v0.29.0",
-    "sha256": "sha256-CdJHknGzEKfbxzrtqmevKwiYTs1UoRFRj6/ShQ9mdIc=",
+    "rev": "v0.30.0",
+    "sha256": "sha256-JHpwqMyt/oMZv6P4xEOlyV0pL32HQselDg+dP9JGRpg=",
     "vendorSha256": "sha256-G/UIKuKtolLY7RIQF06wzn/ZYTMihEmJZ1DqVcHFGdg=",
-    "version": "0.29.0"
+    "version": "0.30.0"
   },
   "sops": {
     "owner": "carlpett",
@@ -1036,10 +1034,10 @@
     "owner": "spotinst",
     "provider-source-address": "registry.terraform.io/spotinst/spotinst",
     "repo": "terraform-provider-spotinst",
-    "rev": "v1.70.0",
-    "sha256": "sha256-jtoFXfHCnmGW2QVssngNtRLT6BfHaaNmNl4v2UIsmrI=",
-    "vendorSha256": "sha256-yfWdyEf6ypF0QCdh9zspCaFyPJpt4DgYR1LBPTztOUw=",
-    "version": "1.70.0"
+    "rev": "v1.71.0",
+    "sha256": "sha256-Fcx0KHTAAOQE/Qa+84p5l5ve5nrWXZHgRyc3xNYBJoQ=",
+    "vendorSha256": "sha256-pI9jX/Wp6Nu1ix82ZE2CBZYu0j4S+HH2+dD5G679VrE=",
+    "version": "1.71.0"
   },
   "stackpath": {
     "owner": "stackpath",
@@ -1081,10 +1079,10 @@
     "owner": "tencentcloudstack",
     "provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
     "repo": "terraform-provider-tencentcloud",
-    "rev": "v1.66.3",
-    "sha256": "sha256-LwIL+GjyEyuTCKiKLrOKrH5S1s9L56PUaHu6ypSSnRQ=",
+    "rev": "v1.67.0",
+    "sha256": "sha256-61Fhh/BW1Iv/7wMU0lDMxPdB86Wqf43F90ZoWM990K0=",
     "vendorSha256": null,
-    "version": "1.66.3"
+    "version": "1.67.0"
   },
   "tfe": {
     "owner": "hashicorp",
@@ -1117,10 +1115,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/tls",
     "repo": "terraform-provider-tls",
-    "rev": "v3.1.0",
-    "sha256": "0g2bgvw02ydwgb6blica5a139crnyp4hdhzxf433n3fflwyvl6r1",
-    "vendorSha256": null,
-    "version": "3.1.0"
+    "rev": "v3.3.0",
+    "sha256": "sha256-7A9AXZxTIltZdXXIpMpQGYKwgSdU6kRRNuvVaNtMFGw=",
+    "vendorSha256": "sha256-bj2KpPFFnev5DAND9/HyUC4kOORAvnnpSihUECcHB/8=",
+    "version": "3.3.0"
   },
   "triton": {
     "deleteVendor": true,
@@ -1154,10 +1152,10 @@
     "owner": "cloudposse",
     "provider-source-address": "registry.terraform.io/cloudposse/utils",
     "repo": "terraform-provider-utils",
-    "rev": "0.17.17",
-    "sha256": "sha256-QJtdCEw8bnVku4fqAX5MBU9tkPv5jwjra9lGPfUPGQw=",
-    "vendorSha256": "sha256-5EelFIfHVLRiRJig6EeJG6KGJuQ05LX3M5CNxUxQAas=",
-    "version": "0.17.17"
+    "rev": "0.17.19",
+    "sha256": "sha256-FTZyri4/6QWkLKKectzx3av8fnoDkOIyAkAPasFU8sU=",
+    "vendorSha256": "sha256-FA2Hev7RS3ZJ/cDTgyZ7uMFlQB/VdJ19GZUpkWTEPV8=",
+    "version": "0.17.19"
   },
   "vault": {
     "owner": "hashicorp",
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 897acd76237a1..39283a8646e9a 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -66,6 +66,7 @@ let
           timstott
           zimbatm
           zowoq
+          techknowlogick
         ];
       };
     } // attrs');
@@ -84,7 +85,7 @@ let
           passthru = {
             withPlugins = newplugins:
               withPlugins (x: newplugins x ++ actualPlugins);
-            full = withPlugins (p: lib.filter lib.isDerivation (lib.attrValues p));
+            full = withPlugins (p: lib.filter lib.isDerivation (lib.attrValues p.actualProviders));
 
             # Expose wrappers around the override* functions of the terraform
             # derivation.
@@ -191,9 +192,9 @@ rec {
   };
 
   terraform_1 = mkTerraform {
-    version = "1.1.7";
-    sha256 = "sha256-E8qY17MSdA7fQW4wGSDiPzbndBP5SZwelAJAWzka/io=";
-    vendorSha256 = "sha256-lyy/hcr00ix6qZoxzSfCbXvDC8dRB2ZjrONywpqbVZ8=";
+    version = "1.1.8";
+    sha256 = "sha256-U3RuLnDQD1EbPZG/wPuVMbSKmR3EqspkoK0Ky8aZb7k=";
+    vendorSha256 = "sha256-Jy9o0O80OjagrHG25CSPblI49zKx0N8pwvEotk9qm3s=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = { inherit plugins; };
   };
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index 03d1d74305e62..266f3958adfd8 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -47,13 +47,13 @@ let
   });
 in nodejs-14_x.pkgs.deltachat-desktop.override rec {
   pname = "deltachat-desktop";
-  version = "1.28.1";
+  version = "1.28.2";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-desktop";
     rev = "v${version}";
-    hash = "sha256-i2Cb2HfapYTaxg5IUl4pGWYUM6o/4mWgMO7QsBqDHoU=";
+    hash = "sha256-jhtriDnt8Yl8eCmUTEyoPjccZV8RNAchMykkkiRpF60=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
index 0f4e421a762af..4455868fe0b03 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
@@ -1,6 +1,6 @@
 {
   "name": "deltachat-desktop",
-  "version": "1.28.1",
+  "version": "1.28.2",
   "dependencies": {
     "@blueprintjs/core": "^3.22.3",
     "@deltachat/message_parser_wasm": "^0.3.0",
@@ -51,7 +51,7 @@
     "@types/react-window": "^1.8.4",
     "@types/react-window-infinite-loader": "^1.0.4",
     "@types/url-parse": "^1.4.3",
-    "electron": "^14.2.6",
+    "electron": "^14.2.9",
     "esbuild": "^0.12.29",
     "glob-watcher": "^5.0.5",
     "sass": "^1.26.5",
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 72bd18163e68a..64586dcd70ef8 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.37.0"; # Please backport all updates to the stable channel.
+  version = "5.38.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-hnRS/7CZPk1bbBjpHLAywKVu2u7jgg3p5/pxEdkzMJ8=";
+    sha256 = "sha256-PmeJ6ZNjQjxuPl1UqunQT0q6uUZxt5gDFJS/WCcHE68=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index b23f4f107aed4..024ac9a143182 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.81.0.268";
+  version = "8.82.0.403";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -68,7 +68,7 @@ let
           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "sha256-MqXLK+AdYkQVTeTjul9Dru78597FuThRUVq7/y9FYUU=";
+        sha256 = "sha256-45aHb6BI0kUnJOlRsglyGdZ6+8sLmHZK3FN8nYpuHXM=";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 5eb7518ea378c..5b542efff2309 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -44,14 +44,14 @@ let
 
   pname = "slack";
 
-  x86_64-darwin-version = "4.23.0";
-  x86_64-darwin-sha256 = "0l4zfyys0yf95dn0sldyjkhzp7bpn84z9q9li1lvv5jj55f0g9jd";
+  x86_64-darwin-version = "4.25.0";
+  x86_64-darwin-sha256 = "1ffg003ic0jhkis9ai2873axwzqj9yvjab8212zwhvr3a23zzr5c";
 
-  x86_64-linux-version = "4.23.0";
-  x86_64-linux-sha256 = "1wsrxacnj9f3cb6as7ncbdvi02jqcbyc7ijsavps5bls9phkp0is";
+  x86_64-linux-version = "4.25.0";
+  x86_64-linux-sha256 = "0b22hnf9bzdzffnxrsjqcimqhz5imshvp9gw9baz12d45jh610g8";
 
-  aarch64-darwin-version = "4.23.0";
-  aarch64-darwin-sha256 = "053psiqysyi7l8pviq0vwvk2azlxcpdrwfa0b99f1h6lbfcf48f3";
+  aarch64-darwin-version = "4.25.0";
+  aarch64-darwin-sha256 = "0s4c66bzi42y2r1c94r4ds5fyzzgvzkvrria0z45ysa47lnldp0f";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
diff --git a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
index 30bfde7a96f1c..0951f1d3d8e7d 100644
--- a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "threema-desktop";
-  version = "1.0.3";
+  version = "1.2.0";
 
   src = fetchurl {
     # As Threema only offers a Latest Release url, the plan is to upload each
     # new release url to web.archive.org until their Github releases page gets populated.
-    url = "https://web.archive.org/web/20211027194646/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
-    sha256 = "sha256-qiFv52nnyfHxCWTePmyxW/MgzFy3EUxmW6n+UIkw7tk=";
+    url = "https://web.archive.org/web/20220408213031if_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
+    sha256 = "7c8e1e76ad82a0cf776eb8b0a683a41a00dc8752bb79a24b0ae9d795fdedcde6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index e2d4a76df7d0b..91db452356f2c 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -10,12 +10,12 @@ in
 rec {
   thunderbird = (common rec {
     pname = "thunderbird";
-    version = "91.7.0";
+    version = "91.8.0";
     application = "comm/mail";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "2afaee16f155edcb0bdb46ebe282a733cf041ec6f562aebd06f8b675e46917f6f500fcc532fc54d74f3f4b0b489a88934a2c6c304f849873de4bc2690b9056a0";
+      sha512 = "147c7ad68b0a32cc0fd4405935836af1fa77bbce6a1e367b51ef9871e7fc2a8fe908a1d200be34326f4f339d272e62f619b75680201fe82d301ddd02e23824d5";
     };
     extraPatches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
diff --git a/pkgs/applications/networking/n8n/node-packages.nix b/pkgs/applications/networking/n8n/node-packages.nix
index ab66b28fe17ac..1793956b1d3a6 100644
--- a/pkgs/applications/networking/n8n/node-packages.nix
+++ b/pkgs/applications/networking/n8n/node-packages.nix
@@ -445,13 +445,13 @@ let
         sha512 = "zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==";
       };
     };
-    "@types/lodash-4.14.180" = {
+    "@types/lodash-4.14.181" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.180";
+      version = "4.14.181";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.180.tgz";
-        sha512 = "XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.181.tgz";
+        sha512 = "n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==";
       };
     };
     "@types/lossless-json-1.0.1" = {
@@ -661,13 +661,13 @@ let
         sha1 = "6a3e6bf0a63900ba15652808cb15c6813d1a5f25";
       };
     };
-    "adler-32-1.3.0" = {
+    "adler-32-1.3.1" = {
       name = "adler-32";
       packageName = "adler-32";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz";
-        sha512 = "f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==";
+        url = "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz";
+        sha512 = "ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==";
       };
     };
     "agent-base-6.0.2" = {
@@ -958,22 +958,22 @@ let
         sha512 = "h7diyELoq692AA4oqO50ULoYKIomUdzuQ+NW+eFPwIX0xzVbXEu9cIcgzZ3TYNVbpkGtcNKh51aRfAQNef7HVA==";
       };
     };
-    "avsc-5.7.3" = {
+    "avsc-5.7.4" = {
       name = "avsc";
       packageName = "avsc";
-      version = "5.7.3";
+      version = "5.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/avsc/-/avsc-5.7.3.tgz";
-        sha512 = "uUbetCWczQHbsKyX1C99XpQHBM8SWfovvaZhPIj23/1uV7SQf0WeRZbiLpw0JZm+LHTChfNgrLfDJOVoU2kU+A==";
+        url = "https://registry.npmjs.org/avsc/-/avsc-5.7.4.tgz";
+        sha512 = "z4oo33lmnvvNRqfUe3YjDGGpqu/L2+wXBIhMtwq6oqZ+exOUAkQYM6zd2VWKF7AIlajOF8ZZuPFfryTG9iLC/w==";
       };
     };
-    "aws-sdk-2.1101.0" = {
+    "aws-sdk-2.1106.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1101.0";
+      version = "2.1106.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1101.0.tgz";
-        sha512 = "7lyVb7GXGl8yyu954Qxf6vU6MrcgFlmKyTLBVXJyo3Phn1OB+qOExA55WtSC6gQiQ7e5TeWOn1RUHLg30ywTBA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1106.0.tgz";
+        sha512 = "3dr0TTR2LI70ST8fa4IgXHpWdH4yv7FLnt9YEndwFQ8ar2EMCMpMU67wwCGBA72GUi0aOg4+lsLjGmCvIq3jug==";
       };
     };
     "aws-sign2-0.7.0" = {
@@ -1174,6 +1174,15 @@ let
         sha512 = "SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==";
       };
     };
+    "body-parser-1.20.0" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz";
+        sha512 = "DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==";
+      };
+    };
     "body-parser-xml-2.0.3" = {
       name = "body-parser-xml";
       packageName = "body-parser-xml";
@@ -1435,13 +1444,13 @@ let
         sha512 = "hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==";
       };
     };
-    "cheerio-select-1.5.0" = {
+    "cheerio-select-1.6.0" = {
       name = "cheerio-select";
       packageName = "cheerio-select";
-      version = "1.5.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz";
-        sha512 = "qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==";
+        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz";
+        sha512 = "eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==";
       };
     };
     "chokidar-3.5.2" = {
@@ -1894,22 +1903,22 @@ let
         sha512 = "uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==";
       };
     };
-    "css-select-4.2.1" = {
+    "css-select-4.3.0" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz";
-        sha512 = "/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz";
+        sha512 = "wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==";
       };
     };
-    "css-what-5.1.0" = {
+    "css-what-6.1.0" = {
       name = "css-what";
       packageName = "css-what";
-      version = "5.1.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz";
-        sha512 = "arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==";
+        url = "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz";
+        sha512 = "HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==";
       };
     };
     "cssfilter-0.0.10" = {
@@ -2074,6 +2083,15 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
+    "destroy-1.2.0" = {
+      name = "destroy";
+      packageName = "destroy";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz";
+        sha512 = "2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==";
+      };
+    };
     "detect-libc-1.0.3" = {
       name = "detect-libc";
       packageName = "detect-libc";
@@ -2299,13 +2317,13 @@ let
         sha512 = "2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==";
       };
     };
-    "es-abstract-1.19.1" = {
+    "es-abstract-1.19.2" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.19.1";
+      version = "1.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz";
-        sha512 = "2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz";
+        sha512 = "gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -3064,6 +3082,15 @@ let
         sha512 = "Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==";
       };
     };
+    "http-errors-2.0.0" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz";
+        sha512 = "FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==";
+      };
+    };
     "http-proxy-agent-4.0.1" = {
       name = "http-proxy-agent";
       packageName = "http-proxy-agent";
@@ -3442,13 +3469,13 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
-    "is-number-object-1.0.6" = {
+    "is-number-object-1.0.7" = {
       name = "is-number-object";
       packageName = "is-number-object";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz";
-        sha512 = "bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==";
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz";
+        sha512 = "k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==";
       };
     };
     "is-promise-1.0.1" = {
@@ -3496,13 +3523,13 @@ let
         sha512 = "XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==";
       };
     };
-    "is-shared-array-buffer-1.0.1" = {
+    "is-shared-array-buffer-1.0.2" = {
       name = "is-shared-array-buffer";
       packageName = "is-shared-array-buffer";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz";
-        sha512 = "IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==";
+        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz";
+        sha512 = "sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==";
       };
     };
     "is-stream-2.0.1" = {
@@ -4504,13 +4531,13 @@ let
         sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
       };
     };
-    "n8n-core-0.111.0" = {
+    "n8n-core-0.112.0" = {
       name = "n8n-core";
       packageName = "n8n-core";
-      version = "0.111.0";
+      version = "0.112.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.111.0.tgz";
-        sha512 = "fZLLJ60yIuuX+geKGQrO6jk+kxn1UaCJMoWEi2FVE+InTmi+/r51Bv6LGoapoW0Oz+Em+CDq0wE7Yzg3xNx7fw==";
+        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.112.0.tgz";
+        sha512 = "1b/J9XWBrjqMCcDAM1vZlsEpeBXI7gZ9Jpxgpgu4eHh3l/BJfyeqq5KXgULfyDtolDn/bil0s7qXA2njmZLerw==";
       };
     };
     "n8n-design-system-0.16.0" = {
@@ -4522,31 +4549,31 @@ let
         sha512 = "X7Qa+DoXRyJL4gqh7x59udnPIBYAUgDvhchL33dpI/Rgq9gaFajT9eAuOFQnXKMUaL0FZ5hu3rRGcAmwwEA/bA==";
       };
     };
-    "n8n-editor-ui-0.137.0" = {
+    "n8n-editor-ui-0.138.0" = {
       name = "n8n-editor-ui";
       packageName = "n8n-editor-ui";
-      version = "0.137.0";
+      version = "0.138.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.137.0.tgz";
-        sha512 = "/wYAIh/3RtVaFxY+vtVEACfo6xsVOi3cEPWd+GSFCK/AMxXs517CNGbwNz54geqaGNUH+rhhUz87C0pG+TgiUg==";
+        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.138.0.tgz";
+        sha512 = "1/mUJYSWG4vmUfMlT65lvtQzfDBMCHxhdIU3TUG2umvdIEsSHJM1gZwAPfoJZppoZ6DX/ApuxXY/67OXfgatQw==";
       };
     };
-    "n8n-nodes-base-0.168.0" = {
+    "n8n-nodes-base-0.169.0" = {
       name = "n8n-nodes-base";
       packageName = "n8n-nodes-base";
-      version = "0.168.0";
+      version = "0.169.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.168.0.tgz";
-        sha512 = "TyIL5Gwn+qvfi+1nNkQTPfrJYMqjx2P2OCiDWAMfzahauJyJpfJMYpIEKF3UxoKXCfWpBYPmHVoov6GadEOR1w==";
+        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.169.0.tgz";
+        sha512 = "O8vwS7ROybSRLqXwG58xdLNrbA8hAvX4jSodXsztpGChbDWcrYJUXBewN9+Lfh1UAegz12G1devygc1W92qveQ==";
       };
     };
-    "n8n-workflow-0.93.0" = {
+    "n8n-workflow-0.94.0" = {
       name = "n8n-workflow";
       packageName = "n8n-workflow";
-      version = "0.93.0";
+      version = "0.94.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.93.0.tgz";
-        sha512 = "IqZrnTKdIZD7aeL9/FiwoI7w1WBgeBmqZVXRF+OGtIHooK/lDkHpy17hoXXqAyeATiVf2licgl8F/zMvSsnuJA==";
+        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.94.0.tgz";
+        sha512 = "cVs5XPlbNDcCrGU5IoYzjO7IOsYNsNtEt5vVxkL9q5EgEmHhPYakValJN4GyLQ7Otdpsf47lJg/0EG3TvOssGQ==";
       };
     };
     "named-placeholders-1.1.2" = {
@@ -4567,13 +4594,13 @@ let
         sha512 = "wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==";
       };
     };
-    "nanoid-3.3.1" = {
+    "nanoid-3.3.2" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.3.1";
+      version = "3.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz";
-        sha512 = "n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz";
+        sha512 = "CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==";
       };
     };
     "native-duplexpair-1.0.0" = {
@@ -4864,6 +4891,15 @@ let
         sha1 = "20f1336481b083cd75337992a16971aa2d906947";
       };
     };
+    "on-finished-2.4.1" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz";
+        sha512 = "oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==";
+      };
+    };
     "on-headers-1.0.2" = {
       name = "on-headers";
       packageName = "on-headers";
@@ -5431,15 +5467,6 @@ let
         sha512 = "zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==";
       };
     };
-    "printj-1.2.3" = {
-      name = "printj";
-      packageName = "printj";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz";
-        sha512 = "sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==";
-      };
-    };
     "printj-1.3.1" = {
       name = "printj";
       packageName = "printj";
@@ -5737,6 +5764,15 @@ let
         sha512 = "UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==";
       };
     };
+    "raw-body-2.5.1" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz";
+        sha512 = "qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==";
+      };
+    };
     "rc-1.2.8" = {
       name = "rc";
       packageName = "rc";
@@ -6286,13 +6322,13 @@ let
         sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==";
       };
     };
-    "simple-git-2.48.0" = {
+    "simple-git-3.5.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "2.48.0";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.48.0.tgz";
-        sha512 = "z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.5.0.tgz";
+        sha512 = "fZsaq5nzdxQRhMNs6ESGLpMUHoL5GRP+boWPhq9pMYMKwOGZV2jHOxi8AbFFA2Y/6u4kR99HoULizSbpzaODkA==";
       };
     };
     "simple-lru-cache-0.0.2" = {
@@ -6430,13 +6466,13 @@ let
         sha512 = "+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==";
       };
     };
-    "ssh2-1.8.0" = {
+    "ssh2-1.9.0" = {
       name = "ssh2";
       packageName = "ssh2";
-      version = "1.8.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssh2/-/ssh2-1.8.0.tgz";
-        sha512 = "NVIRkIwJvWl+mcRozp+EBzHMVCcbDKBea64ToPdZEk43yAVGwmfqYZRPFRnnvGjsKC34wYCmiupTcKgCVNVNNg==";
+        url = "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz";
+        sha512 = "rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==";
       };
     };
     "ssh2-sftp-client-7.2.3" = {
@@ -6484,6 +6520,15 @@ let
         sha1 = "161c7dac177659fd9811f43771fa99381478628c";
       };
     };
+    "statuses-2.0.1" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz";
+        sha512 = "RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==";
+      };
+    };
     "stealthy-require-1.1.1" = {
       name = "stealthy-require";
       packageName = "stealthy-require";
@@ -7258,13 +7303,13 @@ let
         sha512 = "KEW0gkeNOLJjtXN4jqJhTazez5jtrwimHkE5Few/VxblH4F9EcvJiEsahrV5kg5uKd5U8du4ORKS6QjGE0piYA==";
       };
     };
-    "vue-i18n-8.27.0" = {
+    "vue-i18n-8.27.1" = {
       name = "vue-i18n";
       packageName = "vue-i18n";
-      version = "8.27.0";
+      version = "8.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.27.0.tgz";
-        sha512 = "SX35iJHL5PJ4Gfh0Mo/q0shyHiI2V6Zkh51c+k8E9O1RKv5BQyYrCxRzpvPrsIOJEnLaeiovet3dsUB0e/kDzw==";
+        url = "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.27.1.tgz";
+        sha512 = "lWrGm4F25qReJ7XxSnFVb2h3PfW54ldnM4C+YLBGGJ75+Myt/kj4hHSTKqsyDLamvNYpvINMicSOdW+7yuqgIQ==";
       };
     };
     "vue2-boring-avatars-0.3.4" = {
@@ -7579,10 +7624,10 @@ in
   n8n = nodeEnv.buildNodePackage {
     name = "n8n";
     packageName = "n8n";
-    version = "0.170.0";
+    version = "0.171.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/n8n/-/n8n-0.170.0.tgz";
-      sha512 = "aY4A9+P7K6iinxFyDZl9Jdin283csAbiMStjfxLX5IfO75/aNbjXhSmpjclV9PCUuuTonvoMiVMTvpbCaeImqg==";
+      url = "https://registry.npmjs.org/n8n/-/n8n-0.171.0.tgz";
+      sha512 = "GenMxluqj0PfttyWndoMUsmyJ8r5pilWoY7xT+TVjCl5znhtIUT+3GTeDZ8K3vYqJILHXVxspyF5yLz2Ytnjow==";
     };
     dependencies = [
       (sources."@azure/abort-controller-1.0.5" // {
@@ -7691,7 +7736,7 @@ in
       sources."@types/ftp-0.3.33"
       sources."@types/json-diff-0.5.2"
       sources."@types/jsonwebtoken-8.5.8"
-      sources."@types/lodash-4.14.180"
+      sources."@types/lodash-4.14.181"
       sources."@types/lossless-json-1.0.1"
       sources."@types/mime-1.3.2"
       sources."@types/node-17.0.23"
@@ -7762,8 +7807,8 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."avsc-5.7.3"
-      (sources."aws-sdk-2.1101.0" // {
+      sources."avsc-5.7.4"
+      (sources."aws-sdk-2.1106.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."events-1.1.1"
@@ -7817,7 +7862,7 @@ in
       })
       sources."bluebird-3.7.2"
       sources."bn.js-4.12.0"
-      (sources."body-parser-1.19.2" // {
+      (sources."body-parser-1.20.0" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -7853,11 +7898,7 @@ in
       sources."caseless-0.12.0"
       (sources."cfb-1.2.1" // {
         dependencies = [
-          (sources."adler-32-1.3.0" // {
-            dependencies = [
-              sources."printj-1.2.3"
-            ];
-          })
+          sources."adler-32-1.3.1"
           sources."printj-1.3.1"
         ];
       })
@@ -7870,7 +7911,7 @@ in
       sources."chardet-0.7.0"
       sources."charenc-0.0.2"
       sources."cheerio-1.0.0-rc.6"
-      sources."cheerio-select-1.5.0"
+      sources."cheerio-select-1.6.0"
       sources."chokidar-3.5.2"
       sources."chownr-1.1.4"
       sources."clamp-1.0.1"
@@ -7956,8 +7997,8 @@ in
       sources."crypt-0.0.2"
       sources."crypto-js-4.1.1"
       sources."csrf-3.1.0"
-      sources."css-select-4.2.1"
-      sources."css-what-5.1.0"
+      sources."css-select-4.3.0"
+      sources."css-what-6.1.0"
       sources."cssfilter-0.0.10"
       sources."dashdash-1.14.1"
       sources."date-utils-1.2.21"
@@ -7969,8 +8010,8 @@ in
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."denque-1.5.1"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
+      sources."depd-2.0.0"
+      sources."destroy-1.2.0"
       sources."detect-libc-1.0.3"
       sources."diagnostics-1.1.1"
       sources."difflib-0.2.4"
@@ -8006,7 +8047,7 @@ in
       sources."entities-2.2.0"
       sources."env-variable-0.0.6"
       sources."err-code-2.0.3"
-      sources."es-abstract-1.19.1"
+      sources."es-abstract-1.19.2"
       sources."es-to-primitive-1.2.1"
       sources."es5-ext-0.8.2"
       sources."escalade-3.1.1"
@@ -8022,9 +8063,16 @@ in
       sources."expand-tilde-2.0.2"
       (sources."express-4.17.3" // {
         dependencies = [
+          sources."body-parser-1.19.2"
           sources."cookie-0.4.2"
           sources."debug-2.6.9"
+          sources."depd-1.1.2"
+          sources."http-errors-1.8.1"
           sources."ms-2.0.0"
+          sources."on-finished-2.3.0"
+          sources."qs-6.9.7"
+          sources."raw-body-2.4.3"
+          sources."statuses-1.5.0"
         ];
       })
       sources."extend-3.0.2"
@@ -8048,6 +8096,8 @@ in
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       sources."flatted-3.2.5"
@@ -8126,7 +8176,7 @@ in
       sources."homedir-polyfill-1.0.3"
       sources."html-to-text-8.0.0"
       sources."htmlparser2-6.1.0"
-      sources."http-errors-1.8.1"
+      sources."http-errors-2.0.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
@@ -8162,13 +8212,13 @@ in
       sources."is-negated-glob-1.0.0"
       sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.6"
+      sources."is-number-object-1.0.7"
       sources."is-promise-1.0.1"
       sources."is-property-1.0.2"
       sources."is-regex-1.1.4"
       sources."is-relative-1.0.0"
       sources."is-retry-allowed-2.2.0"
-      sources."is-shared-array-buffer-1.0.1"
+      sources."is-shared-array-buffer-1.0.2"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -8327,19 +8377,15 @@ in
         ];
       })
       sources."mz-2.7.0"
-      (sources."n8n-core-0.111.0" // {
-        dependencies = [
-          sources."qs-6.10.3"
-        ];
-      })
+      sources."n8n-core-0.112.0"
       sources."n8n-design-system-0.16.0"
-      sources."n8n-editor-ui-0.137.0"
-      (sources."n8n-nodes-base-0.168.0" // {
+      sources."n8n-editor-ui-0.138.0"
+      (sources."n8n-nodes-base-0.169.0" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
         ];
       })
-      sources."n8n-workflow-0.93.0"
+      sources."n8n-workflow-0.94.0"
       (sources."named-placeholders-1.1.2" // {
         dependencies = [
           sources."lru-cache-4.1.5"
@@ -8347,7 +8393,7 @@ in
         ];
       })
       sources."nanoclone-0.2.1"
-      sources."nanoid-3.3.1"
+      sources."nanoid-3.3.2"
       sources."native-duplexpair-1.0.0"
       (sources."nearley-2.20.1" // {
         dependencies = [
@@ -8402,7 +8448,7 @@ in
           sources."async-1.5.2"
         ];
       })
-      sources."on-finished-2.3.0"
+      sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
@@ -8520,7 +8566,7 @@ in
       })
       sources."punycode-2.1.1"
       sources."python-struct-1.1.3"
-      sources."qs-6.9.7"
+      sources."qs-6.10.3"
       sources."querystring-0.2.0"
       sources."querystringify-2.2.0"
       sources."queue-microtask-1.2.3"
@@ -8530,7 +8576,7 @@ in
       sources."random-bytes-1.0.0"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.3"
+      sources."raw-body-2.5.1"
       sources."rc-1.2.8"
       sources."readable-stream-1.1.14"
       sources."readable-web-to-node-stream-2.0.0"
@@ -8593,7 +8639,12 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."depd-1.1.2"
+          sources."destroy-1.0.4"
+          sources."http-errors-1.8.1"
           sources."ms-2.1.3"
+          sources."on-finished-2.3.0"
+          sources."statuses-1.5.0"
         ];
       })
       (sources."sentence-case-3.0.4" // {
@@ -8612,7 +8663,7 @@ in
       sources."shell-escape-0.2.0"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
-      sources."simple-git-2.48.0"
+      sources."simple-git-3.5.0"
       sources."simple-lru-cache-0.0.2"
       sources."simple-swizzle-0.2.2"
       sources."slash-3.0.0"
@@ -8643,12 +8694,12 @@ in
       sources."sqlstring-2.3.3"
       sources."sse-channel-3.1.1"
       sources."ssf-0.11.2"
-      sources."ssh2-1.8.0"
+      sources."ssh2-1.9.0"
       sources."ssh2-sftp-client-7.2.3"
       sources."sshpk-1.17.0"
       sources."stack-trace-0.0.10"
       sources."standard-as-callback-2.1.0"
-      sources."statuses-1.5.0"
+      sources."statuses-2.0.1"
       sources."stealthy-require-1.1.1"
       sources."stream-shift-1.0.1"
       sources."string-similarity-4.0.4"
@@ -8672,7 +8723,6 @@ in
         dependencies = [
           sources."@types/node-12.20.47"
           sources."bl-3.0.1"
-          sources."depd-2.0.0"
           sources."iconv-lite-0.5.2"
           sources."readable-stream-3.6.0"
           sources."string_decoder-1.3.0"
@@ -8773,7 +8823,7 @@ in
       sources."vue-2.6.14"
       sources."vue-color-2.8.1"
       sources."vue-fragment-1.5.2"
-      sources."vue-i18n-8.27.0"
+      sources."vue-i18n-8.27.1"
       sources."vue2-boring-avatars-0.3.4"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index 4b6ae464e7d93..257d6c526893c 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "2.90";
+  version = "2.91";
 
   src = fetchFromGitHub {
     owner = "chrislusf";
     repo = "seaweedfs";
     rev = version;
-    sha256 = "sha256-PZe/yUJGcj3/nIYaf7eAbiJIA2YASJ8nlMLIWWKJrbo=";
+    sha256 = "sha256-lpr+Z4INDUrMUArR9yU/US/d7rhQ3AcTS3bh/suOe4M=";
   };
 
-  vendorSha256 = "sha256-E6bMpWzXb5dMPXkrVSJJWXJYvkmI3cNRseMgrQNpCl4=";
+  vendorSha256 = "sha256-T8JUc8UqdgBADWfQL1oY0lrwOOKTmbBiI7rtNiDvlGo=";
 
   subPackages = [ "weed" ];
 
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
index d698601cb190e..7384f7c350a5a 100644
--- a/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    sha256 = "A1634b3uxlILMpx/9jpCIApqAqofvD4ZPasVKL29Gtc=";
+    sha256 = "E1TX3GBVKn0tXloNhyiXOtDwSlO7mwXJ6zaOSHKZEFc=";
   };
 
   modRoot = "./agent";
 
-  vendorSha256 = "sha256-LxJtLQr8djoRGznT5hL2agTgtZY6pFS8Zo0BwHDmugc=";
+  vendorSha256 = "sha256-sPb49tRUHhwow7+IKiN33sgWYAa3lTpOD1vh8e5Wy68=";
 
   ldflags = [ "-s" "-w" "-X main.AgentVersion=v${version}" ];
 
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 468a06af2091e..0947686144e54 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
+{ lib, stdenv, buildPackages, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
 , gnutls, libgcrypt, libgpg-error, geoip, openssl, lua5, python3, libcap, glib
 , libssh, nghttp2, zlib, cmake, makeWrapper, wrapGAppsHook
 , withQt ? true, qt5 ? null
@@ -29,22 +29,30 @@ in stdenv.mkDerivation {
     "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
     # Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
     "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DLEMON_C_COMPILER=cc"
+  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "-DHAVE_C99_VSNPRINTF_EXITCODE=0"
+    "-DHAVE_C99_VSNPRINTF_EXITCODE__TRYRUN_OUTPUT="
   ];
 
   # Avoid referencing -dev paths because of debug assertions.
   NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ];
 
-  nativeBuildInputs = [ asciidoctor bison cmake flex makeWrapper pkg-config ]
+  nativeBuildInputs = [ asciidoctor bison cmake flex makeWrapper pkg-config python3 perl ]
     ++ optionals withQt [ qt5.wrapQtAppsHook wrapGAppsHook ];
 
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
   buildInputs = [
-    gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt
-    libgpg-error gnutls geoip c-ares python3 glib zlib
+    gettext pcre libpcap lua5 libssh nghttp2 openssl libgcrypt
+    libgpg-error gnutls geoip c-ares glib zlib
   ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
     ++ optionals stdenv.isLinux  [ libcap libnl ]
     ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
     ++ optionals (withQt && stdenv.isDarwin) (with qt5; [ qtmacextras ]);
 
+  strictDeps = true;
+
   patches = [ ./wireshark-lookup-dumpcap-in-path.patch ];
 
   postPatch = ''
diff --git a/pkgs/applications/office/foliate/default.nix b/pkgs/applications/office/foliate/default.nix
index 7eff0ac909766..a2d0d73f79034 100644
--- a/pkgs/applications/office/foliate/default.nix
+++ b/pkgs/applications/office/foliate/default.nix
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    echo "fixing wrapper"
     sed -i "1 a imports.package._findEffectiveEntryPointName = () => 'com.github.johnfactotum.Foliate';" $out/bin/.com.github.johnfactotum.Foliate-wrapped
     ln -s $out/bin/com.github.johnfactotum.Foliate $out/bin/foliate
   '';
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index a9fce9ff8edb0..e3390e54ee397 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "morgen";
-  version = "2.5.0";
+  version = "2.5.2";
 
   src = fetchurl {
     url = "https://download.todesktop.com/210203cqcj00tw1/morgen-${version}.deb";
-    sha256 = "sha256-6hBhfJ18ROCfmqoxrJZ5TiYCFb1xZKsJeobXFy5yfQM=";
+    sha256 = "sha256-KU58UjhFDEJGzHEGVbrii8a9cZwr7ulkQgK1Fea9smk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/vnote/default.nix b/pkgs/applications/office/vnote/default.nix
index f548cf01fcd50..53fd1f07b6e65 100644
--- a/pkgs/applications/office/vnote/default.nix
+++ b/pkgs/applications/office/vnote/default.nix
@@ -8,14 +8,14 @@
 
 mkDerivation rec {
   pname = "vnote";
-  version = "3.12.888";
+  version = "3.13.0";
 
   src = fetchFromGitHub {
     owner = "vnotex";
     repo = pname;
     fetchSubmodules = true;
     rev = "v${version}";
-    sha256 = "sha256-l9oFixyEM0aAfvrC5rrQMzv7n8rUHECRzhuIQJ/szjc=";
+    sha256 = "sha256-osJvoi7oyZupJ/bnqpm0TdZ5cMYEeOw9DHOIAzONKLg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/splat/default.nix b/pkgs/applications/radio/splat/default.nix
new file mode 100644
index 0000000000000..2e929ff04ef2a
--- /dev/null
+++ b/pkgs/applications/radio/splat/default.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, fetchurl, groff, ncurses, bzip2, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "splat";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "https://www.qsl.net/kd2bd/${pname}-${version}.tar.bz2";
+    hash = "sha256-ObCzFOLpJ73wDR7aS5hl79EouoUDBfmHrsBJxP1Yopw=";
+  };
+
+  nativeBuildInputs =
+    # configure script needs `clear`
+    [ groff ncurses ];
+
+  buildInputs = [ bzip2 zlib ];
+
+  postPatch = "patchShebangs build utils/build";
+
+  configurePhase =
+    # configure for maximum resolution
+    ''
+      runHook preConfigure
+      cat > std-params.h << EOF
+      #define HD_MODE 1
+      #define MAXPAGES 64
+      EOF
+      runHook postConfigure
+    '';
+
+  buildPhase = ''
+    runHook preBuild
+    ./build all
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/bin splat
+    find utils -type f -executable -exec install -Dt $out/bin {} \;
+    install -Dt $out/share/man/man1 docs/english/man/*.1
+    install -Dt $out/share/man/es/man1 docs/spanish/man/*.1
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description =
+      "SPLAT! is an RF Signal Propagation, Loss, And Terrain analysis tool for the electromagnetic spectrum between 20 MHz and 20 GHz";
+    license = licenses.gpl2Only;
+    homepage = "https://www.qsl.net/kd2bd/splat.html";
+    maintainers = with maintainers; [ ehmry ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/applications/science/logic/cvc5/default.nix b/pkgs/applications/science/logic/cvc5/default.nix
new file mode 100644
index 0000000000000..c1bf56b45d5b3
--- /dev/null
+++ b/pkgs/applications/science/logic/cvc5/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, cadical, symfpu, gmp, git, python3, gtest, libantlr3c, antlr3_4, boost, jdk }:
+
+stdenv.mkDerivation rec {
+  pname = "cvc5";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner  = "cvc5";
+    repo   = "cvc5";
+    rev    = "cvc5-${version}";
+    sha256 = "03sxqwmlajffmv7lncqs1bx8gyihkpnikk87q9wjrd4776n13ign";
+  };
+
+  nativeBuildInputs = [ pkg-config cmake ];
+  buildInputs = [ cadical.dev symfpu gmp git python3 python3.pkgs.toml gtest libantlr3c antlr3_4 boost jdk ];
+
+  preConfigure = ''
+    patchShebangs ./src/
+  '';
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Production"
+    "-DBUILD_SHARED_LIBS=1"
+    "-DANTLR3_JAR=${antlr3_4}/lib/antlr/antlr-3.4-complete.jar"
+  ];
+
+  meta = with lib; {
+    description = "A high-performance theorem prover and SMT solver";
+    homepage    = "https://cvc5.github.io";
+    license     = licenses.gpl3Only;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ shadaj ];
+  };
+}
diff --git a/pkgs/applications/science/logic/symfpu/default.nix b/pkgs/applications/science/logic/symfpu/default.nix
new file mode 100644
index 0000000000000..af61b7c617c78
--- /dev/null
+++ b/pkgs/applications/science/logic/symfpu/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "symfpu";
+  version = "unstable-2019-05-17";
+
+  src = fetchFromGitHub {
+    owner  = "martin-cs";
+    repo   = "symfpu";
+    rev    = "8fbe139bf0071cbe0758d2f6690a546c69ff0053";
+    sha256 = "1jf5lkn67q136ppfacw3lsry369v7mdr1rhidzjpbz18jfy9zl9q";
+  };
+
+  installPhase = ''
+    mkdir -p $out/symfpu
+    cp -r * $out/symfpu/
+  '';
+
+  meta = with lib; {
+    description = "A (concrete or symbolic) implementation of IEEE-754 / SMT-LIB floating-point";
+    homepage    = "https://github.com/martin-cs/symfpu";
+    license     = licenses.gpl3Only;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ shadaj ];
+  };
+}
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index a820539eb9a31..985df6a8f5f04 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -18,78 +18,78 @@ assert ocamlBindings -> ocaml != null && findlib != null && zarith != null;
 
 with lib;
 
-stdenv.mkDerivation rec {
-  pname = "z3";
-  version = "4.8.14";
+let common = { version, sha256, patches ? [ ] }:
+  stdenv.mkDerivation rec {
+    pname = "z3";
+    inherit version sha256 patches;
+    src = fetchFromGitHub {
+      owner = "Z3Prover";
+      repo = pname;
+      rev = "z3-${version}";
+      sha256 = sha256;
+    };
 
-  src = fetchFromGitHub {
-    owner = "Z3Prover";
-    repo = pname;
-    rev = "z3-${version}";
-    sha256 = "jPSTVSndp/T7n+VxZ/g9Rjco00Up+9xeDIVkeLl1MTw=";
-  };
-
-  nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-  buildInputs = [ python ]
-    ++ optional javaBindings jdk
-    ++ optionals ocamlBindings [ ocaml findlib zarith ]
-  ;
-  propagatedBuildInputs = [ python.pkgs.setuptools ];
-  enableParallelBuilding = true;
-
-  postPatch = optionalString ocamlBindings ''
-    export OCAMLFIND_DESTDIR=$ocaml/lib/ocaml/${ocaml.version}/site-lib
-    mkdir -p $OCAMLFIND_DESTDIR/stublibs
-  '';
-
-  configurePhase = concatStringsSep " "
-    (
-      [ "${python.interpreter} scripts/mk_make.py --prefix=$out" ]
-        ++ optional javaBindings "--java"
-        ++ optional ocamlBindings "--ml"
-        ++ optional pythonBindings "--python --pypkgdir=$out/${python.sitePackages}"
-    ) + "\n" + "cd build";
-
-  postInstall = ''
-    mkdir -p $dev $lib
-    mv $out/lib $lib/lib
-    mv $out/include $dev/include
-  '' + optionalString pythonBindings ''
-    mkdir -p $python/lib
-    mv $lib/lib/python* $python/lib/
-    ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
-  '' + optionalString javaBindings ''
-    mkdir -p $java/share/java
-    mv com.microsoft.z3.jar $java/share/java
-    moveToOutput "lib/libz3java.${stdenv.hostPlatform.extensions.sharedLibrary}" "$java"
-  '';
+    nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+    buildInputs = [ python ]
+      ++ optional javaBindings jdk
+      ++ optionals ocamlBindings [ ocaml findlib zarith ]
+    ;
+    propagatedBuildInputs = [ python.pkgs.setuptools ];
+    enableParallelBuilding = true;
 
-  outputs = [ "out" "lib" "dev" "python" ]
-    ++ optional javaBindings "java"
-    ++ optional ocamlBindings "ocaml";
+    postPatch = optionalString ocamlBindings ''
+      export OCAMLFIND_DESTDIR=$ocaml/lib/ocaml/${ocaml.version}/site-lib
+      mkdir -p $OCAMLFIND_DESTDIR/stublibs
+    '';
 
-   passthru = {
-    updateScript = writeScript "update-z3" ''
-      #!/usr/bin/env nix-shell
-      #!nix-shell -i bash -p common-updater-scripts curl jq
+    configurePhase = concatStringsSep " "
+      (
+        [ "${python.interpreter} scripts/mk_make.py --prefix=$out" ]
+          ++ optional javaBindings "--java"
+          ++ optional ocamlBindings "--ml"
+          ++ optional pythonBindings "--python --pypkgdir=$out/${python.sitePackages}"
+      ) + "\n" + "cd build";
 
-      set -eu -o pipefail
+    doCheck = true;
+    checkPhase = ''
+      make test
+      ./test-z3 -a
+    '';
 
-      # Expect tags in format
-      #    [{name: "Nightly", ..., {name: "z3-vv.vv.vv", ...].
-      # Below we extract frst "z3-vv.vv" and drop "z3-" prefix.
-      newVersion="$(curl -s https://api.github.com/repos/Z3Prover/z3/releases |
-          jq 'first(.[].name|select(startswith("z3-"))|ltrimstr("z3-"))' --raw-output
-      )"
-      update-source-version ${pname} "$newVersion"
+    postInstall = ''
+      mkdir -p $dev $lib
+      mv $out/lib $lib/lib
+      mv $out/include $dev/include
+    '' + optionalString pythonBindings ''
+      mkdir -p $python/lib
+      mv $lib/lib/python* $python/lib/
+      ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
+    '' + optionalString javaBindings ''
+      mkdir -p $java/share/java
+      mv com.microsoft.z3.jar $java/share/java
+      moveToOutput "lib/libz3java.${stdenv.hostPlatform.extensions.sharedLibrary}" "$java"
     '';
-   };
 
-  meta = with lib; {
-    description = "A high-performance theorem prover and SMT solver";
-    homepage = "https://github.com/Z3Prover/z3";
-    license = licenses.mit;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ thoughtpolice ttuegel ];
+    outputs = [ "out" "lib" "dev" "python" ]
+      ++ optional javaBindings "java"
+      ++ optional ocamlBindings "ocaml";
+
+    meta = with lib; {
+      description = "A high-performance theorem prover and SMT solver";
+      homepage = "https://github.com/Z3Prover/z3";
+      license = licenses.mit;
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ thoughtpolice ttuegel ];
+    };
+  };
+in
+{
+  z3_4_8 = common {
+    version = "4.8.15";
+    sha256 = "0xkwqz0y5d1lfb6kfqy8wn8n2dqalzf4c8ghmjsajc1bpdl70yc5";
+  };
+  z3_4_7 = common {
+    version = "4.7.1";
+    sha256 = "1s850r6qifwl83zzgvrb5l0jigvmymzpv18ph71hg2bcpk7kjw3d";
   };
 }
diff --git a/pkgs/applications/science/math/caffe/default.nix b/pkgs/applications/science/math/caffe/default.nix
index 74b89ed98c550..d6c95633dd520 100644
--- a/pkgs/applications/science/math/caffe/default.nix
+++ b/pkgs/applications/science/math/caffe/default.nix
@@ -13,13 +13,17 @@
 , Accelerate, CoreGraphics, CoreVideo
 , lmdbSupport ? true, lmdb
 , leveldbSupport ? true, leveldb, snappy
-, cudaSupport ? config.cudaSupport or false, cudatoolkit
-, cudnnSupport ? cudaSupport, cudnn ? null
-, ncclSupport ? false, nccl ? null
+, cudaSupport ? config.cudaSupport or false, cudaPackages ? {}
+, cudnnSupport ? cudaSupport
+, ncclSupport ? false
 , pythonSupport ? false, python ? null, numpy ? null
 , substituteAll
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn nccl;
+in
+
 assert leveldbSupport -> (leveldb != null && snappy != null);
 assert cudnnSupport -> cudaSupport;
 assert ncclSupport -> cudaSupport;
@@ -138,6 +142,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://caffe.berkeleyvision.org/";
     maintainers = with maintainers; [ ];
+    broken = pythonSupport && (python.isPy310);
     license = licenses.bsd2;
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/pkgs/applications/science/math/cntk/default.nix b/pkgs/applications/science/math/cntk/default.nix
index eb14982575a27..d39c04e8feecb 100644
--- a/pkgs/applications/science/math/cntk/default.nix
+++ b/pkgs/applications/science/math/cntk/default.nix
@@ -2,10 +2,14 @@
 , fetchpatch
 , openblas, blas, lapack, opencv3, libzip, boost, protobuf, mpi
 , onebitSGDSupport ? false
-, cudaSupport ? false, addOpenGLRunpath, cudatoolkit, nvidia_x11
-, cudnnSupport ? cudaSupport, cudnn
+, cudaSupport ? false, cudaPackages ? {}, addOpenGLRunpath, cudatoolkit, nvidia_x11
+, cudnnSupport ? cudaSupport
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn;
+in
+
 assert cudnnSupport -> cudaSupport;
 assert blas.implementation == "openblas" && lapack.implementation == "openblas";
 
diff --git a/pkgs/applications/science/math/mxnet/default.nix b/pkgs/applications/science/math/mxnet/default.nix
index c9ffb8ed5cb3a..8353226cefed8 100644
--- a/pkgs/applications/science/math/mxnet/default.nix
+++ b/pkgs/applications/science/math/mxnet/default.nix
@@ -1,9 +1,14 @@
 { config, stdenv, lib, fetchurl, fetchpatch, bash, cmake
 , opencv3, gtest, blas, gomp, llvmPackages, perl
-, cudaSupport ? config.cudaSupport or false, cudatoolkit, nvidia_x11
-, cudnnSupport ? cudaSupport, cudnn
+, cudaSupport ? config.cudaSupport or false, cudaPackages ? {}, nvidia_x11
+, cudnnSupport ? cudaSupport
+, cudaCapabilities ? [ "3.7" "5.0" "6.0" "7.0" "7.5" "8.0" "8.6" ]
 }:
 
+let
+  inherit (cudaPackages) cudatoolkit cudnn;
+in
+
 assert cudnnSupport -> cudaSupport;
 
 stdenv.mkDerivation rec {
@@ -44,6 +49,7 @@ stdenv.mkDerivation rec {
       "-DUSE_OLDCMAKECUDA=ON"  # see https://github.com/apache/incubator-mxnet/issues/10743
       "-DCUDA_ARCH_NAME=All"
       "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
+      "-DMXNET_CUDA_ARCH=${lib.concatStringsSep ";" cudaCapabilities}"
     ] else [ "-DUSE_CUDA=OFF" ])
     ++ lib.optional (!cudnnSupport) "-DUSE_CUDNN=OFF";
 
@@ -60,6 +66,12 @@ stdenv.mkDerivation rec {
     rm "$out"/lib/*.a
   '';
 
+  # used to mark cudaSupport in python310Packages.mxnet as broken;
+  # other attributes exposed for consistency
+  passthru = {
+    inherit cudaSupport cudnnSupport cudatoolkit cudnn;
+  };
+
   meta = with lib; {
     description = "Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler";
     homepage = "https://mxnet.incubator.apache.org/";
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index e680c0c3b22d3..cdff1e8477abd 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -151,6 +151,7 @@ writeTextFile rec {
 
     # needed for cython
     export CC='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc'
+    export CXX='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++'
     # cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar
     export LDFLAGS='${
       lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [
@@ -178,6 +179,7 @@ writeTextFile rec {
         mpfr.dev
       ])
     }'
+    export CXXFLAGS=$CFLAGS
 
     export SAGE_LIB='${sagelib}/${python3.sitePackages}'
 
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 22e3a288b7d78..04c2355d26aa4 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -121,10 +121,10 @@ stdenv.mkDerivation rec {
 
     # https://trac.sagemath.org/ticket/33170
     (fetchSageDiff {
-      base = "9.5.rc1";
-      name = "ipython-8-update.patch";
-      rev = "a90a314616d86d6be9c0d5233f0d36c4bfe06231";
-      sha256 = "sha256-pXdtokTo84xNCnV+HyAKEzG562z8FjzJ7hczOja0dRw=";
+      base = "9.6.beta5";
+      name = "ipython-8.1-update.patch";
+      rev = "4d2b53f1541375861310af3a7f7109c1c2ed475d";
+      sha256 = "sha256-ELda/VBzsQH7NdFas69fQ35QPUoJCeLx/gxT1j7qGR8=";
     })
 
     # https://trac.sagemath.org/ticket/32968
@@ -156,6 +156,22 @@ stdenv.mkDerivation rec {
 
     # adapted from https://trac.sagemath.org/ticket/23712#comment:22
     ./patches/tachyon-renamed-focallength.patch
+
+    # https://trac.sagemath.org/ticket/33336
+    (fetchSageDiff {
+      base = "9.6.beta2";
+      name = "scipy-1.8-update.patch";
+      rev = "9c8235e44ffb509efa8a3ca6cdb55154e2b5066d";
+      sha256 = "sha256-bfc4ljNOxVnhlmxIuNbjbKl4vJXYq2tlF3Z8bbC8PWw=";
+    })
+
+    # https://trac.sagemath.org/ticket/33495
+    (fetchSageDiff {
+      base = "9.6.beta5";
+      name = "networkx-2.7-update.patch";
+      rev = "8452003846a7303100847d8d0ed642fc642c11d6";
+      sha256 = "sha256-A/XMouPlc2sjFp30L+56fBGJXydS2EtzfPOV98FCDqI=";
+    })
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 8d685c8da60f9..92eae35688f71 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -181,11 +181,16 @@ buildPythonPackage rec {
     # some files, like Pipfile, pyproject.toml, requirements.txt and setup.cfg
     # are generated by the bootstrap script using m4. these can fetch data from
     # build/pkgs, either directly or via sage-get-system-packages.
-    sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
-    sed -i 's/, <3.4//' ../rpy2/install-requires.txt
-    sed -i 's/, <4.3//' ../sphinx/install-requires.txt
     sed -i '/sage_conf/d' src/setup.cfg.m4
     sed -i '/sage_conf/d' src/requirements.txt.m4
+
+    # version lower bounds are useful, but upper bounds are a hassle because
+    # Sage tests already catch any relevant API breakage.
+    # according to the discussion at https://trac.sagemath.org/ticket/33520,
+    # upper bounds will be less noisy starting from Sage 9.6.
+    sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
+    sed -i 's/, <[^, ]*//' ../*/install-requires.txt
+
     for infile in src/*.m4; do
         if [ -f "$infile" ]; then
             outfile="src/$(basename $infile .m4)"
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 76d2c782b4d4a..f14fb489a9964 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "21.11.0";
+  version = "22.03.0";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "sha256-LwuqldMGsmFR8xrNg5vsrogmdi5ysqEQGWITM460IZk=";
+    sha256 = "sha256-ynLx1HPfDjLbyFziWFbjpCeUBaA3hAFRFm5/1GeFKRE=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
index 543e3a7501a72..87d11dd9c1e98 100644
--- a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ghorg";
-  version = "1.7.11";
+  version = "1.7.12";
 
   src = fetchFromGitHub {
     owner = "gabrie30";
     repo = "ghorg";
     rev = "v${version}";
-    sha256 = "sha256-/JecaTRmqTB1I0tqBRidlqWOvNE6U5zep5/lFi8VTCc=";
+    sha256 = "sha256-y5o4yY5M9eDKN9LtbrPR29EafN3X7J51ARCEpFtLxCo=";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
index 19f794e6c916f..13ba738c46fb6 100644
--- a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-branchless";
-  version = "0.3.10";
+  version = "0.3.12";
 
   src = fetchFromGitHub {
     owner = "arxanas";
     repo = "git-branchless";
     rev = "v${version}";
-    sha256 = "sha256-TLqAU1/olSS59Zeb+2m9Jq19EYTO1TnbKPYciHPKO2A=";
+    sha256 = "sha256-1bUHltONLfJumkxPnzGJFMMyS02LVqjpDL+KgiewyoQ=";
   };
 
-  cargoSha256 = "sha256-sA4KWGW4bxGUkotTWHUcRqcoaUJsSUCTK8hUkKiRcnY=";
+  cargoSha256 = "sha256-3+ULHqtKAhf4AdoLPK/3IqnfOcskoh6ctlQnY1oTHJ8=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix b/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix
index 1e65834f51938..3396718edbc27 100644
--- a/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/scmpuff/default.nix
@@ -1,17 +1,23 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testVersion, scmpuff }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "scmpuff";
-  version = "0.3.0";
-  goPackagePath = "github.com/mroth/scmpuff";
-
-  goDeps = ./deps.nix;
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "mroth";
     repo = pname;
-    rev = "56dc2041f2c45ab15d41e63058c1c44fff905e81";
-    sha256 = "0zrzzcs0i13pfwcqh8qb0sji54vh37rdr7qasg57y56cqpx16vl3";
+    rev = "v${version}";
+    sha256 = "sha256-+L0W+M8sZdUSCWj9Ftft1gkRRfWMHdxon2xNnotx8Xs=";
+  };
+
+  vendorSha256 = "sha256-7WHVSEz3y1nxWfbxkzkfHhINLC8+snmWknHyUUpNy7c=";
+
+  ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
+
+  passthru.tests.version = testVersion {
+    package = scmpuff;
+    command = "scmpuff version";
   };
 
   meta = with lib; {
@@ -19,6 +25,5 @@ buildGoPackage rec {
     homepage = "https://github.com/mroth/scmpuff";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
-    platforms = concatLists (with platforms; [ linux darwin windows ]);
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix b/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix
deleted file mode 100644
index da9052f9bb7ba..0000000000000
--- a/pkgs/applications/version-management/git-and-tools/scmpuff/deps.nix
+++ /dev/null
@@ -1,273 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/consul-api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/consul-api";
-      rev = "eb2c6b5be1b6";
-      sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/etcd";
-      rev = "v3.3.10";
-      sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-etcd";
-      rev = "v2.0.0";
-      sha256 = "1xb34hzaa1lkbq5vkzy9vcz6gqwj7hp6cdbvyack2bf28dwn33jj";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-semver";
-      rev = "v0.2.0";
-      sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "v1.0.10";
-      sha256 = "1bqkf2bvy1dns9zd24k81mh2p1zxsx2nhq5cj8dz2vgkv1xkh60i";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev = "v1.8.0";
-      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "v1.1.0";
-      sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev = "v1.1.2";
-      sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
-    };
-  }
-  {
-    goPackagePath = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev = "v1.2.0";
-      sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v1.5.2";
-      sha256 = "0jzbfzcywqcrnym4gxlz6nphmm1grg6wsl4f0r9x384rn83wkj7c";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev = "v1.1.2";
-      sha256 = "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev = "v1.3.0";
-      sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "v0.0.4";
-      sha256 = "1k7dq78fjz94lzifsprkmiv93swwzwcbg1vd64v20wvnga8v254b";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev = "v1.0.0";
-      sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.3";
-      sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev = "v1.3.2";
-      sha256 = "1829hvf805kda65l59r17wvid7y0vr390s23zfhf4w7vdb4wp3zh";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.2.2";
-      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
-    };
-  }
-  {
-    goPackagePath = "github.com/ugorji/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ugorji/go";
-      rev = "d75b2dcb6bc8";
-      sha256 = "0di1k35gpq9bp958ywranpbskx2vdwlb38s22vl9rybm3wa5g3ps";
-    };
-  }
-  {
-    goPackagePath = "github.com/xordataexchange/crypt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xordataexchange/crypt";
-      rev = "b2862e3d0a77";
-      sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "505ab145d0a9";
-      sha256 = "1vbsvcvmjz6c00p5vf8ls533p52fx2y3gy6v4k5qrdlzl4wf0i5s";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "a5c9d58dba9a";
-      sha256 = "02qv5i7yps35p7fa81345qz7k8i73gkigj69anwmpw9rhpmzayf9";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.2";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-]
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 4789d654ae681..0f88a18a47876 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -22,10 +22,10 @@ let
 
   common = { version, sha256, extraPatches ? [ ] }: stdenv.mkDerivation (rec {
     inherit version;
-    pname = "subversion";
+    pname = "subversion${lib.optionalString (!bdbSupport && perlBindings && pythonBindings) "-client"}";
 
     src = fetchurl {
-      url = "mirror://apache/subversion/${pname}-${version}.tar.bz2";
+      url = "mirror://apache/subversion/subversion-${version}.tar.bz2";
       inherit sha256;
     };
 
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index ffd5fdaab7c0c..c48962841fd8b 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, resholvePackage
+, resholve
 , fetchFromGitHub
 , git
 , bash
@@ -27,7 +27,7 @@ to support their use in yadm.
 , yadm
 }:
 
-resholvePackage rec {
+resholve.mkDerivation rec {
   pname = "yadm";
   version = "3.1.1";
 
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 22c206dfe0378..472a56855182c 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -46,13 +46,13 @@ let
 in
 mkDerivation rec {
   pname = "obs-studio";
-  version = "27.2.1";
+  version = "27.2.2";
 
   src = fetchFromGitHub {
     owner = "obsproject";
     repo = "obs-studio";
     rev = version;
-    sha256 = "sha256-RHPzSw7wjnAHk90N7g53LyIH3ozO/hyZV5hVZpZe+Ow=";
+    sha256 = "sha256-iZekhsqvtlMeKX2bQ+w/womkOTDLbbP0MmoTzbvpNtU=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/video/webtorrent_desktop/default.nix b/pkgs/applications/video/webtorrent_desktop/default.nix
index b4f8af61fca5e..8f1353fa83e48 100644
--- a/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -1,95 +1,76 @@
+## FIXME: see ../../../servers/code-server/ for a proper yarn packaging
+##  - export ELECTRON_SKIP_BINARY_DOWNLOAD=1
+##  - jq "del(.scripts.preinstall)" node_modules/shellcheck/package.json | sponge node_modules/shellcheck/package.json
 {
-  alsa-lib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
-  gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor,
-  libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
-  libxcb, nspr, nss, lib, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core
+  lib, stdenv, buildFHSUserEnvBubblewrap, runCommand, writeScript, fetchurl, fetchzip
 }:
+let
+  pname = "webtorrent-desktop";
+  version = "0.21.0";
+in
+runCommand "${pname}-${version}" rec {
+  inherit (stdenv) shell;
+  inherit pname version;
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchzip {
+        url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip";
+        sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852";
+      }
+    else
+      throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}";
 
-  let
-    rpath = lib.makeLibraryPath ([
-    alsa-lib
-    atk
-    at-spi2-core
-    at-spi2-atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    freetype
-    gdk-pixbuf
-    glib
-    gtk3
-    pango
-    libuuid
-    libX11
-    libXScrnSaver
-    libXcomposite
-    libXcursor
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXrandr
-    libXrender
-    libXtst
-    libxcb
-    nspr
-    nss
-    stdenv.cc.cc
-    udev
-    ]);
-  in stdenv.mkDerivation rec {
-    pname = "webtorrent-desktop";
-    version = "0.21.0";
+  fhs = buildFHSUserEnvBubblewrap rec {
+    name = "fhsEnterWebTorrent";
+    runScript = "${src}/WebTorrent";
+    ## use the trampoline, if you need to shell into the fhsenv
+    # runScript = writeScript "trampoline" ''
+    #   #!/bin/sh
+    #   exec "$@"
+    # '';
+    targetPkgs = pkgs: with pkgs; with xorg; [
+      alsa-lib atk at-spi2-core at-spi2-atk cairo cups dbus expat
+      fontconfig freetype gdk-pixbuf glib gtk3 pango libuuid libX11
+      libXScrnSaver libXcomposite libXcursor libXdamage libXext
+      libXfixes libXi libXrandr libXrender libXtst libxcb nspr nss
+      stdenv.cc.cc udev
+    ];
+    # extraBwrapArgs = [
+    #   "--ro-bind /run/user/$(id -u)/pulse /run/user/$(id -u)/pulse"
+    # ];
+  };
 
-    src =
-      if stdenv.hostPlatform.system == "x86_64-linux" then
-        fetchzip {
-          url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip";
-          sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852";
-        }
-        else
-          throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}";
-    desktopFile = fetchurl {
-      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop";
-      sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca";
-    };
-    icon256File = fetchurl {
-      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png";
-      sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk";
-    };
-    icon48File = fetchurl {
-      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png";
-      sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4";
-    };
-    nativeBuildInputs = [ dpkg ];
-    installPhase = ''
-      mkdir -p $out/share/{applications,icons/hicolor/{48x48,256x256}/apps}
-      cp -R . $out/libexec
+  desktopFile = fetchurl {
+    url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop";
+    sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca";
+  };
+  icon256File = fetchurl {
+    url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png";
+    sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk";
+  };
+  icon48File = fetchurl {
+    url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png";
+    sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4";
+  };
 
-      # Patch WebTorrent
-      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-               --set-rpath ${rpath}:$out/libexec $out/libexec/WebTorrent
+  meta = with lib; {
+    description = "Streaming torrent app for Mac, Windows, and Linux";
+    homepage = "https://webtorrent.io/desktop";
+    license = licenses.mit;
+    maintainers = [ maintainers.flokli maintainers.bendlas ];
+    platforms = [
+      "x86_64-linux"
+    ];
+  };
 
-      # Symlink to bin
-      mkdir -p $out/bin
-      ln -s $out/libexec/WebTorrent $out/bin/WebTorrent
+} ''
+  mkdir -p $out/{bin,share/{applications,icons/hicolor/{48x48,256x256}/apps}}
 
-      cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png
-      cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png
-      ## Fix the desktop link
-      substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \
-        --replace /opt/webtorrent-desktop $out/libexec
-    '';
+  cp $fhs/bin/fhsEnterWebTorrent $out/bin/WebTorrent
 
-    meta = with lib; {
-      description = "Streaming torrent app for Mac, Windows, and Linux";
-      homepage = "https://webtorrent.io/desktop";
-      license = licenses.mit;
-      maintainers = [ maintainers.flokli ];
-      platforms = [
-        "x86_64-linux"
-      ];
-    };
-  }
+  cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png
+  cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png
+  ## Fix the desktop link
+  substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \
+    --replace /opt/webtorrent-desktop $out/libexec
+''
diff --git a/pkgs/applications/virtualization/docker/buildx.nix b/pkgs/applications/virtualization/docker/buildx.nix
index 9b440963f4ae6..e98eb404b9c7a 100644
--- a/pkgs/applications/virtualization/docker/buildx.nix
+++ b/pkgs/applications/virtualization/docker/buildx.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-buildx";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "buildx";
     rev = "v${version}";
-    sha256 = "sha256-NJNFjzbiBcmXcBF1k0qybv5LnkaQ+1ehSfF18CC85JY=";
+    sha256 = "sha256-AGRdmYKd76k5tmBTTqsSHj3yOU8QSd11G5ito0O/dWY=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index 16c25aea9ae48..fc264cdc59083 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    sha256 = "sha256-dHq1t1ebPSAS5H14Kd03xCiHV9UhAH0dIxikQK0rHQk=";
+    sha256 = "sha256-6yc+7Fc22b8xN8thRrxxpjdEz19aBYCWxgkh/nra784=";
   };
 
   vendorSha256 = "sha256-N+paN3zEXzzUFb2JPVIDZYZ0h0iu7naiw4pSVnGsuKQ=";
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 954fd3f051a97..68082f5de41b4 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -234,9 +234,10 @@ stdenv.mkDerivation rec {
     # the .desktop is both invalid and pointless
     rm -f $out/share/applications/qemu.desktop
 
-    # copy qemu-ga (guest agent) to separate output
+    # move qemu-ga (guest agent) to separate output
     mkdir -p $ga/bin
-    cp $out/bin/qemu-ga $ga/bin/
+    mv $out/bin/qemu-ga $ga/bin/
+    ln -s $ga/bin/qemu-ga $out/bin
     remove-references-to -t $out $ga/bin/qemu-ga
   '' + lib.optionalString gtkSupport ''
     # wrap GTK Binaries
diff --git a/pkgs/applications/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix
index bad1e98296c25..621514ad4c82f 100644
--- a/pkgs/applications/virtualization/x11docker/default.nix
+++ b/pkgs/applications/virtualization/x11docker/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute2 }:
 stdenv.mkDerivation rec {
   pname = "x11docker";
-  version = "7.1.3";
+  version = "7.1.4";
   src = fetchFromGitHub {
     owner = "mviereck";
     repo = "x11docker";
     rev = "v${version}";
-    sha256 = "sha256-eSarw5RG2ckup9pNlZtAyZAN8IPZy94RRfej9ppiLfo=";
+    sha256 = "sha256-geYn1ir8h1EAUpTWsTS7giQt5eQwIBFeemS+a940ORg=";
   };
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index ed518d8eb2e89..83406d33961ca 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.21.8";
+  version = "0.21.9";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-l0XfitQSmSkivEg8+XcA/+bWdy/wzIpii/Npc4p8kUw=";
+    sha256 = "sha256-UbQEPY/Qzu3akWqCTdbhO8V46KyNh/4XCA+PySQyNaw=";
   };
 
-  cargoSha256 = "sha256-2rJ9ZZHK1acJu6r6EjuoolLJZMdBsbKgN1DNvGM7deA=";
+  cargoSha256 = "sha256-Bb4kkS0eSg0ue24UIy8f0kwD9w4kSCVTd1OqwEggyVs=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
diff --git a/pkgs/applications/window-managers/sway/idle.nix b/pkgs/applications/window-managers/sway/idle.nix
index 0928fbcfb4ef6..da23386d41ce8 100644
--- a/pkgs/applications/window-managers/sway/idle.nix
+++ b/pkgs/applications/window-managers/sway/idle.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=${if systemdSupport then "enabled" else "disabled"}" ];
 
+  postPatch = "substituteInPlace main.c --replace '%lu' '%zu'";
+
   meta = with lib; {
     description = "Idle management daemon for Wayland";
     longDescription = ''