summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix12
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2305.section.xml6
-rw-r--r--nixos/doc/manual/release-notes/rl-2305.section.md2
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix73
-rw-r--r--nixos/modules/virtualisation/multipass.nix61
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/multipass.nix37
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix114
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix5
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names2
-rw-r--r--pkgs/applications/finance/denaro/default.nix70
-rw-r--r--pkgs/applications/finance/denaro/deps.nix40
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix4
-rw-r--r--pkgs/applications/misc/fetchmail/default.nix4
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/stork/default.nix11
-rw-r--r--pkgs/applications/misc/tvbrowser/bin.nix55
-rw-r--r--pkgs/applications/misc/tvbrowser/default.nix87
-rw-r--r--pkgs/applications/misc/tvbrowser/test.nix40
-rw-r--r--pkgs/applications/networking/cluster/werf/default.nix4
-rw-r--r--pkgs/applications/science/misc/cwltool/default.nix4
-rw-r--r--pkgs/development/compilers/aspectj/default.nix4
-rw-r--r--pkgs/development/embedded/arduino/arduino-cli/default.nix17
-rw-r--r--pkgs/development/interpreters/python/cpython/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kimageformats.nix4
-rw-r--r--pkgs/development/libraries/opencv/4.x.nix4
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix4
-rw-r--r--pkgs/development/python-modules/elementpath/default.nix5
-rw-r--r--pkgs/development/python-modules/fastapi-mail/default.nix4
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/oralb-ble/default.nix4
-rw-r--r--pkgs/development/python-modules/pylutron-caseta/default.nix4
-rw-r--r--pkgs/development/python-modules/python-crfsuite/default.nix4
-rw-r--r--pkgs/development/python-modules/stripe/default.nix5
-rw-r--r--pkgs/development/python-modules/wand/default.nix7
-rw-r--r--pkgs/development/tools/dump_syms/default.nix6
-rw-r--r--pkgs/development/tools/typos/default.nix6
-rw-r--r--pkgs/games/ecwolf/default.nix31
-rw-r--r--pkgs/servers/monitoring/mimir/default.nix4
-rw-r--r--pkgs/servers/monitoring/zabbix/proxy.nix7
-rw-r--r--pkgs/servers/nats-server/default.nix6
-rw-r--r--pkgs/servers/rustypaste/default.nix6
-rw-r--r--pkgs/tools/misc/pre-commit/default.nix3
-rw-r--r--pkgs/tools/security/fail2ban/default.nix7
-rw-r--r--pkgs/tools/security/sequoia-chameleon-gnupg/default.nix22
-rw-r--r--pkgs/tools/virtualization/multipass/default.nix128
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix19
-rw-r--r--pkgs/top-level/perl-packages.nix4
50 files changed, 692 insertions, 269 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index b8df8e1616b..82916749f9a 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -6638,6 +6638,12 @@
     github = "jayeshbhoot";
     githubId = 1915507;
   };
+  jayman2000 = {
+    email = "jason@jasonyundt.email";
+    github = "Jayman2000";
+    githubId = 5579359;
+    name = "Jason Yundt";
+  };
   jb55 = {
     email = "jb55@jb55.com";
     github = "jb55";
@@ -7015,6 +7021,12 @@
     githubId = 2308444;
     name = "Joshua Gilman";
   };
