about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2022-09-26 09:31:22 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2022-09-26 09:31:22 +0200
commitde57d754a0a1b9b2760d09a97be983b52cf6de79 (patch)
tree10bc49dbb8ce5b84312eef1d74c409c6cc8591be
parentd2713c3294f1bfdd76fe96d30b8e9cb0b016d29c (diff)
parentff9793cfd1a25145a7e591af604675b3d6f68987 (diff)
downloadnixlib-de57d754a0a1b9b2760d09a97be983b52cf6de79.tar
nixlib-de57d754a0a1b9b2760d09a97be983b52cf6de79.tar.gz
nixlib-de57d754a0a1b9b2760d09a97be983b52cf6de79.tar.bz2
nixlib-de57d754a0a1b9b2760d09a97be983b52cf6de79.tar.lz
nixlib-de57d754a0a1b9b2760d09a97be983b52cf6de79.tar.xz
nixlib-de57d754a0a1b9b2760d09a97be983b52cf6de79.tar.zst
nixlib-de57d754a0a1b9b2760d09a97be983b52cf6de79.zip
Merge master into staging-next
-rw-r--r--maintainers/maintainer-list.nix24
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2211.section.xml8
-rw-r--r--nixos/doc/manual/release-notes/rl-2211.section.md2
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/monitoring/kthxbye.nix166
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/kthxbye.nix110
-rw-r--r--pkgs/applications/audio/fire/0001-Remove-FetchContent-usage.patch62
-rw-r--r--pkgs/applications/audio/fire/default.nix117
-rw-r--r--pkgs/applications/audio/miniplayer/default.nix4
-rw-r--r--pkgs/applications/audio/tidal-hifi/default.nix4
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix12
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names1
-rw-r--r--pkgs/applications/emulators/dolphin-emu/master.nix165
-rw-r--r--pkgs/applications/emulators/dolphin-emu/minizip-external-missing-include.patch18
-rw-r--r--pkgs/applications/emulators/pcsx2/default.nix8
-rw-r--r--pkgs/applications/misc/mangal/default.nix39
-rw-r--r--pkgs/applications/misc/pdfarranger/default.nix4
-rw-r--r--pkgs/applications/misc/streamdeck-ui/default.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/fractal-next/default.nix8
-rw-r--r--pkgs/applications/office/gnucash/default.nix4
-rw-r--r--pkgs/applications/science/biology/last/default.nix4
-rw-r--r--pkgs/applications/science/biology/seqtk/default.nix39
-rw-r--r--pkgs/applications/virtualization/crun/default.nix4
-rw-r--r--pkgs/build-support/appimage/default.nix2
-rw-r--r--pkgs/development/compilers/julia/1.8.nix153
-rw-r--r--pkgs/development/compilers/julia/patches/1.8/0001-skip-symlink-system-libraries.patch32
-rw-r--r--pkgs/development/compilers/julia/patches/1.8/0002-skip-building-doc.patch25
-rw-r--r--pkgs/development/compilers/julia/patches/1.8/0003-skip-failing-tests.patch25
-rw-r--r--pkgs/development/compilers/julia/patches/1.8/0004-ignore-absolute-path-when-loading-library.patch27
-rw-r--r--pkgs/development/compilers/swi-prolog/default.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/5.nix4
-rw-r--r--pkgs/development/libraries/quarto/default.nix68
-rw-r--r--pkgs/development/libraries/quarto/fix-deno-path.patch8
-rw-r--r--pkgs/development/libraries/science/math/cudnn/extension.nix2
-rw-r--r--pkgs/development/libraries/science/math/tensorrt/extension.nix2
-rw-r--r--pkgs/development/php-packages/phpstan/default.nix4
-rw-r--r--pkgs/development/python-modules/canonicaljson/default.nix13
-rw-r--r--pkgs/development/python-modules/distutils_extra/default.nix9
-rw-r--r--pkgs/development/python-modules/dunamai/default.nix4
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix15
-rw-r--r--pkgs/development/python-modules/geopandas/default.nix4
-rw-r--r--pkgs/development/python-modules/jarowinkler/default.nix4
-rw-r--r--pkgs/development/python-modules/luftdaten/default.nix4
-rw-r--r--pkgs/development/python-modules/nats-py/default.nix25
-rw-r--r--pkgs/development/python-modules/pyunifiprotect/default.nix11
-rw-r--r--pkgs/development/python-modules/pyupgrade/default.nix4
-rw-r--r--pkgs/development/python-modules/rq/default.nix4
-rw-r--r--pkgs/development/python-modules/rstcheck/default.nix11
-rw-r--r--pkgs/development/python-modules/siosocks/default.nix4
-rw-r--r--pkgs/development/python-modules/skodaconnect/default.nix4
-rw-r--r--pkgs/development/python-modules/typer/default.nix27
-rw-r--r--pkgs/development/tools/gdlv/default.nix25
-rw-r--r--pkgs/development/tools/godot/export-templates.nix8
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix8
-rw-r--r--pkgs/development/tools/rust/humility/default.nix32
-rw-r--r--pkgs/games/unciv/default.nix4
-rw-r--r--pkgs/os-specific/darwin/defaultbrowser/default.nix26
-rw-r--r--pkgs/servers/mastodon/default.nix3
-rw-r--r--pkgs/servers/memcached/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/kthxbye.nix39
-rw-r--r--pkgs/tools/backup/discordchatexporter-cli/default.nix4
-rw-r--r--pkgs/tools/misc/3mux/default.nix3
-rw-r--r--pkgs/tools/misc/markdown-anki-decks/default.nix26
-rw-r--r--pkgs/tools/misc/websocat/default.nix6
-rw-r--r--pkgs/tools/misc/xdg-ninja/default.nix36
-rw-r--r--pkgs/tools/security/gallia/default.nix62
-rw-r--r--pkgs/tools/text/scraper/default.nix26
-rw-r--r--pkgs/tools/virtualization/uefi-run/default.nix25
-rw-r--r--pkgs/top-level/all-packages.nix42
70 files changed, 1526 insertions, 167 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index f176a029d8a4..ab14ba2a5b0b 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -2038,6 +2038,12 @@
     githubId = 157330;
     name = "Ben Burdette";
   };
+  bwlang = {
+    email = "brad@langhorst.com";
+    github = "bwlang";
+    githubId = 61636;
+    name = "Brad Langhorst";
+  };
   bzizou = {
     email = "Bruno@bzizou.net";
     github = "bzizou";
@@ -8107,6 +8113,12 @@
     githubId = 42545625;
     name = "Maas Lalani";
   };
+  maddiethecafebabe = {
+    email = "maddie@cafebabe.date";
+    github = "maddiethecafebabe";
+    githubId = 75337286;
+    name = "Madeline S.";
+  };
   madjar = {
     email = "georges.dubus@compiletoi.net";
     github = "madjar";
@@ -9174,6 +9186,12 @@
     githubId = 15896005;
     name = "Vladyslav Burzakovskyy";
   };
+  mrtarantoga = {
+    email = "goetz-dev@web.de";
+    name = "Götz Grimmer";
+    github = "MrTarantoga";
+    githubId = 53876219;
+  };
   mrVanDalo = {
     email = "contact@ingolf-wagner.de";
     github = "mrVanDalo";
@@ -13283,6 +13301,12 @@
     githubId = 57180880;
     name = "Ansh Tyagi";
   };
