summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorzowoq <59103226+zowoq@users.noreply.github.com>2022-03-01 16:20:52 +1000
committerzowoq <59103226+zowoq@users.noreply.github.com>2022-03-01 16:20:52 +1000
commit64a89aac8618561eb2ff3e2e5b9986294ac7f2b2 (patch)
treeec73e0064cc40ec03ac638382ab1b1302f25d4bd /pkgs
parentae747bc0072f8e3eb2d17da131cd9134208a1142 (diff)
parent3135db28cb2d1136bde46aadb4adbbd8a7af0306 (diff)
downloadnixpkgs-64a89aac8618561eb2ff3e2e5b9986294ac7f2b2.tar
nixpkgs-64a89aac8618561eb2ff3e2e5b9986294ac7f2b2.tar.gz
nixpkgs-64a89aac8618561eb2ff3e2e5b9986294ac7f2b2.tar.bz2
nixpkgs-64a89aac8618561eb2ff3e2e5b9986294ac7f2b2.tar.lz
nixpkgs-64a89aac8618561eb2ff3e2e5b9986294ac7f2b2.tar.xz
nixpkgs-64a89aac8618561eb2ff3e2e5b9986294ac7f2b2.tar.zst
nixpkgs-64a89aac8618561eb2ff3e2e5b9986294ac7f2b2.zip
Merge staging-next into staging
Conflicts:
	pkgs/development/libraries/sqlite/default.nix
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/plujain-ramp/default.nix2
-rw-r--r--pkgs/applications/audio/rubyripper/default.nix34
-rw-r--r--pkgs/applications/audio/tauon/default.nix4
-rw-r--r--pkgs/applications/editors/pinegrow/default.nix70
-rw-r--r--pkgs/applications/editors/vscode/extensions/cpptools/default.nix20
-rw-r--r--pkgs/applications/editors/vscode/extensions/python/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/extensions/wakatime/default.nix4
-rw-r--r--pkgs/applications/emulators/ryujinx/default.nix60
-rw-r--r--pkgs/applications/emulators/ryujinx/deps.nix4
-rwxr-xr-xpkgs/applications/emulators/ryujinx/updater.sh71
-rw-r--r--pkgs/applications/kde/default.nix1
-rw-r--r--pkgs/applications/kde/zanshin.nix18
-rw-r--r--pkgs/applications/misc/bottles/default.nix5
-rw-r--r--pkgs/applications/misc/corectrl/default.nix4
-rw-r--r--pkgs/applications/misc/emojipick/default.nix71
-rw-r--r--pkgs/applications/misc/gometer/default.nix47
-rw-r--r--pkgs/applications/misc/neo/default.nix4
-rw-r--r--pkgs/applications/misc/nerd-font-patcher/default.nix17
-rw-r--r--pkgs/applications/misc/openlp/default.nix3
-rw-r--r--pkgs/applications/misc/prusa-slicer/default.nix4
-rw-r--r--pkgs/applications/misc/prusa-slicer/super-slicer.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch35
-rw-r--r--pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch60
-rw-r--r--pkgs/applications/networking/instant-messengers/signald/default.nix39
-rw-r--r--pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch19
-rw-r--r--pkgs/applications/networking/n8n/node-packages.nix150
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix4
-rw-r--r--pkgs/applications/office/zanshin/default.nix38
-rw-r--r--pkgs/applications/science/biology/neuron/default.nix2
-rw-r--r--pkgs/applications/science/biology/raxml/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/d-seams/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/gg/default.nix25
-rw-r--r--pkgs/applications/version-management/git-and-tools/gg/skip-broken-revert-tests.patch12
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix6
-rw-r--r--pkgs/applications/video/ffmpeg-normalize/default.nix4
-rw-r--r--pkgs/applications/video/filebot/default.nix10
-rw-r--r--pkgs/applications/window-managers/i3/swallow.nix44
-rw-r--r--pkgs/applications/window-managers/jwm/default.nix4
-rw-r--r--pkgs/build-support/make-desktopitem/default.nix9
-rw-r--r--pkgs/data/fonts/agave/default.nix33
-rw-r--r--pkgs/data/themes/whitesur/default.nix41
-rw-r--r--pkgs/development/compilers/llvm/14/lld/fix-root-src-dir.patch16
-rw-r--r--pkgs/development/compilers/open-watcom/v2.nix13
-rw-r--r--pkgs/development/libraries/bamf/default.nix32
-rw-r--r--pkgs/development/libraries/highfive/default.nix2
-rw-r--r--pkgs/development/libraries/netcdf/default.nix4
-rw-r--r--pkgs/development/libraries/ngt/default.nix2
-rw-r--r--pkgs/development/libraries/olm/default.nix4
-rw-r--r--pkgs/development/libraries/rang/default.nix8
-rw-r--r--pkgs/development/libraries/sqlite/default.nix2
-rw-r--r--pkgs/development/node-packages/default.nix2
-rw-r--r--pkgs/development/python-modules/aioitertools/default.nix17
-rw-r--r--pkgs/development/python-modules/bandit/default.nix4
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix2
-rw-r--r--pkgs/development/python-modules/garages-amsterdam/default.nix15
-rw-r--r--pkgs/development/python-modules/glfw/default.nix4
-rw-r--r--pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--pkgs/development/python-modules/ipyparallel/default.nix5
-rw-r--r--pkgs/development/python-modules/jax/default.nix11
-rw-r--r--pkgs/development/python-modules/portpicker/default.nix26
-rw-r--r--pkgs/development/python-modules/pyface/default.nix26
-rw-r--r--pkgs/development/python-modules/python-efl/default.nix11
-rw-r--r--pkgs/development/python-modules/rstcheck/default.nix4
-rw-r--r--pkgs/development/python-modules/xkcdpass/default.nix28
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--pkgs/development/python-modules/zfec/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix9
-rw-r--r--pkgs/development/tools/database/prisma-engines/default.nix6
-rw-r--r--pkgs/development/tools/just/default.nix6
-rw-r--r--pkgs/development/tools/misc/qtspim/default.nix12
-rw-r--r--pkgs/development/tools/packet/default.nix4
-rw-r--r--pkgs/development/tools/scenebuilder/default.nix4
-rw-r--r--pkgs/development/tools/wp-cli/default.nix33
-rw-r--r--pkgs/development/tools/yq-go/default.nix6
-rw-r--r--pkgs/development/web/flyctl/default.nix6
-rw-r--r--pkgs/games/domination/default.nix4
-rw-r--r--pkgs/games/lunar-client/default.nix2
-rw-r--r--pkgs/misc/screensavers/physlock/default.nix4
-rw-r--r--pkgs/os-specific/linux/lsiutil/default.nix9
-rw-r--r--pkgs/pkgs-lib/formats.nix207
-rw-r--r--pkgs/servers/bird/default.nix6
-rw-r--r--pkgs/servers/bird/dont-create-sysconfdir-1.patch6
-rw-r--r--pkgs/servers/ftp/vsftpd/default.nix10
-rw-r--r--pkgs/servers/roon-server/default.nix4
-rw-r--r--pkgs/tools/admin/pebble/default.nix9
-rw-r--r--pkgs/tools/admin/trivy/default.nix6
-rw-r--r--pkgs/tools/admin/winbox/default.nix6
-rw-r--r--pkgs/tools/graphics/snapdragon-profiler/default.nix2
-rw-r--r--pkgs/tools/graphics/structure-synth/default.nix7
-rw-r--r--pkgs/tools/inputmethods/remote-touchpad/default.nix6
-rw-r--r--pkgs/tools/misc/txr/default.nix7
-rw-r--r--pkgs/tools/networking/boundary/default.nix13
-rwxr-xr-xpkgs/tools/networking/boundary/update.sh2
-rw-r--r--pkgs/tools/networking/davix/default.nix4
-rw-r--r--pkgs/tools/nix/alejandra/default.nix6
-rw-r--r--pkgs/tools/system/pcstat/default.nix20
-rw-r--r--pkgs/tools/system/pcstat/deps.nix11
-rw-r--r--pkgs/tools/text/diffr/default.nix4
-rw-r--r--pkgs/tools/text/gawk/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/dblatex/default.nix2
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix57
-rw-r--r--pkgs/top-level/python-packages.nix4
106 files changed, 1206 insertions, 554 deletions
diff --git a/pkgs/applications/audio/plujain-ramp/default.nix b/pkgs/applications/audio/plujain-ramp/default.nix
index 56f4d6da050..d8f5357efdb 100644
--- a/pkgs/applications/audio/plujain-ramp/default.nix
+++ b/pkgs/applications/audio/plujain-ramp/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, lv2  }:
 
 stdenv.mkDerivation rec {
-  version = "v1.1.3";
+  version = "1.1.3";
   pname = "plujain-ramp";
 
   src = fetchFromGitHub {
diff --git a/pkgs/applications/audio/rubyripper/default.nix b/pkgs/applications/audio/rubyripper/default.nix
index e8a275db98d..0af80c991c2 100644
--- a/pkgs/applications/audio/rubyripper/default.nix
+++ b/pkgs/applications/audio/rubyripper/default.nix
@@ -1,26 +1,38 @@
-{ lib, stdenv, fetchurl, ruby, cdparanoia, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper
+, cdparanoia, cddiscid, ruby }:
+
 stdenv.mkDerivation rec {
-  version = "0.6.2";
+  version = "0.8.0rc3";
   pname = "rubyripper";
-  src = fetchurl {
-    url = "https://rubyripper.googlecode.com/files/rubyripper-${version}.tar.bz2";
-    sha256 = "1fwyk3y0f45l2vi3a481qd7drsy82ccqdb8g2flakv58m45q0yl1";
+
+  src = fetchFromGitHub {
+    owner = "bleskodev";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qfwv8bgc9pyfh3d40bvyr9n7sjc2na61481693wwww640lm0f9f";
   };
 
   preConfigure = "patchShebangs .";
 
   configureFlags = [ "--enable-cli" ];
+
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ ruby cdparanoia ];
-  postInstall = ''
-    wrapProgram "$out/bin/rrip_cli" \
-      --prefix PATH : "${ruby}/bin" \
-      --prefix PATH : "${cdparanoia}/bin"
+
+  buildInputs = [
+    cddiscid
+    cdparanoia
+    ruby
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/rrip_cli \
+      --prefix PATH : ${lib.makeBinPath [ cddiscid cdparanoia ruby ]}
   '';
 
   meta = with lib; {
     description = "High quality CD audio ripper";
     platforms = platforms.linux;
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
+    homepage = "https://github.com/bleskodev/rubyripper";
   };
 }
diff --git a/pkgs/applications/audio/tauon/default.nix b/pkgs/applications/audio/tauon/default.nix
index 7223812e57d..d9effb3f1af 100644
--- a/pkgs/applications/audio/tauon/default.nix
+++ b/pkgs/applications/audio/tauon/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tauon";
-  version = "7.1.2";
+  version = "7.1.3";
 
   src = fetchFromGitHub {
     owner = "Taiko2k";
     repo = "TauonMusicBox";
     rev = "v${version}";
-    sha256 = "sha256-0/xWSae5TD5qI+HgoJ2DAHxqv/Z0E4DGiQhfTA03xkM=";
+    sha256 = "sha256-UadE8qsQxRjE+POHLAUY1tRUInNXsMEqTAP02zSDSZ4=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/editors/pinegrow/default.nix b/pkgs/applications/editors/pinegrow/default.nix
new file mode 100644
index 00000000000..8ddd0d6a283
--- /dev/null
+++ b/pkgs/applications/editors/pinegrow/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, lib
+, fetchurl
+, unzip
+, udev
+, nwjs
+, gcc-unwrapped
+, autoPatchelfHook
+, gsettings-desktop-schemas
+, gtk3
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pinegrow";
+  version = "6.3";
+
+  src = fetchurl {
+    url = "https://download.pinegrow.com/PinegrowLinux64.${version}.zip";
+    sha256 = "0wldj633p67da077nfc67gr9xhq580rkfd0r3904sjq7x01r0kaz";
+  };
+
+  nativeBuildInputs = [
+    unzip
+    autoPatchelfHook
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    udev
+    nwjs
+    gcc-unwrapped
+    gsettings-desktop-schemas
+    gtk3
+  ];
+
+  sourceRoot = ".";
+
+  dontUnpack = true;
+
+  # Extract and copy executable in $out/bin
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/applications $out/bin $out/opt/bin
+    # we can't unzip it in $out/lib, because nw.js will start with
+    # an empty screen. Therefore it will be unzipped in a non-typical
+    # folder and symlinked.
+    unzip $src -d $out/opt/pinegrow
+    substituteInPlace $out/opt/pinegrow/Pinegrow.desktop \
+      --replace 'Exec=sh -c "$(dirname %k)/PinegrowLibrary"' 'Exec=sh -c "$out/bin/Pinegrow"'
+    mv $out/opt/pinegrow/Pinegrow.desktop $out/share/applications/Pinegrow.desktop
+    ln -s $out/opt/pinegrow/PinegrowLibrary $out/bin/Pinegrow
+
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+    wrapGApp "$out/opt/pinegrow/PinegrowLibrary" --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://pinegrow.com";
+    description = "UI Web Editor";
+    platforms = platforms.linux;
+    license = with licenses; [ unfreeRedistributable ];
+    maintainers = with maintainers; [ gador ];
+  };
+}
diff --git a/pkgs/applications/editors/vscode/extensions/cpptools/default.nix b/pkgs/applications/editors/vscode/extensions/cpptools/default.nix
index 077c3807eca..cc935876ded 100644
--- a/pkgs/applications/editors/vscode/extensions/cpptools/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/cpptools/default.nix
@@ -47,15 +47,27 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "cpptools";
     publisher = "ms-vscode";
-    version = "1.7.1";
+    version = "1.9.1";
   };
 
   vsix = fetchurl {
-    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
-    url = "https://github.com/microsoft/vscode-cpptools/releases/download/${mktplcRef.version}/cpptools-linux.vsix";
-    sha256 = "sha256-LqndG/vv8LgVPEX6dGkikDB6M6ISneo2UJ78izXVFbk=";
+    name = "${mktplcRef.publisher}-${mktplcRef.name}.gz";
+    url = "https://marketplace.visualstudio.com/_apis/public/gallery/publishers/${mktplcRef.publisher}/vsextensions/${mktplcRef.name}/${mktplcRef.version}/vspackage?targetPlatform=linux-x64";
+    sha256 = "sha256-BtTl9DR8hnwNpO5k99M4dtqcTQ2hTzVbjR8VZh+tdDI=";
   };
 
+  unpackPhase = ''
+    runHook preUnpack
+
+    gzip -d $src --stdout &> temporary.zip
+    unzip temporary.zip
+    rm temporary.zip
+
+    cd extension/
+
+    runHook postUnpack
+  '';
+
   buildInputs = [
     jq
   ];
diff --git a/pkgs/applications/editors/vscode/extensions/python/default.nix b/pkgs/applications/editors/vscode/extensions/python/default.nix
index 09c5c02aee9..8d6834dceeb 100644
--- a/pkgs/applications/editors/vscode/extensions/python/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/python/default.nix
@@ -59,13 +59,13 @@ in vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "python";
     publisher = "ms-python";
-    version = "2021.11.1422169775";
+    version = "2022.0.1814523869";
   };
 
   vsix = fetchurl {
     name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
     url = "https://github.com/microsoft/vscode-python/releases/download/${mktplcRef.version}/ms-python-release.vsix";
-    sha256 = "sha256-Y8Wbpuieca/edIWqgq+lGSUMABOGvO/GuujGlEGmoKs=";
+    sha256 = "sha256-JDaimcOUDo9GuFA3mhbbGLwqZE9ejk8pWYc+9PrRhVk=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/editors/vscode/extensions/wakatime/default.nix b/pkgs/applications/editors/vscode/extensions/wakatime/default.nix
index 9832b16f747..554b2bddb6c 100644
--- a/pkgs/applications/editors/vscode/extensions/wakatime/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/wakatime/default.nix
@@ -8,8 +8,8 @@ in
     mktplcRef = {
       name = "vscode-wakatime";
       publisher = "WakaTime";
-      version = "17.1.0";
-      sha256 = "177q8angrn702pxrrpk1fzggzlnnaymq32v55qpjgjb74rhg4dzw";
+      version = "18.0.5";
+      sha256 = "sha256-vWqGxMbxKqd4UgKK0sOKadMTDf6Y3TQxfWsc93MHjFs=";
     };
 
     meta = with lib; {
diff --git a/pkgs/applications/emulators/ryujinx/default.nix b/pkgs/applications/emulators/ryujinx/default.nix
index 6dbd356f24c..1a2d122e637 100644
--- a/pkgs/applications/emulators/ryujinx/default.nix
+++ b/pkgs/applications/emulators/ryujinx/default.nix
@@ -1,18 +1,31 @@
-{ lib, buildDotnetModule, fetchFromGitHub, makeDesktopItem, copyDesktopItems
-, dotnetCorePackages, libX11, libgdiplus, ffmpeg
-, SDL2_mixer, openal, libsoundio, sndio, pulseaudio
-, gtk3, gdk-pixbuf, wrapGAppsHook
+{ lib
+, buildDotnetModule
+, fetchFromGitHub
+, makeDesktopItem
+, copyDesktopItems
+, dotnetCorePackages
+, libX11
+, libgdiplus
+, ffmpeg
+, SDL2_mixer
+, openal
+, libsoundio
+, sndio
+, pulseaudio
+, gtk3
+, gdk-pixbuf
+, wrapGAppsHook
 }:
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.0.7168"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
+  version = "1.1.54"; # Versioning is based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "6e0799580f0d1b473a79471c5d365c6524d97a86";
-    sha256 = "145sn9xkjxj79292faypcdmpmbxm1w70q0iprg6pfymf9920gvfv";
+    rev = "3705c206688c69d3348f5cec84dc480d8d7c578e";
+    sha256 = "1lhnr11x46yjpka865m0dzkbkdxmrrhjcpvq4ab4wll6j0ipy908";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_6_0;
@@ -67,22 +80,31 @@ buildDotnetModule rec {
     done
   '';
 
-  desktopItems = [(makeDesktopItem {
-    desktopName = "Ryujinx";
-    name = "ryujinx";
-    exec = "Ryujinx";
-    icon = "ryujinx";
-    comment = meta.description;
-    type = "Application";
-    categories = [ "Game" ];
-  })];
+  desktopItems = [
+    (makeDesktopItem {
+      desktopName = "Ryujinx";
+      name = "ryujinx";
+      exec = "Ryujinx";
+      icon = "ryujinx";
+      comment = meta.description;
+      type = "Application";
+      categories = [ "Game" ];
+    })
+  ];
 
   meta = with lib; {
-    description = "Experimental Nintendo Switch Emulator written in C#";
     homepage = "https://ryujinx.org/";
-    license = licenses.mit;
     changelog = "https://github.com/Ryujinx/Ryujinx/wiki/Changelog";
-    maintainers = [ maintainers.ivar ];
+    description = "Experimental Nintendo Switch Emulator written in C#";
+    longDescription = ''
+      Ryujinx is an open-source Nintendo Switch emulator, created by gdkchan,
+      written in C#. This emulator aims at providing excellent accuracy and
+      performance, a user-friendly interface and consistent builds. It was
+      written from scratch and development on the project began in September
+      2017.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ ivar jk ];
     platforms = [ "x86_64-linux" ];
     mainProgram = "Ryujinx";
   };
diff --git a/pkgs/applications/emulators/ryujinx/deps.nix b/pkgs/applications/emulators/ryujinx/deps.nix
index 991d00a5a4b..804b17d8946 100644
--- a/pkgs/applications/emulators/ryujinx/deps.nix
+++ b/pkgs/applications/emulators/ryujinx/deps.nix
@@ -10,8 +10,8 @@
   (fetchNuGet { pname = "GioSharp"; version = "3.22.25.128"; sha256 = "0syfa1f2hg7wsxln5lh86n8m1lihhprc51b6km91gkl25l5hw5bv"; })
   (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.0"; sha256 = "1g1rhcn38ww97638rds6l5bysra43hkhv47fy71fvq89623zgyxn"; })
-  (fetchNuGet { pname = "LibHac"; version = "0.14.3"; sha256 = "13pv5dwffj8c2mfibra3hkd1pgg5cj075sf48kgp82y501l25q5m"; })
+  (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; })
+  (fetchNuGet { pname = "LibHac"; version = "0.16.0"; sha256 = "1kivnf4c4km1a8y0sl34z9gfazlivna0x31q0065n0sz13g82spi"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.0"; sha256 = "0r6jyxl3h1asj30la78skd5gsxgwjpvkspmkw1gglxfg85hnqc8w"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.0"; sha256 = "1hnqhvgjp342nx9s47w5sknmlpkfxbcfi50pa4vary2r7sv8ka2w"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.0"; sha256 = "1j8cn97swc67ly7ca7m05akczrswbg0gjsk7473vad6770ph79vm"; })
diff --git a/pkgs/applications/emulators/ryujinx/updater.sh b/pkgs/applications/emulators/ryujinx/updater.sh
index 0861414f0bf..4b5fa4834fa 100755
--- a/pkgs/applications/emulators/ryujinx/updater.sh
+++ b/pkgs/applications/emulators/ryujinx/updater.sh
@@ -1,40 +1,57 @@
 #! /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
-set -eo pipefail
+set -euxo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
-deps_file="$(realpath "./deps.nix")"
-
-nix-prefetch-git https://github.com/ryujinx/ryujinx --quiet > repo_info
-new_hash="$(jq -r ".sha256" < repo_info)"
-new_rev="$(jq -r ".rev" < repo_info)"
-rm repo_info
-
-new_version="$(
-    curl -s https://ci.appveyor.com/api/projects/gdkchan/ryujinx/branch/master \
-        | grep -Po '"version":.*?[^\\]",' \
-        | sed  's/"version":"\(.*\)",/\1/'
-    )"
-old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
-
-if [[ "$new_version" == "$old_version" ]]; then
-  echo "Already up to date! Doing nothing"
-  exit 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}"
+
+OLD_VERSION="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+
+echo "comparing versions $OLD_VERSION => $NEW_VERSION"
+if [[ "$OLD_VERSION" == "$NEW_VERSION" ]]; then
+    echo "Already up to date! Doing nothing"
+    exit 0
 fi
 
+SHA="$(nix-prefetch-git https://github.com/ryujinx/ryujinx --rev "$COMMIT" --quiet | jq -r '.sha256')"
+
 cd ../../../..
-update-source-version ryujinx "$new_version" "$new_hash" --rev="$new_rev"
+update-source-version ryujinx "$NEW_VERSION" "$SHA" --rev="$COMMIT"
 
-store_src="$(nix-build . -A ryujinx.src --no-out-link)"
-src="$(mktemp -d /tmp/ryujinx-src.XXX)"
-cp -rT "$store_src" "$src"
-chmod -R +w "$src"
-pushd "$src"
+STORE_SRC="$(nix-build . -A ryujinx.src --no-out-link)"
+SRC="$(mktemp -d /tmp/ryujinx-src.XXX)"
+cp -rT "$STORE_SRC" "$SRC"
+chmod -R +w "$SRC"
+pushd "$SRC"
 
 mkdir nuget_tmp.packages
-dotnet restore Ryujinx.sln --packages nuget_tmp.packages
+DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet restore Ryujinx.sln --packages nuget_tmp.packages
 
-nuget-to-nix ./nuget_tmp.packages > "$deps_file"
+nuget-to-nix ./nuget_tmp.packages >"$DEPS_FILE"
 
 popd
-rm -r "$src"
+rm -r "$SRC"
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 4d39d25222c..d8838587d76 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -221,6 +221,7 @@ let
       skanlite = callPackage ./skanlite.nix {};
       spectacle = callPackage ./spectacle.nix {};
       yakuake = callPackage ./yakuake.nix {};
+      zanshin = callPackage ./zanshin.nix {};
     };
 
 in lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/applications/kde/zanshin.nix b/pkgs/applications/kde/zanshin.nix
new file mode 100644
index 00000000000..a43632ce362
--- /dev/null
+++ b/pkgs/applications/kde/zanshin.nix
@@ -0,0 +1,18 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  akonadi-calendar, boost, kontactinterface, krunner
+}:
+
+mkDerivation {
+  pname = "zanshin";
+  meta = with lib; {
+    description = "A powerful yet simple application to manage your day to day actions, getting your mind like water";
+    homepage = "https://zanshin.kde.org/";
+    maintainers = with maintainers; [ zraexy ];
+    license = licenses.gpl2Plus;
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ akonadi-calendar boost kontactinterface krunner ];
+}
diff --git a/pkgs/applications/misc/bottles/default.nix b/pkgs/applications/misc/bottles/default.nix
index 22d7560c689..865e3a849a1 100644
--- a/pkgs/applications/misc/bottles/default.nix
+++ b/pkgs/applications/misc/bottles/default.nix
@@ -20,8 +20,8 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "bottles";
-  version = "2022.2.14-trento";
-  sha256 = "GtVC3JfVoooJ+MuF9r1W3J8RfXNKalaIgecv1ner7GA=";
+  version = "2022.2.28-trento-1";
+  sha256 = "tE6YuuZZcs3RKxs1S6OoGt0CXz3oHUi/sopFN0iywds=";
 
   src = fetchFromGitHub {
     owner = "bottlesdevs";
@@ -99,6 +99,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     description = "An easy-to-use wineprefix manager";
     homepage = "https://usebottles.com/";
+    downloadPage = "https://github.com/bottlesdevs/Bottles/releases";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ bloomvdomino psydvl shamilton ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/corectrl/default.nix b/pkgs/applications/misc/corectrl/default.nix
index 8ec80e99522..b976ea89074 100644
--- a/pkgs/applications/misc/corectrl/default.nix
+++ b/pkgs/applications/misc/corectrl/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec{
   pname = "corectrl";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitLab {
     owner = "corectrl";
     repo = "corectrl";
     rev = "v${version}";
-    sha256 = "1zp523cgvmfjc42wx1f1jh5q3jnsnm833m2xnbbwmfrmhrzh5269";
+    sha256 = "sha256-vMSIo4tfvEO6SVxB5aNBnHEn+PXN6wUfRAgUCwZEHKQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/emojipick/default.nix b/pkgs/applications/misc/emojipick/default.nix
new file mode 100644
index 00000000000..9c28c98bf04
--- /dev/null
+++ b/pkgs/applications/misc/emojipick/default.nix
@@ -0,0 +1,71 @@
+{ stdenvNoCC
+, fetchFromGitHub
+, lib
+, python3
+, xclip
+, libnotify
+, dmenu
+, rofi
+, emojipick-use-rofi ? false
+, emojipick-copy-to-clipboard ? true
+, emojipick-show-notifications ? true
+, emojipick-print-emoji ? true
+, emojipick-font-family ? "Noto Color Emoji"
+, emojipick-font-size ? "18"
+}:
+
+let
+  boolToInt = b: if b then "1" else "0"; # Convert boolean to integer string
+in
+stdenvNoCC.mkDerivation {
+  pname = "emojipick";
+  version = "2021-01-27";
+
+  src = fetchFromGitHub {
+    owner = "thingsiplay";
+    repo = "emojipick";
+    rev = "20210127";
+    sha256 = "1kib3cyx6z9v9qw6yrfx5sklanpk5jbxjc317wi7i7ljrg0vdazp";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  # Patch configuration
+  # notify-send has to be patched in a bash file
+  postPatch = ''
+    substituteInPlace emojipick \
+      --replace "use_rofi=0" "use_rofi=${boolToInt emojipick-use-rofi}" \
+      --replace "copy_to_clipboard=1" "copy_to_clipboard=${boolToInt emojipick-copy-to-clipboard}" \
+      --replace "show_notification=1" "show_notification=${boolToInt emojipick-show-notifications}" \
+      --replace "print_emoji=1" "print_emoji=${boolToInt emojipick-print-emoji}" \
+      --replace "font_family='\"Noto Color Emoji\"'" "font_family='\"${emojipick-font-family}\"'" \
+      --replace 'font_size="18"' 'font_size="${emojipick-font-size}"' \
+      ${lib.optionalString emojipick-use-rofi "--replace 'rofi ' '${rofi}/bin/rofi '"} \
+      --replace notify-send ${libnotify}/bin/notify-send
+  '';
+
+  buildInputs = [
+    python3
+    xclip
+    libnotify
+  ] ++ (if emojipick-use-rofi then [rofi] else [dmenu]);
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp ./emojipick $out/bin
+    cp ./emojiget.py $out/bin
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Get a selection of emojis with dmenu or rofi";
+    homepage = "https://github.com/thingsiplay/emojipick";
+    license = licenses.mit;
+    maintainers = with maintainers; [ alexnortung ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/gometer/default.nix b/pkgs/applications/misc/gometer/default.nix
new file mode 100644
index 00000000000..9b335b1aeda
--- /dev/null
+++ b/pkgs/applications/misc/gometer/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchurl, rpmextract, wrapGAppsHook, nwjs }:
+
+stdenv.mkDerivation rec {
+  pname = "gometer";
+  version = "5.2.0";
+
+  src = fetchurl {
+    url = "https://gometer-prod-new-apps.s3-accelerate.amazonaws.com/${version}/goMeter-linux64.rpm";
+    sha256 = "sha256-E53sVvneW2EMPz9HNCgbGuHnDlVihE+Lf+DkFIP+j28=";
+  };
+
+  nativeBuildInputs = [
+    rpmextract
+    wrapGAppsHook
+  ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  unpackPhase = ''
+    rpmextract ${src}
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mv usr $out
+    mv opt $out
+
+    mkdir $out/share/applications
+    mv $out/opt/goMeter/goMeter.desktop $out/share/applications/gometer.desktop
+    substituteInPlace $out/share/applications/gometer.desktop \
+      --replace '/opt/goMeter/' ""
+
+    makeWrapper ${nwjs}/bin/nw $out/bin/goMeter \
+      --add-flags $out/opt/goMeter/package.nw
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Analytic-Tracking tool for GoLance";
+    homepage = "https://golance.com/download-gometer";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/applications/misc/neo/default.nix b/pkgs/applications/misc/neo/default.nix
index fda086c49d5..e091a572c27 100644
--- a/pkgs/applications/misc/neo/default.nix
+++ b/pkgs/applications/misc/neo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "neo";
-  version = "0.6";
+  version = "0.6.1";
 
   src = fetchurl {
     url = "https://github.com/st3w/neo/releases/download/v${version}/neo-${version}.tar.gz";
-    sha256 = "sha256-skXLT1td4dGdsu+wbX44Z2u5sDEOKXYVVys4Q6RayIk=";
+    sha256 = "sha256-pV5O1e/QpK8kjRYBinqq07YX7x06wF0pKiWKOKr0ank=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/applications/misc/nerd-font-patcher/default.nix b/pkgs/applications/misc/nerd-font-patcher/default.nix
index 6807cd9024f..ac3fa9200a7 100644
--- a/pkgs/applications/misc/nerd-font-patcher/default.nix
+++ b/pkgs/applications/misc/nerd-font-patcher/default.nix
@@ -4,15 +4,16 @@ python3Packages.buildPythonApplication rec {
   pname = "nerd-font-patcher";
   version = "2.1.0";
 
-  # The size of the nerd fonts repository is bigger than 2GB, because it
-  # contains a lot of fonts and the patcher.
-  # until https://github.com/ryanoasis/nerd-fonts/issues/484 is not fixed,
-  # we download the patcher from an alternative repository
+  # This uses a sparse checkout because the repo is >2GB without it
   src = fetchFromGitHub {
-    owner = "betaboon";
-    repo = "nerd-fonts-patcher";
-    rev = "180684d7a190f75fd2fea7ca1b26c6540db8d3c0";
-    sha256 = "sha256-FAbdLf0XiUXGltAgmq33Wqv6PFo/5qCv62UxXnj3SgI=";
+    owner = "ryanoasis";
+    repo = "nerd-fonts";
+    rev = "v${version}";
+    sparseCheckout = ''
+      font-patcher
+      /src/glyphs
+    '';
+    sha256 = "sha256-ePBlEVjzAJ7g6iAGIqPfgZ8bwtNILmyEVm0zD+xNN6k=";
   };
 
   propagatedBuildInputs = with python3Packages; [ fontforge ];
diff --git a/pkgs/applications/misc/openlp/default.nix b/pkgs/applications/misc/openlp/default.nix
index 1ee48256474..a075a9bec6f 100644
--- a/pkgs/applications/misc/openlp/default.nix
+++ b/pkgs/applications/misc/openlp/default.nix
@@ -37,7 +37,8 @@ let
   # base pkg/lib
   baseLib = python3Packages.callPackage ./lib.nix { };
 in mkDerivation {
-  inherit (baseLib) pname version src;
+  pname = baseLib.pname + lib.optionalString (pdfSupport && presentationSupport && vlcSupport && gstreamerSupport) "-full";
+  inherit (baseLib) version src;
 
   nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook ];
   buildInputs = [ qtbase ] ++ optionals gstreamerSupport
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
index d72d605f021..6ae7f422f02 100644
--- a/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
 
   desktopItems = [
     (makeDesktopItem {
-      name = "PrusaSlicer";
+      name = "prusa-slicer";
       exec = "prusa-slicer";
       icon = "PrusaSlicer";
       comment = "G-code generator for 3D printers";
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
       categories = [ "Development" ];
     })
     (makeDesktopItem {
-      name = "PrusaSlicer G-code Viewer";
+      name = "prusa-gcodeviewer";
       exec = "prusa-gcodeviewer";
       icon = "PrusaSlicer-gcodeviewer";
       comment = "G-code viewer for 3D printers";
diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index de00c1174b9..7a4d2ee1d25 100644
--- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -33,7 +33,7 @@ let
 
     desktopItems = [
       (makeDesktopItem {
-        name = appname;
+        name = "superslicer";
         exec = "superslicer";
         icon = appname;
         comment = description;
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index c377c0ab207..0eb1893e95c 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -96,7 +96,7 @@ let
     "libpng"
     "libwebp"
     "libxslt"
-    "opus"
+    # "opus"
   ];
 
   opusWithCustomModes = libopus.override {
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 53762744504..084db58f38b 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,5 +1,5 @@
 { newScope, config, stdenv, fetchurl, makeWrapper
-, llvmPackages_13, ed, gnugrep, coreutils, xdg-utils
+, llvmPackages_13, llvmPackages_14, ed, gnugrep, coreutils, xdg-utils
 , glib, gtk3, gnome, gsettings-desktop-schemas, gn, fetchgit
 , libva, pipewire, wayland
 , gcc, nspr, nss, runCommand
@@ -54,6 +54,9 @@ let
           inherit (upstream-info.deps.gn) url rev sha256;
         };
       });
+    } // lib.optionalAttrs (chromiumVersionAtLeast "99") rec {
+      llvmPackages = llvmPackages_14;
+      stdenv = llvmPackages_14.stdenv;
     });
 
     browser = callPackage ./browser.nix {
diff --git a/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch b/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch
new file mode 100644
index 00000000000..e23aded6d0e
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/signald/0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch
@@ -0,0 +1,35 @@
+From 232c692240b9c52b95bd38ba7aecb11e7077cf31 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Sat, 26 Feb 2022 12:33:13 +0100
+Subject: [PATCH] Fetch buildconfig during gradle build inside Nix FOD
+
+---
+ build.gradle | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/build.gradle b/build.gradle
+index cbb587f..3b06e80 100644
+--- a/build.gradle
++++ b/build.gradle
+@@ -82,6 +82,9 @@ static String getVersion() {
+ 
+ repositories {
+     maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages
++    maven {
++      url "https://plugins.gradle.org/m2/"
++    }
+     mavenCentral()
+ }
+ 
+@@ -102,6 +105,8 @@ dependencies {
+     implementation 'io.prometheus:simpleclient_httpserver:0.14.1'
+     implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
+     implementation 'io.sentry:sentry:5.6.1'
++    implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3'
++    implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.31'
+     testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
+ }
+ 
+-- 
+2.33.1
+
diff --git a/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch b/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch
new file mode 100644
index 00000000000..c5931238fe5
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/signald/0002-buildconfig-local-deps-fixes.patch
@@ -0,0 +1,60 @@
+From 80277ce9e24d9efa8dfd6eb775187c823e0e528e Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Sat, 26 Feb 2022 12:36:15 +0100
+Subject: [PATCH 2/2] buildconfig/local deps fixes
+
+---
+ build.gradle | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/build.gradle b/build.gradle
+index cbb587f..ad836cf 100644
+--- a/build.gradle
++++ b/build.gradle
+@@ -9,10 +9,21 @@ import org.gradle.nativeplatform.platform.internal.ArchitectureInternal
+ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
+ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
+ 
++buildscript {
++  repositories {
++    maven {
++      url(uri("@deps@"))
++    }
++  }
++  dependencies {
++    classpath "com.github.gmazzo:gradle-buildconfig-plugin:3.0.3"
++  }
++}
++
+ plugins {
+-   id 'com.github.gmazzo.buildconfig' version '3.0.3'
+    id 'application'
+ }
++apply plugin: "com.github.gmazzo.buildconfig"
+ 
+ compileJava.options.encoding = 'UTF-8'
+ 
+@@ -82,7 +93,10 @@ static String getVersion() {
+ 
+ repositories {
+     maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages
+-    mavenCentral()
++    mavenLocal()
++    maven {
++      url uri("@deps@")
++    }
+ }
+ 
+ dependencies {
+@@ -102,6 +116,8 @@ dependencies {
+     implementation 'io.prometheus:simpleclient_httpserver:0.14.1'
+     implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
+     implementation 'io.sentry:sentry:5.6.1'
++    implementation 'com.github.gmazzo.buildconfig:com.github.gmazzo.buildconfig.gradle.plugin:3.0.3'
++    implementation 'org.jetbrains.kotlin:kotlin-scripting-jvm:1.4.31'
+     testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
+ }
+ 
+-- 
+2.33.1
+
diff --git a/pkgs/applications/networking/instant-messengers/signald/default.nix b/pkgs/applications/networking/instant-messengers/signald/default.nix
index e75c2357b28..3f84c156f82 100644
--- a/pkgs/applications/networking/instant-messengers/signald/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signald/default.nix
@@ -1,34 +1,24 @@
 { lib, stdenv, fetchurl, fetchFromGitLab, jdk17_headless, coreutils, gradle_6, git, perl
-, makeWrapper, fetchpatch
+, makeWrapper, fetchpatch, substituteAll
 }:
 
 let
   pname = "signald";
-  version = "0.15.0";
+  version = "0.17.0";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "ftK+oeqzJ+TxrlvqivFkAi5RCcyJ5Y0oQAJuo0YheBg=";
-  };
-
-  log4j-update-cve-2021-44228 = fetchpatch {
-    url = "https://gitlab.com/signald/signald/-/commit/7f668062ab9ffa09a49d171e995f57cf0a0803a7.patch";
-    sha256 = "sha256-504je6hKciUGelVCGZjxGjHi1qZQaovagXD5PBQP+mM=";
-  };
-
-  buildConfigJar = fetchurl {
-    url = "https://dl.bintray.com/mfuerstenau/maven/gradle/plugin/de/fuerstenau/BuildConfigPlugin/1.1.8/BuildConfigPlugin-1.1.8.jar";
-    sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f";
+    sha256 = "sha256-eN6lEs6PuRczbzQZmGlNf6Ahp4FbWpA3EArlATEiZHU=";
   };
 
   # fake build to pre-download deps into fixed-output derivation
   deps = stdenv.mkDerivation {
     pname = "${pname}-deps";
     inherit src version;
-    patches = [ log4j-update-cve-2021-44228 ];
     nativeBuildInputs = [ gradle_6 perl ];
+    patches = [ ./0001-Fetch-buildconfig-during-gradle-build-inside-Nix-FOD.patch ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
       gradle --no-daemon build
@@ -36,7 +26,7 @@ let
     # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
     installPhase = ''
       find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
-        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/''${\($5 =~ s/-jvm//r)}" #e' \
+        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/''${\($5 =~ s/okio-jvm/okio/r)}" #e' \
         | sh
     '';
     # Don't move info to share/
@@ -45,8 +35,8 @@ let
     outputHashMode = "recursive";
     # Downloaded jars differ by platform
     outputHash = {
-      x86_64-linux = "sha256-e2Tehtznc+VsvQzD3lQ50Lg7ipQc7P3ekOnb8XLORO8=";
-      aarch64-linux = "sha256-P48s3vG5vUNxCCga5FhzpODhlvvc+F2ZZGX/G0FVGWc=";
+      x86_64-linux = "sha256-kZ25p+lIkOqNoFFBgJRYFcvKJenKICVa1PasaaEHmRA=";
+      aarch64-linux = "sha256-CbFNigp3R7ETX0uXv6PNuhDpmPc4sowbWmwZ+5txXQs=";
     }.${stdenv.system} or (throw "Unsupported platform");
   };
 
@@ -54,22 +44,17 @@ in stdenv.mkDerivation rec {
   inherit pname src version;
 
   patches = [
-    ./gradle-plugin.patch
-    log4j-update-cve-2021-44228
+    (substituteAll {
+      src = ./0002-buildconfig-local-deps-fixes.patch;
+      inherit deps;
+    })
   ];
 
-  postPatch = ''
-    sed -i 's|BuildConfig.jar|${buildConfigJar}|' build.gradle
-  '';
-
   buildPhase = ''
     runHook preBuild
 
     export GRADLE_USER_HOME=$(mktemp -d)
 
-    # Use the local packages from -deps
-    sed -i -e 's|mavenCentral()|mavenLocal(); maven { url uri("${deps}") }|' build.gradle
-
     gradle --offline --no-daemon distTar
 
     runHook postBuild
@@ -100,7 +85,7 @@ in stdenv.mkDerivation rec {
     '';
     homepage = "https://signald.org";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ expipiplus1 ];
+    maintainers = with maintainers; [ expipiplus1 ma27 ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch b/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
deleted file mode 100644
index fec988a94e7..00000000000
--- a/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/build.gradle b/build.gradle
-index 11d7a99..66805bb 100644
---- a/build.gradle
-+++ b/build.gradle
-@@ -18,9 +18,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
- import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
- import org.xml.sax.SAXParseException
- 
--plugins {
--   id 'de.fuerstenau.buildconfig' version '1.1.8'
-+buildscript {
-+  dependencies {
-+    classpath files ("BuildConfig.jar")
-+  }
- }
-+apply plugin: 'de.fuerstenau.buildconfig'
- 
- apply plugin: 'java'
- apply plugin: 'application'
diff --git a/pkgs/applications/networking/n8n/node-packages.nix b/pkgs/applications/networking/n8n/node-packages.nix
index 29e3fa179df..c15e51921d4 100644
--- a/pkgs/applications/networking/n8n/node-packages.nix
+++ b/pkgs/applications/networking/n8n/node-packages.nix
@@ -265,13 +265,13 @@ let
         sha512 = "Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==";
       };
     };
-    "@oclif/parser-3.8.6" = {
+    "@oclif/parser-3.8.7" = {
       name = "_at_oclif_slash_parser";
       packageName = "@oclif/parser";
-      version = "3.8.6";
+      version = "3.8.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.6.tgz";
-        sha512 = "tXb0NKgSgNxmf6baN6naK+CCwOueaFk93FG9u202U7mTBHUKsioOUlw1SG/iPi9aJM3WE4pHLXmty59pci0OEw==";
+        url = "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.7.tgz";
+        sha512 = "b11xBmIUK+LuuwVGJpFs4LwQN2xj2cBWj2c4z1FtiXGrJ85h9xV6q+k136Hw0tGg1jQoRXuvuBnqQ7es7vO9/Q==";
       };
     };
     "@opentelemetry/api-1.1.0" = {
@@ -445,13 +445,13 @@ let
         sha512 = "zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==";
       };
     };
-    "@types/lodash-4.14.178" = {
+    "@types/lodash-4.14.179" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.178";
+      version = "4.14.179";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz";
-        sha512 = "0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.179.tgz";
+        sha512 = "uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==";
       };
     };
     "@types/lossless-json-1.0.1" = {
@@ -481,13 +481,13 @@ let
         sha512 = "cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A==";
       };
     };
-    "@types/node-17.0.18" = {
+    "@types/node-17.0.21" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "17.0.18";
+      version = "17.0.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz";
-        sha512 = "eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz";
+        sha512 = "DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==";
       };
     };
     "@types/node-fetch-2.6.1" = {
@@ -976,13 +976,13 @@ let
         sha512 = "uUbetCWczQHbsKyX1C99XpQHBM8SWfovvaZhPIj23/1uV7SQf0WeRZbiLpw0JZm+LHTChfNgrLfDJOVoU2kU+A==";
       };
     };
-    "aws-sdk-2.1077.0" = {
+    "aws-sdk-2.1082.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1077.0";
+      version = "2.1082.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1077.0.tgz";
-        sha512 = "orJvJROs8hJaQRfHsX7Zl5PxEgrD/uTXyqXz9Yu9Io5VVxzvnOty9oHmvEMSlgTIf1qd01gnev/vpvP1HgzKtw==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1082.0.tgz";
+        sha512 = "aDrUZ63O/ocuC827ursDqFQAm3jhqsJu1DvMCCFg73y+FK9pXXNHp2mwdi3UeeHvtfxISCLCjuyO3VFd/tpVfA==";
       };
     };
     "aws-sign2-0.7.0" = {
@@ -1894,6 +1894,15 @@ let
         sha512 = "arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==";
       };
     };
+    "cssfilter-0.0.10" = {
+      name = "cssfilter";
+      packageName = "cssfilter";
+      version = "0.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz";
+        sha1 = "c6d2672632a2e5c83e013e6864a42ce8defd20ae";
+      };
+    };
     "dashdash-1.14.1" = {
       name = "dashdash";
       packageName = "dashdash";
@@ -4441,13 +4450,13 @@ let
         sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
       };
     };
-    "mssql-6.4.0" = {
+    "mssql-6.4.1" = {
       name = "mssql";
       packageName = "mssql";
-      version = "6.4.0";
+      version = "6.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mssql/-/mssql-6.4.0.tgz";
-        sha512 = "Mtgu3PXqoaL7aHCMurttvEHibjvz5XKjlR6ZCDyAeKtDBORpxm88JyzEU2EESVf7588GulYKc7Gr+Txf5CICBQ==";
+        url = "https://registry.npmjs.org/mssql/-/mssql-6.4.1.tgz";
+        sha512 = "G1I7mM0gfxcH5TGSNoVmxq13Mve5YnQgRAlonqaMlHEjHjMn1g04bsrIQbVHFRdI6++dw/FGWlh8GoItJMoUDw==";
       };
     };
     "mute-stream-0.0.8" = {
@@ -4477,49 +4486,49 @@ let
         sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
       };
     };
-    "n8n-core-0.105.0" = {
+    "n8n-core-0.106.0" = {
       name = "n8n-core";
       packageName = "n8n-core";
-      version = "0.105.0";
+      version = "0.106.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.105.0.tgz";
-        sha512 = "rYAtchFf7V94M9UP1ZCu9ie9O6OWncNconuzO9I1D/QLjBNVGzu0+SsG8be5bGTrAWO0WiNYdj84qMqqJS4NWg==";
+        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.106.0.tgz";
+        sha512 = "0aEoY00VPKNodcQl9NN2hTvqQysCNPeg/Ex1UKlt4b0xeqhkIEJ2KMILexXwHitPnTyJwXhn7ewqK7YafdKBcw==";
       };
     };
-    "n8n-design-system-0.11.0" = {
+    "n8n-design-system-0.12.0" = {
       name = "n8n-design-system";
       packageName = "n8n-design-system";
-      version = "0.11.0";
+      version = "0.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-design-system/-/n8n-design-system-0.11.0.tgz";
-        sha512 = "KL64XTr9sqqiBEEV7on2cdLooleHPyXClFL+THUy2oXDbGqdlyCGykukU7S4aX+nSjrJEQEDMaMcbw3NCHrumg==";
+        url = "https://registry.npmjs.org/n8n-design-system/-/n8n-design-system-0.12.0.tgz";
+        sha512 = "ZMPcOVL/yzsIut7mvHbIx03OxLa2z+jE3CtaZjSyK4tk2NQ8gVc+BOBAasmVCkO4CeJbdDMGDF+ktnUaC4ougw==";
       };
     };
-    "n8n-editor-ui-0.131.0" = {
+    "n8n-editor-ui-0.132.0" = {
       name = "n8n-editor-ui";
       packageName = "n8n-editor-ui";
-      version = "0.131.0";
+      version = "0.132.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.131.0.tgz";
-        sha512 = "Sexo31sn8PdiNjDckNfDCXBs9MBR/hF5NzuFtUCUNaXPR6Z5gql6EhPT+fJfG9Wdsj09L3vV+j3gTAbXqRgPIw==";
+        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.132.0.tgz";
+        sha512 = "WOH1Lh+2VYTqBL75pe+WB0H2K8O/6BSW/Wsl5zXbrI0YXmaC9YEvSTAcmjxvjW+oYnYLfQR3p3j6g3AtNldiJQ==";
       };
     };
-    "n8n-nodes-base-0.162.0" = {
+    "n8n-nodes-base-0.163.0" = {
       name = "n8n-nodes-base";
       packageName = "n8n-nodes-base";
-      version = "0.162.0";
+      version = "0.163.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.162.0.tgz";
-        sha512 = "bi7vs//5OHrW6RowouusBwUzKutFKnysLWdDrlxlCENGtRDtI+7ELrLMWnKs6PYTRWz0OSBHpEMN64MDEIoEZg==";
+        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.163.0.tgz";
+        sha512 = "kLndPbDemejOGROHrf5KHs7E1yQ5JwwAdyhJpzWX4M2C2Od52YRk4G97r5FZsaxW/e6vJawY6tw1O6PVM1H6nw==";
       };
     };
-    "n8n-workflow-0.87.0" = {
+    "n8n-workflow-0.88.0" = {
       name = "n8n-workflow";
       packageName = "n8n-workflow";
-      version = "0.87.0";
+      version = "0.88.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.87.0.tgz";
-        sha512 = "ei5fvQK4jM3NotOA36d267o243m2MdlSPlG6cIutqx4lgUd1oXX7mYyCJzF3/kNcWbiI8QjdhUoURgdCOEzn8g==";
+        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.88.0.tgz";
+        sha512 = "Rrlw7MqzPS0Q8T2AIe+aDioIkxC9v1aDbs5L0L/SDlGe54W2uG9qmLZ9/TTfzZZ4qzXX6fTEMNbICVmlmbEaUQ==";
       };
     };
     "named-placeholders-1.1.2" = {
@@ -7015,13 +7024,13 @@ let
         sha1 = "021e4d9c7705f21bbf37d03ceb58767402774c64";
       };
     };
-    "url-parse-1.5.9" = {
+    "url-parse-1.5.10" = {
       name = "url-parse";
       packageName = "url-parse";
-      version = "1.5.9";
+      version = "1.5.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.9.tgz";
-        sha512 = "HpOvhKBvre8wYez+QhHcYiVvVmeF6DVnuSOOPhe3cTum3BnqHhvKaZm8FU5yTiOu/Jut2ZpB2rA/SbBA1JIGlQ==";
+        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz";
+        sha512 = "WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==";
       };
     };
     "utf7-1.0.2" = {
@@ -7141,13 +7150,13 @@ let
         sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
       };
     };
-    "vm2-3.9.8" = {
+    "vm2-3.9.9" = {
       name = "vm2";
       packageName = "vm2";
-      version = "3.9.8";
+      version = "3.9.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vm2/-/vm2-3.9.8.tgz";
-        sha512 = "/1PYg/BwdKzMPo8maOZ0heT7DLI0DAFTm7YQaz/Lim9oIaFZsJs3EdtalvXuBfZwczNwsYhju75NW4d6E+4q+w==";
+        url = "https://registry.npmjs.org/vm2/-/vm2-3.9.9.tgz";
+        sha512 = "xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw==";
       };
     };
     "vue-fragment-1.5.2" = {
@@ -7366,6 +7375,15 @@ let
         sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
       };
     };
+    "xss-1.0.10" = {
+      name = "xss";
+      packageName = "xss";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xss/-/xss-1.0.10.tgz";
+        sha512 = "qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==";
+      };
+    };
     "xtend-4.0.2" = {
       name = "xtend";
       packageName = "xtend";
@@ -7462,10 +7480,10 @@ in
   n8n = nodeEnv.buildNodePackage {
     name = "n8n";
     packageName = "n8n";
-    version = "0.164.1";
+    version = "0.165.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/n8n/-/n8n-0.164.1.tgz";
-      sha512 = "8eUhHHikLspebbc1AjatdSQeaQAVgeYMIMFZmiUPMUw8FVtQ67otse6t/RvBE2RXTzxKer54Nr8eA+cF5dHi8g==";
+      url = "https://registry.npmjs.org/n8n/-/n8n-0.165.0.tgz";
+      sha512 = "PYg5cXEeH6YzVZaSDD9yOZbPtTM/yfaohbZjijyyzVmlOBnI6teQsaY+aLqK6ST4LfMfpB0ZkXpaiBj6xE9azA==";
     };
     dependencies = [
       (sources."@azure/abort-controller-1.0.5" // {
@@ -7551,7 +7569,7 @@ in
         ];
       })
       sources."@oclif/linewrap-1.0.0"
-      (sources."@oclif/parser-3.8.6" // {
+      (sources."@oclif/parser-3.8.7" // {
         dependencies = [
           sources."tslib-2.3.1"
         ];
@@ -7574,10 +7592,10 @@ 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.178"
+      sources."@types/lodash-4.14.179"
       sources."@types/lossless-json-1.0.1"
       sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.18"
+      sources."@types/node-17.0.21"
       (sources."@types/node-fetch-2.6.1" // {
         dependencies = [
           sources."form-data-3.0.1"
@@ -7646,7 +7664,7 @@ in
         ];
       })
       sources."avsc-5.7.3"
-      (sources."aws-sdk-2.1077.0" // {
+      (sources."aws-sdk-2.1082.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."events-1.1.1"
@@ -7839,6 +7857,7 @@ in
       sources."csrf-3.1.0"
       sources."css-select-4.2.1"
       sources."css-what-5.1.0"
+      sources."cssfilter-0.0.10"
       sources."dashdash-1.14.1"
       sources."date-utils-1.2.21"
       sources."debug-4.3.3"
@@ -8196,7 +8215,7 @@ in
         ];
       })
       sources."ms-2.1.2"
-      sources."mssql-6.4.0"
+      sources."mssql-6.4.1"
       sources."mute-stream-0.0.8"
       (sources."mysql2-2.3.3" // {
         dependencies = [
@@ -8205,19 +8224,19 @@ in
         ];
       })
       sources."mz-2.7.0"
-      (sources."n8n-core-0.105.0" // {
+      (sources."n8n-core-0.106.0" // {
         dependencies = [
           sources."qs-6.10.3"
         ];
       })
-      sources."n8n-design-system-0.11.0"
-      sources."n8n-editor-ui-0.131.0"
-      (sources."n8n-nodes-base-0.162.0" // {
+      sources."n8n-design-system-0.12.0"
+      sources."n8n-editor-ui-0.132.0"
+      (sources."n8n-nodes-base-0.163.0" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
         ];
       })
-      sources."n8n-workflow-0.87.0"
+      sources."n8n-workflow-0.88.0"
       (sources."named-placeholders-1.1.2" // {
         dependencies = [
           sources."lru-cache-4.1.5"
@@ -8627,7 +8646,7 @@ in
           sources."punycode-1.3.2"
         ];
       })
-      sources."url-parse-1.5.9"
+      sources."url-parse-1.5.10"
       (sources."utf7-1.0.2" // {
         dependencies = [
           sources."semver-5.3.0"
@@ -8643,7 +8662,7 @@ in
       sources."validator-13.7.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."vm2-3.9.8"
+      sources."vm2-3.9.9"
       sources."vue-fragment-1.5.2"
       sources."vue-i18n-8.27.0"
       sources."webidl-conversions-3.0.1"
@@ -8676,6 +8695,11 @@ in
       sources."xmlbuilder-11.0.1"
       sources."xpath.js-1.1.0"
       sources."xregexp-2.0.0"
+      (sources."xss-1.0.10" // {
+        dependencies = [
+          sources."commander-2.20.3"
+        ];
+      })
       sources."xtend-4.0.2"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 04e6e3fb438..3a63f98c44c 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -22,13 +22,13 @@
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.4.2";
+  version = "3.4.3";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "sha256-cqpdn2STxJtUTBRFrUh1lRIDaFZfrRkJMxcJuTKxgk8=";
+    sha256 = "sha256-nryoueoqnbBAJaU11OUXKP5PNrYf4515ojBkdMFIEMA=";
   };
 
   patches = [
diff --git a/pkgs/applications/office/zanshin/default.nix b/pkgs/applications/office/zanshin/default.nix
deleted file mode 100644
index d0d8374e64c..00000000000
--- a/pkgs/applications/office/zanshin/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ mkDerivation
-, lib
-, fetchurl
-, extra-cmake-modules
-, boost
-, akonadi-calendar
-, kontactinterface
-, krunner
-}:
-
-mkDerivation rec {
-  pname = "zanshin";
-  version = "21.12.2";
-
-  src = fetchurl {
-    url = "mirror://kde/stable/release-service/${version}/src/zanshin-${version}.tar.xz";
-    sha256 = "sha256-zMCV4KIrqeKHEsMbqEbnm/DgQiGxZbZXDVMuSSrXj8Y=";
-  };
-
-  nativeBuildInputs = [
-    extra-cmake-modules
-  ];
-
-  buildInputs = [
-    boost
-    akonadi-calendar
-    kontactinterface
-    krunner
-  ];
-
-  meta = with lib; {
-    description = "A powerful yet simple application to manage your day to day actions, getting your mind like water";
-    homepage = "https://zanshin.kde.org/";
-    maintainers = with maintainers; [ zraexy ];
-    platforms = platforms.linux;
-    license = licenses.gpl2Plus;
-  };
-}
diff --git a/pkgs/applications/science/biology/neuron/default.nix b/pkgs/applications/science/biology/neuron/default.nix
index 804407968e1..4dc850f5062 100644
--- a/pkgs/applications/science/biology/neuron/default.nix
+++ b/pkgs/applications/science/biology/neuron/default.nix
@@ -14,7 +14,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "neuron";
+  pname = "neuron${lib.optionalString useMpi "-mpi"}";
   version = "7.5";
 
   nativeBuildInputs = [ which pkg-config automake autoconf libtool ];
diff --git a/pkgs/applications/science/biology/raxml/default.nix b/pkgs/applications/science/biology/raxml/default.nix
index 6e747e318f5..d02d4726629 100644
--- a/pkgs/applications/science/biology/raxml/default.nix
+++ b/pkgs/applications/science/biology/raxml/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "RAxML";
+  pname = "RAxML${lib.optionalString useMpi "-mpi"}";
   version = "8.2.12";
 
   src = fetchFromGitHub {
     owner = "stamatak";
-    repo = "standard-${pname}";
+    repo = "standard-RAxML";
     rev = "v${version}";
     sha256 = "1jqjzhch0rips0vp04prvb8vmc20c5pdmsqn8knadcf91yy859fh";
   };
diff --git a/pkgs/applications/science/chemistry/d-seams/default.nix b/pkgs/applications/science/chemistry/d-seams/default.nix
index f5e21db4b55..74260bacabc 100644
--- a/pkgs/applications/science/chemistry/d-seams/default.nix
+++ b/pkgs/applications/science/chemistry/d-seams/default.nix
@@ -2,13 +2,13 @@
 , eigen, lua, luaPackages, liblapack, blas, lib, boost, gsl }:
 
 clangStdenv.mkDerivation rec {
-  version = "v1.0.1";
+  version = "1.0.1";
   pname = "d-SEAMS";
 
   src = fetchFromGitHub {
     owner = "d-SEAMS";
     repo = "seams-core";
-    rev = "v1.0.1";
+    rev = "v${version}";
     sha256 = "03zhhl9vhi3rhc3qz1g3zb89jksgpdlrk15fcr8xcz8pkj6r5b1i";
   };
 
diff --git a/pkgs/applications/version-management/git-and-tools/gg/default.nix b/pkgs/applications/version-management/git-and-tools/gg/default.nix
index a5ea070ec0f..7bb0dec9eb2 100644
--- a/pkgs/applications/version-management/git-and-tools/gg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gg/default.nix
@@ -3,32 +3,41 @@
 , fetchFromGitHub
 , installShellFiles
 , makeWrapper
+, bash
+, coreutils
 , git
 , pandoc
 }:
 