+  jnsgruk = {
+    email = "jon@sgrs.uk";
+    github = "jnsgruk";
+    githubId = 668505;
+    name = "Jon Seager";
+  };
   jo1gi = {
     email = "joakimholm@protonmail.com";
     github = "jo1gi";
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml
index 1ae5fede272..2fd0d01abef 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml
@@ -860,6 +860,12 @@
       </listitem>
       <listitem>
         <para>
+          <literal>tvbrowser-bin</literal> was removed, and now
+          <literal>tvbrowser</literal> is built from source.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <literal>nixos-version</literal> now accepts
           <literal>--configuration-revision</literal> to display more
           information about the current generation revision
diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md
index 2977a9e6a1c..01e2ff01f29 100644
--- a/nixos/doc/manual/release-notes/rl-2305.section.md
+++ b/nixos/doc/manual/release-notes/rl-2305.section.md
@@ -213,6 +213,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [Xastir](https://xastir.org/index.php/Main_Page) can now access AX.25 interfaces via the `libax25` package.
 
+- `tvbrowser-bin` was removed, and now `tvbrowser` is built from source.
+
 - `nixos-version` now accepts `--configuration-revision` to display more information about the current generation revision
 
 - The option `services.nomad.extraSettingsPlugins` has been fixed to allow more than one plugin in the path.
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 2757a196555..111eee47480 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -1365,6 +1365,7 @@
   ./virtualisation/lxc.nix
   ./virtualisation/lxcfs.nix
   ./virtualisation/lxd.nix
+  ./virtualisation/multipass.nix
   ./virtualisation/nixos-containers.nix
   ./virtualisation/oci-containers.nix
   ./virtualisation/openstack-options.nix
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 65b94f61c4a..eb0373c686c 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -28,52 +28,11 @@ let
 
   libsForQt5 = pkgs.plasma5Packages;
   inherit (libsForQt5) kdeGear kdeFrameworks plasma5;
-  inherit (pkgs) writeText;
   inherit (lib)
     getBin optionalString literalExpression
     mkRemovedOptionModule mkRenamedOptionModule
     mkDefault mkIf mkMerge mkOption mkPackageOptionMD types;
 
-  ini = pkgs.formats.ini { };
-
-  gtkrc2 = writeText "gtkrc-2.0" ''
-    # Default GTK+ 2 config for NixOS Plasma 5
-    include "/run/current-system/sw/share/themes/Breeze/gtk-2.0/gtkrc"
-    style "user-font"
-    {
-      font_name="Sans Serif Regular"
-    }
-    widget_class "*" style "user-font"
-    gtk-font-name="Sans Serif Regular 10"
-    gtk-theme-name="Breeze"
-    gtk-icon-theme-name="breeze"
-    gtk-fallback-icon-theme="hicolor"
-    gtk-cursor-theme-name="breeze_cursors"
-    gtk-toolbar-style=GTK_TOOLBAR_ICONS
-    gtk-menu-images=1
-    gtk-button-images=1
-  '';
-
-  gtk3_settings = ini.generate "settings.ini" {
-    Settings = {
-      gtk-font-name = "Sans Serif Regular 10";
-      gtk-theme-name = "Breeze";
-      gtk-icon-theme-name = "breeze";
-      gtk-fallback-icon-theme = "hicolor";
-      gtk-cursor-theme-name = "breeze_cursors";
-      gtk-toolbar-style = "GTK_TOOLBAR_ICONS";
-      gtk-menu-images = 1;
-      gtk-button-images = 1;
-    };
-  };
-
-  kcminputrc = ini.generate "kcminputrc" {
-    Mouse = {
-      cursorTheme = "breeze_cursors";
-      cursorSize = 0;
-    };
-  };
-
   activationScript = ''
     ${set_XDG_CONFIG_HOME}
 
@@ -119,37 +78,6 @@ let
     XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
   '';
 
-  startplasma = ''
-    ${set_XDG_CONFIG_HOME}
-    mkdir -p "''${XDG_CONFIG_HOME}"
-  '' + optionalString config.hardware.pulseaudio.enable ''
-    # Load PulseAudio module for routing support.
-    # See also: http://colin.guthr.ie/2009/10/so-how-does-the-kde-pulseaudio-support-work-anyway/
-      ${getBin config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
-  '' + ''
-    ${activationScript}
-
-    # Create default configurations if Plasma has never been started.
-    kdeglobals="''${XDG_CONFIG_HOME}/kdeglobals"
-    if ! [ -f "$kdeglobals" ]; then
-      kcminputrc="''${XDG_CONFIG_HOME}/kcminputrc"
-      if ! [ -f "$kcminputrc" ]; then
-          cat ${kcminputrc} >"$kcminputrc"
-      fi
-
-      gtkrc2="$HOME/.gtkrc-2.0"
-      if ! [ -f "$gtkrc2" ]; then
-          cat ${gtkrc2} >"$gtkrc2"
-      fi
-
-      gtk3_settings="''${XDG_CONFIG_HOME}/gtk-3.0/settings.ini"
-      if ! [ -f "$gtk3_settings" ]; then
-          mkdir -p "$(dirname "$gtk3_settings")"
-          cat ${gtk3_settings} >"$gtk3_settings"
-      fi
-    fi
-  '';
-
 in
 
 {
@@ -474,7 +402,6 @@ in
 
       # Update the start menu for each user that is currently logged in
       system.userActivationScripts.plasmaSetup = activationScript;
-      services.xserver.displayManager.setupCommands = startplasma;
 
       nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
     })
diff --git a/nixos/modules/virtualisation/multipass.nix b/nixos/modules/virtualisation/multipass.nix
new file mode 100644
index 00000000000..d066932b612
--- /dev/null
+++ b/nixos/modules/virtualisation/multipass.nix
@@ -0,0 +1,61 @@
+{ config
+, lib
+, pkgs
+, ...
+}:
+
+let
+  cfg = config.virtualisation.multipass;
+in
+{
+  options = {
+    virtualisation.multipass = {
+      enable = lib.mkEnableOption (lib.mdDoc ''
+        Multipass, a simple manager for virtualised Ubuntu instances.
+      '');
+
+      logLevel = lib.mkOption {
+        type = lib.types.enum [ "error" "warning" "info" "debug" "trace" ];
+        default = "debug";
+        description = lib.mdDoc ''
+          The logging verbosity of the multipassd binary.
+        '';
+      };
+
+      package = lib.mkPackageOptionMD pkgs "multipass" { };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    systemd.services.multipass = {
+      description = "Multipass orchestrates virtual Ubuntu instances.";
+
+      wantedBy = [ "multi-user.target" ];
+      wants = [ "network.target" ];
+      after = [ "network.target" ];
+
+      environment = {
+        "XDG_DATA_HOME" = "/var/lib/multipass/data";
+        "XDG_CACHE_HOME" = "/var/lib/multipass/cache";
+        "XDG_CONFIG_HOME" = "/var/lib/multipass/config";
+      };
+
+      serviceConfig = {
+        ExecStart = "${cfg.package}/bin/multipassd --logger platform --verbosity ${cfg.logLevel}";
+        SyslogIdentifer = "multipassd";
+        Restart = "on-failure";
+        TimeoutStopSec = 300;
+        Type = "simple";
+
+        WorkingDirectory = "/var/lib/multipass";
+
+        StateDirectory = "multipass";
+        StateDirectoryMode = "0750";
+        CacheDirectory = "multipass";
+        CacheDirectoryMode = "0750";
+      };
+    };
+  };
+}
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 1fc8bb777db..a23a0413160 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -412,6 +412,7 @@ in {
   mpd = handleTest ./mpd.nix {};
   mpv = handleTest ./mpv.nix {};
   mtp = handleTest ./mtp.nix {};
+  multipass = handleTest ./multipass.nix {};
   mumble = handleTest ./mumble.nix {};
   musescore = handleTest ./musescore.nix {};
   munin = handleTest ./munin.nix {};
diff --git a/nixos/tests/multipass.nix b/nixos/tests/multipass.nix
new file mode 100644
index 00000000000..0980e9195f5
--- /dev/null
+++ b/nixos/tests/multipass.nix
@@ -0,0 +1,37 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+
+let
+  multipass-image = import ../release.nix {
+    configuration = {
+      # Building documentation makes the test unnecessarily take a longer time:
+      documentation.enable = lib.mkForce false;
+    };
+  };
+
+in
+{
+  name = "multipass";
+
+  meta.maintainers = [ lib.maintainers.jnsgruk ];
+
+  nodes.machine = { lib, ... }: {
+    virtualisation = {
+      cores = 1;
+      memorySize = 1024;
+      diskSize = 4096;
+
+      multipass.enable = true;
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("sockets.target")
+    machine.wait_for_unit("multipass.service")
+    machine.wait_for_file("/var/lib/multipass/data/multipassd/network/multipass_subnet")
+
+    # Wait for Multipass to settle
+    machine.sleep(1)
+
+    machine.succeed("multipass list")
+  '';
+})
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index 71af02bee7d..2ce41e70f78 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -293,12 +293,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPluginFrom2Nix {
     pname = "SchemaStore.nvim";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "bb952ae19d2b227b549133a3b0ed69a3436d208e";
-      sha256 = "0lg5ibn3q1kw951k7j11f7c24qmf4sy9y3y2pqlpvk9bvc095jyl";
+      rev = "5c5723bd464fd048f5d62fcf20c41495d3386a33";
+      sha256 = "1vpay869faixkxpvxlwpk44pidjgnrhkchnchfsbd6c2brhgzz11";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -727,12 +727,12 @@ final: prev:
 
   aurora = buildVimPluginFrom2Nix {
     pname = "aurora";
-    version = "2023-02-02";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "aurora";
-      rev = "ef44f07a563d59b23c3f17792f4ff3b5fb4280a1";
-      sha256 = "14w830fnr19rnjqwg5yqns4xf27nhvc169qrmkjn8y054i6yjsg2";
+      rev = "f7b2df980aa0518a1a208974dfcbc51ff91b531e";
+      sha256 = "1d0p7d7kicqy4bbh3kaxn9as71afjljp38lhcc595l2b8nlaf2hc";
     };
     meta.homepage = "https://github.com/ray-x/aurora/";
   };
@@ -1759,12 +1759,12 @@ final: prev:
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2023-02-01";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "80858aa01d57ed2f93c6bc388bad373810d41a21";
-      sha256 = "0rcikmjdhcw39kngx93snpnn0sh780drqnn342gg9ifnysbva3d9";
+      rev = "9f702344b9550800e9ca928cd21fd6dcc8dffaef";
+      sha256 = "10s0nqhybry6m6p13gvmchmc6in7zn7pgi1930svy7czqblcg6rw";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -2155,12 +2155,12 @@ final: prev:
 
   coq_nvim = buildVimPluginFrom2Nix {
     pname = "coq_nvim";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "67b7623184406dda85ae0ea678cb82a6f2a509d0";
-      sha256 = "0gzna1qyialp6b4iap9jnfhf3w7anp7xlg6hdal2r0i60h9f0igm";
+      rev = "d11f4eb12d73c5dcf5d6691378b18447446ec919";
+      sha256 = "08kkp57k4138cb4jgv3q3x3h2qx7f29kr914lzqzrb7q4ybzm6b8";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
@@ -2299,12 +2299,12 @@ final: prev:
 
   dashboard-nvim = buildVimPluginFrom2Nix {
     pname = "dashboard-nvim";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "dashboard-nvim";
-      rev = "5d7b14dfa88a32040647649b1e714051235bfd32";
-      sha256 = "1iknwbwiq2rykf36vr3agdzlyb54mkppjywh4qdgqgach71016l3";
+      rev = "d69d20170e12a20fa305e90870d6016e636cc328";
+      sha256 = "18i9rjjv7g5hr1gyb98w3mh50m1iwk643rb93z1n7f38ln55xzw8";
     };
     meta.homepage = "https://github.com/glepnir/dashboard-nvim/";
   };
@@ -3884,6 +3884,18 @@ final: prev:
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
 
+  indent-o-matic = buildVimPluginFrom2Nix {
+    pname = "indent-o-matic";
+    version = "2023-01-24";
+    src = fetchFromGitHub {
+      owner = "Darazaki";
+      repo = "indent-o-matic";
+      rev = "3103dde7a47f2855097558ab52162bbbdbe8dc40";
+      sha256 = "1nfwzqki00x5vv75iawyky122v68qcajihfcdqxixlqln3srrmi4";
+    };
+    meta.homepage = "https://github.com/Darazaki/indent-o-matic/";
+  };
+
   indentLine = buildVimPluginFrom2Nix {
     pname = "indentLine";
     version = "2022-09-07";
@@ -5207,12 +5219,12 @@ final: prev:
 
   neoconf-nvim = buildVimPluginFrom2Nix {
     pname = "neoconf.nvim";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neoconf.nvim";
-      rev = "a16d133b426fe5ddfd97d30e3658772d403847f3";
-      sha256 = "03dbdllmvp68cfzf8m3sz8v9795h4mp28gd27bcvxyfjiif7r5lj";
+      rev = "de8dbd4ba6583619ed02323dbde737d586ba572f";
+      sha256 = "1ms7chmmilq8slf659m8d45i39pllgng7a95fc20ykwbakhi8m9b";
     };
     meta.homepage = "https://github.com/folke/neoconf.nvim/";
   };
@@ -5231,12 +5243,12 @@ final: prev:
 
   neodev-nvim = buildVimPluginFrom2Nix {
     pname = "neodev.nvim";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neodev.nvim";
-      rev = "d9a8d651501cd2f287742472af4b3103d991cd68";
-      sha256 = "1pi2b2j647cwc58cp5iwgrrfls7lfwh7573r092k3c42i2x9k8cd";
+      rev = "70cab52c9d19e982f306716534e90c37a254b046";
+      sha256 = "13xrc45s5fx8y2dl1ds155r5w0yrivq2b1aqvqjk7ywgyyq2wr5l";
     };
     meta.homepage = "https://github.com/folke/neodev.nvim/";
   };
@@ -5555,12 +5567,12 @@ final: prev:
 
   nlsp-settings-nvim = buildVimPluginFrom2Nix {
     pname = "nlsp-settings.nvim";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "nlsp-settings.nvim";
-      rev = "dcd316d381c5768cd6a11d53a3331e92c3943f3b";
-      sha256 = "06cd6hyckmp2jvrh8k2sp465yarkznk6adwh0lmd95i6wrb1zhky";
+      rev = "9e3f9160360117276c6c1b795426b7be897cbb24";
+      sha256 = "1rw742ck7d8h6akqcskqxpxw41wakwg0nagb82fgq4blisjppgid";
     };
     meta.homepage = "https://github.com/tamago324/nlsp-settings.nvim/";
   };
@@ -6251,12 +6263,12 @@ final: prev:
 
   nvim-nonicons = buildVimPluginFrom2Nix {
     pname = "nvim-nonicons";
-    version = "2022-12-22";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "yamatsum";
       repo = "nvim-nonicons";
-      rev = "68ecb6476f1b96d03c702dce6cf3ef1e5171c9a8";
-      sha256 = "1vmzl5b3a07kh8b4wqqxd05sygvlyxq9vkrsshn2lrxmpbdg6227";
+      rev = "ceda07dc7339f35444b5f4c4016f76a9eb42ac16";
+      sha256 = "0kcagkzgvib0jg9aywfvrk4bx7pdyk7zj5b5i4wzacdcyx5yb7mx";
     };
     meta.homepage = "https://github.com/yamatsum/nvim-nonicons/";
   };
@@ -6395,12 +6407,12 @@ final: prev:
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree.lua";
-    version = "2023-01-31";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-tree.lua";
-      rev = "215b29bfad74518442621b9d0483a621483b066b";
-      sha256 = "00rvb70s9wg9vqnsm6a63vakpjyznvpc4yplbmqjqa4dnfwp9kl2";
+      rev = "7eb33d2a6d5d574a43159da90e0eac2445367393";
+      sha256 = "0x6lji8s86vgih7fv9yvvjkyh9bqlzrsmn04im1zif087wa1dcw1";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
   };
@@ -6503,23 +6515,23 @@ final: prev:
 
   nvim-ts-rainbow2 = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow2";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchgit {
       url = "https://gitlab.com/HiPhish/nvim-ts-rainbow2";
-      rev = "b915c4d4926f723c0a424e1a639384018e7d9efc";
-      sha256 = "0sllv769q0v73alcxs1r8dpij8kp9f771sq93z9c413c35wwmcnz";
+      rev = "7d33fb4402676723b0d7ca4d95717f5e020cd123";
+      sha256 = "0h4kfmh75p6c00f1xa6609y7zq9nm3p0r8yj17bwy30hpi51vnqv";
     };
     meta.homepage = "https://gitlab.com/HiPhish/nvim-ts-rainbow2";
   };
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2023-01-28";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-web-devicons";
-      rev = "a421d183ef37dfa13f51a5805bed2381aebf9080";
-      sha256 = "0754m29aizcav7ynqflpbv3kzz2n7mw2xx8aliay3slzq18kix8d";
+      rev = "2b96193abe4372e18e4f4533895a42a466d53c17";
+      sha256 = "18vh5xpyzlmfwdz2n30fi7a6v7w5mnami857cczqy2bk5bc1xdvd";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-web-devicons/";
   };