+  therishidesai = {
+    email = "desai.rishi1@gmail.com";
+    github = "therishidesai";
+    githubId = 5409166;
+    name = "Rishi Desai";
+  };
   thesola10 = {
     email = "me@thesola.io";
     github = "Thesola10";
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
index 8f4a7dd002d3..cdf6e9999408 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
@@ -212,6 +212,14 @@
       </listitem>
       <listitem>
         <para>
+          <link xlink:href="https://github.com/prymitive/kthxbye">kthxbye</link>,
+          an alert acknowledgement management daemon for Prometheus
+          Alertmanager. Available as
+          <link xlink:href="options.html#opt-services.kthxbye.enable">services.kthxbye</link>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://github.com/jtroo/kanata">kanata</link>,
           a tool to improve keyboard comfort and usability with advanced
           customization. Available as
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index f6515256dbc6..607e5cfeb4d4 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -77,6 +77,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 - [infnoise](https://github.com/leetronics/infnoise), a hardware True Random Number Generator dongle.
   Available as [services.infnoise](options.html#opt-services.infnoise.enable).
 
+- [kthxbye](https://github.com/prymitive/kthxbye), an alert acknowledgement management daemon for Prometheus Alertmanager. Available as [services.kthxbye](options.html#opt-services.kthxbye.enable)
+
 - [kanata](https://github.com/jtroo/kanata), a tool to improve keyboard comfort and usability with advanced customization.
   Available as [services.kanata](options.html#opt-services.kanata.enable).
 
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 699c5c7dead4..5568577909b9 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -681,6 +681,7 @@
   ./services/monitoring/heapster.nix
   ./services/monitoring/incron.nix
   ./services/monitoring/kapacitor.nix
+  ./services/monitoring/kthxbye.nix
   ./services/monitoring/loki.nix
   ./services/monitoring/longview.nix
   ./services/monitoring/mackerel-agent.nix
diff --git a/nixos/modules/services/monitoring/kthxbye.nix b/nixos/modules/services/monitoring/kthxbye.nix
new file mode 100644
index 000000000000..3f988dcb722f
--- /dev/null
+++ b/nixos/modules/services/monitoring/kthxbye.nix
@@ -0,0 +1,166 @@
+{ config, pkgs, lib, ... }:
+with lib;
+
+let
+  cfg = config.services.kthxbye;
+in
+
+{
+  options.services.kthxbye = {
+    enable = mkEnableOption (mdDoc "kthxbye alert acknowledgement management daemon");
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.kthxbye;
+      defaultText = literalExpression "pkgs.kthxbye";
+      description = mdDoc ''
+        The kthxbye package that should be used.
+      '';
+    };
+
+    openFirewall = mkOption {
+      type = types.bool;
+      default = false;
+      description = mdDoc ''
+        Whether to open ports in the firewall needed for the daemon to function.
+      '';
+    };
+
+    extraOptions = mkOption {
+      type = with types; listOf str;
+      default = [];
+      description = mdDoc ''
+        Extra command line options.
+
+        Documentation can be found [here](https://github.com/prymitive/kthxbye/blob/main/README.md).
+      '';
+      example = literalExpression ''
+        [
+          "-extend-with-prefix 'ACK!'"
+        ];
+      '';
+    };
+
+    alertmanager = {
+      timeout = mkOption {
+        type = types.str;
+        default = "1m0s";
+        description = mdDoc ''
+          Alertmanager request timeout duration in the [time.Duration](https://pkg.go.dev/time#ParseDuration) format.
+        '';
+        example = "30s";
+      };
+      uri = mkOption {
+        type = types.str;
+        default = "http://localhost:9093";
+        description = mdDoc ''
+          Alertmanager URI to use.
+        '';
+        example = "https://alertmanager.example.com";
+      };
+    };
+
+    extendBy = mkOption {
+      type = types.str;
+      default = "15m0s";
+      description = mdDoc ''
+        Extend silences by adding DURATION seconds.
+
+        DURATION should be provided in the [time.Duration](https://pkg.go.dev/time#ParseDuration) format.
+      '';
+      example = "6h0m0s";
+    };
+
+    extendIfExpiringIn = mkOption {
+      type = types.str;
+      default = "5m0s";
+      description = mdDoc ''
+        Extend silences that are about to expire in the next DURATION seconds.
+
+        DURATION should be provided in the [time.Duration](https://pkg.go.dev/time#ParseDuration) format.
+      '';
+      example = "1m0s";
+    };
+
+    extendWithPrefix = mkOption {
+      type = types.str;
+      default = "ACK!";
+      description = mdDoc ''
+        Extend silences with comment starting with PREFIX string.
+      '';
+      example = "!perma-silence";
+    };
+
+    interval = mkOption {
+      type = types.str;
+      default = "45s";
+      description = mdDoc ''
+        Silence check interval duration in the [time.Duration](https://pkg.go.dev/time#ParseDuration) format.
+      '';
+      example = "30s";
+    };
+
+    listenAddress = mkOption {
+      type = types.str;
+      default = "0.0.0.0";
+      description = mdDoc ''
+        The address to listen on for HTTP requests.
+      '';
+      example = "127.0.0.1";
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 8080;
+      description = mdDoc ''
+        The port to listen on for HTTP requests.
+      '';
+    };
+
+    logJSON = mkOption {
+      type = types.bool;
+      default = false;
+      description = mdDoc ''
+        Format logged messages as JSON.
+      '';
+    };
+
+    maxDuration = mkOption {
+      type = with types; nullOr str;
+      default = null;
+      description = mdDoc ''
+        Maximum duration of a silence, it won't be extended anymore after reaching it.
+
+        Duration should be provided in the [time.Duration](https://pkg.go.dev/time#ParseDuration) format.
+      '';
+      example = "30d";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.kthxbye = {
+      description = "kthxbye Alertmanager ack management daemon";
+      wantedBy = [ "multi-user.target" ];
+      script = ''
+        ${cfg.package}/bin/kthxbye \
+          -alertmanager.timeout ${cfg.alertmanager.timeout} \
+          -alertmanager.uri ${cfg.alertmanager.uri} \
+          -extend-by ${cfg.extendBy} \
+          -extend-if-expiring-in ${cfg.extendIfExpiringIn} \
+          -extend-with-prefix ${cfg.extendWithPrefix} \
+          -interval ${cfg.interval} \
+          -listen ${cfg.listenAddress}:${toString cfg.port} \
+          ${optionalString cfg.logJSON "-log-json"} \
+          ${optionalString (cfg.maxDuration != null) "-max-duration ${cfg.maxDuration}"} \
+          ${concatStringsSep " " cfg.extraOptions}
+      '';
+      serviceConfig = {
+        Type = "simple";
+        DynamicUser = true;
+        Restart = "on-failure";
+      };
+    };
+
+    networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
+  };
+}
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 79cce713460b..6d90d0112a03 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -276,6 +276,7 @@ in {
   komga = handleTest ./komga.nix {};
   krb5 = discoverTests (import ./krb5 {});
   ksm = handleTest ./ksm.nix {};
+  kthxbye = handleTest ./kthxbye.nix {};
   kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
   languagetool = handleTest ./languagetool.nix {};
   latestKernel.login = handleTest ./login.nix { latestKernel = true; };
diff --git a/nixos/tests/kthxbye.nix b/nixos/tests/kthxbye.nix
new file mode 100644
index 000000000000..5ca0917ec8e7
--- /dev/null
+++ b/nixos/tests/kthxbye.nix
@@ -0,0 +1,110 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+{
+  name = "kthxbye";
+
+  meta = with lib.maintainers; {
+    maintainers = [ nukaduka ];
+  };
+
+  nodes.server = { ... }: {
+    environment.systemPackages = with pkgs; [ prometheus-alertmanager ];
+    services.prometheus = {
+      enable = true;
+
+      globalConfig = {
+        scrape_interval = "5s";
+        scrape_timeout = "5s";
+        evaluation_interval = "5s";
+      };
+
+      scrapeConfigs = [
+        {
+          job_name = "prometheus";
+          scrape_interval = "5s";
+          static_configs = [
+            {
+              targets = [ "localhost:9090" ];
+            }
+          ];
+        }
+      ];
+
+      rules = [
+        ''
+          groups:
+            - name: test
+              rules:
+                - alert: node_up
+                  expr: up != 0
+                  for: 5s
+                  labels:
+                    severity: bottom of the barrel
+                  annotations:
+                    summary: node is fine
+        ''
+      ];
+
+      alertmanagers = [
+        {
+          static_configs = [
+            {
+              targets = [
+                "localhost:9093"
+              ];
+            }
+          ];
+        }
+      ];
+
+      alertmanager = {
+        enable = true;
+        openFirewall = true;
+        configuration.route = {
+          receiver = "test";
+          group_wait = "5s";
+          group_interval = "5s";
+          group_by = [ "..." ];
+        };
+        configuration.receivers = [
+          {
+            name = "test";
+            webhook_configs = [
+              {
+                url = "http://localhost:1234";
+              }
+            ];
+          }
+        ];
+      };
+    };
+
+    services.kthxbye = {
+      enable = true;
+      openFirewall = true;
+      extendIfExpiringIn = "30s";
+      logJSON = true;
+      maxDuration = "15m";
+      interval = "5s";
+    };
+  };
+
+  testScript = ''
+    with subtest("start the server"):
+      start_all()
+      server.wait_for_unit("prometheus.service")
+      server.wait_for_unit("alertmanager.service")
+      server.wait_for_unit("kthxbye.service")
+
+      server.sleep(2) # wait for units to settle
+      server.systemctl("restart kthxbye.service") # make sure kthxbye comes up after alertmanager
+      server.sleep(2)
+
+    with subtest("set up test silence which expires in 20s"):
+      server.succeed('amtool --alertmanager.url "http://localhost:9093" silence add alertname="node_up" -a "nixosTest" -d "20s" -c "ACK! this server is fine!!"')
+
+    with subtest("wait for 21 seconds and check if the silence is still active"):
+      server.sleep(21)
+      server.systemctl("status kthxbye.service")
+      server.succeed("amtool --alertmanager.url 'http://localhost:9093' silence | grep 'ACK'")
+  '';
+})
diff --git a/pkgs/applications/audio/fire/0001-Remove-FetchContent-usage.patch b/pkgs/applications/audio/fire/0001-Remove-FetchContent-usage.patch
new file mode 100644
index 000000000000..35f4c8252e5e
--- /dev/null
+++ b/pkgs/applications/audio/fire/0001-Remove-FetchContent-usage.patch
@@ -0,0 +1,62 @@
+From fbf2ddd872db6a3640bc7d693356b99be9dd70f5 Mon Sep 17 00:00:00 2001
+From: OPNA2608 <christoph.neidahl@gmail.com>
+Date: Thu, 18 Aug 2022 20:12:07 +0200
+Subject: [PATCH] Remove FetchContent usage
+
+---
+ CMakeLists.txt | 27 +++++----------------------
+ 1 file changed, 5 insertions(+), 22 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 84c66a7..5234903 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,20 +30,9 @@ project(Fire VERSION 0.9.9)
+ # or
+ # add_subdirectory(JUCE)                    # If you've put JUCE in a subdirectory called JUCE
+ 
+-include(FetchContent)
+-FetchContent_Declare(
+-        JUCE
+-        GIT_REPOSITORY https://github.com/juce-framework/JUCE.git
+-        GIT_TAG 7.0.1
+-)
+-FetchContent_MakeAvailable(JUCE)
+-
+-FetchContent_Declare(
+-        readerwriterqueue
+-        GIT_REPOSITORY https://github.com/cameron314/readerwriterqueue
+-        GIT_TAG v1.0.6
+-)
+-FetchContent_MakeAvailable(readerwriterqueue)
++add_subdirectory(JUCE EXCLUDE_FROM_ALL)
++
++add_subdirectory(readerwriterqueue EXCLUDE_FROM_ALL)
+ 
+ # If you are building a VST2 or AAX plugin, CMake needs to be told where to find these SDKs on your
+ # system. This setup should be done before calling `juce_add_plugin`.
+@@ -172,13 +161,7 @@ set(TestFiles
+         test/CatchMain.cpp
+         test/PluginTest.cpp)
+ 
+-# Download the tagged version of Catch2
+-Include(FetchContent)
+-FetchContent_Declare(
+-        Catch2
+-        GIT_REPOSITORY https://github.com/catchorg/Catch2.git
+-        GIT_TAG v2.13.7)
+-FetchContent_MakeAvailable(Catch2)
++add_subdirectory(Catch2 EXCLUDE_FROM_ALL)
+ 
+ # Setup the test executable, again C++ 20 please
+ add_executable(Tests ${TestFiles})
+@@ -199,4 +182,4 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/test PREFIX "" FILES ${TestFiles})
+ # We have to manually provide the source directory here for now
+ # https://github.com/catchorg/Catch2/issues/2026
+ include(${Catch2_SOURCE_DIR}/contrib/Catch.cmake)
+-catch_discover_tests(Tests)
+\ No newline at end of file
++catch_discover_tests(Tests)
+-- 
+2.36.0
+
diff --git a/pkgs/applications/audio/fire/default.nix b/pkgs/applications/audio/fire/default.nix
new file mode 100644
index 000000000000..54d5bba44661
--- /dev/null
+++ b/pkgs/applications/audio/fire/default.nix
@@ -0,0 +1,117 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, catch2
+, libX11
+, libXrandr
+, libXinerama
+, libXext
+, libXcursor
+, freetype
+, alsa-lib
+, Cocoa
+, WebKit
+, CoreServices
+, DiscRecording
+, CoreAudioKit
+, MetalKit
+, simd
+}:
+
+let
+  # FetchContent replacement, check CMakeLists.txt for requested versions (Nixpkgs' Catch2 works)
+  readerwriterqueue = fetchFromGitHub {
+    owner = "cameron314";
+    repo = "readerwriterqueue";
+    rev = "v1.0.6";
+    sha256 = "sha256-g7NX7Ucl5GWw3u6TiUOITjhv7492ByTzACtWR0Ph2Jc=";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "fire";
+  version = "1.0.0.3";
+
+  src = fetchFromGitHub {
+    owner = "jerryuhoo";
+    repo = "Fire";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-X3pzTrNd0G6BouCDkr3dukQTFDzZ7qblIYxFQActKGE=";
+  };
+
+  patches = [
+    ./0001-Remove-FetchContent-usage.patch
+  ];
+
+  postPatch = ''
+    # 1. Remove hardcoded LTO flags: needs extra setup on Linux,
+    #    possibly broken on Darwin
+    #    https://github.com/NixOS/nixpkgs/issues/19098
+    # 2. Disable automatic copying of built plugins during buildPhase, it defaults
+    #    into user home and we want to have building & installing separated.
+    sed -i \
+      -e '/juce::juce_recommended_lto_flags/d' \
+      -e 's/COPY_PLUGIN_AFTER_BUILD TRUE/COPY_PLUGIN_AFTER_BUILD FALSE/g' \
+      CMakeLists.txt
+  '';
+
+  preConfigure = ''
+    ln -s ${readerwriterqueue} readerwriterqueue
+    ln -s ${catch2.src} Catch2
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
+    libX11
+    libXrandr
+    libXinerama
+    libXext
+    libXcursor
+    freetype
+    alsa-lib
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    Cocoa
+    WebKit
+    CoreServices
+    DiscRecording
+    CoreAudioKit
+    MetalKit
+    simd
+  ];
+
+  installPhase = let
+    vst3Dir = "${placeholder "out"}/${if stdenv.hostPlatform.isDarwin then "Library/Audio/Plug-Ins/VST3" else "lib/vst3"}";
+    auDir = "${placeholder "out"}/Library/Audio/Plug-Ins/Components";
+  in ''
+    runHook preInstall
+
+    mkdir -p ${vst3Dir}
+    # Exact path of the build artefact depends on used CMAKE_BUILD_TYPE
+    cp -R Fire_artefacts/*/VST3/* ${vst3Dir}/
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mkdir -p ${auDir}
+    cp -R Fire_artefacts/*/AU/* ${auDir}/
+  '' + ''
+
+    runHook postInstall
+  '';
+
+  # Fails to find fp.h on its own
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-isystem ${CoreServices}/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/CarbonCore.framework/Versions/Current/Headers/";
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  meta = with lib; {
+    description = "Multi-band distortion plugin by Wings";
+    homepage = "https://github.com/jerryuhoo/Fire";
+    license = licenses.agpl3Only; # Not clarified if Only or Plus
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ OPNA2608 ];
+  };
+}
diff --git a/pkgs/applications/audio/miniplayer/default.nix b/pkgs/applications/audio/miniplayer/default.nix
index b808bfb8b2e3..4eea3dbcb7f9 100644
--- a/pkgs/applications/audio/miniplayer/default.nix
+++ b/pkgs/applications/audio/miniplayer/default.nix
@@ -6,12 +6,12 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "miniplayer";
-  version = "1.7.0";
+  version = "1.7.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JUlUFj/5DOTLa1XCZX/9Nj3Z9W+k4gnpJONiS4qNBIU=";
+    hash = "sha256-NrIDv61mRDe9JWpSP8cvlU4CGoN6Ou6XuNOIn1p47Pw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/tidal-hifi/default.nix b/pkgs/applications/audio/tidal-hifi/default.nix
index ca7fc28f7405..048367703f02 100644
--- a/pkgs/applications/audio/tidal-hifi/default.nix
+++ b/pkgs/applications/audio/tidal-hifi/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tidal-hifi";
-  version = "4.1.2";
+  version = "4.2.0";
 
   src = fetchurl {
     url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${version}/tidal-hifi_${version}_amd64.deb";
-    sha256 = "sha256-HurREfN4VxhFiyP+oAx8QeTfoZTk+PlRX5pVWyU+Dwg=";
+    sha256 = "sha256-YydpWzGH+Orb8Vot8hchh+FFcd327VwQ8Kr7x8WYnv4=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index 40862bf8d758..31a3c800491a 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -5625,6 +5625,18 @@ final: prev:
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
 
+  nvim-moonwalk = buildVimPluginFrom2Nix {
+    pname = "nvim-moonwalk";
+    version = "2022-04-12";
+    src = fetchFromGitHub {
+      owner = "gpanders";
+      repo = "nvim-moonwalk";
+      rev = "86a59f16ae01606824cef3d0f3f87c9886b312d0";
+      sha256 = "0cwfsm5wb4qn04930km9p4i6xbhaw4023dfzw3s6cr6a428rpc5j";
+    };
+    meta.homepage = "https://github.com/gpanders/nvim-moonwalk/";
+  };
+
   nvim-neoclip-lua = buildVimPluginFrom2Nix {
     pname = "nvim-neoclip.lua";
     version = "2022-09-23";
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 616c1c7b23ed..4d67bc5bd207 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -473,6 +473,7 @@ https://github.com/neovim/nvim-lspconfig/,,
 https://github.com/RishabhRD/nvim-lsputils/,,
 https://github.com/rafcamlet/nvim-luapad/,,
 https://github.com/scalameta/nvim-metals/,,
+https://github.com/gpanders/nvim-moonwalk/,,
 https://github.com/AckslD/nvim-neoclip.lua/,,
 https://github.com/yamatsum/nvim-nonicons/,,
 https://github.com/rcarriga/nvim-notify/,,
diff --git a/pkgs/applications/emulators/dolphin-emu/master.nix b/pkgs/applications/emulators/dolphin-emu/master.nix
index a5c6c4aa3aa9..35a00503ed50 100644
--- a/pkgs/applications/emulators/dolphin-emu/master.nix
+++ b/pkgs/applications/emulators/dolphin-emu/master.nix
@@ -1,12 +1,52 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, cmake
-, wrapQtAppsHook, qtbase, bluez, ffmpeg, libao, libGLU, libGL, pcre, gettext
-, libXrandr, libusb1, libpthreadstubs, libXext, libXxf86vm, libXinerama
-, libSM, libXdmcp, readline, openal, udev, libevdev, portaudio, curl, alsa-lib
-, miniupnpc, enet, mbedtls, soundtouch, sfml, xz, writeScript
-, vulkan-loader ? null, libpulseaudio ? null
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, wrapQtAppsHook
+, qtbase
+, bluez
+, ffmpeg
+, libGL
+, libXrandr
+, libusb1
+, libXext
+, openal
+, udev
+, libevdev
+, curl
+, alsa-lib
+, miniupnpc
+, enet
+, mbedtls
+, soundtouch
+, sfml
+, xz
+, hidapi
+, fmt_8
+, vulkan-loader
+, libpulseaudio
+, bzip2
+, libiconv
+, pugixml
+, xxHash
 
-# - Inputs used for Darwin
-, CoreBluetooth, ForceFeedback, IOKit, OpenGL, libpng, hidapi }:
+  # Used in passthru
+, testers
+, dolphin-emu-beta
+, writeShellScript
+, common-updater-scripts
+, jq
+
+  # Darwin-only dependencies
+, CoreBluetooth
+, ForceFeedback
+, IOKit
+, VideoToolbox
+, OpenGL
+, libpng
+, moltenvk
+}:
 
 stdenv.mkDerivation rec {
   pname = "dolphin-emu";
@@ -20,27 +60,70 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake pkg-config ]
-  ++ lib.optional stdenv.isLinux wrapQtAppsHook;
+  patches = [
+    # On x86_64-darwin CMake reportedly does not work without this in some cases.
+    # See https://github.com/NixOS/nixpkgs/pull/190373#issuecomment-1241310765
+    ./minizip-external-missing-include.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
 
   buildInputs = [
-    curl ffmpeg libao libGLU libGL pcre gettext libpthreadstubs libpulseaudio
-    libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp
-    portaudio libusb1 libpng hidapi miniupnpc enet mbedtls soundtouch sfml xz
+    curl
+    ffmpeg
+    pugixml
+    xxHash
+    libGL
+    libpulseaudio
+    openal
+    libusb1
+    libiconv
+    libpng
+    hidapi
+    miniupnpc
+    enet
+    mbedtls
+    soundtouch
+    sfml
+    xz
     qtbase
+    fmt_8
+    bzip2
   ] ++ lib.optionals stdenv.isLinux [
-    bluez udev libevdev alsa-lib vulkan-loader
+    libXrandr
+    libXext
+    bluez
+    udev
+    libevdev
+    alsa-lib
+    vulkan-loader
   ] ++ lib.optionals stdenv.isDarwin [
-    CoreBluetooth OpenGL ForceFeedback IOKit
+    CoreBluetooth
+    OpenGL
+    ForceFeedback
+    IOKit
+    VideoToolbox
+    moltenvk
   ];
 
   cmakeFlags = [
+    "-DDISTRIBUTOR=NixOS"
     "-DUSE_SHARED_ENET=ON"
     "-DDOLPHIN_WC_REVISION=${src.rev}"
     "-DDOLPHIN_WC_DESCRIBE=${version}"
     "-DDOLPHIN_WC_BRANCH=master"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DOSX_USE_DEFAULT_SEARCH_PATH=True"
+    "-DUSE_BUNDLED_MOLTENVK=OFF"
+    # Bundles the application folder into a standalone executable, so we cannot devendor libraries
+    "-DSKIP_POSTPROCESS_BUNDLE=ON"
+    # Needs xcode so compilation fails with it enabled. We would want the version to be fixed anyways.
+    # Note: The updater isn't available on linux, so we dont need to disable it there.
+    "-DENABLE_AUTOUPDATE=OFF"
   ];
 
   qtWrapperArgs = lib.optionals stdenv.isLinux [
@@ -50,37 +133,51 @@ stdenv.mkDerivation rec {
     "--set QT_QPA_PLATFORM xcb"
   ];
 
-  # - Allow Dolphin to use nix-provided libraries instead of building them
-  postPatch = ''
-    sed -i -e 's,DISTRIBUTOR "None",DISTRIBUTOR "NixOS",g' CMakeLists.txt
-  '' + lib.optionalString stdenv.isDarwin ''
-    sed -i -e 's,if(NOT APPLE),if(true),g' CMakeLists.txt
-    sed -i -e 's,if(LIBUSB_FOUND AND NOT APPLE),if(LIBUSB_FOUND),g' \
-      CMakeLists.txt
+  # Use nix-provided libraries instead of submodules
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace CMakeLists.txt \
+      --replace "if(NOT APPLE)" "if(true)" \
+      --replace "if(LIBUSB_FOUND AND NOT APPLE)" "if(LIBUSB_FOUND)"
   '';
 
   postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
     install -D $src/Data/51-usb-device.rules $out/etc/udev/rules.d/51-usb-device.rules
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    # Only gets installed automatically if the standalone executable is used
+    mkdir -p $out/Applications
+    cp -r ./Binaries/Dolphin.app $out/Applications
+    ln -s $out/Applications/Dolphin.app/Contents/MacOS/Dolphin $out/bin
   '';
 
+  passthru = {
+    tests.version = testers.testVersion {
+      package = dolphin-emu-beta;
+      command = "dolphin-emu-nogui --version";
+    };
 
-  passthru.updateScript = writeScript "dolphin-update-script" ''
-    #!/usr/bin/env nix-shell
-    #!nix-shell -i bash -p curl jq common-updater-scripts
-    set -eou pipefail
-    json="$(curl -s https://dolphin-emu.org/update/latest/beta)"
-    version="$(jq -r '.shortrev' <<< "$json")"
-    rev="$(jq -r '.hash' <<< "$json")"
-    update-source-version dolphin-emu-beta "$version" --rev="$rev"
-  '';
+    updateScript = writeShellScript "dolphin-update-script" ''
+      set -eou pipefail
+      export PATH=${lib.makeBinPath [ curl jq common-updater-scripts ]}
+
+      json="$(curl -s https://dolphin-emu.org/update/latest/beta)"
+      version="$(jq -r '.shortrev' <<< "$json")"
+      rev="$(jq -r '.hash' <<< "$json")"
+      update-source-version dolphin-emu-beta "$version" --rev="$rev"
+    '';
+  };
 
   meta = with lib; {
     homepage = "https://dolphin-emu.org";
     description = "Gamecube/Wii/Triforce emulator for x86_64 and ARMv8";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ MP2E ashkitten xfix ];
+    mainProgram = "Dolphin";
     branch = "master";
-    broken = stdenv.isDarwin;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    maintainers = with maintainers; [
+      MP2E
+      ashkitten
+      xfix
+      ivar
+    ];
   };
 }
diff --git a/pkgs/applications/emulators/dolphin-emu/minizip-external-missing-include.patch b/pkgs/applications/emulators/dolphin-emu/minizip-external-missing-include.patch
new file mode 100644
index 000000000000..7da013ecd8f6
--- /dev/null
+++ b/pkgs/applications/emulators/dolphin-emu/minizip-external-missing-include.patch
@@ -0,0 +1,18 @@
+commit 5e0cb8066fb1653399c54e93e42375295c2562bd
+Author: Ivar Scholten <ivar.scholten@protonmail.com>
+Date:   Fri Sep 9 14:27:55 2022 +0200
+
+    Externals/minizip: add missing include to CheckFunctionExists
+
+diff --git a/Externals/minizip/CMakeLists.txt b/Externals/minizip/CMakeLists.txt
+index c3d7c5512e..f59f8b295c 100644
+--- a/Externals/minizip/CMakeLists.txt
++++ b/Externals/minizip/CMakeLists.txt
+@@ -60,6 +60,7 @@ if (HAVE_INTTYPES_H)
+   target_compile_definitions(minizip PRIVATE HAVE_INTTYPES_H)
+ endif()
+
++include(CheckFunctionExists)
+ check_function_exists(fseeko HAVE_FSEEKO)
+ if (NOT HAVE_FSEEKO)
+   target_compile_definitions(minizip PRIVATE NO_FSEEKO)
diff --git a/pkgs/applications/emulators/pcsx2/default.nix b/pkgs/applications/emulators/pcsx2/default.nix
index a4e99b0515bc..34eba5ed7819 100644
--- a/pkgs/applications/emulators/pcsx2/default.nix
+++ b/pkgs/applications/emulators/pcsx2/default.nix
@@ -32,7 +32,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pcsx2";
-  version = "1.7.3165";
+  version = "1.7.3331";
   # nixpkgs-update: no auto update
 
   src = fetchFromGitHub {
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     repo = "pcsx2";
     fetchSubmodules = true;
     rev = "v${version}";
-    hash = "sha256-FdLmLZLpS8zPmHVn4k0nE6vS/omYVIOal9ej0h3bE/Y=";
+    hash = "sha256-0RcmBMxKj/gnkNEjn2AUSSO1DzyNSf1lOZWPSUq6764=";
   };
 
   cmakeFlags = [
@@ -79,13 +79,9 @@ stdenv.mkDerivation rec {
     zlib
   ];
 
-  # Wayland doesn't seem to work right now (crashes when booting a game).
-  # Try removing `--prefix GDK_BACKEND : x11` on the next update.
-  # (This may be solved when the project finshes migrating to Qt)
   preFixup = ''
     gappsWrapperArgs+=(
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]}
-      --prefix GDK_BACKEND : x11
     )
   '';
 
diff --git a/pkgs/applications/misc/mangal/default.nix b/pkgs/applications/misc/mangal/default.nix
new file mode 100644
index 000000000000..e97008ab36cf
--- /dev/null
+++ b/pkgs/applications/misc/mangal/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+  pname = "mangal";
+  version = "3.10.0";
+
+  src = fetchFromGitHub {
+    owner = "metafates";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-rWj9CknWNI6SSh0AwaPpj5TxHQzkAmaAhWW7kze3xiY=";
+  };
+
+  proxyVendor = true;
+  vendorSha256 = "sha256-ZgeG8S78/yS9KfEK1bZ3VlQGmZPBo9TXLQLz8rXOEGo=";
+
+  ldflags = [ "-s" "-w" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+    # Mangal creates a config file in the folder ~/.config/mangal and fails if not possible
+    export MANGAL_CONFIG_PATH=`mktemp -d`
+    installShellCompletion --cmd mangal \
+      --bash <($out/bin/mangal completion bash) \
+      --zsh <($out/bin/mangal completion zsh) \
+      --fish <($out/bin/mangal completion fish)
+  '';
+
+  doCheck = false; # test fail because of sandbox
+
+  meta = with lib; {
+    description =
+      "A fancy CLI app written in Go which scrapes, downloads and packs manga into different formats";
+    homepage = "https://github.com/metafates/mangal";
+    license = licenses.mit;
+    maintainers = [ maintainers.bertof ];
+  };
+}
diff --git a/pkgs/applications/misc/pdfarranger/default.nix b/pkgs/applications/misc/pdfarranger/default.nix
index 65d8576aca40..21075dcf5c56 100644
--- a/pkgs/applications/misc/pdfarranger/default.nix
+++ b/pkgs/applications/misc/pdfarranger/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pdfarranger";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-T7Uo4WZSmSwMHzi8jWX/fw9ZsNKF+SZFy8O2NeD6R7o=";
+    sha256 = "sha256-VMFkZsFx2pN0IrWTdc9OqkdQwuk6b4Ay4zsvN9HTHug=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/streamdeck-ui/default.nix b/pkgs/applications/misc/streamdeck-ui/default.nix
index 141652e63d69..be98b3713867 100644
--- a/pkgs/applications/misc/streamdeck-ui/default.nix
+++ b/pkgs/applications/misc/streamdeck-ui/default.nix
@@ -11,13 +11,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "streamdeck-ui";
-  version = "2.0.4";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "timothycrosley";
     rev = "v${version}";
-    hash = "sha256-NV4BkHEgfxIOuLfmn0vcPNqivmHLD6v7jLdLZgnrb0Q=";
+    sha256 = "sha256-5dk+5oefg5R68kv038gsZ2p5ixmpj/vBLBp/V7Sdos8=";
   };
 
   desktopItems = [ (makeDesktopItem {
@@ -33,11 +33,7 @@ python3Packages.buildPythonApplication rec {
   postInstall =
     let
       udevRules = ''
-        SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", TAG+="uaccess"
-        SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", TAG+="uaccess"
-        SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", TAG+="uaccess"
-        SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", TAG+="uaccess"
-        SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", TAG+="uaccess"
+        SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", TAG+="uaccess"
       '';
     in
       ''
diff --git a/pkgs/applications/networking/instant-messengers/fractal-next/default.nix b/pkgs/applications/networking/instant-messengers/fractal-next/default.nix
index f1b8b0a9e9c7..5613fbc899b4 100644
--- a/pkgs/applications/networking/instant-messengers/fractal-next/default.nix
+++ b/pkgs/applications/networking/instant-messengers/fractal-next/default.nix
@@ -23,19 +23,19 @@
 
 stdenv.mkDerivation rec {
   pname = "fractal-next";
-  version = "unstable-2022-09-09";
+  version = "5-alpha1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "fractal";
-    rev = "5f0a4b48a745ccce202d14e7d02e14f51598fb42";
-    hash = "sha256-7s2ytHpM5pZ0dhnVMA8KDWIBaSWds7t9GB6Wav+0dQA=";
+    rev = version;
+    hash = "sha256-gHMfBGrq3HiGeqHx2knuc9LomgIW9QA9fCSCcQncvz0=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
-    hash = "sha256-CJD9YmL06ELR3X/gIrsVCpDyJnWPbH/JF4HlXvWjiZ8=";
+    hash = "sha256-fTETUD/OaOati5HvNxto5Cw26wMclt6mxPLm4cyE3+0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index e33ef517088a..251c77951321 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -26,12 +26,12 @@
 
 stdenv.mkDerivation rec {
   pname = "gnucash";
-  version = "4.11";
+  version = "4.12";
 
   # raw source code doesn't work out of box; fetchFromGitHub not usable
   src = fetchurl {
     url = "https://github.com/Gnucash/gnucash/releases/download/${version}/${pname}-${version}.tar.bz2";
-    hash = "sha256-+BTt4w174N7Ar7KujQNii5rjTISLaDEuTFre2UwQKxk=";
+    hash = "sha256-zIwFGla4u0M1ZtbiiQ31nz2JWjlcjPUkbBtygQLOEK4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/biology/last/default.nix b/pkgs/applications/science/biology/last/default.nix
index f3c145ec7f45..0b5b8bb5059d 100644
--- a/pkgs/applications/science/biology/last/default.nix
+++ b/pkgs/applications/science/biology/last/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1409";
+  version = "1411";
 
   src = fetchFromGitLab {
     owner = "mcfrith";
     repo = "last";
     rev = version;
-    sha256 = "sha256-AFK0va1HonSWJdzJLdLraiu4LhUCJFgq6qajbbPmHuY=";
+    sha256 = "sha256-CO3tlFx9NxGplErENG6iFikgE246swPITsVR+nHzsYw=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/science/biology/seqtk/default.nix b/pkgs/applications/science/biology/seqtk/default.nix
new file mode 100644
index 000000000000..4b855f5c0205
--- /dev/null
+++ b/pkgs/applications/science/biology/seqtk/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, zlib
+, libdeflate
+, isa-l
+}:
+
+stdenv.mkDerivation rec {
+  pname = "seqtk";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "lh3";
+    repo = "seqtk";
+    rev = "v${version}";
+    hash = "sha256-1Hw/lnoFQumuEJg1n2C6vnWkBa+VLiEiDrosghSm360=";
+  };
+
+  buildInputs = [ zlib libdeflate isa-l ];
+
+  makeFlags = [ "CC=cc" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 -t $out/bin seqtk
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Toolkit for processing sequences in FASTA/Q formats";
+    license = licenses.mit;
+    homepage = "https://github.com/lh3/seqtk";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ bwlang ];
+  };
+}
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index fdf60efbdd11..3bd766e7ae94 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -50,9 +50,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook go-md2man pkg-config python3 ];
 
-  buildInputs = [ libcap libseccomp systemd yajl ]
-    # Criu currently only builds on x86_64-linux
-    ++ lib.optional (lib.elem stdenv.hostPlatform.system criu.meta.platforms) criu;
+  buildInputs = [ criu libcap libseccomp systemd yajl ];
 
   enableParallelBuilding = true;
   strictDeps = true;
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
index 17d5bca65669..6d4dbfbe421b 100644
--- a/pkgs/build-support/appimage/default.nix
+++ b/pkgs/build-support/appimage/default.nix
@@ -156,11 +156,13 @@ rec {
       wayland
       mesa
       libxkbcommon
+      vulkan-loader
 
       flac
       freeglut
       libjpeg
       libpng12
+      libpulseaudio
       libsamplerate
       libmikmod
       libtheora
diff --git a/pkgs/development/compilers/julia/1.8.nix b/pkgs/development/compilers/julia/1.8.nix
new file mode 100644
index 000000000000..f09e67f1518f
--- /dev/null
+++ b/pkgs/development/compilers/julia/1.8.nix
@@ -0,0 +1,153 @@
+{ lib
+, stdenv
+, fetchurl
+, which
+, python3
+, gfortran
+, gcc
+, cmake
+, perl
+, gnum4
+, libwhich
+, libxml2
+, libunwind
+, libgit2
+, curl
+, nghttp2
+, mbedtls
+, libssh2
+, gmp
+, mpfr
+, suitesparse
+, utf8proc
+, zlib
+, p7zip
+, ncurses
+, pcre2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "julia";
+  version = "1.8.1";
+
+  src = fetchurl {
+    url = "https://github.com/JuliaLang/julia/releases/download/v${version}/julia-${version}-full.tar.gz";
+    sha256 = "sha256-MeRlX0s3fnPW9YPFOdAiHte0gKPqCRgz0ABTFhhcW2E=";
+  };
+
+  patches =
+    let
+      path = name: "https://raw.githubusercontent.com/archlinux/svntogit-community/6fd126d089d44fdc875c363488a7c7435a223cec/trunk/${name}";
+    in
+    [
+      (fetchurl {
+        url = path "julia-hardcoded-libs.patch";
+        sha256 = "sha256-kppSpVA7bRohd0wXDs4Jgct9ocHnpbeiiSz7ElFom1U=";
+      })
+      (fetchurl {
+        url = path "julia-libgit-1.4.patch";
+        sha256 = "sha256-rcVXYoGpAxwAbAl33n0/Rkwsi8ZJz8cnHQ5CalUx+1o=";
+      })
+      (fetchurl {
+        url = path "julia-libunwind-1.6.patch";
+        sha256 = "sha256-zqMh9+Fjgd15XuINe9Xtpk+bRTwB0T6WCWLrJyOQfiQ=";
+      })
+      ./patches/1.8/0001-skip-symlink-system-libraries.patch
+      ./patches/1.8/0002-skip-building-doc.patch
+      ./patches/1.8/0003-skip-failing-tests.patch
+      ./patches/1.8/0004-ignore-absolute-path-when-loading-library.patch
+    ];
+
+  nativeBuildInputs = [
+    which
+    python3
+    gfortran
+    cmake
+    perl
+    gnum4
+    libwhich
+  ];
+
+  buildInputs = [
+    libxml2
+    libunwind
+    libgit2
+    curl
+    nghttp2
+    mbedtls
+    libssh2
+    gmp
+    mpfr
+    utf8proc
+    zlib
+    p7zip
+    pcre2
+  ];
+
+  JULIA_RPATH = lib.makeLibraryPath (buildInputs ++ [ stdenv.cc.cc gfortran.cc ncurses ]);
+
+  dontUseCmakeConfigure = true;
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  LDFLAGS = "-Wl,-rpath,${JULIA_RPATH}";
+
+  makeFlags = [
+    "prefix=$(out)"
+    "USE_BINARYBUILDER=0"
+    "USE_SYSTEM_CSL=1"
+    "USE_SYSTEM_LLVM=0" # a patched version is required
+    "USE_SYSTEM_LIBUNWIND=1"
+    "USE_SYSTEM_PCRE=1"
+    "USE_SYSTEM_LIBM=0"
+    "USE_SYSTEM_OPENLIBM=0"
+    "USE_SYSTEM_DSFMT=0" # not available in nixpkgs
+    "USE_SYSTEM_LIBBLASTRAMPOLINE=0" # not available in nixpkgs
+    "USE_SYSTEM_BLAS=0" # test failure
+    "USE_SYSTEM_LAPACK=0" # test failure
+    "USE_SYSTEM_GMP=1"
+    "USE_SYSTEM_MPFR=1"
+    "USE_SYSTEM_LIBSUITESPARSE=0" # test failure
+    "USE_SYSTEM_LIBUV=0" # a patched version is required
+    "USE_SYSTEM_UTF8PROC=1"
+    "USE_SYSTEM_MBEDTLS=1"
+    "USE_SYSTEM_LIBSSH2=1"
+    "USE_SYSTEM_NGHTTP2=1"
+    "USE_SYSTEM_CURL=1"
+    "USE_SYSTEM_LIBGIT2=1"
+    "USE_SYSTEM_PATCHELF=1"
+    "USE_SYSTEM_LIBWHICH=1"
+    "USE_SYSTEM_ZLIB=1"
+    "USE_SYSTEM_P7ZIP=1"
+
+    "PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h"
+  ];
+
+  doInstallCheck = true;
+  installCheckTarget = "testall";
+
+  preInstallCheck = ''
+    export HOME="$TMPDIR"
+    export JULIA_TEST_USE_MULTIPLE_WORKERS="true"
+  '';
+
+  dontStrip = true;
+
+  postFixup = ''
+    for file in $out/bin/julia $out/lib/libjulia.so $out/lib/julia/libjulia-internal.so $out/lib/julia/libjulia-codegen.so; do
+      patchelf --set-rpath "$out/lib:$out/lib/julia:${JULIA_RPATH}" $file
+    done
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "High-level performance-oriented dynamical language for technical computing";
+    homepage = "https://julialang.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nickcao ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
+  };
+}
diff --git a/pkgs/development/compilers/julia/patches/1.8/0001-skip-symlink-system-libraries.patch b/pkgs/development/compilers/julia/patches/1.8/0001-skip-symlink-system-libraries.patch
new file mode 100644
index 000000000000..5a1fdc1e75fd
--- /dev/null
+++ b/pkgs/development/compilers/julia/patches/1.8/0001-skip-symlink-system-libraries.patch
@@ -0,0 +1,32 @@
+From f342b6bfab5eee9c7fea9ddc8804d9a5ff6953eb Mon Sep 17 00:00:00 2001
+From: Nick Cao <nickcao@nichi.co>
+Date: Tue, 20 Sep 2022 18:42:08 +0800
+Subject: [PATCH 1/4] skip symlink system libraries
+
+---
+ base/Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/base/Makefile b/base/Makefile
+index 23a9c40..12f92aa 100644
+--- a/base/Makefile
++++ b/base/Makefile
+@@ -181,7 +181,6 @@ $$(build_private_libdir)/$$(libname_$2):
+ 		fi; \
+ 	fi
+ ifneq ($$(USE_SYSTEM_$1),0)
+-SYMLINK_SYSTEM_LIBRARIES += symlink_$2
+ endif
+ endef
+ 
+@@ -265,7 +264,6 @@ $(build_private_libdir)/libLLVM.$(SHLIB_EXT):
+ 	ln -sf "$$REALPATH" "$@"
+ ifneq ($(USE_SYSTEM_LLVM),0)
+ ifneq ($(USE_LLVM_SHLIB),0)
+-SYMLINK_SYSTEM_LIBRARIES += symlink_libLLVM
+ endif
+ endif
+ 
+-- 
+2.37.2
+
diff --git a/pkgs/development/compilers/julia/patches/1.8/0002-skip-building-doc.patch b/pkgs/development/compilers/julia/patches/1.8/0002-skip-building-doc.patch
new file mode 100644
index 000000000000..8b3da95ba915
--- /dev/null
+++ b/pkgs/development/compilers/julia/patches/1.8/0002-skip-building-doc.patch
@@ -0,0 +1,25 @@
+From 6a7723be33261cdc302e0f7bdb37fb50d30cc5fc Mon Sep 17 00:00:00 2001
+From: Nick Cao <nickcao@nichi.co>
+Date: Tue, 20 Sep 2022 18:42:31 +0800
+Subject: [PATCH 2/4] skip building doc
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index d38311d..a775d36 100644
+--- a/Makefile
++++ b/Makefile
+@@ -227,7 +227,7 @@ define stringreplace
+ endef
+ 
+ 
+-install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index.html
++install: $(build_depsbindir)/stringreplace
+ ifeq ($(BUNDLE_DEBUG_LIBS),1)
+ 	@$(MAKE) $(QUIET_MAKE) all
+ else
+-- 
+2.37.2
+
diff --git a/pkgs/development/compilers/julia/patches/1.8/0003-skip-failing-tests.patch b/pkgs/development/compilers/julia/patches/1.8/0003-skip-failing-tests.patch
new file mode 100644
index 000000000000..2d6745c8a215
--- /dev/null
+++ b/pkgs/development/compilers/julia/patches/1.8/0003-skip-failing-tests.patch
@@ -0,0 +1,25 @@
+From a57c582eabc4703ed627b32f7f11893db9676fb6 Mon Sep 17 00:00:00 2001
+From: Nick Cao <nickcao@nichi.co>
+Date: Tue, 20 Sep 2022 18:42:59 +0800
+Subject: [PATCH 3/4] skip failing tests
+
+---
+ test/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/Makefile b/test/Makefile
+index 24e137a..0e82acf 100644
+--- a/test/Makefile
++++ b/test/Makefile
+@@ -23,7 +23,7 @@ default:
+ 
+ $(TESTS):
+ 	@cd $(SRCDIR) && \
+-	$(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl $@)
++	$(call PRINT_JULIA, $(call spawn,$(JULIA_EXECUTABLE)) --check-bounds=yes --startup-file=no --depwarn=error ./runtests.jl --skip LibGit2_jll --skip MozillaCACerts_jll --skip NetworkOptions --skip nghttp2_jll $@)
+ 
+ $(addprefix revise-, $(TESTS)): revise-% :
+ 	@cd $(SRCDIR) && \
+-- 
+2.37.2
+
diff --git a/pkgs/development/compilers/julia/patches/1.8/0004-ignore-absolute-path-when-loading-library.patch b/pkgs/development/compilers/julia/patches/1.8/0004-ignore-absolute-path-when-loading-library.patch
new file mode 100644
index 000000000000..eefde7c6b03b
--- /dev/null
+++ b/pkgs/development/compilers/julia/patches/1.8/0004-ignore-absolute-path-when-loading-library.patch
@@ -0,0 +1,27 @@
+From a60100f06f48fbb4697aced65175bf3d41185e3e Mon Sep 17 00:00:00 2001
+From: Nick Cao <nickcao@nichi.co>
+Date: Tue, 20 Sep 2022 18:43:15 +0800
+Subject: [PATCH 4/4] ignore absolute path when loading library
+
+---
+ cli/loader_lib.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/cli/loader_lib.c b/cli/loader_lib.c
+index 0301b6e..5cbda61 100644
+--- a/cli/loader_lib.c
++++ b/cli/loader_lib.c
+@@ -50,9 +50,7 @@ static void * load_library(const char * rel_path, const char * src_dir, int err)
+ #endif
+ 
+     char path[2*JL_PATH_MAX + 1] = {0};
+-    strncat(path, src_dir, sizeof(path) - 1);
+-    strncat(path, PATHSEPSTRING, sizeof(path) - 1);
+-    strncat(path, rel_path, sizeof(path) - 1);
++    strncat(path, basename, sizeof(path) - 1);
+ 
+ #if defined(_OS_WINDOWS_)
+     wchar_t wpath[2*JL_PATH_MAX + 1] = {0};
+-- 
+2.37.2
+
diff --git a/pkgs/development/compilers/swi-prolog/default.nix b/pkgs/development/compilers/swi-prolog/default.nix
index d53d1426a94b..80400516fc86 100644
--- a/pkgs/development/compilers/swi-prolog/default.nix
+++ b/pkgs/development/compilers/swi-prolog/default.nix
@@ -34,7 +34,7 @@
 }:
 
 let
-  version = "8.3.29";
+  version = "8.5.17";
   packInstall = swiplPath: pack:
     ''${swiplPath}/bin/swipl -g "pack_install(${pack}, [package_directory(\"${swiplPath}/lib/swipl/pack\"), silent(true), interactive(false)])." -t "halt."
     '';
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
     owner = "SWI-Prolog";
     repo = "swipl-devel";
     rev = "V${version}";
-    sha256 = "sha256-2QYY3VDG3dhbv5gtSid4eMYMxhhpggCedJL+RhtbbaU=";
+    sha256 = "sha256-n1o6eG40DHnmNXuifQC6UFwGzuiL22V++0qRmq1RSzc=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/ffmpeg/5.nix b/pkgs/development/libraries/ffmpeg/5.nix
index b16bd4ddf381..d09d7ccd1cec 100644
--- a/pkgs/development/libraries/ffmpeg/5.nix
+++ b/pkgs/development/libraries/ffmpeg/5.nix
@@ -5,8 +5,8 @@
 }@args:
 
 callPackage ./generic.nix (rec {
-  version = "5.1.1";
+  version = "5.1.2";
   branch = version;
-  sha256 = "sha256-zQ4W+QNCEmbVzN3t97g7nldUrvS596fwbOnkyALwVFs=";
+  sha256 = "sha256-OaC8yNmFSfFsVwYkZ4JGpqxzbAZs69tAn5UC6RWyLys=";
   darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
 } // args)
diff --git a/pkgs/development/libraries/quarto/default.nix b/pkgs/development/libraries/quarto/default.nix
new file mode 100644
index 000000000000..38eea0a70f56
--- /dev/null
+++ b/pkgs/development/libraries/quarto/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, lib
+, pandoc
+, esbuild
+, deno
+, fetchurl
+, nodePackages
+, rWrapper
+, rPackages
+, makeWrapper
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "quarto";
+  version = "1.1.189";
+  src = fetchurl {
+    url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${version}/quarto-${version}-linux-amd64.tar.gz";
+    sha256 = "1a3xsgqdccm4ky1xjnin1idpp8gsansskq37c00mrxz1raxn1mi7";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  patches = [
+    ./fix-deno-path.patch
+  ];
+
+  dontStrip = true;
+
+  preFixup = ''
+    wrapProgram $out/bin/quarto \
+      --prefix PATH : ${lib.makeBinPath [ deno ]} \
+      --prefix QUARTO_PANDOC : ${pandoc}/bin/pandoc \
+      --prefix QUARTO_ESBUILD : ${esbuild}/bin/esbuild \
+      --prefix QUARTO_DART_SASS : ${nodePackages.sass}/bin/sass \
+      --prefix QUARTO_R : ${rWrapper.override { packages = [ rPackages.rmarkdown]; }}/bin/R \
+      --prefix QUARTO_PYTHON : ${python3.withPackages (ps: with ps; [ jupyter ipython ])}/bin/python3
+  '';
+
+  installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/bin $out/share
+
+      rm -r bin/tools
+
+      mv bin/* $out/bin
+      mv share/* $out/share
+
+      runHook preInstall
+  '';
+
+  meta = with lib; {
+    description = "Open-source scientific and technical publishing system built on Pandoc";
+    longDescription = ''
+        Quarto is an open-source scientific and technical publishing system built on Pandoc.
+        Quarto documents are authored using markdown, an easy to write plain text format.
+    '';
+    homepage = "https://quarto.org/";
+    changelog = "https://github.com/quarto-dev/quarto-cli/releases/tag/v${version}";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ mrtarantoga ];
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ];
+  };
+}
diff --git a/pkgs/development/libraries/quarto/fix-deno-path.patch b/pkgs/development/libraries/quarto/fix-deno-path.patch
new file mode 100644
index 000000000000..895419712ad8
--- /dev/null
+++ b/pkgs/development/libraries/quarto/fix-deno-path.patch
@@ -0,0 +1,8 @@
+--- a/bin/quarto
++++ b/bin/quarto
+@@ -125,4 +125,4 @@ fi
+ # Be sure to include any already defined QUARTO_DENO_OPTIONS
+ QUARTO_DENO_OPTIONS="--unstable --no-config --cached-only --allow-read --allow-write --allow-run --allow-env --allow-net --allow-ffi ${QUARTO_DENO_OPTIONS}"
+ 
+-"${QUARTO_DENO}" ${QUARTO_ACTION} ${QUARTO_DENO_OPTIONS} ${QUARTO_DENO_EXTRA_OPTIONS} "${QUARTO_IMPORT_ARGMAP}" "${QUARTO_TARGET}" "$@"
++deno ${QUARTO_ACTION} ${QUARTO_DENO_OPTIONS} ${QUARTO_DENO_EXTRA_OPTIONS} "${QUARTO_IMPORT_ARGMAP}" "${QUARTO_TARGET}" "$@"
diff --git a/pkgs/development/libraries/science/math/cudnn/extension.nix b/pkgs/development/libraries/science/math/cudnn/extension.nix
index 01ec5e4b9b5d..fae958c31d17 100644
--- a/pkgs/development/libraries/science/math/cudnn/extension.nix
+++ b/pkgs/development/libraries/science/math/cudnn/extension.nix
@@ -111,6 +111,6 @@ final: prev: let
     "11.4" = "8.3.2";
     "11.5" = "8.3.2";
     "11.6" = "8.3.2";
-  }.${cudaVersion};
+  }.${cudaVersion} or "8.3.2";
 
 in cuDnnPackages
diff --git a/pkgs/development/libraries/science/math/tensorrt/extension.nix b/pkgs/development/libraries/science/math/tensorrt/extension.nix
index 8e9f64885bad..b76d35a0d84f 100644
--- a/pkgs/development/libraries/science/math/tensorrt/extension.nix
+++ b/pkgs/development/libraries/science/math/tensorrt/extension.nix
@@ -58,6 +58,6 @@ final: prev: let
     "11.4" = "8.4.0";
     "11.5" = "8.4.0";
     "11.6" = "8.4.0";
-  }.${cudaVersion};
+  }.${cudaVersion} or "8.4.0";
 
 in tensorRTPackages
diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix
index 31a823ddff75..b277c996be2e 100644
--- a/pkgs/development/php-packages/phpstan/default.nix
+++ b/pkgs/development/php-packages/phpstan/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "phpstan";
-  version = "1.8.5";
+  version = "1.8.6";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-    sha256 = "sha256-4OScF/hdzWA4kT7YZ/ltZdkmUO42YaTTtTfbl9iRr1I=";
+    sha256 = "sha256-8scUd8BT6u9rqBPoaXozkn6H9PIWF/MWNWT9y8RwPkg=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/python-modules/canonicaljson/default.nix b/pkgs/development/python-modules/canonicaljson/default.nix
index e5ecff7837f9..feee27e852ec 100644
--- a/pkgs/development/python-modules/canonicaljson/default.nix
+++ b/pkgs/development/python-modules/canonicaljson/default.nix
@@ -9,21 +9,26 @@
 
 buildPythonPackage rec {
   pname = "canonicaljson";
-  version = "1.6.2";
-  format = "setuptools";
+  version = "1.6.3";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rwC+jOnFiYV98Xa7lFlPDUOw4CfwJ6jXz4l4/bgZAko=";
+    hash = "sha256-yll2C8J0qJmg2nWAnWkJrkPlEjOB/W7wQKRNGVLAtEg=";
   };
 
   propagatedBuildInputs = [
-    frozendict
     simplejson
   ];
 
+  passthru.optional-dependencies = {
+    frozendict = [
+      frozendict
+    ];
+  };
+
   checkInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/distutils_extra/default.nix b/pkgs/development/python-modules/distutils_extra/default.nix
index ffa49fec14df..9214c3b430a9 100644
--- a/pkgs/development/python-modules/distutils_extra/default.nix
+++ b/pkgs/development/python-modules/distutils_extra/default.nix
@@ -5,17 +5,20 @@
 
 buildPythonPackage rec {
   pname = "distutils-extra";
-  version = "2.45";
+  version = "2.47";
+  format = "setuptools";
 
   src = fetchurl {
     url = "https://salsa.debian.org/python-team/modules/python-distutils-extra/-/archive/${version}/python-${pname}-${version}.tar.bz2";
-    sha256 = "1aifizd4nkvdnkwdna7i6xgjcqi1cf228bg8kmnwz67f5rflk3z8";
+    hash = "sha256-vIl50yDVt5AW5lteWYqhAPlu8ErroOOJ1N/sfE2fbBU=";
   };
 
   # Tests are out-dated as the last upstream release is from 2016
   doCheck = false;
 
-  pythonImportsCheck = [ "DistUtilsExtra" ];
+  pythonImportsCheck = [
+    "DistUtilsExtra"
+  ];
 
   meta = with lib; {
     description = "Enhancements to Python's distutils";
diff --git a/pkgs/development/python-modules/dunamai/default.nix b/pkgs/development/python-modules/dunamai/default.nix
index 0d1b183e238e..65a9f4b0dcb0 100644
--- a/pkgs/development/python-modules/dunamai/default.nix
+++ b/pkgs/development/python-modules/dunamai/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "dunamai";
-  version = "1.13.0";
+  version = "1.13.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "mtkennerly";
     repo = "dunamai";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-0x1bwu5X1P8f51NeupEQc0eghaqQIp3jb2uwZ0JDbgQ=";
+    sha256 = "sha256-UoqVfRdwOgxNLY17+dPgYO1GIPw3ZUwE/tiVzHjBxcY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index 05644d43310f..8815da5dfdee 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -9,6 +9,8 @@
 , databases
 , flask
 , httpx
+, hatchling
+, orjson
 , passlib
 , peewee
 , python-jose
@@ -19,18 +21,22 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.79.1";
-  format = "flit";
+  version = "0.85.0";
+  format = "pyproject";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "tiangolo";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-vriEwUcdITKLeIy1++dvsl5Guhtjlk2WZQrprVQsYMc=";
+    hash = "sha256-mgrw5MQMqFcXExtsu/jW01dMlygfE1GzSqXHI6BG7j4=";
   };
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "starlette==" "starlette>="
@@ -46,6 +52,7 @@ buildPythonPackage rec {
     databases
     flask
     httpx
+    orjson
     passlib
     peewee
     python-jose
diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix
index 02601febe6a2..74d48ff8a784 100644
--- a/pkgs/development/python-modules/geopandas/default.nix
+++ b/pkgs/development/python-modules/geopandas/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "geopandas";
-  version = "0.11.0";
+  version = "0.11.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "geopandas";
     repo = "geopandas";
     rev = "v${version}";
-    hash = "sha256-w3F2Uqr/+DdG2Td5YmHdF/LII2y29rQkGK5ooMUcfRk=";
+    hash = "sha256-vL+zC8q7bif5pheq6pz7XRfzMKLaLQ0xDceTz0imw/E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jarowinkler/default.nix b/pkgs/development/python-modules/jarowinkler/default.nix
index a8e194f1ddd7..03e32e56af31 100644
--- a/pkgs/development/python-modules/jarowinkler/default.nix
+++ b/pkgs/development/python-modules/jarowinkler/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "jarowinkler";
-  version = "1.2.1";
+  version = "1.2.2";
 
   disabled = pythonOlder "3.6";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "JaroWinkler";
     rev = "refs/tags/v${version}";
-    hash = "sha256-h9sR8j5avUhY+qpzKZ54O67uTjkk2JuOvMBVaohvbUk=";
+    hash = "sha256-1jImgRvGQ2x3Swkq43gq0IhgZTzIBtedoqN11hvDGns=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/luftdaten/default.nix b/pkgs/development/python-modules/luftdaten/default.nix
index e14db125fba5..db43387df27a 100644
--- a/pkgs/development/python-modules/luftdaten/default.nix
+++ b/pkgs/development/python-modules/luftdaten/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "luftdaten";
-  version = "0.7.2";
+  version = "0.7.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "home-assistant-ecosystem";
     repo = "python-luftdaten";
     rev = version;
-    sha256 = "sha256-tYaY/F4mdO5k+Oj+RkNFWP8xqh1xuDyoAKBFzAhamkA=";
+    sha256 = "sha256-+wIouOHIYgjIrObos21vzdKFQLhwutorarVUBDxCsaA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/nats-py/default.nix b/pkgs/development/python-modules/nats-py/default.nix
index 8637580c39d3..069cda129d1a 100644
--- a/pkgs/development/python-modules/nats-py/default.nix
+++ b/pkgs/development/python-modules/nats-py/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , ed25519
 , fetchFromGitHub
@@ -10,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "nats-py";
-  version = "2.1.4";
+  version = "2.1.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "nats-io";
     repo = "nats.py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gLNMKLkufy/+zS5quH/UYXBIBfkZUyHtB0TiPNEBw6I=";
+    hash = "sha256-K2ugTwfeYrdBnXFV9SHNQP+fNvUmc1yuy53gpGmmvS0=";
   };
 
   propagatedBuildInputs = [
@@ -38,21 +39,13 @@ buildPythonPackage rec {
   '';
 
   disabledTests = [
-    # RuntimeError: Event loop is closed
-    "test_subscribe_no_echo"
-    "test_publish"
-    "test_publish_verbose"
-    "test_fetch_max_waiting_fetch_one"
+    # AssertionError: assert 5 == 0
+    "test_pull_subscribe_limits"
     "test_fetch_n"
-    "test_consumer_management"
-    "test_ephemeral_subscribe"
-    "test_queue_subscribe_deliver_group"
-    "test_subscribe_push_bound"
-    "test_double_acking_subscribe"
-    "test_flow_control"
-    "test_ordered_consumer"
-    "test_ordered_consumer_single_loss"
-    "test_kv_simple"
+    "test_subscribe_no_echo"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "test_subscribe_iterate_next_msg"
+    "test_buf_size_force_flush_timeout"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pyunifiprotect/default.nix b/pkgs/development/python-modules/pyunifiprotect/default.nix
index 11d325750913..aa25a6a5dc34 100644
--- a/pkgs/development/python-modules/pyunifiprotect/default.nix
+++ b/pkgs/development/python-modules/pyunifiprotect/default.nix
@@ -3,6 +3,7 @@
 , aiohttp
 , aioshutil
 , buildPythonPackage
+, dateparser
 , fetchFromGitHub
 , ipython
 , orjson
@@ -28,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "pyunifiprotect";
-  version = "4.2.0";
+  version = "4.3.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -37,13 +38,12 @@ buildPythonPackage rec {
     owner = "briis";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-DBOPHeSEdM6cev2BZs1AwXmzNPVsekNklu9c+KhECiI=";
+    hash = "sha256-77vBKca4S0XEa5O4ntuBW8uEwVig7IBH6BX3QEmvHWc=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=pyunifiprotect --cov-append" ""
-    substituteInPlace setup.cfg \
+      --replace "--cov=pyunifiprotect --cov-append" "" \
       --replace "pydantic!=1.9.1" "pydantic"
   '';
 
@@ -55,6 +55,7 @@ buildPythonPackage rec {
     aiofiles
     aiohttp
     aioshutil
+    dateparser
     orjson
     packaging
     pillow
@@ -62,7 +63,7 @@ buildPythonPackage rec {
     pyjwt
     pytz
     typer
-  ];
+  ] ++ typer.optional-dependencies.all;
 
   passthru.optional-dependencies = {
     shell = [
diff --git a/pkgs/development/python-modules/pyupgrade/default.nix b/pkgs/development/python-modules/pyupgrade/default.nix
index 8c7bf8bbb607..9bb458151a83 100644
--- a/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/pkgs/development/python-modules/pyupgrade/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyupgrade";
-  version = "2.38.0";
+  version = "2.38.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dSCo6qB7ON0V2BZoVVaV3X2VMgrjBwZ18wiiDj/+U94=";
+    sha256 = "sha256-OWV8SdxvAYxkBj/3pPXgnEZ5RS3R+wBWJVMkqcQirEU=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix
index 01c3202767b2..49c55c5d9734 100644
--- a/pkgs/development/python-modules/rq/default.nix
+++ b/pkgs/development/python-modules/rq/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "rq";
-  version = "1.11";
+  version = "1.11.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "rq";
     repo = "rq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fv+b5WmODaQkd8T+O8MuJ+XVC3dQ5hZwxMHtBBuqQ7Y=";
+    hash = "sha256-7l/ckkDchs+iRDZLHrm4TYwA9wAJAnw9kYSaAbSo0jY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rstcheck/default.nix b/pkgs/development/python-modules/rstcheck/default.nix
index b5a3ccefc08c..a3789b97088a 100644
--- a/pkgs/development/python-modules/rstcheck/default.nix
+++ b/pkgs/development/python-modules/rstcheck/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, colorama
 , docutils
 , fetchFromGitHub
 , importlib-metadata
@@ -9,7 +8,6 @@
 , pytestCheckHook
 , pythonOlder
 , rstcheck-core
-, shellingham
 , typer
 , types-docutils
 , typing-extensions
@@ -17,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "rstcheck";
-  version = "6.0.0.post1";
+  version = "6.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +24,7 @@ buildPythonPackage rec {
     owner = "rstcheck";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Ljg1cciT9qKL9xtBxQ8OLygDpV/1yR5XiJOzHrLr6xw=";
+    hash = "sha256-dw/KggiZpKaFZMcTIaSBUhR4oQsZI3iSmEj9Sy80wTs=";
   };
 
   nativeBuildInputs = [
@@ -34,10 +32,8 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    colorama
     docutils
     rstcheck-core
-    shellingham
     types-docutils
     typing-extensions
     pydantic
@@ -45,7 +41,7 @@ buildPythonPackage rec {
   ] ++ lib.optionals (pythonOlder "3.8") [
     typing-extensions
     importlib-metadata
-  ];
+  ] ++ typer.optional-dependencies.all;
 
   checkInputs = [
     pytestCheckHook
@@ -53,6 +49,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
+      --replace 'docutils = ">=0.7, <0.19"' 'docutils = ">=0.7"' \
       --replace 'types-docutils = ">=0.18, <0.19"' 'types-docutils = ">=0.18"'
   '';
 
diff --git a/pkgs/development/python-modules/siosocks/default.nix b/pkgs/development/python-modules/siosocks/default.nix
index d588c2dff625..a1235b41a76a 100644
--- a/pkgs/development/python-modules/siosocks/default.nix
+++ b/pkgs/development/python-modules/siosocks/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "siosocks";
-  version = "0.2.0";
+  version = "0.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-k2+qTtxkF0rT5LLPW8icePbf9jNopdo9uDp3NPA9SRo=";
+    sha256 = "sha256-uja79vWhPYOhhTUBIh+XpS4GnrYJy0/XpDXXQjnyHWM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/skodaconnect/default.nix b/pkgs/development/python-modules/skodaconnect/default.nix
index 2d389fa4c5c4..a874e668e475 100644
--- a/pkgs/development/python-modules/skodaconnect/default.nix
+++ b/pkgs/development/python-modules/skodaconnect/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "skodaconnect";
-  version = "1.1.23";
+  version = "1.1.25";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "lendy007";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-nRGuDcllBAJTGjA0CIPOX/WCO04dYCm+AFC/aYKiBdY=";
+    hash = "sha256-Zky1PShQE/V2pSJURYTQHnsqdfsD3k7DWMnDidmwfxs=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/typer/default.nix b/pkgs/development/python-modules/typer/default.nix
index 2019a956ce54..35a946c6079b 100644
--- a/pkgs/development/python-modules/typer/default.nix
+++ b/pkgs/development/python-modules/typer/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , buildPythonPackage
+, colorama
 , fetchpatch
 , fetchPypi
 , flit-core
@@ -23,7 +24,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-LVcgpeY/c+rzHtqhX2q4fzXwaQ+MojMBfX0j10OpHXM=";
+    hash = "sha256-LVcgpeY/c+rzHtqhX2q4fzXwaQ+MojMBfX0j10OpHXM=";
   };
 
   nativeBuildInputs = [
@@ -34,14 +35,20 @@ buildPythonPackage rec {
     click
   ];
 
+  passthru.optional-dependencies = {
+    all = [
+      colorama
+      shellingham
+      rich
+    ];
+  };
+
   checkInputs = [
-    pytestCheckHook
-    pytest-xdist
-    pytest-sugar
-    shellingham
-    rich
     coverage # execs coverage in tests
-  ];
+    pytest-sugar
+    pytest-xdist
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.all;
 
   preCheck = ''
     export HOME=$(mktemp -d);
@@ -54,10 +61,12 @@ buildPythonPackage rec {
     "test_install_completion"
   ];
 
-  pythonImportsCheck = [ "typer" ];
+  pythonImportsCheck = [
+    "typer"
+  ];
 
   meta = with lib; {
-    description = "Python library for building CLI applications";
+    description = "Library for building CLI applications";
     homepage = "https://typer.tiangolo.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ winpat ];
diff --git a/pkgs/development/tools/gdlv/default.nix b/pkgs/development/tools/gdlv/default.nix
new file mode 100644
index 000000000000..55e44238b495
--- /dev/null
+++ b/pkgs/development/tools/gdlv/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, buildGoModule, fetchFromGitHub, OpenGL }:
+
+buildGoModule rec {
+  pname = "gdlv";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "aarzilli";
+    repo = "gdlv";
+    rev = "v${version}";
+    sha256 = "sha256-G1/Wbz836yfGZ/1ArICrNbWU6eh4SHXDmo4FKkjUszY=";
+  };
+
+  vendorSha256 = null;
+  subPackages = ".";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ OpenGL ];
+
+  meta = with lib; {
+    description = "GUI frontend for Delve";
+    homepage = "https://github.com/aarzilli/gdlv";
+    maintainers = with maintainers; [ mmlb ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/development/tools/godot/export-templates.nix b/pkgs/development/tools/godot/export-templates.nix
index bfcf3e3b3dca..9d306365f190 100644
--- a/pkgs/development/tools/godot/export-templates.nix
+++ b/pkgs/development/tools/godot/export-templates.nix
@@ -10,6 +10,14 @@ godot.overrideAttrs (oldAttrs: rec {
     mkdir -p "$out/share/godot/templates/${oldAttrs.version}.stable"
     cp bin/godot.x11.opt.64 $out/share/godot/templates/${oldAttrs.version}.stable/linux_x11_64_release
   '';
+
+  # https://docs.godotengine.org/en/stable/development/compiling/optimizing_for_size.html
+  # Stripping reduces the template size from around 500MB to 40MB for Linux.
+  # This also impacts the size of the exported games.
+  # This is added explicitly here because mkDerivation does not automatically
+  # strip binaries in the template directory.
+  stripAllList = (oldAttrs.stripAllList or []) ++ [ "share/godot/templates" ];
+
   outputs = [ "out" ];
   meta.description =
     "Free and Open Source 2D and 3D game engine (export templates)";
diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
index 8d41b7488e4d..cd57796b0bc3 100644
--- a/pkgs/development/tools/misc/texlab/default.nix
+++ b/pkgs/development/tools/misc/texlab/default.nix
@@ -14,16 +14,16 @@ let
   isCross = stdenv.hostPlatform != stdenv.buildPlatform;
 in rustPlatform.buildRustPackage rec {
   pname = "texlab";
-  version = "4.2.2";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-vGKDngFYh24wwR5nAYEz1GXm+K4sqEBvOp9jsioE0wU=";
+    sha256 = "sha256-PhzxWLkqsHU32vIZwHzdy86bwIzDDmnxp12PS774P3k=";
   };
 
-  cargoSha256 = "sha256-s2gQuLkPxKQceGl3II9D6vWisYgL+YCI/YhX+mSyPoo=";
+  cargoSha256 = "sha256-tH566L0oHnI9mNp1KtJYaBaWCkiAOrtBYkfVSCA2N6w=";
 
   outputs = [ "out" ] ++ lib.optional (!isCross) "man";
 
@@ -48,7 +48,7 @@ in rustPlatform.buildRustPackage rec {
   # generate the man page
   + lib.optionalString (!isCross) ''
     # TexLab builds man page separately in CI:
-    # https://github.com/latex-lsp/texlab/blob/v4.2.2/.github/workflows/publish.yml#L131-L135
+    # https://github.com/latex-lsp/texlab/blob/v4.3.0/.github/workflows/publish.yml#L131-L135
     help2man --no-info "$out/bin/texlab" > texlab.1
     installManPage texlab.1
   '';
diff --git a/pkgs/development/tools/rust/humility/default.nix b/pkgs/development/tools/rust/humility/default.nix
new file mode 100644
index 000000000000..92e3e78077c1
--- /dev/null
+++ b/pkgs/development/tools/rust/humility/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, libusb
+, libftdi
+, cargo-readme
+, pkg-config
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "humility";
+  version = "unstable-2022-09-15";
+
+  nativeBuildInputs = [ pkg-config cargo-readme ];
+  buildInputs = [ libusb libftdi ];
+
+  src = fetchFromGitHub {
+    owner = "oxidecomputer";
+    repo = pname;
+    rev = "d336c21c7b6da7f8203a9331c7657581de2bc6ad";
+    sha256 = "sha256-yW7QcxTWbL2YsV2bvfhbqQ2nawlPQbYxBfIGCWo28GY=";
+  };
+
+  cargoSha256 = "sha256-UhO8VO3OCfYc8Xq/P+l9f5ZrhOD/TBzSClAeAXLJLlc=";
+
+  meta = with lib; {
+    description = "Debugger for Hubris";
+    homepage = "https://github.com/oxidecomputer/humility";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ therishidesai ];
+  };
+}
diff --git a/pkgs/games/unciv/default.nix b/pkgs/games/unciv/default.nix
index 522c845c471d..f61e67635903 100644
--- a/pkgs/games/unciv/default.nix
+++ b/pkgs/games/unciv/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "4.2.6";
+  version = "4.2.11";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    sha256 = "sha256-AJqD8xF+FIKw34NhcnYCexXRs8aIzL8XDHhs5fGBTn0=";
+    sha256 = "sha256-bA1rz4PvpcdMSGob+KIdSpyq6ePlLj8l61r0+XclfZY=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/os-specific/darwin/defaultbrowser/default.nix b/pkgs/os-specific/darwin/defaultbrowser/default.nix
new file mode 100644
index 000000000000..be3dcd417731
--- /dev/null
+++ b/pkgs/os-specific/darwin/defaultbrowser/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, Foundation }:
+
+stdenv.mkDerivation rec {
+  pname = "defaultbrowser";
+  version = "unstable-2020-07-23";
+
+  src = fetchFromGitHub {
+    owner = "kerma";
+    repo = pname;
+    rev = "d2860c00dd7fbb5d615232cc819d7d492a6a6ddb";
+    sha256 = "sha256-SelUQXoKtShcDjq8uKg3wM0kG2opREa2DGQCDd6IsOQ=";
+  };
+
+  makeFlags = [ "CC=cc" "PREFIX=$(out)" ];
+
+  buildInputs = [ Foundation ];
+
+  meta = with lib; {
+    mainProgram = "defaultbrowser";
+    description = "Command line tool for getting and setting a default browser (HTTP handler) in Mac OS X";
+    homepage = "https://github.com/kerma/defaultbrowser";
+    platforms = platforms.darwin;
+    maintainers = with maintainers; [ Enzime ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/servers/mastodon/default.nix b/pkgs/servers/mastodon/default.nix
index 17ecdc60ef93..a312ecb76da7 100644
--- a/pkgs/servers/mastodon/default.nix
+++ b/pkgs/servers/mastodon/default.nix
@@ -52,6 +52,9 @@ stdenv.mkDerivation rec {
 
     buildPhase = ''
       export HOME=$PWD
+      # This option is needed for openssl-3 compatibility
+      # Otherwise we encounter this upstream issue: https://github.com/mastodon/mastodon/issues/17924
+      export NODE_OPTIONS=--openssl-legacy-provider
       fixup_yarn_lock ~/yarn.lock
       yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
       yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
diff --git a/pkgs/servers/memcached/default.nix b/pkgs/servers/memcached/default.nix
index 61f48824ea45..9d83d12f3e43 100644
--- a/pkgs/servers/memcached/default.nix
+++ b/pkgs/servers/memcached/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl, cyrus_sasl, libevent, nixosTests }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.16";
+  version = "1.6.17";
   pname = "memcached";
 
   src = fetchurl {
     url = "https://memcached.org/files/${pname}-${version}.tar.gz";
-    sha256 = "sha256-MFGpO/HdDDry0OWJ/272UR+HY4WjWxjp/4dB5KGrNNo=";
+    sha256 = "sha256-IFXjc2E9j8IVKa/58K3OPiO5zgG6BHjTDnlB2fK9EiQ=";
   };
 
   configureFlags = [
diff --git a/pkgs/servers/monitoring/prometheus/kthxbye.nix b/pkgs/servers/monitoring/prometheus/kthxbye.nix
new file mode 100644
index 000000000000..ab7812081fad
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/kthxbye.nix
@@ -0,0 +1,39 @@
+{ pkgs
+, lib
+, buildGoModule
+, fetchFromGitHub
+, nixosTests
+}:
+
+buildGoModule rec {
+  pname = "kthxbye";
+  version = "0.15";
+
+  src = fetchFromGitHub rec {
+    owner = "prymitive";
+    repo = "kthxbye";
+    rev = "v${version}";
+    hash = "sha256-N1MzutjzLk9MnE1b7dKRsiS7LL4Nb61+NpmjTBPGohI=";
+  };
+
+  vendorHash = "sha256-PtINxblqX/wxJyN42mS+hmwMy0lCd6FcQgmBnxTUdcc=";
+
+  buildPhase = ''
+    make -j$NIX_BUILD_CORES
+  '';
+
+  installPhase = ''
+    install -Dm755 ./kthxbye -t $out/bin
+  '';
+
+  passthru.tests = {
+    kthxbye = nixosTests.kthxbye;
+  };
+
+  meta = with lib; {
+    description = "Prometheus Alertmanager alert acknowledgement management daemon";
+    homepage = "https://github.com/prymitive/kthxbye";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nukaduka ];
+  };
+}
diff --git a/pkgs/tools/backup/discordchatexporter-cli/default.nix b/pkgs/tools/backup/discordchatexporter-cli/default.nix
index ba93488625e4..33b072ddcb15 100644
--- a/pkgs/tools/backup/discordchatexporter-cli/default.nix
+++ b/pkgs/tools/backup/discordchatexporter-cli/default.nix
@@ -8,13 +8,13 @@
 
 buildDotnetModule rec {
   pname = "discordchatexporter-cli";
-  version = "2.36";
+  version = "2.36.1";
 
   src = fetchFromGitHub {
     owner = "tyrrrz";
     repo = "discordchatexporter";
     rev = version;
-    sha256 = "0PHTW1fo+bp2OwyNeUfBXMn+aVWQc4mc+T6BEzG/gDA=";
+    sha256 = "svBVXny8ZsZnXG5cDPDKlR2dNhPzPOW4VGaOZkLrRNA=";
   };
 
   projectFile = "DiscordChatExporter.Cli/DiscordChatExporter.Cli.csproj";
diff --git a/pkgs/tools/misc/3mux/default.nix b/pkgs/tools/misc/3mux/default.nix
index d91a52ddd3e9..31787467525f 100644
--- a/pkgs/tools/misc/3mux/default.nix
+++ b/pkgs/tools/misc/3mux/default.nix
@@ -13,9 +13,10 @@ buildGoModule rec {
 
   patches = [
     # Fix the build for Darwin when building with Go 1.18.
+    # https://github.com/aaronjanse/3mux/pull/127
     (fetchpatch {
       name = "darwin-go-1.18-fix.patch";
-      url = "https://github.com/aaronjanse/3mux/pull/127/commits/91aed826c50f75a5175b63c72a1fb6a4ad57a008.patch";
+      url = "https://github.com/aaronjanse/3mux/commit/91aed826c50f75a5175b63c72a1fb6a4ad57a008.patch";
       sha256 = "sha256-MOPAyWAYYWrlCCgw1rBaNmHZO9oTIpIQwLJcs0aY/m8=";
     })
   ];
diff --git a/pkgs/tools/misc/markdown-anki-decks/default.nix b/pkgs/tools/misc/markdown-anki-decks/default.nix
index 375966da36b9..d035c9db7317 100644
--- a/pkgs/tools/misc/markdown-anki-decks/default.nix
+++ b/pkgs/tools/misc/markdown-anki-decks/default.nix
@@ -4,13 +4,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "markdown-anki-decks";
-  version = "1.0.0";
-
+  version = "1.1.1";
   format = "pyproject";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "R6T8KOHMb1Neg/RG5JQl9+7LxOkAoZL0L5wvVaqm9O0=";
+    hash = "sha256-SvKjjE629OwxWsPo2egGf2K6GzlWAYYStarHhA4Ex0w=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -18,31 +17,30 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
-    genanki
-    typer
-    colorama
-    shellingham
     beautifulsoup4
+    genanki
     markdown
     python-frontmatter
-  ];
+    typer
+  ] ++ typer.optional-dependencies.all;
 
   postPatch = ''
-    # No API changes.
     substituteInPlace pyproject.toml \
-      --replace 'python-frontmatter = "^0.5.0"' 'python-frontmatter = "^1.0.0"' \
-      --replace 'genanki = "^0.10.1"' 'genanki = "*"' \
-      --replace 'typer = "^0.3.2"' 'typer = "*"'
+      --replace 'typer = "^0.4.0"' 'typer = "*"'
   '';
 
   # No tests available on Pypi and there is only a failing version assertion test in the repo.
   doCheck = false;
 
+  pythonImportsCheck = [
+    "markdown_anki_decks"
+  ];
+
   meta = with lib; {
-    description = "Simple program to convert markdown files into anki decks";
-    maintainers = with maintainers; [ jtojnar ];
+    description = "Tool to convert Markdown files into Anki Decks";
     homepage = "https://github.com/lukesmurray/markdown-anki-decks";
     license = licenses.mit;
+    maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index 99714df0e81a..e2024f623ba9 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "websocat";
-  version = "1.9.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "vi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aQWLsdYHmju7tCJfg3a1aOlFYui7qsQ8vJfhyMawXWo=";
+    sha256 = "sha256-FomP5ykHc5oAA7zF7r+PXHf30KaTmYTmVm6Mwf/tPdQ=";
   };
 
-  cargoSha256 = "sha256-b/B+K/LMP1XK1QEtFKY4nmy2fAqEmLTN+qL+XlrqA5w=";
+  cargoSha256 = "sha256-YVI1+WsDMoznRTjnzwlPTdJMRPsQFYtzssoU0sQwQfA=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
   buildInputs = [ openssl ]
diff --git a/pkgs/tools/misc/xdg-ninja/default.nix b/pkgs/tools/misc/xdg-ninja/default.nix
new file mode 100644
index 000000000000..e0c59260a454
--- /dev/null
+++ b/pkgs/tools/misc/xdg-ninja/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchFromGitHub, makeWrapper, jq, glow }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "xdg-ninja";
+  version = "0.2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "b3nj5m1n";
+    repo = "xdg-ninja";
+    rev = "v${version}";
+    sha256 = "sha256-ZyqxMlyCB8gEsZTVrxgLdW/mQ/4xeTHTK+lDKIzYs6I=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 xdg-ninja.sh "$out/share/xdg-ninja/xdg-ninja.sh"
+    install -Dm644 programs/* -t "$out/share/xdg-ninja/programs"
+
+    mkdir -p "$out/bin"
+    ln -s "$out/share/xdg-ninja/xdg-ninja.sh" "$out/bin/xdg-ninja"
+
+    wrapProgram "$out/bin/xdg-ninja" \
+      --prefix PATH : "${lib.makeBinPath [ glow jq ]}"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A shell script which checks your $HOME for unwanted files and directories";
+    homepage = "https://github.com/b3nj5m1n/xdg-ninja";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ patricksjackson ];
+  };
+}
diff --git a/pkgs/tools/security/gallia/default.nix b/pkgs/tools/security/gallia/default.nix
new file mode 100644
index 000000000000..14657c6ecc7d
--- /dev/null
+++ b/pkgs/tools/security/gallia/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "gallia";
+  version = "1.0.3";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "Fraunhofer-AISEC";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-CoZ3niGuEjcaSyIGc0MIy95v64nTbhgqW/0uz4a/f1o=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiofiles
+    aiohttp
+    aiosqlite
+    argcomplete
+    can
+    construct
+    msgspec
+    pydantic
+    tabulate
+    tomlkit
+    xdg
+    zstandard
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'zstandard = "^0.17.0"' 'zstandard = "*"'
+  '';
+
+  pythonImportsCheck = [
+    "gallia"
+  ];
+
+  preCheck = ''
+    export PATH=$out/bin:$PATH
+  '';
+
+  meta = with lib; {
+    description = "Pentesting framework with the focus on the automotive domain";
+    homepage = "https://github.com/Fraunhofer-AISEC/gallia";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/tools/text/scraper/default.nix b/pkgs/tools/text/scraper/default.nix
new file mode 100644
index 000000000000..4118387a34a5
--- /dev/null
+++ b/pkgs/tools/text/scraper/default.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchCrate, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "scraper";
+  version = "0.13.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-5fFO51I6DqH1BBELt9FW2BCwYcsXVXaQLgocMn446Bs=";
+  };
+
+  cargoSha256 = "sha256-Y4m7C7v4ekJfb3BoWwDF+X8uuRH9muaTwPECgu4WaMQ=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installManPage scraper.1
+  '';
+
+  meta = with lib; {
+    description = "A tool to query HTML files with CSS selectors";
+    homepage = "https://github.com/causal-agent/scraper";
+    license = licenses.isc;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/tools/virtualization/uefi-run/default.nix b/pkgs/tools/virtualization/uefi-run/default.nix
new file mode 100644
index 000000000000..8174f8980897
--- /dev/null
+++ b/pkgs/tools/virtualization/uefi-run/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "uefi-run";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "Richard-W";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-fwzWdOinW/ECVI/65pPB1shxPdl2nZThAqlg8wlWg/g=";
+  };
+
+  cargoSha256 = "sha256-c+wzMzTkG0FpfQ1rZ8e9dn0ez12vmoecrtNeFk90sdQ=";
+
+  meta = with lib; {
+    description = "Directly run UEFI applications in qemu";
+    homepage = "https://github.com/Richard-W/uefi-run";
+    license = licenses.mit;
+    maintainers = [ maintainers.maddiethecafebabe ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index aeb2395195ee..1b26565fe7d0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -723,6 +723,8 @@ with pkgs;
 
   graph-easy = callPackage ../tools/graphics/graph-easy { };
 
+  mangal = callPackage ../applications/misc/mangal { };
+
   graphw00f = callPackage ../tools/security/graphw00f { };
 
   opendrop = python3Packages.callPackage ../tools/networking/opendrop { };
@@ -1661,7 +1663,8 @@ with pkgs;
   dolphin-emu = callPackage ../applications/emulators/dolphin-emu { };
 
   dolphin-emu-beta = qt5.callPackage ../applications/emulators/dolphin-emu/master.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
+    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL VideoToolbox;
+    inherit (darwin) moltenvk;
   };
 
   dolphin-emu-primehack = qt5.callPackage ../applications/emulators/dolphin-emu/primehack.nix {
@@ -10878,6 +10881,8 @@ with pkgs;
 
   scfbuild = python3.pkgs.callPackage ../tools/misc/scfbuild { };
 
+  scraper = callPackage ../tools/text/scraper { };
+
   scriptaculous = callPackage ../development/libraries/scriptaculous { };
 
   scrot = callPackage ../tools/graphics/scrot { };
@@ -12641,6 +12646,8 @@ with pkgs;
 
   xdummy = callPackage ../tools/misc/xdummy { };
 
+  xdg-ninja = callPackage ../tools/misc/xdg-ninja { };
+
   xdxf2slob = callPackage ../tools/misc/xdxf2slob { };
 
   xe-guest-utilities = callPackage ../tools/virtualization/xe-guest-utilities { };
@@ -14125,6 +14132,8 @@ with pkgs;
   julia_16-bin = callPackage ../development/compilers/julia/1.6-bin.nix { };
   julia_18-bin = callPackage ../development/compilers/julia/1.8-bin.nix { };
 
+  julia_18 = callPackage ../development/compilers/julia/1.8.nix { };
+
   julia-lts-bin = julia_16-bin;
   julia-stable-bin = julia_18-bin;
   julia-bin = julia-stable-bin;
@@ -18324,6 +18333,8 @@ with pkgs;
 
   galer = callPackage ../tools/security/galer { };
 
+  gallia = callPackage ../tools/security/gallia { };
+
   gamenetworkingsockets = callPackage ../development/libraries/gamenetworkingsockets { };
 
   game-music-emu = callPackage ../development/libraries/audio/game-music-emu { };
@@ -21301,6 +21312,8 @@ with pkgs;
 
   qolibri = libsForQt5.callPackage ../applications/misc/qolibri { };
 
+  quarto = callPackage ../development/libraries/quarto { };
+
   qt4 = qt48;
 
   qt48 = callPackage ../development/libraries/qt-4.x/4.8 {
@@ -24240,6 +24253,10 @@ with pkgs;
   # `.override` clobbered. C.F. `llvmPackages` which does the same.
   darwin = callPackage ./darwin-packages.nix { };
 
+  defaultbrowser = callPackage ../os-specific/darwin/defaultbrowser {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
+
   disk_indicator = callPackage ../os-specific/linux/disk-indicator { };
 
   displaylink = callPackage ../os-specific/linux/displaylink {
@@ -24380,6 +24397,8 @@ with pkgs;
 
   htop-vim = callPackage ../tools/system/htop/htop-vim.nix { };
 
+  humility = callPackage ../development/tools/rust/humility {};
+
   btop = callPackage ../tools/system/btop {
     stdenv = gcc11Stdenv;
   };
@@ -24799,6 +24818,10 @@ with pkgs;
 
   ginkgo = callPackage ../development/tools/ginkgo { };
 
+  gdlv = callPackage ../development/tools/gdlv {
+    inherit (darwin.apple_sdk.frameworks) OpenGL;
+  };
+
   go-bindata = callPackage ../development/tools/go-bindata { };
 
   go-bindata-assetfs = callPackage ../development/tools/go-bindata-assetfs { };
@@ -27959,6 +27982,11 @@ with pkgs;
 
   filezilla = callPackage ../applications/networking/ftp/filezilla { };
 
+  fire = darwin.apple_sdk_11_0.callPackage ../applications/audio/fire {
+    inherit (darwin.apple_sdk_11_0.frameworks) Cocoa WebKit CoreServices DiscRecording CoreAudioKit MetalKit;
+    inherit (darwin.apple_sdk_11_0.libs) simd;
+  };
+
   buildMozillaMach = opts: callPackage (import ../applications/networking/browsers/firefox/common.nix opts) {};
 
   firefoxPackages = recurseIntoAttrs (callPackage ../applications/networking/browsers/firefox/packages.nix {});
@@ -28057,13 +28085,13 @@ with pkgs;
   fractal-next = callPackage ../applications/networking/instant-messengers/fractal-next {
     inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-bad;
     libadwaita = libadwaita.overrideAttrs (finalAtts: rec {
-      version = "1.2.alpha";
+      version = "1.2.0";
       src = fetchFromGitLab {
         domain = "gitlab.gnome.org";
         owner = "GNOME";
         repo = "libadwaita";
         rev = version;
-        hash = "sha256-JMxUeIOUPp9k5pImQqWLVkQ2GHaKvopvg6ol9pvA+Bk=";
+        hash = "sha256-3lH7Vi9M8k+GSrCpvruRpLrIpMoOakKbcJlaAc/FK+U=";
       };
     });
   };
@@ -29186,6 +29214,10 @@ with pkgs;
 
   pinniped = callPackage ../applications/networking/cluster/pinniped { };
 
+  kthxbye = callPackage ../servers/monitoring/prometheus/kthxbye.nix {
+    buildGoModule = buildGo119Module;
+  };
+
   pgo-client = callPackage ../applications/networking/cluster/pgo-client { };
 
   popeye = callPackage ../applications/networking/cluster/popeye { };
@@ -31773,6 +31805,8 @@ with pkgs;
 
   ueberzug = with python3Packages; toPythonApplication ueberzug;
 
+  uefi-run = callPackage ../tools/virtualization/uefi-run { };
+
   uhhyou.lv2 = callPackage ../applications/audio/uhhyou.lv2 { };
 
   umurmur = callPackage ../applications/networking/umurmur {
@@ -34595,6 +34629,8 @@ with pkgs;
     stdenv = gccStdenv;
   };
 
+  seqtk = callPackage ../applications/science/biology/seqtk { };
+
   snpeff = callPackage ../applications/science/biology/snpeff { };
 
   somafm-cli = callPackage ../tools/misc/somafm-cli { };