-buildGoModule rec {
+let
+  version = "1.2.1";
+  commit = "eed9dc7c82c5a7fbc13fd9b496e1faaec3f20d57";
+in buildGoModule {
   pname = "gg-scm";
-  version = "1.1.0";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "gg-scm";
     repo = "gg";
     rev = "v${version}";
-    sha256 = "sha256-kLmu4h/EBbSFHrffvusKq38X3/ID9bOlLMvEUtnFGhk=";
+    sha256 = "770c807403f5d99cea6450f889d268800e1c2563f0cd6142936741c40b29cc95";
   };
-  patches = [ ./skip-broken-revert-tests.patch ];
+  postPatch = ''
+    substituteInPlace cmd/gg/editor_unix.go \
+      --replace /bin/sh ${bash}/bin/sh
+  '';
   subPackages = [ "cmd/gg" ];
   ldflags = [
     "-s" "-w"
     "-X" "main.versionInfo=${version}"
-    "-X" "main.buildCommit=a0b348c9cef33fa46899f5e55e3316f382a09f6a+"
+    "-X" "main.buildCommit=${commit}"
   ];
 
-  vendorSha256 = "sha256-+ZmNXB+I6vPRbACwEkfl/vVmqoZy67Zn9SBrham5zRk=";
+  vendorSha256 = "214dc073dad7b323ea449acf24c5b578d573432eeaa1506cf5761a2d7f5ce405";
 
-  nativeBuildInputs = [ git pandoc installShellFiles makeWrapper ];
-  buildInputs = [ git ];
+  nativeBuildInputs = [ pandoc installShellFiles makeWrapper ];
+  checkInputs = [ bash coreutils git ];
+  buildInputs = [ bash git ];
 
   postInstall = ''
     wrapProgram $out/bin/gg --suffix PATH : ${git}/bin
diff --git a/pkgs/applications/version-management/git-and-tools/gg/skip-broken-revert-tests.patch b/pkgs/applications/version-management/git-and-tools/gg/skip-broken-revert-tests.patch
deleted file mode 100644
index f8540952ae7..00000000000
--- a/pkgs/applications/version-management/git-and-tools/gg/skip-broken-revert-tests.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/cmd/gg/revert_test.go b/cmd/gg/revert_test.go
-index 9420e9b..ff6ca93 100644
---- a/cmd/gg/revert_test.go
-+++ b/cmd/gg/revert_test.go
-@@ -592,6 +592,7 @@ func TestRevert_LocalRename(t *testing.T) {
- }
- 
- func TestRevert_UnknownFile(t *testing.T) {
-+	t.Skip("Broken in 1.1.0")
- 	t.Parallel()
- 	t.Run("EmptyRepo", func(t *testing.T) {
- 		t.Parallel()
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 1d8998ab063..17d21f30e3b 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -20,7 +20,7 @@ let
   inherit (python3Packages) docutils python fb-re2 pygit2 pygments;
 
   self = python3Packages.buildPythonApplication rec {
-    pname = "mercurial";
+    pname = "mercurial${lib.optionalString fullBuild "-full"}";
     version = "6.0.3";
 
     src = fetchurl {
@@ -34,9 +34,9 @@ let
 
     cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
       inherit src;
-      name = "${pname}-${version}";
+      name = "mercurial-${version}";
       sha256 = "sha256-i4WROxezeqLX4hTdcPrqsf6dBqsNZz6fFAPzItYuklE=";
-      sourceRoot = "${pname}-${version}/rust";
+      sourceRoot = "mercurial-${version}/rust";
     } else null;
     cargoRoot = if rustSupport then "rust" else null;
 
diff --git a/pkgs/applications/video/ffmpeg-normalize/default.nix b/pkgs/applications/video/ffmpeg-normalize/default.nix
index 28a974a7cc6..add2e525dc9 100644
--- a/pkgs/applications/video/ffmpeg-normalize/default.nix
+++ b/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonApplication rec {
   pname = "ffmpeg-normalize";
-  version = "1.22.6";
+  version = "1.22.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-aPPRzNotm3ATL0lEq+49lrlrHoNp+Dm1Im5jYF4E1vY=";
+    sha256 = "sha256-yWn9SoVKnj9KtvBdI3k1a7fuKJmYeu9KrNyvPqw9SHU=";
   };
 
   propagatedBuildInputs = [ ffmpeg ffmpeg-progress-yield ];
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 93f11e78ffb..d80384f7b26 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, openjdk11, makeWrapper, autoPatchelfHook
+{ lib, stdenv, fetchurl, openjdk17, makeWrapper, autoPatchelfHook
 , zlib, libzen, libmediainfo, curl, libmms, glib
 }:
 
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "filebot";
-  version = "4.9.4";
+  version = "4.9.5";
 
   src = fetchurl {
-    url = "https://web.archive.org/web/20210326102451/https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
-    sha256 = "sha256-fz0B9P/UBrlKGPZkheMd/4cFnWHt+brS3zRTv4nVt9o=";
+    url = "https://web.archive.org/web/20220226124706/https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
+    sha256 = "sha256-LNvfAueDMd2TedK6bqnNG+J/4YhhbmUca9iyUkoUNkE=";
   };
 
   unpackPhase = "tar xvf $src";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
       --replace 'APP_DATA="$FILEBOT_HOME/data/$(id -u)"' 'APP_DATA=''${XDG_DATA_HOME:-$HOME/.local/share}/filebot/data' \
       --replace '$FILEBOT_HOME/data/.license' '$APP_DATA/.license'
     wrapProgram $out/opt/filebot.sh \
-      --prefix PATH : ${lib.makeBinPath [ openjdk11 ]}
+      --prefix PATH : ${lib.makeBinPath [ openjdk17 ]}
     # Expose the binary in bin to make runnable.
     ln -s $out/opt/filebot.sh $out/bin/filebot
   '';
diff --git a/pkgs/applications/window-managers/i3/swallow.nix b/pkgs/applications/window-managers/i3/swallow.nix
new file mode 100644
index 00000000000..31101721e4c
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/swallow.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, poetry-core
+, i3ipc
+, xlib
+, six
+}:
+
+buildPythonApplication rec {
+  pname = "i3-swallow";
+  version = "unstable-2022-02-19";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "jamesofarrell";
+    repo = "i3-swallow";
+    rev = "6fbc04645c483fe733de56b56743e453693d4c78";
+    sha256 = "1l3x8mixwq4n0lnyp0wz5vijgnypamq6lqjazcd2ywl2jv8d6fif";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    i3ipc
+    xlib
+    six
+  ];
+
+  # No tests available
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/jamesofarrell/i3-swallow";
+    description = "Swallow a terminal window in i3wm";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    mainProgram = "swallow";
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/pkgs/applications/window-managers/jwm/default.nix b/pkgs/applications/window-managers/jwm/default.nix
index 2c9461d6388..8a9b72265b9 100644
--- a/pkgs/applications/window-managers/jwm/default.nix
+++ b/pkgs/applications/window-managers/jwm/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jwm";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "joewing";
     repo = "jwm";
     rev = "v${version}";
-    sha256 = "19fnrlw05njib13ljh7pmi48myfclra1xhy4b6hi74c6w6yz2fgj";
+    sha256 = "sha256-7CEL2ddlABM7SYjMVUs3pu0O+2cVsz04slsdUIbgZuM=";
   };
 
   nativeBuildInputs = [ pkg-config gettext which autoreconfHook ];
diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix
index 787f0f67847..e0a57f4aa3f 100644
--- a/pkgs/build-support/make-desktopitem/default.nix
+++ b/pkgs/build-support/make-desktopitem/default.nix
@@ -34,6 +34,11 @@
 , extraConfig ? {} # Additional values to be added literally to the final item, e.g. vendor extensions
 }:
 let
+  # FIXME: workaround until https://github.com/NixOS/nixpkgs/pull/162246 lands
+  cleanName = if lib.hasInfix " " name
+                then throw "Name must not contain spaces!"
+                else name;
+
   # There are multiple places in the FDO spec that make "boolean" values actually tristate,
   # e.g. StartupNotify, where "unset" is literally defined as "do something reasonable".
   # So, handle null values separately.
@@ -111,8 +116,8 @@ let
   content = [ mainSectionRendered ] ++ actionsRendered;
 in
 writeTextFile {
-  name = "${name}.desktop";
-  destination = "/share/applications/${name}.desktop";
+  name = "${cleanName}.desktop";
+  destination = "/share/applications/${cleanName}.desktop";
   text = builtins.concatStringsSep "\n" content;
   checkPhase = "${desktop-file-utils}/bin/desktop-file-validate $target";
 }
diff --git a/pkgs/data/fonts/agave/default.nix b/pkgs/data/fonts/agave/default.nix
index 39ef6e34aaa..d2ecda3a111 100644
--- a/pkgs/data/fonts/agave/default.nix
+++ b/pkgs/data/fonts/agave/default.nix
@@ -1,19 +1,30 @@
-{ lib, fetchurl }:
+{ lib, fetchurl, stdenv }:
 
 let
   pname = "agave";
-  version = "35";
-in fetchurl {
-  name = "${pname}-${version}";
-  url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-Regular.ttf";
+  version = "37";
 
-  downloadToTemp = true;
-  recursiveHash = true;
-  postFetch = ''
-    install -D $downloadedFile $out/share/fonts/truetype/Agave-Regular.ttf
-  '';
+  mkAg = name: hash: fetchurl {
+    url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-${name}.ttf";
+    sha256 = hash;
+    name = "Agave-${name}.ttf";
+  };
+  # There are slashed variants, but with same name so only bundle the default versions for now:
+  fonts = [
+    (mkAg "Regular" "sha256-vX1VhEgqy9rQ7hPmAgBGxKyIs2QSAYqZC/mL/2BIOrA=")
+    (mkAg "Bold" "sha256-Ax/l/RKyc03law0ThiLac/7HHV4+YxibKzcZnjZs6VI=")
+  ];
+
+in stdenv.mkDerivation {
+  inherit pname version;
+  srcs = fonts;
+  sourceRoot = ".";
 
-  sha256 = "10shwsl1illdafnc352j439lklrxksip1vlh4jc934cr9qf4c1fz";
+  dontUnpack = true;
+
+  installPhase = ''
+    install -D $srcs -t $out/share/fonts/truetype/
+  '';
 
   meta = with lib; {
     description = "truetype monospaced typeface designed for X environments";
diff --git a/pkgs/data/themes/whitesur/default.nix b/pkgs/data/themes/whitesur/default.nix
index 6833f473664..825772880d6 100644
--- a/pkgs/data/themes/whitesur/default.nix
+++ b/pkgs/data/themes/whitesur/default.nix
@@ -4,25 +4,47 @@
 , glib
 , gnome-shell
 , gnome-themes-extra
+, jdupes
 , libxml2
 , sassc
 , util-linux
+, altVariants ? [] # default: normal
+, colorVariants ? [] # default: all
+, opacityVariants ? [] # default: all
+, themeVariants ? [] # default: default (BigSur-like theme)
+, nautilusSize ? null # default: 200px
+, panelOpacity ? null # default: 15%
+, panelSize ? null # default: 32px
 }:
 
+let
+  pname = "whitesur-gtk-theme";
+  single = x: lib.optional (x != null) x;
+
+in
+lib.checkListOfEnum "${pname}: alt variants" [ "normal" "alt" "all" ] altVariants
+lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: opacity variants" [ "normal" "solid" ] opacityVariants
+lib.checkListOfEnum "${pname}: theme variants" [ "default" "blue" "purple" "pink" "red" "orange" "yellow" "green" "grey" "all" ] themeVariants
+lib.checkListOfEnum "${pname}: nautilus sidebar minimum width" [ "default" "180" "220" "240" "260" "280" ] (single nautilusSize)
+lib.checkListOfEnum "${pname}: panel opacity" [ "default" "30" "45" "60" "75" ] (single panelOpacity)
+lib.checkListOfEnum "${pname}: panel size" [ "default" "smaller" "bigger" ] (single panelSize)
+
 stdenv.mkDerivation rec {
   pname = "whitesur-gtk-theme";
-  version = "2021-12-28";
+  version = "2022-02-21";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0i81aickccfp8fffilhi335hj5ijz2n38yj3zw2fnbwgm667i0fc";
+    sha256 = "1bqgbkx7qhpj9vbqcxb69p67m8ix3avxr81pdpdi56g9gqbnkpfc";
   };
 
   nativeBuildInputs = [
     glib
     gnome-shell
+    jdupes
     libxml2
     sassc
     util-linux
@@ -48,8 +70,21 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/share/themes
-    ./install.sh --dest $out/share/themes --alt all --theme all
+
+    ./install.sh  \
+      ${toString (map (x: "--alt " + x) altVariants)} \
+      ${toString (map (x: "--color " + x) colorVariants)} \
+      ${toString (map (x: "--opacity " + x) opacityVariants)} \
+      ${toString (map (x: "--theme " + x) themeVariants)} \
+      ${lib.optionalString (nautilusSize != null) ("--size " + nautilusSize)} \
+      ${lib.optionalString (panelOpacity != null) ("--panel-opacity " + panelOpacity)} \
+      ${lib.optionalString (panelSize != null) ("--panel-size " + panelSize)} \
+      --dest $out/share/themes
+
+    jdupes --link-soft --recurse $out/share
+
     runHook postInstall
   '';
 
diff --git a/pkgs/development/compilers/llvm/14/lld/fix-root-src-dir.patch b/pkgs/development/compilers/llvm/14/lld/fix-root-src-dir.patch
index 26ecef25649..38fb965b472 100644
--- a/pkgs/development/compilers/llvm/14/lld/fix-root-src-dir.patch
+++ b/pkgs/development/compilers/llvm/14/lld/fix-root-src-dir.patch
@@ -1,13 +1,13 @@
-diff --git a/lld/CMakeLists.txt b/lld/CMakeLists.txt
-index e1a29b884d17..9d542f8fbfc1 100644
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9bcc135665d0..d38679ed41e9 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -64,7 +64,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
- 
-   set(LLVM_MAIN_INCLUDE_DIR ${MAIN_INCLUDE_DIR} CACHE PATH "Path to llvm/include")
-   set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree")
--  set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree")
+@@ -74,7 +74,7 @@ if(LLD_BUILT_STANDALONE)
+
+   set(LLVM_MAIN_INCLUDE_DIR "${MAIN_INCLUDE_DIR}" CACHE PATH "Path to llvm/include")
+   set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree")
+-  set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree")
 +  set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree")
- 
+
    find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR}
      NO_DEFAULT_PATH)
diff --git a/pkgs/development/compilers/open-watcom/v2.nix b/pkgs/development/compilers/open-watcom/v2.nix
index de2dae156ee..b521aaef106 100644
--- a/pkgs/development/compilers/open-watcom/v2.nix
+++ b/pkgs/development/compilers/open-watcom/v2.nix
@@ -2,24 +2,24 @@
 , lib
 , fetchFromGitHub
 , unstableGitUpdater
+, dosbox
 
 # Docs cause an immense increase in build time, up to 2 additional hours
 , withDocs ? false
-, dosbox
 , ghostscript
 , withGUI ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "open-watcom-v2";
-  version = "unstable-2022-01-18";
+  version = "unstable-2022-02-22";
   name = "${pname}-unwrapped-${version}";
 
   src = fetchFromGitHub {
     owner = "open-watcom";
     repo = "open-watcom-v2";
-    rev = "f09e0c969c45679c048180f2dc6b3dbbe69e42a0";
-    sha256 = "dEjG4L/VVufSAerKcXPUqZ7esz4m8/210ZshVz4SNAA=";
+    rev = "9e25b3d6b8066f09b4f7131a31de1cf2af691e9a";
+    sha256 = "1w336070kmhc6cmn2aqr8vm0fmw3yza2n0w4asvs2kqxjgmbn6i2";
   };
 
   postPatch = ''
@@ -41,8 +41,7 @@ stdenv.mkDerivation rec {
       --replace '-static' ""
   '';
 
-  nativeBuildInputs = [ ]
-    ++ lib.optional (withDocs || withGUI) dosbox
+  nativeBuildInputs = [ dosbox ]
     ++ lib.optional withDocs ghostscript;
 
   configurePhase = ''
@@ -55,7 +54,7 @@ stdenv.mkDerivation rec {
     export OWGUINOBUILD=${if withGUI then "0" else "1"}
     export OWNOBUILD=
     export OWDISTRBUILD=0
-    export OWDOSBOX=${lib.optionalString (withDocs || withGUI) "${dosbox}/bin/dosbox"}
+    export OWDOSBOX=${dosbox}/bin/dosbox
     export OWVERBOSE=0
     export OWRELROOT=$out
 
diff --git a/pkgs/development/libraries/bamf/default.nix b/pkgs/development/libraries/bamf/default.nix
index 406ff81fe8e..96b677b27b5 100644
--- a/pkgs/development/libraries/bamf/default.nix
+++ b/pkgs/development/libraries/bamf/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
-, pantheon
-, autoconf
-, automake
-, libtool
+{ stdenv
+, lib
+, autoreconfHook
+, gitUpdater
 , gnome
 , which
 , fetchgit
@@ -23,26 +22,24 @@
 
 stdenv.mkDerivation rec {
   pname = "bamf";
-  version = "0.5.5";
+  version = "0.5.6";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchgit {
     url = "https://git.launchpad.net/~unity-team/bamf";
-    rev = "${version}+21.10.20210710-0ubuntu1";
-    sha256 = "0iwz5z5cz9r56pmfjvjd2kcjlk416dw6g38svs33ynssjgsqbdm0";
+    rev = version;
+    sha256 = "7U+2GcuDjPU8quZjkd8bLADGlG++tl6wSo0mUQkjAXQ=";
   };
 
   nativeBuildInputs = [
     (python3.withPackages (ps: with ps; [ lxml ])) # Tests
-    autoconf
-    automake
+    autoreconfHook
     dbus
     docbook_xsl
     gnome.gnome-common
     gobject-introspection
     gtk-doc
-    libtool
     pkg-config
     vala
     which
@@ -69,22 +66,23 @@ stdenv.mkDerivation rec {
     "--enable-headless-tests"
   ];
 
-  # fix paths
+  # Fix paths
   makeFlags = [
     "INTROSPECTION_GIRDIR=${placeholder "dev"}/share/gir-1.0/"
     "INTROSPECTION_TYPELIBDIR=${placeholder "out"}/lib/girepository-1.0"
   ];
 
-  preConfigure = ''
-    ./autogen.sh
-  '';
-
   # TODO: Requires /etc/machine-id
   doCheck = false;
 
-  # glib-2.62 deprecations
+  # Ignore deprecation errors
   NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
 
+  passthru.updateScript = gitUpdater {
+    inherit pname version;
+    ignoredVersions = ".ubuntu.*";
+  };
+
   meta = with lib; {
     description = "Application matching framework";
     longDescription = ''
diff --git a/pkgs/development/libraries/highfive/default.nix b/pkgs/development/libraries/highfive/default.nix
index 1a8ea5c1ae5..5eb6ceb204e 100644
--- a/pkgs/development/libraries/highfive/default.nix
+++ b/pkgs/development/libraries/highfive/default.nix
@@ -11,7 +11,7 @@
 assert mpiSupport -> mpi != null;
 
 stdenv.mkDerivation rec {
-  pname = "highfive";
+  pname = "highfive${lib.optionalString mpiSupport "-mpi"}";
   version = "2.3.1";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/libraries/netcdf/default.nix b/pkgs/development/libraries/netcdf/default.nix
index 71109775722..27af3be4f2d 100644
--- a/pkgs/development/libraries/netcdf/default.nix
+++ b/pkgs/development/libraries/netcdf/default.nix
@@ -10,11 +10,11 @@
 let
   inherit (hdf5) mpiSupport mpi;
 in stdenv.mkDerivation rec {
-  pname = "netcdf";
+  pname = "netcdf" + lib.optionalString mpiSupport "-mpi";
   version = "4.8.0"; # Remove patch mentioned below on upgrade
 
   src = fetchurl {
-    url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/${pname}-c-${version}.tar.gz";
+    url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-c-${version}.tar.gz";
     sha256 = "1mfn8qi4k0b8pyar3wa8v0npj69c7rhgfdlppdwmq5jqk88kb5k7";
   };
 
diff --git a/pkgs/development/libraries/ngt/default.nix b/pkgs/development/libraries/ngt/default.nix
index 385f2d84f8a..e42ee750cc0 100644
--- a/pkgs/development/libraries/ngt/default.nix
+++ b/pkgs/development/libraries/ngt/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "NGT";
-  version = "v1.12.3-alpha";
+  version = "1.12.3-alpha";
 
   src = fetchFromGitHub {
     owner = "yahoojapan";
diff --git a/pkgs/development/libraries/olm/default.nix b/pkgs/development/libraries/olm/default.nix
index baae8ae81b7..6392383c983 100644
--- a/pkgs/development/libraries/olm/default.nix
+++ b/pkgs/development/libraries/olm/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "olm";
-  version = "3.2.9";
+  version = "3.2.10";
 
   src = fetchFromGitLab {
     domain = "gitlab.matrix.org";
     owner = "matrix-org";
     repo = pname;
     rev = version;
-    sha256 = "1vcxxnhsskvnkmk5ial31mvbhs1jwriw8ngyhfslbd30fr9ylw08";
+    sha256 = "0v0w98m11r2rqvlrxssnzhqkaxmpbi5s3rkk3csfzhhkpgiv46km";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/rang/default.nix b/pkgs/development/libraries/rang/default.nix
index 79ab52fc835..050beef5ea3 100644
--- a/pkgs/development/libraries/rang/default.nix
+++ b/pkgs/development/libraries/rang/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "rang";
-  version = "v3.1.0";
+  version = "3.1.0";
   src = fetchFromGitHub {
-    "owner" = "agauniyal";
+    owner = "agauniyal";
     repo = "rang";
-    "rev" = "cabe04d6d6b05356fa8f9741704924788f0dd762";
-    "sha256" = "0v2pz0l2smagr3j4abjccshg4agaccfz79m5ayvrvqq5d4rlds0s";
+    rev = "cabe04d6d6b05356fa8f9741704924788f0dd762";
+    sha256 = "0v2pz0l2smagr3j4abjccshg4agaccfz79m5ayvrvqq5d4rlds0s";
   };
   nativeBuildInputs = [ cmake ];
   meta = with lib; {
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index 5fa77aa8293..604e3a31dde 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -10,7 +10,7 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname = "sqlite";
+  pname = "sqlite${optionalString interactive "-interactive"}";
   version = "3.38.0";
 
   # nixpkgs-update: no auto update
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index abc5bd2c5b7..275a95d5208 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -336,7 +336,7 @@ let
 
       src = fetchurl {
         url = "https://registry.npmjs.org/prisma/-/prisma-${version}.tgz";
-        sha512 = "sha512-xLmVyO/L6C4ZdHzHqiJVq3ZfDWSym29x75JcwJx746ps61UcNEg4ozSwN9ud7UjXLntdXe1xDLNOUO1lc7LN5g==";
+        sha512 = "sha512-dAld12vtwdz9Rz01nOjmnXe+vHana5PSog8t0XGgLemKsUVsaupYpr74AHaS3s78SaTS5s2HOghnJF+jn91ZrA==";
       };
       postInstall = with pkgs; ''
         wrapProgram "$out/bin/prisma" \
diff --git a/pkgs/development/python-modules/aioitertools/default.nix b/pkgs/development/python-modules/aioitertools/default.nix
index cae0b10ea69..451fb9e7fa1 100644
--- a/pkgs/development/python-modules/aioitertools/default.nix
+++ b/pkgs/development/python-modules/aioitertools/default.nix
@@ -17,30 +17,21 @@
 
 buildPythonPackage rec {
   pname = "aioitertools";
-  version = "0.8.0";
+  version = "0.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b02facfbc9b0f1867739949a223f3d3267ed8663691cc95abd94e2c1d8c2b46";
+    hash = "sha256-fR0dSgPUYsWghAeH098JjxJYR+DTi4M7MPj4y8RaFCA=";
   };
 
-  patches = lib.optionals (pythonAtLeast "3.10") [
-    (fetchpatch {
-      # Fix TypeError: wait() got an unexpected keyword argument 'loop'
-      # See https://github.com/omnilib/aioitertools/issues/84
-      url = "https://raw.githubusercontent.com/archlinux/svntogit-community/packages/python-aioitertools/trunk/python310.patch";
-      sha256 = "sha256-F10sduGaLBcxEoP83N/lGpZIlzkM2JTnQnhHKFwc7P0=";
-    })
-  ];
-
   nativeBuildInputs = [
     flit-core
   ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
     typing-extensions
   ];
 
@@ -53,7 +44,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Implementation of itertools, builtins, and more for AsyncIO and mixed-type iterables.";
+    description = "Implementation of itertools, builtins, and more for AsyncIO and mixed-type iterables";
     license = licenses.mit;
     homepage = "https://pypi.org/project/aioitertools/";
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/bandit/default.nix b/pkgs/development/python-modules/bandit/default.nix
index 4a2a2803d3a..0fcf5966d68 100644
--- a/pkgs/development/python-modules/bandit/default.nix
+++ b/pkgs/development/python-modules/bandit/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "bandit";
-  version = "1.7.2";
+  version = "1.7.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-bRGt6gIUpDgTiHv+caN3tamVXkyCbI/9NBtJTjqyUmA=";
+    sha256 = "sha256-WHcsqVG/ESndqKKA01FUfegycgv3tcKfrDEDknmAuKY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/binwalk/default.nix b/pkgs/development/python-modules/binwalk/default.nix
index 112f12e5f25..a63df0d7d39 100644
--- a/pkgs/development/python-modules/binwalk/default.nix
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -21,7 +21,7 @@
 , visualizationSupport ? false }:
 
 buildPythonPackage rec {
-  pname = "binwalk";
+  pname = "binwalk${lib.optionalString visualizationSupport "-full"}";
   version = "2.3.3";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/python-modules/garages-amsterdam/default.nix b/pkgs/development/python-modules/garages-amsterdam/default.nix
index 01ff36e6379..cc89020e443 100644
--- a/pkgs/development/python-modules/garages-amsterdam/default.nix
+++ b/pkgs/development/python-modules/garages-amsterdam/default.nix
@@ -1,22 +1,23 @@
 { lib
+, aiohttp
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
 , poetry-core
-, aiohttp
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "garages-amsterdam";
-  version = "3.2.1";
+  version = "4.0.0";
   format = "pyproject";
-  disabled = pythonOlder "3.7";
+
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "klaasnicolaas";
     repo = "garages_amsterdam";
     rev = "v${version}";
-    sha256 = "16f2742r9p3mrg2nz8lnkgsxabbjga2qnp9vzq59026q6mmfwkm9";
+    sha256 = "sha256-3YSCf5sUnq2+Bt7LA30XeIMg4zsaPF3K5SVzGZ68SbY=";
   };
 
   postPatch = ''
@@ -35,7 +36,9 @@ buildPythonPackage rec {
   # The only test requires network access
   doCheck = false;
 
-  pythonImportsCheck = [ "garages_amsterdam" ];
+  pythonImportsCheck = [
+    "garages_amsterdam"
+  ];
 
   meta = with lib; {
     description = "Python client for getting garage occupancy in Amsterdam";
diff --git a/pkgs/development/python-modules/glfw/default.nix b/pkgs/development/python-modules/glfw/default.nix
index ab42e8fffbf..e9587d0b765 100644
--- a/pkgs/development/python-modules/glfw/default.nix
+++ b/pkgs/development/python-modules/glfw/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "glfw";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "FlorianRhiem";
     repo = "pyGLFW";
     rev = "v${version}";
-    sha256 = "15kk0zhhja0yqah09wzpg6912zd5bjmk84ab1n5nwryicpg44hqk";
+    sha256 = "sha256-XR6TqIrbCR93Qe9cRMgJ0aT/6ZZFj+6Mz+9GhiMD8lM=";
   };
 
   # Patch path to GLFW shared object
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index 741882bdbd3..466b3ae4770 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "5.1.1";
+  version = "5.2.0";
   pname = "gspread";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d9db8c43d552f541ea072d4727d1e955bc2368b095dd86c5429a845c9d8aed8f";
+    sha256 = "sha256-JRc6wIFGnPnWIVFMZXbGz0bznIJfF4uMueeDdKY3sL8=";
   };
 
   propagatedBuildInputs = [ requests google-auth google-auth-oauthlib ];
diff --git a/pkgs/development/python-modules/ipyparallel/default.nix b/pkgs/development/python-modules/ipyparallel/default.nix
index 51b76fc532b..6bd707a3f6a 100644
--- a/pkgs/development/python-modules/ipyparallel/default.nix
+++ b/pkgs/development/python-modules/ipyparallel/default.nix
@@ -9,7 +9,10 @@
 , ipython
 , jupyter-client
 , ipykernel
+, packaging
+, psutil
 , tornado
+, tqdm
 , isPy3k
 , futures ? null
 }:
@@ -25,7 +28,7 @@ buildPythonPackage rec {
 
   buildInputs = [ nose ];
 
-  propagatedBuildInputs = [ python-dateutil ipython_genutils decorator pyzmq ipython jupyter-client ipykernel tornado
+  propagatedBuildInputs = [ python-dateutil ipython_genutils decorator pyzmq ipython jupyter-client ipykernel packaging psutil tornado tqdm
   ] ++ lib.optionals (!isPy3k) [ futures ];
 
   # Requires access to cluster
diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix
index a616a83255b..d5e53654019 100644
--- a/pkgs/development/python-modules/jax/default.nix
+++ b/pkgs/development/python-modules/jax/default.nix
@@ -64,8 +64,15 @@ buildPythonPackage rec {
     "tests/"
   ];
 
-  # See https://github.com/google/jax/issues/9705.
-  disabledTests = lib.optionals usingMKL [ "test_custom_root_with_aux" ];
+  # See
+  #  * https://github.com/google/jax/issues/9705
+  #  * https://discourse.nixos.org/t/getting-different-results-for-the-same-build-on-two-equally-configured-machines/17921
+  #  * https://github.com/NixOS/nixpkgs/issues/161960
+  disabledTests = lib.optionals usingMKL [
+    "test_custom_linear_solve_cholesky"
+    "test_custom_root_with_aux"
+    "testEigvalsGrad_shape"
+  ];
 
   pythonImportsCheck = [
     "jax"
diff --git a/pkgs/development/python-modules/portpicker/default.nix b/pkgs/development/python-modules/portpicker/default.nix
index fd7bf7bc09c..faf3b958162 100644
--- a/pkgs/development/python-modules/portpicker/default.nix
+++ b/pkgs/development/python-modules/portpicker/default.nix
@@ -1,6 +1,8 @@
-{ buildPythonPackage
-, lib
+{ lib
+, buildPythonPackage
 , fetchPypi
+, psutil
+, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -8,15 +10,25 @@ buildPythonPackage rec {
   version = "1.5.0";
   format = "pyproject";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e13b148008adeb2793cf8b55bcd20fdcec4f763f2d3bf3c45f5e5e5d1df7d228";
+    hash = "sha256-4TsUgAit6yeTz4tVvNIP3OxPdj8tO/PEX15eXR330ig=";
   };
 
-  meta = {
-    description = "A library to choose unique available network ports.";
+  propagatedBuildInputs = [
+    psutil
+  ];
+
+  pythonImportsCheck = [
+    "portpicker"
+  ];
+
+  meta = with lib; {
+    description = "Library to choose unique available network ports";
     homepage = "https://github.com/google/python_portpicker";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ danharaj ];
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danharaj ];
   };
 }
diff --git a/pkgs/development/python-modules/pyface/default.nix b/pkgs/development/python-modules/pyface/default.nix
index aafd60c0dba..d10e20eb0b2 100644
--- a/pkgs/development/python-modules/pyface/default.nix
+++ b/pkgs/development/python-modules/pyface/default.nix
@@ -1,21 +1,35 @@
-{ lib, fetchPypi, buildPythonPackage
-, importlib-metadata, importlib-resources, six, traits
+{ lib
+, fetchPypi
+, buildPythonPackage
+, importlib-metadata
+, importlib-resources
+, traits
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyface";
-  version = "7.4.0";
+  version = "7.4.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-r8Awj9dOYPWxh1Ar2JK/nhuY8hAGFO4+6yr9yq7Pb6s=";
+    sha256 = "sha256-UtzzZ5yj5hCjynxLmQSpbGkWiASNtdflKvjlAZ5HrbY=";
   };
 
-  propagatedBuildInputs = [ importlib-metadata importlib-resources six traits ];
+  propagatedBuildInputs = [
+    importlib-metadata
+    importlib-resources
+    traits
+  ];
 
   doCheck = false; # Needs X server
 
-  pythonImportsCheck = [ "pyface" ];
+  pythonImportsCheck = [
+    "pyface"
+  ];
 
   meta = with lib; {
     description = "Traits-capable windowing framework";
diff --git a/pkgs/development/python-modules/python-efl/default.nix b/pkgs/development/python-modules/python-efl/default.nix
index 293d9771280..c5557b3fa6d 100644
--- a/pkgs/development/python-modules/python-efl/default.nix
+++ b/pkgs/development/python-modules/python-efl/default.nix
@@ -4,6 +4,7 @@
 , pkg-config
 , python
 , dbus-python
+, packaging
 , enlightenment
 }:
 
@@ -11,18 +12,18 @@
 
 buildPythonPackage rec {
   pname = "python-efl";
-  version = "1.25.0";
+  version = "1.26.0";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/bindings/python/${pname}-${version}.tar.xz";
-    sha256 = "0bk161xwlz4dlv56r68xwkm8snzfifaxd1j7w2wcyyk4fgvnvq4r";
+    sha256 = "0dj6f24n33hkpy0bkdclnzpxhvs8vpaxqaf7hkw0di19pjwrq25h";
   };
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ enlightenment.efl ];
 
-  propagatedBuildInputs = [ dbus-python ];
+  propagatedBuildInputs = [ dbus-python packaging ];
 
   preConfigure = ''
     NIX_CFLAGS_COMPILE="$(pkg-config --cflags efl evas) $NIX_CFLAGS_COMPILE"
@@ -39,8 +40,8 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Python bindings for EFL and Elementary";
-    homepage = "https://phab.enlightenment.org/w/projects/python_bindings_for_efl/";
+    description = "Python bindings for Enlightenment Foundation Libraries";
+    homepage = "https://github.com/DaveMDS/python-efl";
     platforms = platforms.linux;
     license = with licenses; [ gpl3 lgpl3 ];
     maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx romildo ];
diff --git a/pkgs/development/python-modules/rstcheck/default.nix b/pkgs/development/python-modules/rstcheck/default.nix
index d109a6cce74..606b2879908 100644
--- a/pkgs/development/python-modules/rstcheck/default.nix
+++ b/pkgs/development/python-modules/rstcheck/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "rstcheck";
-  version = "v3.3.1";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "myint";
     repo = pname;
-    rev = version;
+    rev = "v${version}";
     sha256 = "sha256-4AhENuT+LtUMCi+aaI/rKa2gHti8sKGLdVGjdRithXI=";
   };
 
diff --git a/pkgs/development/python-modules/xkcdpass/default.nix b/pkgs/development/python-modules/xkcdpass/default.nix
index f74332e5364..5aac18d2107 100644
--- a/pkgs/development/python-modules/xkcdpass/default.nix
+++ b/pkgs/development/python-modules/xkcdpass/default.nix
@@ -1,24 +1,40 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytestCheckHook
 , installShellFiles
+, pytestCheckHook
+, pythonAtLeast
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "xkcdpass";
   version = "1.19.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c5a2e948746da6fe504e8404284f457d8e98da6df5047c6bb3f71b18882e9d2a";
+    hash = "sha256-xaLpSHRtpv5QToQEKE9FfY6Y2m31BHxrs/cbGIgunSo=";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [
+    "xkcdpass"
+  ];
 
-  pythonImportsCheck = [ "xkcdpass" ];
+  disabledTests = lib.optionals (pythonAtLeast "3.10") [
+    # https://github.com/redacted/XKCD-password-generator/issues/138
+    "test_entropy_printout_valid_input"
+  ];
 
   postInstall = ''
     installManPage *.?
@@ -27,7 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generate secure multiword passwords/passphrases, inspired by XKCD";
-    homepage = "https://pypi.python.org/pypi/xkcdpass/";
+    homepage = "https://github.com/redacted/XKCD-password-generator";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
   };
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index 218c2edd0ac..fdee7ace495 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "0.20.0";
+  version = "0.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DvLrytLp28TVFVdkmWg19cC2VRetFcSx7dmsO4HQqVo=";
+    hash = "sha256-JstIHc61TFQEgRHr54N4Doq6ML0EcIcDGTEJ/tbrC2A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zfec/default.nix b/pkgs/development/python-modules/zfec/default.nix
index 1cb2780cc94..f91706b97d1 100644
--- a/pkgs/development/python-modules/zfec/default.nix
+++ b/pkgs/development/python-modules/zfec/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "zfec";
-  version = "1.5.5";
+  version = "1.5.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6033b2f3cc3edacf3f7eeed5f258c1ebf8a1d7e5e35b623db352512ce564e5ca";
+    sha256 = "sha256-TuUZvg3MfaLohIK8/Av5d6Ql4dfoJ4z1u7uNAPiir7Y=";
   };
 
   propagatedBuildInputs = [ pyutil ];
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 1bef8cd0758..d5d393ee96e 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -44,13 +44,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "radare2";
-  version = "5.6.2";
+  version = "5.6.4";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "sha256-R53S2+v0qCY5Q7Uf2gQ4veaOzYN2iE6F00+ERvknD2g=";
+    sha256 = "sha256-rqGlp9fHTF1z8A+DROYfzHXi5xfLMdUWzssGN5uHQmE=";
   };
 
   preBuild = ''
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index 67433ab5d88..972d3199aa3 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -43,13 +43,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "github-runner";
-  version = "2.287.1";
+  version = "2.288.0";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
     rev = "v${version}";
-    hash = "sha256-4SPrtX3j8blWTYnSkD2Z7IecZvI4xdAqHRJ1lBM0aAo=";
+    hash = "sha256-vl8p+isoK+yczmsMO2YjnmJQW/k0jLgCUbhQa/wG650=";
   };
 
   nativeBuildInputs = [
@@ -184,6 +184,11 @@ stdenv.mkDerivation rec {
       "EnsureDotnetsdkPowershellDownloadScriptUpToDate"
     ]
     ++ [ "GitHub.Runner.Common.Tests.Listener.RunnerL0.TestRunOnceHandleUpdateMessage" ]
+    # Tests for trimmed runner packages which aim at reducing the update size. Not relevant for Nix.
+    ++ map (x: "GitHub.Runner.Common.Tests.PackagesTrimL0.${x}") [
+      "RunnerLayoutParts_CheckExternalsHash"
+      "RunnerLayoutParts_CheckDotnetRuntimeHash"
+    ]
     ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
       # "JavaScript Actions in Alpine containers are only supported on x64 Linux runners. Detected Linux Arm64"
       "GitHub.Runner.Common.Tests.Worker.StepHostL0.DetermineNodeRuntimeVersionInAlpineContainerAsync"
diff --git a/pkgs/development/tools/database/prisma-engines/default.nix b/pkgs/development/tools/database/prisma-engines/default.nix
index eee49d1c6fc..48456166b92 100644
--- a/pkgs/development/tools/database/prisma-engines/default.nix
+++ b/pkgs/development/tools/database/prisma-engines/default.nix
@@ -10,19 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "prisma-engines";
-  version = "3.8.0";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
     owner = "prisma";
     repo = "prisma-engines";
     rev = version;
-    sha256 = "sha256-pP5gNWRucr2rJqBPBt4Y/akf7tABFWhmr3EWC3/kj+g=";
+    sha256 = "sha256-0m0RjIasEGB9QxZc7wKCMLnxHXkSlvCDA2QWa87mRRs=";
   };
 
   # Use system openssl.
   OPENSSL_NO_VENDOR = 1;
 
-  cargoSha256 = "sha256-F105SOFWEhFVGMmPOEdBZwhNHCYkRh1HI7fESzL2uQw=";
+  cargoSha256 = "sha256-KNQa+wLLl4abz48QKYkWu7A+FTGIyB+1EWAnLuWpJwc=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix
index bc77416896d..050b971af94 100644
--- a/pkgs/development/tools/just/default.nix
+++ b/pkgs/development/tools/just/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Q5ROUXOeqZfIZdrYwP3uaCy+Nh1FggJRUaNF0mMN7d4=";
+    sha256 = "sha256-ssc6djhSk0xV4jdlTmehWX6UMBPAuebtYlzWRZ/32mM=";
   };
 
-  cargoSha256 = "sha256-sCijb9/Of38IebulGmdqSewBRrOCH4RzFopFC0cOPrI=";
+  cargoSha256 = "sha256-ynYK37nCfIiy1CHBEQ/vMHOAPY/pp/lF/tSl9MJD7fY=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
diff --git a/pkgs/development/tools/misc/qtspim/default.nix b/pkgs/development/tools/misc/qtspim/default.nix
index 842cf0eb5b4..7329ad50967 100644
--- a/pkgs/development/tools/misc/qtspim/default.nix
+++ b/pkgs/development/tools/misc/qtspim/default.nix
@@ -1,23 +1,17 @@
 { lib, stdenv, fetchsvn, wrapQtAppsHook, qtbase, qttools, qmake, bison, flex, ... }:
 stdenv.mkDerivation rec {
   pname = "qtspim";
-  version = "9.1.22";
+  version = "9.1.23";
 
   src = fetchsvn {
     url = "https://svn.code.sf.net/p/spimsimulator/code/";
-    rev = "r739";
-    sha256 = "1kazfgrbmi4xq7nrkmnqw1280rhdyc1hmr82flrsa3g1b1rlmj1s";
+    rev = "r749";
+    sha256 = "0iazl7mlcilrdbw8gb98v868a8ldw2lmkn1xs8hnfvr93l6aj0rp";
   };
 
   postPatch = ''
     cd QtSpim
 
-    # Patches from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=qtspim
-    sed -i 's/zero_imm/is_zero_imm/g' parser_yacc.cpp
-    sed -i 's/^int data_dir/bool data_dir/g' parser_yacc.cpp
-    sed -i 's/^int text_dir/bool text_dir/g' parser_yacc.cpp
-    sed -i 's/^int parse_error_occurred/bool parse_error_occurred/g' parser_yacc.cpp
-
     substituteInPlace QtSpim.pro --replace /usr/lib/qtspim/lib $out/lib
     substituteInPlace menu.cpp \
       --replace /usr/lib/qtspim/bin/assistant ${qttools.dev}/bin/assistant \
diff --git a/pkgs/development/tools/packet/default.nix b/pkgs/development/tools/packet/default.nix
index 723e5d8bb2d..173ff4770da 100644
--- a/pkgs/development/tools/packet/default.nix
+++ b/pkgs/development/tools/packet/default.nix
@@ -3,12 +3,12 @@
 
 buildGoPackage rec {
   pname = "packet";
-  version = "v2.2.2";
+  version = "2.2.2";
 
   goPackagePath = "github.com/ebsarr/packet";
 
   src = fetchgit {
-    rev = version;
+    rev = "v${version}";
     url = "https://github.com/ebsarr/packet";
     sha256 = "18n8f2rlab4icb28k1b9gnh30zy382v792x07fmcdqq4nkw6wvwf";
   };
diff --git a/pkgs/development/tools/scenebuilder/default.nix b/pkgs/development/tools/scenebuilder/default.nix
index 3ae31bbadb9..77928a1f22a 100644
--- a/pkgs/development/tools/scenebuilder/default.nix
+++ b/pkgs/development/tools/scenebuilder/default.nix
@@ -64,11 +64,11 @@ let
   '';
 
   desktopItem = makeDesktopItem {
-    name = "Scene Builder";
+    name = "scenebuilder";
     exec = "scenebuilder";
     icon = "scenebuilder";
     comment = "A visual, drag'n'drop, layout tool for designing JavaFX application user interfaces.";
-    desktopName = pname;
+    desktopName = "Scene Builder";
     mimeTypes = [ "application/java" "application/java-vm" "application/java-archive" ];
     categories = [ "Development" ];
   };
diff --git a/pkgs/development/tools/wp-cli/default.nix b/pkgs/development/tools/wp-cli/default.nix
index 8d8b1a004d5..9ee452b26f9 100644
--- a/pkgs/development/tools/wp-cli/default.nix
+++ b/pkgs/development/tools/wp-cli/default.nix
@@ -1,19 +1,25 @@
-{ stdenv, lib, fetchurl, writeText, php, makeWrapper }:
+{ stdenv
+, lib
+, fetchurl
+, formats
+, installShellFiles
+, makeWrapper
+, php
+}:
+
 let
-  version = "2.5.0";
+  version = "2.6.0";
 
   completion = fetchurl {
     url = "https://raw.githubusercontent.com/wp-cli/wp-cli/v${version}/utils/wp-completion.bash";
-    sha256 = "sha256-RDygYQzK6NLWrOug7EqnkpuH7Wz1T2Zq/tGNZjoYo5U=";
+    hash = "sha256-RDygYQzK6NLWrOug7EqnkpuH7Wz1T2Zq/tGNZjoYo5U=";
   };
 
-  ini = writeText "php.ini" ''
-    [PHP]
-    memory_limit = -1 ; no limit as composer uses a lot of memory
+  ini = (formats.ini { }).generate "php.ini" {
+    PHP.memory_limit = -1; # no limit as composer uses a lot of memory
+    Phar."phar.readonly" = "Off";
+  };
 
-    [Phar]
-    phar.readonly = Off
-  '';
 in
 stdenv.mkDerivation rec {
   pname = "wp-cli";
@@ -21,19 +27,18 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/wp-cli/wp-cli/releases/download/v${version}/${pname}-${version}.phar";
-    sha256 = "sha256-vghT6fRD84SFZgcIcdNE6K2B6x4V0V3PkyS0p14nJ4k=";
+    hash = "sha256-0WZSjKtgvIIpwGcp5wc4OPu6aNaytXRQTLAniDXIeIg=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   buildCommand = ''
     dir=$out/share/wp-cli
-    mkdir -p $out/bin $dir
-
     install -Dm444 ${src}        $dir/wp-cli
     install -Dm444 ${ini}        $dir/php.ini
-    install -Dm444 ${completion} $out/share/bash-completion/completions/wp
+    installShellCompletion --bash --name wp ${completion}
 
+    mkdir -p $out/bin
     makeWrapper ${lib.getBin php}/bin/php $out/bin/wp \
       --add-flags "-c $dir/php.ini" \
       --add-flags "-f $dir/wp-cli"
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 483523e1807..bfe18fc4758 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.20.2";
+  version = "4.21.1";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     repo = "yq";
     rev = "v${version}";
-    sha256 = "sha256-vhHT9re35aT+TUYhl4rxv4PE/sd7Vp1PoFbS8s5lWLE=";
+    sha256 = "sha256-283xe7FVHYSsRl4cZD7WDzIW1gqNAFsNrWYJkthZheU=";
   };
 
-  vendorSha256 = "sha256-samz70Dybu/Xf9+ftgIKgd2pyQcXw6Ybs/0oJN47IFE=";
+  vendorSha256 = "sha256-F11FnDYJ59aKrdRXDPpKlhX52yQXdaN1sblSkVI2j9w=";
 
   doCheck = false;
 
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 2ab433d79b6..7de71132d6a 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.300";
+  version = "0.0.301";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "sha256-hwFnS8GLqGS28AdBgpIn2gRCKgJQSALDVLh5QdObV6g=";
+    sha256 = "sha256-UwouKnUfEcYpwtLXxwe93mHzVvj/+72FSQ0OW55oztE=";
   };
 
   preBuild = ''
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-o5c3wbETEwnQ7IH8YM0xHSCXTnWTvZ5kvqRqoA3QkGc=";
+  vendorSha256 = "sha256-VKX/Wt7CQy3w4Zv51M/IF1RIPpn7nTCL1T6jJ+oxti4=";
 
   doCheck = false;
 
diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix
index dd044656534..b7eae5e5acd 100644
--- a/pkgs/games/domination/default.nix
+++ b/pkgs/games/domination/default.nix
@@ -11,13 +11,13 @@
 
 let
   desktopItem = makeDesktopItem {
-    name = "Domination";
+    name = "domination";
     desktopName = "Domination";
     exec = "domination";
     icon = "domination";
   };
   editorDesktopItem = makeDesktopItem {
-    name = "Domination Map Editor";
+    name = "domination-map-editor";
     desktopName = "Domination Map Editor";
     exec = "domination-map-editor";
     icon = "domination";
diff --git a/pkgs/games/lunar-client/default.nix b/pkgs/games/lunar-client/default.nix
index dceb9755fa2..fbebe85cf00 100644
--- a/pkgs/games/lunar-client/default.nix
+++ b/pkgs/games/lunar-client/default.nix
@@ -5,7 +5,7 @@ let
   version = "2.9.3";
 
   desktopItem = makeDesktopItem {
-    name = "Lunar Client";
+    name = "lunar-client";
     exec = "lunar-client";
     icon = "lunarclient";
     comment = "Minecraft 1.7, 1.8, 1.12, 1.15, and 1.16 Client";
diff --git a/pkgs/misc/screensavers/physlock/default.nix b/pkgs/misc/screensavers/physlock/default.nix
index d25a777e650..b5e9ba8d2b6 100644
--- a/pkgs/misc/screensavers/physlock/default.nix
+++ b/pkgs/misc/screensavers/physlock/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub, pam, systemd }:
 
 stdenv.mkDerivation rec {
-  version = "v13";
+  version = "13";
   pname = "physlock";
   src = fetchFromGitHub {
     owner = "muennich";
     repo = pname;
-    rev = version;
+    rev = "v${version}";
     sha256 = "1mz4xxjip5ldiw9jgfq9zvqb6w10bcjfx6939w1appqg8f521a7s";
   };
 
diff --git a/pkgs/os-specific/linux/lsiutil/default.nix b/pkgs/os-specific/linux/lsiutil/default.nix
index f88cdcda523..d880e6a60e0 100644
--- a/pkgs/os-specific/linux/lsiutil/default.nix
+++ b/pkgs/os-specific/linux/lsiutil/default.nix
@@ -14,12 +14,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-aTi+EogY1aDWYq3anjRkjz1mzINVfUPQbOPHthxrvS4=";
   };
 
-  buildPhase = ''
-    runHook preBuild
-
+  postPatch = ''
     substituteInPlace lsiutil.c \
       --replace /sbin/modprobe "${kmod}/bin/modprobe" \
       --replace /bin/mknod "${coreutils}/bin/mknod"
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
     gcc -Wall -O lsiutil.c -o lsiutil
 
     runHook postBuild
diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix
index 5e17519d4ce..495a7094f9b 100644
--- a/pkgs/pkgs-lib/formats.nix
+++ b/pkgs/pkgs-lib/formats.nix
@@ -14,6 +14,15 @@ rec {
       # The description needs to be overwritten for recursive types
       type = ...;
 
+      # Utility functions for convenience, or special interactions with the
+      # format (optional)
+      lib = {
+        exampleFunction = ...
+        # Types specific to the format (optional)
+        types = { ... };
+        ...
+      };
+
       # generate :: Name -> Value -> Path
       # A function for generating a file with a value of such a type
       generate = ...;
@@ -147,4 +156,202 @@ rec {
     '';
 
   };
+
+  /* For configurations of Elixir project, like config.exs or runtime.exs
+
+    Most Elixir project are configured using the [Config] Elixir DSL
+
+    Since Elixir has more types than Nix, we need a way to map Nix types to
+    more than 1 Elixir type. To that end, this format provides its own library,
+    and its own set of types.
+
+    To be more detailed, a Nix attribute set could correspond in Elixir to a
+    [Keyword list] (the more common type), or it could correspond to a [Map].
+
+    A Nix string could correspond in Elixir to a [String] (also called
+    "binary"), an [Atom], or a list of chars (usually discouraged).
+
+    A Nix array could correspond in Elixir to a [List] or a [Tuple].
+
+    Some more types exists, like records, regexes, but since they are less used,
+    we can leave the `mkRaw` function as an escape hatch.
+
+    For more information on how to use this format in modules, please refer to
+    the Elixir section of the Nixos documentation.
+
+    TODO: special Elixir values doesn't show up nicely in the documentation
+
+    [Config]: <https://hexdocs.pm/elixir/Config.html>
+    [Keyword list]: <https://hexdocs.pm/elixir/Keyword.html>
+    [Map]: <https://hexdocs.pm/elixir/Map.html>
+    [String]: <https://hexdocs.pm/elixir/String.html>
+    [Atom]: <https://hexdocs.pm/elixir/Atom.html>
+    [List]: <https://hexdocs.pm/elixir/List.html>
+    [Tuple]: <https://hexdocs.pm/elixir/Tuple.html>
+  */
+  elixirConf = { elixir ? pkgs.elixir }:
+    with lib; let
+      toElixir = value: with builtins;
+        if value == null then "nil" else
+        if value == true then "true" else
+        if value == false then "false" else
+        if isInt value || isFloat value then toString value else
+        if isString value then string value else
+        if isAttrs value then attrs value else
+        if isList value then list value else
+        abort "formats.elixirConf: should never happen (value = ${value})";
+
+      escapeElixir = escape [ "\\" "#" "\"" ];
+      string = value: "\"${escapeElixir value}\"";
+
+      attrs = set:
+        if set ? _elixirType then specialType set
+        else
+          let
+            toKeyword = name: value: "${name}: ${toElixir value}";
+            keywordList = concatStringsSep ", " (mapAttrsToList toKeyword set);
+          in
+          "[" + keywordList + "]";
+
+      listContent = values: concatStringsSep ", " (map toElixir values);
+
+      list = values: "[" + (listContent values) + "]";
+
+      specialType = { value, _elixirType }:
+        if _elixirType == "raw" then value else
+        if _elixirType == "atom" then value else
+        if _elixirType == "map" then elixirMap value else
+        if _elixirType == "tuple" then tuple value else
+        abort "formats.elixirConf: should never happen (_elixirType = ${_elixirType})";
+
+      elixirMap = set:
+        let
+          toEntry = name: value: "${toElixir name} => ${toElixir value}";
+          entries = concatStringsSep ", " (mapAttrsToList toEntry set);
+        in
+        "%{${entries}}";
+
+      tuple = values: "{${listContent values}}";
+
+      toConf = values:
+        let
+          keyConfig = rootKey: key: value:
+            "config ${rootKey}, ${key}, ${toElixir value}";
+          keyConfigs = rootKey: values: mapAttrsToList (keyConfig rootKey) values;
+          rootConfigs = flatten (mapAttrsToList keyConfigs values);
+        in
+        ''
+          import Config
+
+          ${concatStringsSep "\n" rootConfigs}
+        '';
+    in
+    {
+      type = with lib.types; let
+        valueType = nullOr
+          (oneOf [
+            bool
+            int
+            float
+            str
+            (attrsOf valueType)
+            (listOf valueType)
+          ]) // {
+          description = "Elixir value";
+        };
+      in
+      attrsOf (attrsOf (valueType));
+
+      lib =
+        let
+          mkRaw = value: {
+            inherit value;
+            _elixirType = "raw";
+          };
+
+        in
+        {
+          inherit mkRaw;
+
+          /* Fetch an environment variable at runtime, with optional fallback
+          */
+          mkGetEnv = { envVariable, fallback ? null }:
+            mkRaw "System.get_env(${toElixir envVariable}, ${toElixir fallback})";
+
+          /* Make an Elixir atom.
+
+            Note: lowercase atoms still need to be prefixed by ':'
+          */
+          mkAtom = value: {
+            inherit value;
+            _elixirType = "atom";
+          };
+
+          /* Make an Elixir tuple out of a list.
+          */
+          mkTuple = value: {
+            inherit value;
+            _elixirType = "tuple";
+          };
+
+          /* Make an Elixir map out of an attribute set.
+          */
+          mkMap = value: {
+            inherit value;
+            _elixirType = "map";
+          };
+
+          /* Contains Elixir types. Every type it exports can also be replaced
+             by raw Elixir code (i.e. every type is `either type rawElixir`).
+
+             It also reexports standard types, wrapping them so that they can
+             also be raw Elixir.
+          */
+          types = with lib.types; let
+            isElixirType = type: x: (x._elixirType or "") == type;
+
+            rawElixir = mkOptionType {
+              name = "rawElixir";
+              description = "raw elixir";
+              check = isElixirType "raw";
+            };
+
+            elixirOr = other: either other rawElixir;
+          in
+          {
+            inherit rawElixir elixirOr;
+
+            atom = elixirOr (mkOptionType {
+              name = "elixirAtom";
+              description = "elixir atom";
+              check = isElixirType "atom";
+            });
+
+            tuple = elixirOr (mkOptionType {
+              name = "elixirTuple";
+              description = "elixir tuple";
+              check = isElixirType "tuple";
+            });
+
+            map = elixirOr (mkOptionType {
+              name = "elixirMap";
+              description = "elixir map";
+              check = isElixirType "map";
+            });
+            # Wrap standard types, since anything in the Elixir configuration
+            # can be raw Elixir
+          } // lib.mapAttrs (_name: type: elixirOr type) lib.types;
+        };
+
+      generate = name: value: pkgs.runCommandNoCC name
+        {
+          value = toConf value;
+          passAsFile = [ "value" ];
+          nativeBuildInputs = [ elixir ];
+        } ''
+        cp "$valuePath" "$out"
+        mix format "$out"
+      '';
+    };
+
 }
diff --git a/pkgs/servers/bird/default.nix b/pkgs/servers/bird/default.nix
index 34d1aab3286..5c5fec3d892 100644
--- a/pkgs/servers/bird/default.nix
+++ b/pkgs/servers/bird/default.nix
@@ -13,7 +13,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ readline libssh ];
 
   patches = [
-    (./. + "/dont-create-sysconfdir-${builtins.substring 0 1 version}.patch")
+    ./dont-create-sysconfdir-2.patch
+    (fetchurl {
+      url = "https://gitlab.nic.cz/labs/bird/-/commit/fcb4dd0c831339c4374ace17d8f2ae6ebfeed279.patch";
+      sha256 = "sha256-PEgpRnOGLa1orHJDEHlblnVhBVv7XOKPR70M1wUMxMQ=";
+    })
   ];
 
   CPP="${stdenv.cc.targetPrefix}cpp -E";
diff --git a/pkgs/servers/bird/dont-create-sysconfdir-1.patch b/pkgs/servers/bird/dont-create-sysconfdir-1.patch
deleted file mode 100644
index 8f62670aee9..00000000000
--- a/pkgs/servers/bird/dont-create-sysconfdir-1.patch
+++ /dev/null
@@ -1,6 +0,0 @@
---- a/tools/Makefile.in
-+++ b/tools/Makefile.in
-@@ -68,2 +68,2 @@
- install: all
--	$(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/$(runstatedir)
-+	$(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir)
diff --git a/pkgs/servers/ftp/vsftpd/default.nix b/pkgs/servers/ftp/vsftpd/default.nix
index 3aad0460b3f..3a3517f4f23 100644
--- a/pkgs/servers/ftp/vsftpd/default.nix
+++ b/pkgs/servers/ftp/vsftpd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libcap, openssl, pam }:
+{ lib, stdenv, fetchurl, libcap, libseccomp, openssl, pam, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "vsftpd";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-JrYCrkVLC6bZnvRKCba54N+n9nIoEGc23x8njHC8kdM=";
   };
 
-  buildInputs = [ libcap openssl pam ];
+  buildInputs = [ libcap openssl libseccomp pam ];
 
   patches = [ ./CVE-2015-1419.patch ];
 
@@ -30,10 +30,14 @@ stdenv.mkDerivation rec {
     "CC=${stdenv.cc.targetPrefix}cc"
   ];
 
-  NIX_LDFLAGS = "-lcrypt -lssl -lcrypto -lpam -lcap";
+  NIX_LDFLAGS = "-lcrypt -lssl -lcrypto -lpam -lcap -lseccomp";
 
   enableParallelBuilding = true;
 
+  passthru = {
+    tests = { inherit (nixosTests) vsftpd; };
+  };
+
   meta = with lib; {
     description = "A very secure FTP daemon";
     license = licenses.gpl2;
diff --git a/pkgs/servers/roon-server/default.nix b/pkgs/servers/roon-server/default.nix
index 4a619539776..b92d871852d 100644
--- a/pkgs/servers/roon-server/default.nix
+++ b/pkgs/servers/roon-server/default.nix
@@ -15,7 +15,7 @@
 }:
 stdenv.mkDerivation rec {
   pname = "roon-server";
-  version = "1.8-898";
+  version = "1.8-903";
 
   src =
     let
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     in
     fetchurl {
       url = "http://download.roonlabs.com/builds/RoonServer_linuxx64_${urlVersion}.tar.bz2";
-      sha256 = "sha256-khp2E5BYb7bGEW6xfCKEqYDqAdElOFLbAkaHjILfyqo=";
+      sha256 = "sha256-FkB3sh1uwOctBOAW7eO8HFNr9a9RG3Yq4hKKscYYER4=";
     };
 
   dontConfigure = true;
diff --git a/pkgs/tools/admin/pebble/default.nix b/pkgs/tools/admin/pebble/default.nix
index 1fb902a8c80..436e77ed5f1 100644
--- a/pkgs/tools/admin/pebble/default.nix
+++ b/pkgs/tools/admin/pebble/default.nix
@@ -4,17 +4,16 @@
 , nixosTests
 }:
 
-let
-  version = "v2.3.0";
+buildGoPackage rec {
   pname = "pebble";
-in buildGoPackage {
-  inherit pname version;
+  version = "2.3.0";
+
   goPackagePath = "github.com/letsencrypt/${pname}";
 
   src = fetchFromGitHub {
     owner = "letsencrypt";
     repo = pname;
-    rev = version;
+    rev = "v${version}";
     sha256 = "1piwzzfqsdx6s2niczzp4mf4r3qn9nfdgpn7882g52cmmm0vzks2";
   };
 
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index f32a11b73a3..7f7d6ed51d6 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.24.0";
+  version = "0.24.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kpM/9bRUpcqF7dXlCS01Fn8TBfeW9Rr92pBd6w6HA30=";
+    sha256 = "sha256-/XkHvXzF7SG5niIknd+wh1Uc0ZbfrklgTkZigjz3aNY=";
   };
 
-  vendorSha256 = "sha256-lLIlPzmXdz7kY7EEb+l4hUvM7y+1pDNK06/0lB0g2SM=";
+  vendorSha256 = "sha256-C3JpjDXQ6sUnz9ixO3w2aP3G122nYHezYrNW/FZqlJQ=";
 
   excludedPackages = "misc";
 
diff --git a/pkgs/tools/admin/winbox/default.nix b/pkgs/tools/admin/winbox/default.nix
index 38e76064b18..c845d890ce5 100644
--- a/pkgs/tools/admin/winbox/default.nix
+++ b/pkgs/tools/admin/winbox/default.nix
@@ -14,15 +14,15 @@ let
   inherit (lib) last splitString;
 
   pname = "winbox";
-  version = "3.34";
+  version = "3.35";
   name = "${pname}-${version}";
 
   executable = fetchurl (if use64 then {
     url = "https://download.mikrotik.com/winbox/${version}/${pname}64.exe";
-    sha256 = "1zr5qvdnr98xhwlhjikdnx3l5zyx6qnvxqy9p2hrayi0w4w5wmba";
+    sha256 = "0jigjs4paci6h897hl1046ks5f812jfb2ihnp78lbah0294shjnj";
   } else {
     url = "https://download.mikrotik.com/winbox/${version}/${pname}.exe";
-    sha256 = "1d5zif0f4xfiipjs281xwa3f3blfxbgzqppv3gg3rh5ivxwvaf6g";
+    sha256 = "1a3cjhvh2z4n767aqqkv3a7wlda34ssgx9acigdcszgvbksbav1f";
   });
   # This is from the winbox AUR package:
   # https://aur.archlinux.org/cgit/aur.git/tree/winbox64?h=winbox64&id=8edd93792af84e87592e8645ca09e9795931e60e
diff --git a/pkgs/tools/graphics/snapdragon-profiler/default.nix b/pkgs/tools/graphics/snapdragon-profiler/default.nix
index 298975ef18b..b48c0a6d16a 100644
--- a/pkgs/tools/graphics/snapdragon-profiler/default.nix
+++ b/pkgs/tools/graphics/snapdragon-profiler/default.nix
@@ -27,7 +27,7 @@
 
 stdenv.mkDerivation rec {
   pname = "snapdragon-profiler";
-  version = "v2021.2";
+  version = "2021.2";
 
   src = archive;
 
diff --git a/pkgs/tools/graphics/structure-synth/default.nix b/pkgs/tools/graphics/structure-synth/default.nix
index 5f6e655882a..ab32657236a 100644
--- a/pkgs/tools/graphics/structure-synth/default.nix
+++ b/pkgs/tools/graphics/structure-synth/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl, qt4, qmake4Hook, unzip, libGLU, makeWrapper }:
 
-stdenv.mkDerivation {
-
+stdenv.mkDerivation rec {
   pname = "structure-synth";
-  version = "v1.5";
+  version = "1.5.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/structuresynth/StructureSynth-Source-v1.5.0.zip";
+    url = "mirror://sourceforge/structuresynth/StructureSynth-Source-v${version}.zip";
     sha256 = "1kiammx46719az6jzrav8yrwz82nk4m72ybj0kpbnvp9wfl3swbb";
   };
 
diff --git a/pkgs/tools/inputmethods/remote-touchpad/default.nix b/pkgs/tools/inputmethods/remote-touchpad/default.nix
index 0028fa6b7b2..4df476eb5cd 100644
--- a/pkgs/tools/inputmethods/remote-touchpad/default.nix
+++ b/pkgs/tools/inputmethods/remote-touchpad/default.nix
@@ -9,19 +9,19 @@
 
 buildGoModule rec {
   pname = "remote-touchpad";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "unrud";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XyE8N+YVwfgxToKkhpe8zJ0e3HFDpKt7cfERxWCfbfU=";
+    sha256 = "sha256-GjXcQyv55yJSAFeNNB+YeCVWav7vMGo/d1FCPoujYjA=";
   };
 
   buildInputs = [ libX11 libXi libXt libXtst ];
   tags = [ "portal,x11" ];
 
-  vendorSha256 = "sha256-zTx38kW/ylXXML73C2sFQciV2y3+qbO0S/ZdkiEh5Qs=";
+  vendorSha256 = "sha256-WG8OjtfVemtmHkrMg4O0oofsjtFKmIvcmCn9AYAGIrc=";
 
   meta = with lib; {
     description = "Control mouse and keyboard from the webbrowser of a smartphone.";
diff --git a/pkgs/tools/misc/txr/default.nix b/pkgs/tools/misc/txr/default.nix
index d8ba0861120..4b521ed9dda 100644
--- a/pkgs/tools/misc/txr/default.nix
+++ b/pkgs/tools/misc/txr/default.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, fetchurl, bison, flex, libffi, coreutils }:
+{ lib, stdenv, fetchurl, libffi, coreutils }:
 
 stdenv.mkDerivation rec {
   pname = "txr";
-  version = "273";
+  version = "274";
 
   src = fetchurl {
     url = "http://www.kylheku.com/cgit/txr/snapshot/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-l0o60NktIsKn720kO8xzySQBMAVrfYhhWZ8L5K8QrUg=";
+    sha256 = "sha256-bWgz0kmPLN0V0rkFRiCqxkBjhN8FV9fL+Vu8GSw9Ja4=";
   };
 
-  nativeBuildInputs = [ bison flex ];
   buildInputs = [ libffi ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/networking/boundary/default.nix b/pkgs/tools/networking/boundary/default.nix
index f22817c3b3a..3745856a8c0 100644
--- a/pkgs/tools/networking/boundary/default.nix
+++ b/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.7.4";
+  version = "0.7.5";
 
   src =
     let
@@ -12,11 +12,13 @@ stdenv.mkDerivation rec {
         x86_64-linux = "linux_amd64";
         aarch64-linux = "linux_arm64";
         x86_64-darwin = "darwin_amd64";
+        aarch64-darwin = "darwin_arm64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-5owLce0A7AwKDXB/JsUJZeHJHhrHT4/kA6XG+ZwhuyU=";
-        aarch64-linux = "sha256-WDFIr+GOip70Di5u9fRu2lVWPMJe9urYTcuc2hTMD7g=";
-        x86_64-darwin = "sha256-FGsY7+bC7n3fu1SsLl92FPytj8MgL4nT95CC6GM6vss=";
+        x86_64-linux = "sha256-wqNeeEQhR8cj7Gpbzp7UQV0j+w0peo41uKqgK9BoLH4=";
+        aarch64-linux = "sha256-HK/6eMBWUW1IbYE5RpInhcQuIw16X9vQEZmOBje9Yzk=";
+        x86_64-darwin = "sha256-ghgkPlEN9DHFviQzcGS/+oG+9Qqy2AfJ2IEyiSMJwwY=";
+        aarch64-darwin = "sha256-F4iOCxAm8s34KktuS5PRPkIg9A0179H6zlOM3OuTyUw=";
       };
     in
     fetchzip {
@@ -60,7 +62,6 @@ stdenv.mkDerivation rec {
       and does not require an agent to be installed on every end host.
     '';
     license = licenses.mpl20;
-    maintainers = with maintainers; [ jk ];
-    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ jk techknowlogick ];
   };
 }
diff --git a/pkgs/tools/networking/boundary/update.sh b/pkgs/tools/networking/boundary/update.sh
index 43733930710..0533c07967c 100755
--- a/pkgs/tools/networking/boundary/update.sh
+++ b/pkgs/tools/networking/boundary/update.sh
@@ -31,9 +31,11 @@ BOUNDARY_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/ha
 BOUNDARY_LINUX_X64_SHA256=$(fetch_arch "$BOUNDARY_VER" "linux_amd64")
 BOUNDARY_DARWIN_X64_SHA256=$(fetch_arch "$BOUNDARY_VER" "darwin_amd64")
 BOUNDARY_LINUX_AARCH64_SHA256=$(fetch_arch "$BOUNDARY_VER" "linux_arm64")
+BOUNDARY_DARWIN_AARCH64_SHA256=$(fetch_arch "$BOUNDARY_VER" "darwin_arm64")
 
 sed -i "s/version = \".*\"/version = \"$BOUNDARY_VER\"/" "$NIX_DRV"
 
 replace_sha "x86_64-linux" "$BOUNDARY_LINUX_X64_SHA256"
 replace_sha "x86_64-darwin" "$BOUNDARY_DARWIN_X64_SHA256"
 replace_sha "aarch64-linux" "$BOUNDARY_LINUX_AARCH64_SHA256"
+replace_sha "aarch64-darwin" "$BOUNDARY_DARWIN_AARCH64_SHA256"
diff --git a/pkgs/tools/networking/davix/default.nix b/pkgs/tools/networking/davix/default.nix
index 66c912b47f1..63fc1cffd9a 100644
--- a/pkgs/tools/networking/davix/default.nix
+++ b/pkgs/tools/networking/davix/default.nix
@@ -30,7 +30,7 @@ let
 in
 stdenv.mkDerivation rec {
   version = "0.8.0";
-  pname = "davix";
+  pname = "davix" + lib.optionalString enableThirdPartyCopy "-copy";
   nativeBuildInputs = [ cmake pkg-config python3 ];
   buildInputs = [
     openssl
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   # "please ignore the GitHub-generated tarballs, as they are incomplete"
   # https://github.com/cern-fts/davix/releases/tag/R_0_8_0
   src = fetchurl {
-    url = "https://github.com/cern-fts/${pname}/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.gz";
+    url = "https://github.com/cern-fts/davix/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/davix-${version}.tar.gz";
     sha256 = "LxCNoECKg/tbnwxoFQ02C6cz5LOg/imNRbDTLSircSQ=";
   };
 
diff --git a/pkgs/tools/nix/alejandra/default.nix b/pkgs/tools/nix/alejandra/default.nix
index c8483927b7f..e42a92e6224 100644
--- a/pkgs/tools/nix/alejandra/default.nix
+++ b/pkgs/tools/nix/alejandra/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "alejandra";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "kamadorueda";
     repo = "alejandra";
     rev = version;
-    sha256 = "sha256-WgVEI+io05sUIMxdsYOWOJOVNeTDpDiDeTTbxoDFHZU=";
+    sha256 = "sha256-jhmNDzNICcXc0p+Esi+uWCL1wOkGDyrJGBa0IEnkE08=";
   };
 
-  cargoSha256 = "sha256-AO/LTW9ogDRPns2uPXOvkXJUfeeI+beT7qUGi8IHiwk=";
+  cargoSha256 = "sha256-4EtiF2W0J0OeguLDfjJbpHQKUZNtejxbTF1gNiP7SEQ=";
 
   passthru.tests = {
     version = testVersion { package = alejandra; };
diff --git a/pkgs/tools/system/pcstat/default.nix b/pkgs/tools/system/pcstat/default.nix
index d01b08a1434..02a214259c7 100644
--- a/pkgs/tools/system/pcstat/default.nix
+++ b/pkgs/tools/system/pcstat/default.nix
@@ -1,19 +1,17 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage {
-  pname = "pcstat-unstable";
-  version = "2017-05-28";
-
-  goPackagePath = "github.com/tobert/pcstat";
+buildGoModule rec {
+  pname = "pcstat";
+  version = "0.0.1";
 
   src = fetchFromGitHub {
-    rev    = "91a7346e5b462a61e876c0574cb1ba331a6a5ac5";
-    owner  = "tobert";
-    repo   = "pcstat";
-    sha256 = "88853e42d16c05e580af4fb8aa815a84ea0fc43e3a25e19c85e649a5f5a2874c";
+    owner = "tobert";
+    repo = "pcstat";
+    rev = "v${version}";
+    sha256 = "sha256-rN6oqhvrzMBhwNLm8+r4rZWZYZUhOq2h764KVhSycNo=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-1y6rzarkFNX8G4E9FzCLfWxULbdNYK3DeelNCJ+7Y9Q=";
 
   meta = with lib; {
     description = "Page Cache stat: get page cache stats for files on Linux";
diff --git a/pkgs/tools/system/pcstat/deps.nix b/pkgs/tools/system/pcstat/deps.nix
deleted file mode 100644
index 809bde1122f..00000000000
--- a/pkgs/tools/system/pcstat/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "d38bf781f16e180a1b2ad82697d2f81d7b7ecfac";
-      sha256 = "0eedd518ab68c6dfd431a41709d9888bbc13ed31ff64d69dcbd947442b3aaa04";
-    };
-  }
-]
diff --git a/pkgs/tools/text/diffr/default.nix b/pkgs/tools/text/diffr/default.nix
index a77a5dc081e..844a09f0d58 100644
--- a/pkgs/tools/text/diffr/default.nix
+++ b/pkgs/tools/text/diffr/default.nix
@@ -2,12 +2,12 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "diffr";
-  version = "v0.1.4";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "mookid";
     repo = pname;
-    rev = version;
+    rev = "v${version}";
     sha256 = "18ks5g4bx6iz9hdjxmi6a41ncxpb1hnsscdlddp2gr40k3vgd0pa";
   };
 
diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index d66d3763c03..3f91a301fd1 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -16,7 +16,7 @@
 assert (doCheck && stdenv.isLinux) -> glibcLocales != null;
 
 stdenv.mkDerivation rec {
-  pname = "gawk";
+  pname = "gawk" + lib.optionalString interactive "-interactive";
   version = "5.1.1";
 
   src = fetchurl {
diff --git a/pkgs/tools/typesetting/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index 99ef9a8a71a..5ccc9ed1566 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -14,7 +14,7 @@
 # enable any extra features.
 
 stdenv.mkDerivation rec {
-  pname = "dblatex";
+  pname = "dblatex${lib.optionalString enableAllFeatures "-full"}";
   version = "0.3.12";
 
   src = fetchurl {
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 251a0af91f6..9b31abad94b 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -1436,6 +1436,7 @@ mapAliases ({
     plasma-systemmonitor plasma-thunderbolt plasma-vault plasma-workspace
     plasma-workspace-wallpapers polkit-kde-agent powerdevil qqc2-breeze-style
     sddm-kcm skanlite spectacle systemsettings xdg-desktop-portal-kde yakuake
+    zanshin
   ;
 
   inherit (plasma5Packages.thirdParty)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d84cbe9bb1d..47e717465f1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4074,7 +4074,7 @@ with pkgs;
 
   davix = callPackage ../tools/networking/davix { };
 
-  davix-copy = appendToName "copy" (davix.override { enableThirdPartyCopy = true; });
+  davix-copy = davix.override { enableThirdPartyCopy = true; };
 
   cantata = libsForQt5.callPackage ../applications/audio/cantata { };
 
@@ -5686,8 +5686,7 @@ with pkgs;
   };
   gawkextlib = callPackage ../tools/text/gawk/gawkextlib.nix {};
 
-  gawkInteractive = appendToName "interactive"
-    (gawk.override { interactive = true; });
+  gawkInteractive = gawk.override { interactive = true; };
 
   gawp = callPackage ../tools/misc/gawp { };
 
@@ -8090,9 +8089,9 @@ with pkgs;
     hdf5 = hdf5.override { usev110Api = true; };
   };
 
-  netcdf-mpi = appendToName "mpi" (netcdf.override {
+  netcdf-mpi = netcdf.override {
     hdf5 = hdf5-mpi.override { usev110Api = true; };
-  });
+  };
 
   netcdfcxx4 = callPackage ../development/libraries/netcdf-cxx4 { };
 
@@ -10610,7 +10609,7 @@ with pkgs;
 
   twurl = callPackage ../tools/misc/twurl { };
 
-  txr = callPackage ../tools/misc/txr { stdenv = clangStdenv; };
+  txr = callPackage ../tools/misc/txr { inherit (llvmPackages_latest) stdenv; };
 
   txt2man = callPackage ../tools/misc/txt2man { };
 
@@ -15771,9 +15770,7 @@ with pkgs;
   texinfo6_7 = callPackage ../development/tools/misc/texinfo/6.7.nix { }; # needed for gpm, iksemel and fwknop
   texinfo6 = callPackage ../development/tools/misc/texinfo/6.8.nix { };
   texinfo = texinfo6;
-  texinfoInteractive = appendToName "interactive" (
-    texinfo.override { interactive = true; }
-  );
+  texinfoInteractive = texinfo.override { interactive = true; };
 
   texi2html = callPackage ../development/tools/misc/texi2html { };
 
@@ -17291,9 +17288,7 @@ with pkgs;
 
   highfive = callPackage ../development/libraries/highfive { };
 
-  highfive-mpi = appendToName "mpi" (highfive.override {
-    hdf5 = hdf5-mpi;
-  });
+  highfive-mpi = highfive.override { hdf5 = hdf5-mpi; };
 
   hiredis = callPackage ../development/libraries/hiredis { };
 
@@ -20175,7 +20170,7 @@ with pkgs;
 
   sqlitecpp = callPackage ../development/libraries/sqlitecpp { };
 
-  sqlite-interactive = appendToName "interactive" (sqlite.override { interactive = true; }).bin;
+  sqlite-interactive = (sqlite.override { interactive = true; }).bin;
 
   sqlite-jdbc = callPackage ../servers/sql/sqlite/jdbc { };
 
@@ -22426,6 +22421,8 @@ with pkgs;
 
   gmailctl = callPackage ../applications/networking/gmailctl { };
 
+  gometer = callPackage ../applications/misc/gometer { };
+
   gomp = callPackage ../applications/version-management/gomp { };
 
   gomplate = callPackage ../development/tools/gomplate {};
@@ -23608,6 +23605,8 @@ with pkgs;
     inherit (nodePackages) svgo;
   };
 
+  emojipick = callPackage ../applications/misc/emojipick { };
+
   encode-sans = callPackage ../data/fonts/encode-sans { };
 
   envypn-font = callPackage ../data/fonts/envypn-font
@@ -26497,6 +26496,8 @@ with pkgs;
 
   i3-resurrect = python3Packages.callPackage ../applications/window-managers/i3/i3-resurrect.nix { };
 
+  i3-swallow = python3Packages.callPackage ../applications/window-managers/i3/swallow.nix { };
+
   i3blocks = callPackage ../applications/window-managers/i3/blocks.nix { };
 
   i3blocks-gaps = callPackage ../applications/window-managers/i3/blocks-gaps.nix { };
@@ -27325,7 +27326,7 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
   };
 
-  mercurialFull = appendToName "full" (mercurial.override { fullBuild = true; });
+  mercurialFull = mercurial.override { fullBuild = true; };
 
   merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };
 
@@ -27716,6 +27717,8 @@ with pkgs;
 
   pijuice = with python3Packages; toPythonApplication pijuice;
 
+  pinegrow = callPackage ../applications/editors/pinegrow { };
+
   ping = callPackage ../applications/networking/ping { };
 
   piper = callPackage ../os-specific/linux/piper { };
@@ -30179,8 +30182,6 @@ with pkgs;
 
   zammad = callPackage ../applications/networking/misc/zammad { };
 
-  zanshin = libsForQt5.callPackage ../applications/office/zanshin { };
-
   zathuraPkgs = callPackage ../applications/misc/zathura { };
   zathura = zathuraPkgs.zathuraWrapper;
 
@@ -31823,12 +31824,12 @@ with pkgs;
   octopus = callPackage ../applications/science/chemistry/octopus { };
 
   openlp = libsForQt5.callPackage ../applications/misc/openlp { };
-  openlpFull = appendToName "full" (openlp.override {
+  openlpFull = openlp.override {
     pdfSupport = true;
     presentationSupport = true;
     vlcSupport = true;
     gstreamerSupport = true;
-  });
+  };
 
   dkh = callPackage ../applications/science/chemistry/dkh { };
 
@@ -31980,13 +31981,9 @@ with pkgs;
 
   n3 = callPackage ../applications/science/biology/N3 { };
 
-  neuron = callPackage ../applications/science/biology/neuron {
-    python = null;
-  };
+  neuron = callPackage ../applications/science/biology/neuron { python = null; };
 
-  neuron-mpi = appendToName "mpi" (neuron.override {
-    useMpi = true;
-  });
+  neuron-mpi = neuron.override {useMpi = true; };
 
   neuron-full = neuron-mpi.override { python = python2; };
 
@@ -32036,9 +32033,7 @@ with pkgs;
 
   raxml = callPackage ../applications/science/biology/raxml { };
 
-  raxml-mpi = appendToName "mpi" (raxml.override {
-    useMpi = true;
-  });
+  raxml-mpi = raxml.override { useMpi = true; };
 
   sambamba = callPackage ../applications/science/biology/sambamba { };
 
@@ -33017,13 +33012,9 @@ with pkgs;
 
   dbacl = callPackage ../tools/misc/dbacl { };
 
-  dblatex = callPackage ../tools/typesetting/tex/dblatex {
-    enableAllFeatures = false;
-  };
+  dblatex = callPackage ../tools/typesetting/tex/dblatex { };
 
-  dblatexFull = appendToName "full" (dblatex.override {
-    enableAllFeatures = true;
-  });
+  dblatexFull = dblatex.override { enableAllFeatures = true; };
 
   dbus-map = callPackage ../tools/misc/dbus-map { };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index d0952f9c260..01b39a30e22 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1200,9 +1200,7 @@ in {
 
   binwalk = callPackage ../development/python-modules/binwalk { };
 
-  binwalk-full = appendToName "full" (self.binwalk.override {
-    visualizationSupport = true;
-  });
+  binwalk-full = self.binwalk.override { visualizationSupport = true; };
 
   biopython = callPackage ../development/python-modules/biopython { };