@@ -8753,6 +8765,18 @@ final: prev:
     meta.homepage = "https://github.com/chrisbra/unicode.vim/";
   };
 
+  unison = buildVimPluginFrom2Nix {
+    pname = "unison";
+    version = "2023-02-03";
+    src = fetchFromGitHub {
+      owner = "unisonweb";
+      repo = "unison";
+      rev = "59acc0cbe429492a99bfebf2b783fc2fa3967f75";
+      sha256 = "1nrpxprq1f2pp269nrx18avv7ghngqlr7rjahib91rgkvhw6k1x7";
+    };
+    meta.homepage = "https://github.com/unisonweb/unison/";
+  };
+
   unite-vim = buildVimPluginFrom2Nix {
     pname = "unite.vim";
     version = "2021-02-06";
@@ -10507,12 +10531,12 @@ final: prev:
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "7bf2074f340447c10b3af4ace96cc61e5f325693";
-      sha256 = "0ry67a7g0dpgaiwfcr79pgpw54x5v8dmfg4pypyd039ini0l0w46";
+      rev = "eec8223171cca6e662dfca22ddde93c3a81f66d0";
+      sha256 = "1fm1l1am2hf7j95cf51q9i5l1sr5zh2y4r0xp78cm3bcwjyhnf7a";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -13993,12 +14017,12 @@ final: prev:
 
   chad = buildVimPluginFrom2Nix {
     pname = "chad";
-    version = "2023-02-02";
+    version = "2023-02-03";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "e82eb7f40313a52f80e2e14e6d8b5d014c83b053";
-      sha256 = "02p7fvbampijqbkbjfq74hjm7h1ak6p5m6w5pv9askfc4vw0mcnj";
+      rev = "baae8d0a8afb062f5be6d83189e626dd74f41f98";
+      sha256 = "024iis733yvvkqil2m0wxh7lpkz0j7ij2if4yds07izbyyrpdxg6";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -14041,12 +14065,12 @@ final: prev:
 
   lspsaga-nvim-original = buildVimPluginFrom2Nix {
     pname = "lspsaga-nvim-original";
-    version = "2023-02-03";
+    version = "2023-02-04";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "lspsaga.nvim";
-      rev = "2afe6de953b76d43822cf8377c019ff831a7c73b";
-      sha256 = "1japfd2f7yw2vbyk7mh1qr0x6dnnra1k7frl3k077spc3nanh57r";
+      rev = "e1920ebe46e3f22dbfa2dc3633f5d2539302c8f3";
+      sha256 = "125zmsr09rglj0q4lhbvpvkhwm684rgwzcdlps9pbqzk88h2cl94";
     };
     meta.homepage = "https://github.com/glepnir/lspsaga.nvim/";
   };
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 4f28c4bde69..1a036dee23f 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -991,6 +991,11 @@ self: super: {
       '';
     });
 
+  unison = super.unison.overrideAttrs (old: {
+    # Editor stuff isn't at top level
+    postPatch = "cd editor-support/vim";
+  });
+
   vCoolor-vim = super.vCoolor-vim.overrideAttrs (old: {
     # on linux can use either Zenity or Yad.
     propagatedBuildInputs = [ gnome.zenity ];
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 27125fb21fe..3e436349773 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -325,6 +325,7 @@ https://github.com/nishigori/increment-activator/,,
 https://github.com/haya14busa/incsearch-easymotion.vim/,,
 https://github.com/haya14busa/incsearch.vim/,,
 https://github.com/lukas-reineke/indent-blankline.nvim/,,
+https://github.com/Darazaki/indent-o-matic/,,
 https://github.com/Yggdroot/indentLine/,,
 https://github.com/ciaranm/inkpot/,,
 https://github.com/jbyuki/instant.nvim/,HEAD,
@@ -734,6 +735,7 @@ https://github.com/leafgarland/typescript-vim/,,
 https://github.com/SirVer/ultisnips/,,
 https://github.com/mbbill/undotree/,,
 https://github.com/chrisbra/unicode.vim/,,
+https://github.com/unisonweb/unison/,,
 https://github.com/Shougo/unite.vim/,,
 https://github.com/axieax/urlview.nvim/,,
 https://github.com/vim-scripts/utl.vim/,,
diff --git a/pkgs/applications/finance/denaro/default.nix b/pkgs/applications/finance/denaro/default.nix
new file mode 100644
index 00000000000..477dc400fe6
--- /dev/null
+++ b/pkgs/applications/finance/denaro/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenvNoCC
+, buildDotnetModule
+, fetchFromGitHub
+, fetchpatch
+, dotnetCorePackages
+, gtk4
+, libadwaita
+, pkg-config
+, wrapGAppsHook4
+, glib
+, shared-mime-info
+, python3
+, desktop-file-utils
+, gdk-pixbuf
+}:
+
+buildDotnetModule rec {
+  pname = "denaro";
+  version = "2023.1.1";
+
+  src = fetchFromGitHub {
+    owner = "nlogozzo";
+    repo = "NickvisionMoney";
+    rev = version;
+    hash = "sha256-U6/laqmOS7ZUhgCCHggIn1U3GyQ/wy05XuCcqc7gtVQ=";
+  };
+
+  dotnet-sdk = dotnetCorePackages.sdk_7_0;
+  dotnet-runtime = dotnetCorePackages.runtime_7_0;
+
+  projectFile = "NickvisionMoney.GNOME/NickvisionMoney.GNOME.csproj";
+  nugetDeps = ./deps.nix;
+  executables = "NickvisionMoney.GNOME";
+
+  # Prevent installing native libraries for all platforms
+  dotnetBuildFlags = [ "--runtime" (dotnetCorePackages.systemToDotnetRid stdenvNoCC.hostPlatform.system) ];
+  dotnetInstallFlags = [ "--runtime" (dotnetCorePackages.systemToDotnetRid stdenvNoCC.hostPlatform.system) ];
+
+  nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook4
+    glib # For glib-compile-resources
+    shared-mime-info # For update-mime-database
+    python3
+    desktop-file-utils
+    gdk-pixbuf # Fixes icon missing in envs where GDK_PIXBUF_MODULE_FILE is not set
+  ];
+
+  postInstall = ''
+    sh NickvisionMoney.GNOME/install_extras.sh $out
+    desktop-file-edit $out/share/applications/org.nickvision.money.desktop \
+      --set-key=Exec --set-value=$out/bin/NickvisionMoney.GNOME
+  '';
+
+  runtimeDeps = [
+    gtk4
+    libadwaita
+    glib # Fixes "Could not retrieve parent type - is the typeid valid?"
+  ];
+
+  meta = with lib; {
+    description = "Personal finance manager for GNOME";
+    homepage = "https://github.com/nlogozzo/NickvisionMoney";
+    mainProgram = "NickvisionMoney.GNOME";
+    license = licenses.mit;
+    maintainers = with maintainers; [ chuangzhu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/finance/denaro/deps.nix b/pkgs/applications/finance/denaro/deps.nix
new file mode 100644
index 00000000000..31bf0a76b12
--- /dev/null
+++ b/pkgs/applications/finance/denaro/deps.nix
@@ -0,0 +1,40 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "Docnet.Core"; version = "2.3.1"; sha256 = "03b39x0vlymdknwgwhsmnpw4gj3njmbl9pd57ls3rhfn9r832d44"; })
+  (fetchNuGet { pname = "GirCore.Adw-1"; version = "0.2.0"; sha256 = "1lvyw61kcjq9m6iaw7c7xfjk1b99ccsh79819qnigdi37p7dgb7y"; })
+  (fetchNuGet { pname = "GirCore.Cairo-1.0"; version = "0.2.0"; sha256 = "14jr3476h3lr3s0iahyf9in96631h7b8g36wpfgr0gz6snic6ch1"; })
+  (fetchNuGet { pname = "GirCore.FreeType2-2.0"; version = "0.2.0"; sha256 = "0as1iknxx8vd5c0snf3bssij20fy74dbzaqbq60djf7v4c5q46nq"; })
+  (fetchNuGet { pname = "GirCore.Gdk-4.0"; version = "0.2.0"; sha256 = "19rh6mm2zxg46gdnizic4v6pmdk2hx25r4k12r8z4mkbmzpmcaaf"; })
+  (fetchNuGet { pname = "GirCore.GdkPixbuf-2.0"; version = "0.2.0"; sha256 = "11v4zplb7flh24vn1pralanzjm9jlnmx8r867ihvzj73mphmzs6m"; })
+  (fetchNuGet { pname = "GirCore.Gio-2.0"; version = "0.2.0"; sha256 = "0489ba4gw6wq1ndlrhfi7pmnifvnhq52p0riih60lrhgi3664ybc"; })
+  (fetchNuGet { pname = "GirCore.GLib-2.0"; version = "0.2.0"; sha256 = "0ms6gbrrinznhvs15mhfm3xh4zlqv5j4sw2zgajisiiprdzh2rcz"; })
+  (fetchNuGet { pname = "GirCore.GObject-2.0"; version = "0.2.0"; sha256 = "17qk1zhvfmmywndv2n6d3hg0gs1cwmxlmsns5ink7g8prwfp0vpf"; })
+  (fetchNuGet { pname = "GirCore.Graphene-1.0"; version = "0.2.0"; sha256 = "0gkj37rrazksvyc4nq3scmch7mxlcj40w8kwsmfvmvyl58z2faq7"; })
+  (fetchNuGet { pname = "GirCore.Gsk-4.0"; version = "0.2.0"; sha256 = "0qxw84hl40rbgjcxwx4rhmi4dif519kbdypazl2laz14pirh0b8v"; })
+  (fetchNuGet { pname = "GirCore.Gtk-4.0"; version = "0.2.0"; sha256 = "1klskbfkaaqy5asy83hbgb64pziib63s6d0szx3i3z24ynwhqjp3"; })
+  (fetchNuGet { pname = "GirCore.HarfBuzz-0.0"; version = "0.2.0"; sha256 = "03vp892bzy3nm5x35aqg8ripkw2n9gc86fqm3pr9fa1l88dhbqnl"; })
+  (fetchNuGet { pname = "GirCore.Pango-1.0"; version = "0.2.0"; sha256 = "158bsyirbdzyxnyphgzl8p6mxw1f9xbjpd92aijxk4hwdjvgn9hn"; })
+  (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; sha256 = "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.3"; sha256 = "1f18ahwkaginrg0vwsi6s56lvnqvvxv7pzklfs5lnknasxy1a76z"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.3"; sha256 = "052d8frpkj4ijs6fm6xp55xbv95b1s9biqwa0w8zp3rgm88m9236"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; sha256 = "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite"; version = "7.0.1"; sha256 = "1abakjiljrh0jabdk2bdgbi7lwzrzxmkkd8p5sm67xm5f4ni8db5"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "7.0.1"; sha256 = "1vkgng2rmpmazklwd9gnyrdngjf2n8bdm2y55njzny2fwpdy82rq"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "QuestPDF"; version = "2022.12.0"; sha256 = "0hkcw871jm77jqbgnbxixd5nxpxzzz0jcr61adsry2b15ymzmkb1"; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "2.1.3"; sha256 = "12qb0r7v2v91vw8q8ygr67y527gwhbas6d6zdvrv4ksxwjx9dzp9"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.88.3"; sha256 = "1yq694myq2rhfp2hwwpyzcg1pzpxcp7j72wib8p9pw9dfj7008sv"; })
+  (fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.3"; sha256 = "0axz2zfyg0h3zis7rr86ikrm2jbxxy0gqb3bbawpgynf1k0fsi6a"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.3"; sha256 = "0dajvr60nwvnv7s6kcqgw1w97zxdpz1c5lb7kcq7r0hi0l05ck3q"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.3"; sha256 = "191ajgi6fnfqcvqvkayjsxasiz6l0bv3pps8vv9abbyc4b12qvph"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.3"; sha256 = "03wwfbarsxjnk70qhqyd1dw65098dncqk2m0vksx92j70i7lry6q"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.2"; sha256 = "07rc4pj3rphi8nhzkcvilnm0fv27qcdp68jdwk4g0zjk7yfvbcay"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.2"; sha256 = "19hxv895lairrjmk4gkzd3mcb6b0na45xn4n551h4kckplqadg3d"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.2"; sha256 = "0jn98bkjk8h4smi09z31ib6s6392054lwmkziqmkqf5gf614k2fz"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.2"; sha256 = "0bnm2fhvcsyg5ry74gal2cziqnyf5a8d2cb491vsa7j41hbbx7kv"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
+]
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index d5d64aef6d8..021426b2511 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -46,13 +46,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "7.1.0-57";
+  version = "7.1.0-60";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick";
     rev = version;
-    hash = "sha256-1fFsrsrY8AAMr6miG8OPZIYaVZhtVi5kEaI/96dzip8=";
+    hash = "sha256-dQfmW9rt66eWOaKbZ9j8jc1k8v+F8B9TpTx12L+0VE4=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix
index e4a5e3dd914..fef4f8ce787 100644
--- a/pkgs/applications/misc/fetchmail/default.nix
+++ b/pkgs/applications/misc/fetchmail/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fetchmail";
-  version = "6.4.35";
+  version = "6.4.36";
 
   src = fetchurl {
     url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz";
-    sha256 = "sha256-ewtWy8D8qFRQTxZ3lfq1MtWlTVp9O24+NqM/NKCWCgE=";
+    sha256 = "sha256-cA1DODjT4p4wRFKuxWshh09TjsJBE/3LslE5xfLtwjo=";
   };
 
   buildInputs = [ openssl python3 ];
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index a03107c2aff..e71daa754ab 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -21,13 +21,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gpxsee";
-  version = "11.11";
+  version = "11.12";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    hash = "sha256-5kT1vcbCc0Fa3ylrcQetth50IQu57upiWRRpub93jlE=";
+    hash = "sha256-W35KBPYvTKrSi7UnzcUz8MsUwoq8rY5g/+hL1/gVpbI=";
   };
 
   patches = (substituteAll {
diff --git a/pkgs/applications/misc/stork/default.nix b/pkgs/applications/misc/stork/default.nix
index 6b23e2d492c..6a976548181 100644
--- a/pkgs/applications/misc/stork/default.nix
+++ b/pkgs/applications/misc/stork/default.nix
@@ -9,16 +9,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "stork";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "jameslittle230";
     repo = "stork";
     rev = "v${version}";
-    sha256 = "sha256-4aNY66y4dY+/MsZZGb5GBIlpZI+bAySff9+BEQUlx9M=";
+    sha256 = "sha256-qGcEhoytkCkcaA5eHc8GVgWvbOIyrO6BCp+EHva6wTw=";
   };
 
-  cargoSha256 = "sha256-XyFZSQylBetf9tJLaV97oHbpe0aBadEZ60NyyxK8lfo=";
+  cargoSha256 = "sha256-a7ADTJ0VmKiZBr951JIAOSPWucsBl5JnM8eQHWssRM4=";
+
+  checkFlags = [
+    # Fails for 1.6.0, but binary works fine
+    "--skip=pretty_print_search_results::tests::display_pretty_search_results_given_output"
+  ];
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/misc/tvbrowser/bin.nix b/pkgs/applications/misc/tvbrowser/bin.nix
deleted file mode 100644
index 690dd9d64ad..00000000000
--- a/pkgs/applications/misc/tvbrowser/bin.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ lib, stdenv, fetchurl, makeWrapper, jre, makeDesktopItem }:
-
-let
-  desktopItem = makeDesktopItem {
-    name = "tvbrowser";
-    exec = "tvbrowser";
-    icon = "tvbrowser";
-    comment = "Themeable and easy to use TV Guide";
-    desktopName = "TV-Browser";
-    genericName = "Electronic TV Program Guide";
-    categories = [ "AudioVideo" "TV" "Java" ];
-    startupNotify = true;
-    startupWMClass = "tvbrowser-TVBrowser";
-  };
-
-in stdenv.mkDerivation rec {
-  pname = "tvbrowser";
-  version = "4.0.1";
-  name = "${pname}-bin-${version}";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/${pname}/TV-Browser%20Releases%20%28Java%208%20and%20higher%29/${version}/${pname}_${version}_bin.tar.gz";
-    sha256 = "0ahsirf6cazs5wykgbwsc6n35w6jprxyphzqmm7d370n37sb07pm";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    mkdir -p $out/share/java/${pname}
-    cp -R * $out/share/java/${pname}
-    rm $out/share/java/${pname}/${pname}.{sh,desktop}
-
-    mkdir -p $out/share/applications
-    ln -s ${desktopItem}/share/applications/* $out/share/applications/
-
-    for i in 16 32 48 128; do
-      mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
-      ln -s $out/share/java/${pname}/imgs/${pname}$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/${pname}.png
-    done
-
-    mkdir -p $out/bin
-    makeWrapper ${jre}/bin/java $out/bin/${pname} \
-      --add-flags "-jar $out/share/java/${pname}/${pname}.jar" \
-      --chdir "$out/share/java/${pname}"
-  '';
-
-  meta = with lib; {
-    description = "Electronic TV Program Guide";
-    homepage = "https://www.tvbrowser.org/";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ jfrankenau ];
-  };
-}
diff --git a/pkgs/applications/misc/tvbrowser/default.nix b/pkgs/applications/misc/tvbrowser/default.nix
new file mode 100644
index 00000000000..f076a020e2e
--- /dev/null
+++ b/pkgs/applications/misc/tvbrowser/default.nix
@@ -0,0 +1,87 @@
+{ lib
+, fetchurl
+, stdenv
+, fetchzip
+, ant
+, jdk
+, makeWrapper
+, callPackage
+}:
+
+let
+  minimalJavaVersion = "11";
+
+  newsPlugin = fetchurl {
+    url = "https://www.tvbrowser.org/data/uploads/1372016422809_543/NewsPlugin.jar";
+    hash = "sha256-5XoypuMd2AFBE2SJ6EdECuvq6D81HLLuu9UoA9kcKAM=";
+  };
+in
+assert lib.versionAtLeast jdk.version minimalJavaVersion;
+stdenv.mkDerivation rec {
+  pname = "tvbrowser";
+  version = "4.2.7";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/${pname}/TV-Browser%20Releases%20%28Java%20${minimalJavaVersion}%20and%20higher%29/${version}/${pname}_${version}_src.tar.gz";
+    hash = "sha256-dmNfI6T0MU7UtMH+C/2hiAeDwZlFCB4JofQViZezoqI=";
+  };
+
+  nativeBuildInputs = [ ant jdk makeWrapper ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    ant runtime-linux -Dnewsplugin.url=file://${newsPlugin}
+    ant tvbrowser-desktop-entry
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/${pname}
+    cp -R runtime/tvbrowser_linux/* $out/share/${pname}
+
+    mkdir -p $out/share/applications
+    mv -t $out/share/applications $out/share/${pname}/${pname}.desktop
+    sed -e 's|=imgs/|='$out'/share/${pname}/imgs/|'  \
+        -e 's|=${pname}.sh|='$out'/bin/${pname}|'  \
+        -i $out/share/applications/${pname}.desktop
+
+    for i in 16 32 48 128; do
+      mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
+      ln -s $out/share/${pname}/imgs/${pname}$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/${pname}.png
+    done
+
+    mkdir -p $out/bin
+    makeWrapper  \
+        $out/share/${pname}/${pname}.sh  \
+        $out/bin/${pname}  \
+        --prefix PATH : ${jdk}/bin  \
+        --prefix XDG_DATA_DIRS : $out/share  \
+        --set PROGRAM_DIR $out/share/${pname}
+
+    runHook postInstall
+  '';
+
+  passthru.tests.startwindow = callPackage ./test.nix {};
+
+  meta = with lib; {
+    description = "Electronic TV Program Guide";
+    downloadPage = "https://www.tvbrowser.org/index.php?id=tv-browser";
+    homepage = "https://www.tvbrowser.org/";
+    changelog = "https://www.tvbrowser.org/index.php?id=news";
+    sourceProvenance = with sourceTypes; [ binaryBytecode fromSource ];
+    license = licenses.gpl3Plus;
+    mainProgram = pname;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jfrankenau yarny ];
+    longDescription = ''
+      TV-Browser shows TV program data arranged like in printed
+      TV programs after downloading it from the internet.
+      Plugins are used to download program data
+      and to provide additional functionality.
+    '';
+  };
+}
diff --git a/pkgs/applications/misc/tvbrowser/test.nix b/pkgs/applications/misc/tvbrowser/test.nix
new file mode 100644
index 00000000000..b5d12ac6bad
--- /dev/null
+++ b/pkgs/applications/misc/tvbrowser/test.nix
@@ -0,0 +1,40 @@
+{ lib
+, xvfb-run
+, tvbrowser
+, runCommand
+, writeShellApplication
+, xorg
+}:
+
+let
+  testScript = writeShellApplication {
+    name = "tvbrowser-test-script";
+    runtimeInputs = [ xorg.xwininfo tvbrowser ];
+    text = ''
+      function find_tvbrowser_windows {
+          for window_name in java tvbrowser-TVBrowser 'Setup assistant' ; do
+              grep -q "$window_name" "$1"  ||  return 1
+          done
+      }
+      tvbrowser &
+      for _ in {0..900} ; do
+          xwininfo -root -tree  \
+              | sed 's/.*0x[0-9a-f]* \"\([^\"]*\)\".*/\1/; t; d'  \
+              | tee window-names
+          echo
+          if find_tvbrowser_windows window-names ; then
+              break
+          fi
+          sleep 1
+      done
+      find_tvbrowser_windows window-names
+    '';
+  };
+in
+runCommand
+"tvbrowser-test"
+{ buildInputs = [ xvfb-run ]; }
+''
+  HOME=$PWD xvfb-run ${lib.getExe testScript}
+  touch ${placeholder "out"}
+''
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
index ae56b05bd96..c93480694a9 100644
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ b/pkgs/applications/networking/cluster/werf/default.nix
@@ -10,13 +10,13 @@
 
 buildGoModule rec {
   pname = "werf";
-  version = "1.2.198";
+  version = "1.2.199";
 
   src = fetchFromGitHub {
     owner = "werf";
     repo = "werf";
     rev = "v${version}";
-    hash = "sha256-fJDcVqHVN+2KXoqFCTACDevFtOllEGDMcQO/oDb6GMI=";
+    hash = "sha256-oUdqaoIvYTpJXWzfmgCwDJza5mTQItHgf2p9/HBMc/g=";
   };
 
   vendorHash = "sha256-GjcmpHyjhjCWE5gQR/oTHfhHYg5WRu8uhgAuWhdxlYk=";
diff --git a/pkgs/applications/science/misc/cwltool/default.nix b/pkgs/applications/science/misc/cwltool/default.nix
index 665a2924af4..8ac8adcbf59 100644
--- a/pkgs/applications/science/misc/cwltool/default.nix
+++ b/pkgs/applications/science/misc/cwltool/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cwltool";
-  version = "3.1.20230127121939";
+  version = "3.1.20230201130431";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "common-workflow-language";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-pEow2vEpQ2+c3fXkB8q7R4pud1xLzE74+HEqcBzg0D8=";
+    hash = "sha256-rx5rdB8OgJ7Mck3pm1GRrymZbQ3lHlXFecICb/pbnKg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/compilers/aspectj/default.nix b/pkgs/development/compilers/aspectj/default.nix
index 9c7e8e3d0ac..639ca812276 100644
--- a/pkgs/development/compilers/aspectj/default.nix
+++ b/pkgs/development/compilers/aspectj/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "aspectj";
-  version = "1.9.9.1";
+  version = "1.9.19";
   builder = ./builder.sh;
 
   src = let
     versionSnakeCase = builtins.replaceStrings ["."] ["_"] version;
   in fetchurl {
     url = "https://github.com/eclipse/org.aspectj/releases/download/V${versionSnakeCase}/aspectj-${version}.jar";
-    sha256 = "sha256-kiMQuEPXoSpHUiInkfYsrfCAcSc6mX42TRIBbeIQhWs=";
+    sha256 = "sha256-Oujyg05yvtcyfLmqonc++GX9AyFKwfIzITOHDz0px0M=";
   };
 
   inherit jre;
diff --git a/pkgs/development/embedded/arduino/arduino-cli/default.nix b/pkgs/development/embedded/arduino/arduino-cli/default.nix
index 3fbeaab3873..99f1f6e7840 100644
--- a/pkgs/development/embedded/arduino/arduino-cli/default.nix
+++ b/pkgs/development/embedded/arduino/arduino-cli/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, buildFHSUserEnv }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, buildFHSUserEnv, installShellFiles }:
 
 let
 
@@ -13,6 +13,10 @@ let
       sha256 = "sha256-jew4KLpOOXE9N/h4qFqof8y26DQrvm78E/ARbbwocD4=";
     };
 
+    nativeBuildInputs = [
+      installShellFiles
+    ];
+
     subPackages = [ "." ];
 
     vendorSha256 = "sha256-BunonnjzGnpcmGJXxEQXvjJLGvdSXUOK9zAhXoAemHY=";
@@ -23,6 +27,15 @@ let
       "-s" "-w" "-X github.com/arduino/arduino-cli/version.versionString=${version}" "-X github.com/arduino/arduino-cli/version.commit=unknown"
     ] ++ lib.optionals stdenv.isLinux [ "-extldflags '-static'" ];
 
+    postInstall = ''
+      export HOME="$(mktemp -d)"
+      for s in {bash,zsh,fish}; do
+        $out/bin/arduino-cli completion $s > completion.$s
+        installShellCompletion --cmd arduino-cli --$s completion.$s
+      done
+      unset HOME
+    '';
+
     meta = with lib; {
       inherit (src.meta) homepage;
       description = "Arduino from the command line";
@@ -46,7 +59,9 @@ if stdenv.isLinux then
 
     extraInstallCommands = ''
       mv $out/bin/$name $out/bin/arduino-cli
+      cp -r ${pkg.outPath}/share $out/share
     '';
+    passthru.pureGoPkg = pkg;
 
     targetPkgs = pkgs: with pkgs; [
       zlib
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix
index 005858d31ef..66566cf5c27 100644
--- a/pkgs/development/interpreters/python/cpython/default.nix
+++ b/pkgs/development/interpreters/python/cpython/default.nix
@@ -345,6 +345,8 @@ in with passthru; stdenv.mkDerivation {
     "ac_cv_computed_gotos=yes"
     "ac_cv_file__dev_ptmx=yes"
     "ac_cv_file__dev_ptc=yes"
+  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && pythonAtLeast "3.11") [
+    "--with-build-python=${pythonForBuildInterpreter}"
   ] ++ optionals stdenv.hostPlatform.isLinux [
     # Never even try to use lchmod on linux,
     # don't rely on detecting glibc-isms.
diff --git a/pkgs/development/libraries/kde-frameworks/kimageformats.nix b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
index cbdaf1da892..c221f348911 100644
--- a/pkgs/development/libraries/kde-frameworks/kimageformats.nix
+++ b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  ilmbase, karchive, openexr, libavif, libheif, qtbase
+  ilmbase, karchive, openexr, libavif, libheif, libjxl, qtbase
 }:
 
 let inherit (lib) getDev; in
@@ -10,7 +10,7 @@ mkDerivation {
   pname = "kimageformats";
 
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ karchive openexr libavif libheif qtbase ];
+  buildInputs = [ karchive openexr libavif libheif libjxl qtbase ];
   outputs = [ "out" ]; # plugins only
   CXXFLAGS = "-I${getDev ilmbase}/include/OpenEXR";
   cmakeFlags = [
diff --git a/pkgs/development/libraries/opencv/4.x.nix b/pkgs/development/libraries/opencv/4.x.nix
index 5afc209922b..2c676e008f0 100644
--- a/pkgs/development/libraries/opencv/4.x.nix
+++ b/pkgs/development/libraries/opencv/4.x.nix
@@ -48,7 +48,7 @@
 , enableGtk3 ? false
 , gtk3
 , enableVtk ? false
-, vtk_8
+, vtk
 , enableFfmpeg ? true
 , ffmpeg
 , enableGStreamer ? true
@@ -253,7 +253,7 @@ stdenv.mkDerivation {
     ++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) hdf5
     ++ lib.optional enableGtk2 gtk2
     ++ lib.optional enableGtk3 gtk3
-    ++ lib.optional enableVtk vtk_8
+    ++ lib.optional enableVtk vtk
     ++ lib.optional enableJPEG libjpeg
     ++ lib.optional enablePNG libpng
     ++ lib.optional enableTIFF libtiff
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index 0bd275f294a..9fb42cd93e1 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "3.2.1";
+  version = "3.2.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "TomerFi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-k3xmW8aMBz6dbWuLnd6tw2BFoTuD80fpY7q2NfYqMlw=";
+    hash = "sha256-17LTNQjI2UfgtlNNkSRSWMNnhgokBXn/7KGuKo5Ai4E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/elementpath/default.nix b/pkgs/development/python-modules/elementpath/default.nix
index 0aa5c658378..1b933d182ad 100644
--- a/pkgs/development/python-modules/elementpath/default.nix
+++ b/pkgs/development/python-modules/elementpath/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "elementpath";
-  version = "3.0.2";
+  version = "4.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "refs/tags/v${version}";
-    hash = "sha256-b+Th28GI2UOmfO4jy4biohAJWPiYWkvFLqqs9lgR4Vc=";
+    hash = "sha256-BEnSPRuQUnKXtPAJfjxS+fwE0rpPj1U2yRK8eImKMYw=";
   };
 
   # avoid circular dependency with xmlschema which directly depends on this
@@ -28,6 +28,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "XPath 1.0/2.0 parsers and selectors for ElementTree and lxml";
     homepage = "https://github.com/sissaschool/elementpath";
+    changelog = "https://github.com/sissaschool/elementpath/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
   };
diff --git a/pkgs/development/python-modules/fastapi-mail/default.nix b/pkgs/development/python-modules/fastapi-mail/default.nix
index 92c52fe5e95..e9c03b10ae6 100644
--- a/pkgs/development/python-modules/fastapi-mail/default.nix
+++ b/pkgs/development/python-modules/fastapi-mail/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi-mail";
-  version = "1.2.4";
+  version = "1.2.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "sabuhish";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-6Iwgl15adc6wK7i8sFLeSf2HSvMo/Sx/BI44qboNnRM=";
+    hash = "sha256-SogtdLTiTCJ8qUYsnwhPgBLFbj66EJC7L4wS64Nmuoo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 6b93a99a3a2..875a09634d9 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2023.2.1";
+  version = "2023.2.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-kTWUwHgcq+J3ok43gpXmsxmKTnrjPMzmowSkm404j4Q=";
+    sha256 = "sha256-JYoTX83N70ARI9CvoUujRPI6hUVkIC1Ma/D/hjtLTes=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/oralb-ble/default.nix b/pkgs/development/python-modules/oralb-ble/default.nix
index e373034c2a5..743fdd82f60 100644
--- a/pkgs/development/python-modules/oralb-ble/default.nix
+++ b/pkgs/development/python-modules/oralb-ble/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "oralb-ble";
-  version = "0.17.1";
+  version = "0.17.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-0VZRtsh17W8h1qcGfAxE4KUehtCk1PKy3MO3fVJb4qY=";
+    hash = "sha256-v2c1FoLgG6HH02d+YBr4Qh12ztRsiwWyueUNOBpWqPM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pylutron-caseta/default.nix b/pkgs/development/python-modules/pylutron-caseta/default.nix
index ab6e1e2c665..eb6fbe371b6 100644
--- a/pkgs/development/python-modules/pylutron-caseta/default.nix
+++ b/pkgs/development/python-modules/pylutron-caseta/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pylutron-caseta";
-  version = "0.18.0";
+  version = "0.18.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "gurumitts";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-7bQgMDmvEAvnEoHZxZ9JzYsx1JR9W5eYuvcVUmYM/dw=";
+    hash = "sha256-O4PNlL3lPSIyFw9MtPP678ggLBQRPedbZn1gWys7DPQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-crfsuite/default.nix b/pkgs/development/python-modules/python-crfsuite/default.nix
index f48bc9c13ea..2e811525c37 100644
--- a/pkgs/development/python-modules/python-crfsuite/default.nix
+++ b/pkgs/development/python-modules/python-crfsuite/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "python-crfsuite";
-  version = "0.9.8";
+  version = "0.9.9";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DgPPbro2KHF8zwbfoPSiuoYohgrbF0y/0lCnpGkoZaE=";
+    sha256 = "sha256-yqYmHWlVRmdW+Ya3/PvU/VBiKWPjvbXMGAwSnGKzp20=";
   };
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index 96a7310cb04..15b001cf94f 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "5.0.0";
+  version = "5.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vcjF7o5rU8R2e75yB1LO24r5HbRq2W5RHt0Pt0lkrF0=";
+    hash = "sha256-8tkdjj2qTzhUA8bNu2s49UgrLegrboNKMAs2NSOA5o4=";
   };
 
   propagatedBuildInputs = [
@@ -31,6 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Stripe Python bindings";
     homepage = "https://github.com/stripe/stripe-python";
+    changelog = "https://github.com/stripe/stripe-python/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/wand/default.nix b/pkgs/development/python-modules/wand/default.nix
index d6747b3d727..f1509849181 100644
--- a/pkgs/development/python-modules/wand/default.nix
+++ b/pkgs/development/python-modules/wand/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "wand";
-  version = "0.6.10";
+  version = "0.6.11";
 
   src = fetchPypi {
     pname = "Wand";
     inherit version;
-    sha256 = "sha256-Nz9KfyhmyGjDHOkQ4fmzapLRMmQKIAaOwXzqMoT+3Fc=";
+    sha256 = "sha256-tmFwDan48ekx5Scm5PxkOlZblRT1iD1Bt3Pjw3yfqZU=";
   };
 
   postPatch = ''
@@ -38,9 +38,10 @@ buildPythonPackage rec {
   passthru.imagemagick = imagemagickBig;
 
   meta = with lib; {
+    changelog = "https://docs.wand-py.org/en/${version}/changes.html";
     description = "Ctypes-based simple MagickWand API binding for Python";
     homepage = "http://wand-py.org/";
     license = [ licenses.mit ];
-    maintainers = with maintainers; [ infinisil ];
+    maintainers = with maintainers; [ infinisil dotlambda ];
   };
 }
diff --git a/pkgs/development/tools/dump_syms/default.nix b/pkgs/development/tools/dump_syms/default.nix
index 2f26262143d..7dea51ef567 100644
--- a/pkgs/development/tools/dump_syms/default.nix
+++ b/pkgs/development/tools/dump_syms/default.nix
@@ -16,7 +16,7 @@
 
 let
   pname = "dump_syms";
-  version = "2.1.1";
+  version = "2.2.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -25,10 +25,10 @@ rustPlatform.buildRustPackage {
     owner = "mozilla";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XK//loEbKqE7DMxC9uzr+916i9E9wGHKl2MRtt1rNEg=";
+    hash = "sha256-rbpZXLtBPD77jZ+P6ljtrSfKYfhMUdsP/Eoi0cYxsqo=";
   };
 
-  cargoSha256 = "sha256-2We/JKU1U5q5jzl9rVoDmuGYIPbo5ylMl2O4s3PClVE=";
+  cargoSha256 = "sha256-UUyoiyA9ykUnFavsAqo7gNMSYpQ9Lu29t4fn1oLj6gs=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/typos/default.nix b/pkgs/development/tools/typos/default.nix
index 87ec2964a00..eb5c0a6258c 100644
--- a/pkgs/development/tools/typos/default.nix
+++ b/pkgs/development/tools/typos/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "typos";
-  version = "1.13.9";
+  version = "1.13.10";
 
   src = fetchFromGitHub {
     owner = "crate-ci";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dAe19D9q5JXeWCnsfbz0NnAtnAQj0dyIy6cdyjqVxEg=";
+    hash = "sha256-+TNKHyLqW/R/YEpynr4twvQpgeOxbyIlgQjaQarSB8M=";
   };
 
-  cargoHash = "sha256-gc3tDTsmgvMfLbWh5XALEpZuK6e8FXsomfq4U/xTPXM=";
+  cargoHash = "sha256-7D9oyQK9VWOSAI9jSYZn7t8ll4sILpugroLWlST4Eok=";
 
   meta = with lib; {
     description = "Source code spell checker";
diff --git a/pkgs/games/ecwolf/default.nix b/pkgs/games/ecwolf/default.nix
index 40b06d88269..34c186f7f2d 100644
--- a/pkgs/games/ecwolf/default.nix
+++ b/pkgs/games/ecwolf/default.nix
@@ -28,43 +28,22 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake copyDesktopItems pkg-config ];
   buildInputs = [ zlib bzip2 libjpeg SDL2 SDL2_net SDL2_mixer gtk3 ];
 
-  desktopItems = [
-    (makeDesktopItem {
-      name = "ecwolf";
-      exec = "ecwolf";
-      comment = "Enhanced Wolfenstein 3D port";
-      desktopName = "Wolfenstein 3D";
-      categories = [ "Game" ];
-    })
-  ];
-
-  # Change the location where the ecwolf executable looks for the ecwolf.pk3
-  # file.
-  #
-  # By default, it expects the PK3 file to reside in the same directory as the
-  # executable, which is not desirable.
-  # We will adjust the code so that it can be retrieved from the share/
-  # directory.
-
-  preConfigure = ''
-    sed -i -e "s|ecwolf.pk3|$out/share/ecwolf/ecwolf.pk3|" src/version.h
-  ''
   # Disable app bundle creation on Darwin. It fails, and it is not needed to run it from the Nix store
-  + lib.optionalString stdenv.isDarwin ''
+  preConfigure = lib.optionalString stdenv.isDarwin ''
     sed -i -e "s|include(\''${CMAKE_CURRENT_SOURCE_DIR}/macosx/install.txt)||" src/CMakeLists.txt
   '';
 
-  # Install the required PK3 file in the required data directory
+  # ECWolf installs its binary to the games/ directory, but Nix only adds bin/
+  # directories to the PATH.
   postInstall = ''
-    mkdir -p $out/share/ecwolf
-    cp ecwolf.pk3 $out/share/ecwolf
+    mv "$out/games" "$out/bin"
   '';
 
   meta = with lib; {
     description = "Enhanched SDL-based port of Wolfenstein 3D for various platforms";
     homepage = "https://maniacsvault.net/ecwolf/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ sander ];
+    maintainers = with maintainers; [ jayman2000 sander ];
     platforms = platforms.all;
     # On Darwin, the linker fails to find a bunch of symbols.
     broken = stdenv.isDarwin;
diff --git a/pkgs/servers/monitoring/mimir/default.nix b/pkgs/servers/monitoring/mimir/default.nix
index 52f4ab6e2fa..9858cdd818e 100644
--- a/pkgs/servers/monitoring/mimir/default.nix
+++ b/pkgs/servers/monitoring/mimir/default.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, nixosTests, nix-update-script }:
 buildGoModule rec {
   pname = "mimir";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     rev = "${pname}-${version}";
     owner = "grafana";
     repo = pname;
-    sha256 = "sha256-lyF7ugnNEJug1Vx24ISrtENk6RoIt7H1zaCPYUZbBmM=";
+    sha256 = "sha256-MOuLXtjmk9wjQMF2ez3NQ7YTKJtX/RItKbgfaANXzhU=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix
index b52015e1c3d..4c34f271918 100644
--- a/pkgs/servers/monitoring/zabbix/proxy.nix
+++ b/pkgs/servers/monitoring/zabbix/proxy.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, pkg-config, libevent, libiconv, openssl, pcre, zlib
 , odbcSupport ? true, unixODBC
-, snmpSupport ? true, net-snmp
+, snmpSupport ? stdenv.buildPlatform == stdenv.hostPlatform, net-snmp
 , sshSupport ? true, libssh2
 , sqliteSupport ? false, sqlite
 , mysqlSupport ? false, libmysqlclient
@@ -60,6 +60,11 @@ in
         find database -name data.sql -exec sed -i 's|/usr/bin/||g' {} +
       '';
 
+      makeFlags = [
+        "AR:=$(AR)"
+        "RANLIB:=$(RANLIB)"
+      ];
+
       postInstall = ''
         mkdir -p $out/share/zabbix/database/
       '' + optionalString sqliteSupport ''
diff --git a/pkgs/servers/nats-server/default.nix b/pkgs/servers/nats-server/default.nix
index db2a6da7e5c..1ca26d9f03d 100644
--- a/pkgs/servers/nats-server/default.nix
+++ b/pkgs/servers/nats-server/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "nats-server";
-  version = "2.9.11";
+  version = "2.9.12";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-iYiQYGwvxW7GF32h+E1vg3x6sml7zGk40jbY8akmOnM=";
+    hash = "sha256-IhzbtTH8Vr+Z1Z9Xzz/CbmxDaR6ygdebEqz2ELa4N3E=";
   };
 
-  vendorHash = "sha256-qApohNp//N/eBljpa+D2fR19rqw8Bd8wdmME9fzqDxc=";
+  vendorHash = "sha256-tUqUB9M7doUmYRAKmzos93PCizGlHe61rpMVe0z3hVo=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/rustypaste/default.nix b/pkgs/servers/rustypaste/default.nix
index 8cc792f1459..c4987cdd288 100644
--- a/pkgs/servers/rustypaste/default.nix
+++ b/pkgs/servers/rustypaste/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rustypaste";
-  version = "0.8.2";
+  version = "0.8.4";
 
   src = fetchFromGitHub{
     owner = "orhun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EKW/Cik4La66bI7EVbFnhivk1o0nIudJdBW7F5dbQaI=";
+    sha256 = "sha256-tx2ipgvYDdCwcWFeZ/qgGXyKe+kHLuOgDAz/8vf2zEs=";
   };
 
-  cargoSha256 = "sha256-zIrvBHPthPAzReojmBLb0odDQGcGwZS10rP15qb/zgs=";
+  cargoHash = "sha256-/zji2sFaOweBo666LqfNRpO/0vi1eAGgOReeuvQIaEQ=";
 
   # Some tests need network
   checkFlags = [
diff --git a/pkgs/tools/misc/pre-commit/default.nix b/pkgs/tools/misc/pre-commit/default.nix
index 8adb5a02f8c..593ff2c68bd 100644
--- a/pkgs/tools/misc/pre-commit/default.nix
+++ b/pkgs/tools/misc/pre-commit/default.nix
@@ -61,7 +61,8 @@ buildPythonPackage rec {
     libiconv
   ];
 
-  doCheck = true;
+  # i686-linux: dotnet-sdk not available
+  doCheck = stdenv.buildPlatform.system != "i686-linux";
 
   postPatch = ''
     substituteInPlace pre_commit/resources/hook-tmpl \
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 459f9f12c1e..daa0e847115 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchFromGitHub
 , python3
 , fetchpatch
+, installShellFiles
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -14,6 +15,10 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "q4U9iWCa1zg8sA+6pPNejt6v/41WGIKN5wITJCrCqQE=";
   };
 
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
   pythonPath = with python3.pkgs;
     lib.optionals stdenv.isLinux [
       systemd
@@ -71,6 +76,8 @@ python3.pkgs.buildPythonApplication rec {
     ''
       # see https://github.com/NixOS/nixpkgs/issues/4968
       rm -r "${sitePackages}/etc"
+
+      installManPage man/*.[1-9]
     '' + lib.optionalString stdenv.isLinux ''
       # see https://github.com/NixOS/nixpkgs/issues/4968
       rm -r "${sitePackages}/usr"
diff --git a/pkgs/tools/security/sequoia-chameleon-gnupg/default.nix b/pkgs/tools/security/sequoia-chameleon-gnupg/default.nix
index c83c7fb4cfe..345e36756f6 100644
--- a/pkgs/tools/security/sequoia-chameleon-gnupg/default.nix
+++ b/pkgs/tools/security/sequoia-chameleon-gnupg/default.nix
@@ -1,25 +1,37 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitLab
 , pkg-config
 , nettle
+, openssl
+, darwin
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia-chameleon-gnupg";
-  version = "0.1.1";
+  version = "0.2.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-liQNz833/3hi3eMi+/iEZ8fT9FFi+MrDIYbQD+dQ/p0=";
+    hash = "sha256-8aKT39gq6o7dnbhKbDxewd4R2e2IsbYU8vaDwYemes8=";
   };
 
-  cargoHash = "sha256-bnScLSI94obYQH5YzoHY4DtGScKc4m24+SIg1d2kAKw=";
+  cargoHash = "sha256-Z6cXCHLrK+BcIeVCKH2l8n9SivZsZPhXGhaMObn6rjo=";
 
-  nativeBuildInputs = [ rustPlatform.bindgenHook pkg-config ];
-  buildInputs = [ nettle ];
+  nativeBuildInputs = [
+    rustPlatform.bindgenHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    nettle
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
 
   # gpgconf: error creating socket directory
   doCheck = false;
diff --git a/pkgs/tools/virtualization/multipass/default.nix b/pkgs/tools/virtualization/multipass/default.nix
new file mode 100644
index 00000000000..d8d003b2064
--- /dev/null
+++ b/pkgs/tools/virtualization/multipass/default.nix
@@ -0,0 +1,128 @@
+{ cmake
+, dnsmasq
+, fetchFromGitHub
+, git
+, gtest
+, iproute2
+, iptables
+, lib
+, libapparmor
+, libvirt
+, libxml2
+, nixosTests
+, openssl
+, OVMF
+, pkg-config
+, qemu
+, qemu-utils
+, qtbase
+, qtx11extras
+, slang
+, stdenv
+, wrapQtAppsHook
+, xterm
+}:
+
+let
+  pname = "multipass";
+  version = "1.11.0";
+in
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "multipass";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-2d8piIIecoSI3BfOgAVlXl5P2UYDaNlxUgHXWbnSdkg=";
+    fetchSubmodules = true;
+  };
+
+  preConfigure = ''
+    substituteInPlace ./CMakeLists.txt \
+      --replace "determine_version(MULTIPASS_VERSION)" "" \
+      --replace 'set(MULTIPASS_VERSION ''${MULTIPASS_VERSION})' 'set(MULTIPASS_VERSION "v${version}")'
+
+    substituteInPlace ./src/platform/backends/qemu/linux/qemu_platform_detail_linux.cpp \
+      --replace "OVMF.fd" "${OVMF.fd}/FV/OVMF.fd" \
+      --replace "QEMU_EFI.fd" "${OVMF.fd}/FV/QEMU_EFI.fd"
+  '';
+
+  postPatch = ''
+    # Patch all of the places where Multipass expects the LXD socket to be provided by a snap
+    substituteInPlace ./src/network/network_access_manager.cpp \
+      --replace "/var/snap/lxd/common/lxd/unix.socket" "/var/lib/lxd/unix.socket"
+
+    substituteInPlace ./src/platform/backends/lxd/lxd_virtual_machine.cpp \
+      --replace "/var/snap/lxd/common/lxd/unix.socket" "/var/lib/lxd/unix.socket"
+
+    substituteInPlace ./src/platform/backends/lxd/lxd_request.h \
+      --replace "/var/snap/lxd/common/lxd/unix.socket" "/var/lib/lxd/unix.socket"
+
+    substituteInPlace ./tests/CMakeLists.txt \
+      --replace "FetchContent_MakeAvailable(googletest)" ""
+
+    cat >> tests/CMakeLists.txt <<'EOF'
+      add_library(gtest INTERFACE)
+      target_include_directories(gtest INTERFACE ${gtest.dev}/include)
+      target_link_libraries(gtest INTERFACE ${gtest}/lib/libgtest.so ''${CMAKE_THREAD_LIBS_INIT})
+      add_dependencies(gtest GMock)
+
+      add_library(gtest_main INTERFACE)
+      target_include_directories(gtest_main INTERFACE ${gtest.dev}/include)
+      target_link_libraries(gtest_main INTERFACE ${gtest}/lib/libgtest_main.so gtest)
+
+      add_library(gmock INTERFACE)
+      target_include_directories(gmock INTERFACE ${gtest.dev}/include)
+      target_link_libraries(gmock INTERFACE ${gtest}/lib/libgmock.so gtest)
+
+      add_library(gmock_main INTERFACE)
+      target_include_directories(gmock_main INTERFACE ${gtest.dev}/include)
+      target_link_libraries(gmock_main INTERFACE ${gtest}/lib/libgmock_main.so gmock gtest_main)
+    EOF
+  '';
+
+  buildInputs = [
+    gtest
+    libapparmor
+    libvirt
+    libxml2
+    openssl
+    qtbase
+    qtx11extras
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    git
+    pkg-config
+    slang
+    wrapQtAppsHook
+  ];
+
+  nativeCheckInputs = [ gtest ];
+
+  postInstall = ''
+    wrapProgram $out/bin/multipassd --prefix PATH : ${lib.makeBinPath [
+      dnsmasq
+      iproute2
+      iptables
+      OVMF.fd
+      qemu
+      qemu-utils
+      xterm
+    ]}
+  '';
+
+  passthru.tests = {
+    multipass = nixosTests.multipass;
+  };
+
+  meta = with lib; {
+    description = "Ubuntu VMs on demand for any workstation.";
+    homepage = "https://multipass.run";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jnsgruk ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 951fb2e4adb..5da0e450a5d 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -1055,6 +1055,7 @@ mapAliases ({
   nmap_graphical = throw "nmap graphical support has been removed due to its python2 dependency"; # Modified 2022-04-26
   nodejs-10_x = throw "nodejs-10_x has been removed. Use a newer version instead."; # Added 2022-05-31
   nodejs-12_x = throw "nodejs-12_x has been removed. Use a newer version instead."; # Added 2022-07-04
+  nodejs-16_x-openssl_1_1 = throw "nodejs-16_x-openssl_1_1 has been removed."; # Added 2023-02-04
   nologin = throw "'nologin' has been renamed to/replaced by 'shadow'"; # Converted to throw 2022-02-22
   nomad_1_1 = throw "nomad_1_1 has been removed because it's outdated. Use a a newer version instead"; # Added 2022-05-22
   nordic-polar = throw "nordic-polar was removed on 2021-05-27, now integrated in nordic"; # Added 2021-05-27
@@ -1547,6 +1548,7 @@ mapAliases ({
   truecrypt = throw "'truecrypt' has been renamed to/replaced by 'veracrypt'"; # Converted to throw 2022-02-22
   tuijam = throw "tuijam has been removed because Google Play Music was discontinued"; # Added 2021-03-07
   turbo-geth = throw "turbo-geth has been renamed to erigon"; # Added 2021-08-08
+  tvbrowser-bin = throw "tvbrowser-bin was removed because it is now built from sources; use 'tvbrowser' instead"; # Added 2023-02-04
   twister = throw "twister has been removed: abandoned by upstream and python2-only"; # Added 2022-04-26
   tychus = throw "tychus has been dropped due to the lack of maintenance from upstream since 2018"; # Added 2022-06-03
   typora = throw "Newer versions of typora use anti-user encryption and refuse to start. As such it has been removed"; # Added 2021-09-11
@@ -1679,6 +1681,7 @@ mapAliases ({
 
   yacc = bison; # moved from top-level 2021-03-14
   yafaray-core = libyafaray; # Added 2022-09-23
+  yarn2nix-moretea-openssl_1_1 = throw "'yarn2nix-moretea-openssl_1_1' has been removed."; # Added 2023-02-04
   yarssr = throw "yarssr has been removed as part of the python2 deprecation"; # Added 2022-01-15
   youtubeDL = throw "'youtubeDL' has been renamed to/replaced by 'youtube-dl'"; # Converted to throw 2022-02-22
   ytop = throw "ytop has been abandoned by upstream. Consider switching to bottom instead";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e1e93ff15b1..c6bd0e392d2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9200,9 +9200,6 @@ with pkgs;
   nodejs-slim-16_x = callPackage ../development/web/nodejs/v16.nix {
     enableNpm = false;
   };
-  nodejs-16_x-openssl_1_1 = callPackage ../development/web/nodejs/v16.nix {
-    openssl = openssl_1_1;
-  };
   nodejs-18_x = callPackage ../development/web/nodejs/v18.nix { };
   nodejs-slim-18_x = callPackage ../development/web/nodejs/v18.nix {
     enableNpm = false;
@@ -9870,6 +9867,8 @@ with pkgs;
 
   mubeng = callPackage ../tools/networking/mubeng { };
 
+  multipass = libsForQt5.callPackage ../tools/virtualization/multipass { };
+
   multitime = callPackage ../tools/misc/multitime { };
 
   sta = callPackage ../tools/misc/sta {};
@@ -13591,10 +13590,6 @@ with pkgs;
   yarn = callPackage ../development/tools/yarn  { };
 
   yarn2nix-moretea = callPackage ../development/tools/yarn2nix-moretea/yarn2nix { pkgs = pkgs.__splicedPackages; };
-  yarn2nix-moretea-openssl_1_1 = callPackage ../development/tools/yarn2nix-moretea/yarn2nix {
-    pkgs = pkgs.__splicedPackages;
-    nodejs = nodejs.override { openssl = openssl_1_1; };
-  };
 
   inherit (yarn2nix-moretea)
     yarn2nix
@@ -14772,6 +14767,12 @@ with pkgs;
        then haskell.compiler.native-bignum.ghc92
        else haskell.compiler.ghc92);
 
+  alex = haskell.lib.compose.justStaticExecutables haskellPackages.alex;
+
+  happy = haskell.lib.compose.justStaticExecutables haskellPackages.happy;
+
+  hscolour = haskell.lib.compose.justStaticExecutables haskellPackages.hscolour;
+
   cabal-install = haskell.lib.compose.justStaticExecutables haskellPackages.cabal-install;
 
   stack = haskell.lib.compose.justStaticExecutables haskellPackages.stack;
@@ -28737,6 +28738,8 @@ with pkgs;
     plugins = [];
   };
 
+  denaro = callPackage ../applications/finance/denaro { };
+
   dfasma = libsForQt5.callPackage ../applications/audio/dfasma { };
 
   dht = callPackage ../applications/networking/p2p/dht { };
@@ -38243,7 +38246,7 @@ with pkgs;
 
   trufflehog = callPackage ../tools/security/trufflehog { };
 
-  tvbrowser-bin = callPackage ../applications/misc/tvbrowser/bin.nix { };
+  tvbrowser = callPackage ../applications/misc/tvbrowser { };
 
   tvheadend = callPackage ../servers/tvheadend {
     dtv-scan-tables = dtv-scan-tables_tvheadend;
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 525d737b826..b91da8ebcde 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -19469,10 +19469,10 @@ let
   PerlMagick = ImageMagick; # added 2021-08-02
   ImageMagick = buildPerlPackage rec {
     pname = "Image-Magick";
-    version = "7.0.11-1";
+    version = "7.1.0-0";
     src = fetchurl {
       url = "mirror://cpan/authors/id/J/JC/JCRISTY/Image-Magick-${version}.tar.gz";
-      hash = "sha256-c0vuFmVq9bypQABBnZElGIQrpkYKwtD/B+PloBAycuI=";
+      hash = "sha256-+QyXXL4hRFd3xA0ZwXt/eQI9MGTvj6vPNIz4JlS8Fus=";
     };
     buildInputs = [ pkgs.imagemagick ];
     preConfigure =