summary refs log tree commit diff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2021-07-04 00:05:27 +0000
committerGitHub <noreply@github.com>2021-07-04 00:05:27 +0000
commit015c6d73ada8ee0b05d723a08a5f2c7db9ce8e52 (patch)
tree20bb8c5ba39bdb13cf39cfc3b6e048fa2ed0f8a4
parent2597ed803aef52f39c4a16a188a3708bd3d2883b (diff)
parent06607de5331dbe957cd626b8912f4d7ecef04fa8 (diff)
downloadnixpkgs-015c6d73ada8ee0b05d723a08a5f2c7db9ce8e52.tar
nixpkgs-015c6d73ada8ee0b05d723a08a5f2c7db9ce8e52.tar.gz
nixpkgs-015c6d73ada8ee0b05d723a08a5f2c7db9ce8e52.tar.bz2
nixpkgs-015c6d73ada8ee0b05d723a08a5f2c7db9ce8e52.tar.lz
nixpkgs-015c6d73ada8ee0b05d723a08a5f2c7db9ce8e52.tar.xz
nixpkgs-015c6d73ada8ee0b05d723a08a5f2c7db9ce8e52.tar.zst
nixpkgs-015c6d73ada8ee0b05d723a08a5f2c7db9ce8e52.zip
Merge master into haskell-updates
-rw-r--r--.github/workflows/periodic-merge-24h.yml2
-rw-r--r--maintainers/maintainer-list.nix12
-rw-r--r--nixos/doc/manual/administration/boot-problems.section.md6
-rw-r--r--nixos/doc/manual/from_md/administration/boot-problems.section.xml17
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2105.section.xml16
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2111.section.xml121
-rw-r--r--nixos/doc/manual/release-notes/rl-2105.section.md4
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md30
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-base.nix11
-rw-r--r--nixos/modules/module-list.nix3
-rw-r--r--nixos/modules/services/backup/btrbk.nix220
-rw-r--r--nixos/modules/services/networking/coturn.nix99
-rw-r--r--nixos/modules/services/security/vaultwarden/backup.sh (renamed from nixos/modules/services/security/bitwarden_rs/backup.sh)2
-rw-r--r--nixos/modules/services/security/vaultwarden/default.nix (renamed from nixos/modules/services/security/bitwarden_rs/default.nix)57
-rw-r--r--nixos/modules/system/activation/top-level.nix2
-rw-r--r--nixos/modules/system/boot/luksroot.nix2
-rw-r--r--nixos/tests/all-tests.nix4
-rw-r--r--nixos/tests/btrbk.nix110
-rw-r--r--nixos/tests/coturn.nix29
-rw-r--r--nixos/tests/vaultwarden.nix (renamed from nixos/tests/bitwarden.nix)20
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix28
-rwxr-xr-xpkgs/applications/editors/jetbrains/update.pl2
-rw-r--r--pkgs/applications/editors/spacevim/default.nix26
-rw-r--r--pkgs/applications/graphics/darktable/default.nix4
-rw-r--r--pkgs/applications/graphics/drawio/default.nix2
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix2
-rw-r--r--pkgs/applications/misc/curaengine/default.nix4
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/hugo/default.nix4
-rw-r--r--pkgs/applications/misc/masterpdfeditor/default.nix3
-rw-r--r--pkgs/applications/misc/otpclient/default.nix36
-rw-r--r--pkgs/applications/networking/3proxy/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix2
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix14
-rw-r--r--pkgs/applications/networking/seafile-client/default.nix17
-rw-r--r--pkgs/applications/office/softmaker/generic.nix2
-rw-r--r--pkgs/applications/office/super-productivity/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/gwyddion/default.nix4
-rw-r--r--pkgs/applications/science/logic/tlaplus/toolbox.nix14
-rw-r--r--pkgs/applications/system/glances/default.nix6
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix233
-rw-r--r--pkgs/applications/version-management/tortoisehg/default.nix21
-rw-r--r--pkgs/applications/video/makemkv/default.nix2
-rw-r--r--pkgs/applications/window-managers/sway/idle.nix4
-rw-r--r--pkgs/applications/window-managers/sway/lock.nix4
-rw-r--r--pkgs/build-support/docker/default.nix3
-rw-r--r--pkgs/data/fonts/charis-sil/default.nix4
-rw-r--r--pkgs/data/fonts/terminus-font-ttf/default.nix4
-rw-r--r--pkgs/data/misc/fedora-backgrounds/generic.nix2
-rw-r--r--pkgs/desktops/cinnamon/bulky/default.nix4
-rw-r--r--pkgs/desktops/gnome/default.nix2
-rw-r--r--pkgs/development/beam-modules/rebar3-nix/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/rocm/clang.nix2
-rw-r--r--pkgs/development/compilers/llvm/rocm/lld/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/rocm/llvm/default.nix2
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix2
-rw-r--r--pkgs/development/interpreters/alda/default.nix4
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix2
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/babl/default.nix4
-rw-r--r--pkgs/development/libraries/duckdb/default.nix4
-rw-r--r--pkgs/development/libraries/egl-wayland/default.nix6
-rw-r--r--pkgs/development/libraries/gegl/4.0.nix121
-rw-r--r--pkgs/development/libraries/gegl/default.nix112
-rw-r--r--pkgs/development/libraries/libbaseencode/default.nix22
-rw-r--r--pkgs/development/libraries/libcotp/default.nix23
-rw-r--r--pkgs/development/libraries/libliftoff/default.nix34
-rw-r--r--pkgs/development/libraries/libvmaf/default.nix4
-rw-r--r--pkgs/development/libraries/libxlsxwriter/default.nix4
-rw-r--r--pkgs/development/libraries/opencolorio/default.nix6
-rw-r--r--pkgs/development/libraries/rocclr/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-comgr/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-device-libs/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-opencl-icd/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-opencl-runtime/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-runtime/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-thunk/default.nix2
-rw-r--r--pkgs/development/libraries/wlroots/default.nix2
-rw-r--r--pkgs/development/node-packages/node-packages.json2
-rw-r--r--pkgs/development/ocaml-modules/alcotest/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/alcotest/lwt.nix7
-rw-r--r--pkgs/development/python-modules/bashlex/default.nix8
-rw-r--r--pkgs/development/python-modules/bugsnag/default.nix4
-rw-r--r--pkgs/development/python-modules/confuse/default.nix34
-rw-r--r--pkgs/development/python-modules/crc32c/default.nix4
-rw-r--r--pkgs/development/python-modules/curio/default.nix29
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix10
-rw-r--r--pkgs/development/python-modules/dask/default.nix4
-rw-r--r--pkgs/development/python-modules/dbutils/default.nix4
-rw-r--r--pkgs/development/python-modules/deezer-python/default.nix4
-rw-r--r--pkgs/development/python-modules/devolo-home-control-api/default.nix4
-rw-r--r--pkgs/development/python-modules/dftfit/default.nix52
-rw-r--r--pkgs/development/python-modules/dicom2nifti/default.nix4
-rw-r--r--pkgs/development/python-modules/diff-cover/default.nix57
-rw-r--r--pkgs/development/python-modules/diff_cover/default.nix46
-rw-r--r--pkgs/development/python-modules/distributed/default.nix25
-rw-r--r--pkgs/development/python-modules/django/3.nix4
-rw-r--r--pkgs/development/python-modules/drms/default.nix12
-rw-r--r--pkgs/development/python-modules/duckdb/default.nix20
-rw-r--r--pkgs/development/python-modules/editorconfig/default.nix18
-rw-r--r--pkgs/development/python-modules/emailthreads/default.nix4
-rw-r--r--pkgs/development/python-modules/emcee/default.nix36
-rw-r--r--pkgs/development/python-modules/emoji/default.nix28
-rw-r--r--pkgs/development/python-modules/enaml/default.nix4
-rw-r--r--pkgs/development/python-modules/fabulous/default.nix4
-rw-r--r--pkgs/development/python-modules/fastimport/default.nix13
-rw-r--r--pkgs/development/python-modules/flask-restx/default.nix13
-rw-r--r--pkgs/development/python-modules/georss-ign-sismologia-client/default.nix4
-rw-r--r--pkgs/development/python-modules/hijri-converter/default.nix4
-rw-r--r--pkgs/development/python-modules/lammps-cython/default.nix53
-rw-r--r--pkgs/development/python-modules/mdformat/default.nix4
-rw-r--r--pkgs/development/python-modules/micloud/default.nix37
-rw-r--r--pkgs/development/python-modules/pyls-black/default.nix2
-rw-r--r--pkgs/development/python-modules/pyls-isort/default.nix2
-rw-r--r--pkgs/development/python-modules/pyls-mypy/default.nix2
-rw-r--r--pkgs/development/python-modules/pyls-spyder/default.nix25
-rw-r--r--pkgs/development/python-modules/python-language-server/default.nix2
-rw-r--r--pkgs/development/python-modules/python-lsp-jsonrpc/default.nix41
-rw-r--r--pkgs/development/python-modules/python-lsp-server/default.nix81
-rw-r--r--pkgs/development/python-modules/selenium/default.nix2
-rw-r--r--pkgs/development/python-modules/simber/default.nix4
-rw-r--r--pkgs/development/python-modules/staticjinja/default.nix4
-rw-r--r--pkgs/development/python-modules/textfsm/default.nix21
-rw-r--r--pkgs/development/python-modules/token-bucket/default.nix4
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/scheme-modules/scheme-bytestructures/default.nix2
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/mill/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/rocm-cmake/default.nix2
-rw-r--r--pkgs/development/tools/cloud-nuke/default.nix6
-rw-r--r--pkgs/development/tools/database/sqlitebrowser/default.nix4
-rw-r--r--pkgs/development/tools/gops/default.nix4
-rw-r--r--pkgs/development/tools/literate-programming/noweb/default.nix2
-rw-r--r--pkgs/development/tools/misc/global/default.nix4
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix7
-rw-r--r--pkgs/development/tools/pgtop/default.nix30
-rw-r--r--pkgs/development/tools/rust/crate2nix/default.nix6
-rw-r--r--pkgs/development/tools/tapview/default.nix32
-rw-r--r--pkgs/development/tools/tapview/dont_check_echo.patch44
-rw-r--r--pkgs/development/web/flyctl/default.nix4
-rw-r--r--pkgs/games/katago/default.nix4
-rw-r--r--pkgs/games/openttd/grfcodec.nix28
-rw-r--r--pkgs/games/openttd/nml.nix22
-rw-r--r--pkgs/games/warzone2100/default.nix13
-rw-r--r--pkgs/misc/seafile-shared/default.nix6
-rw-r--r--pkgs/os-specific/linux/bpftools/default.nix2
-rw-r--r--pkgs/os-specific/linux/bpftrace/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/perf.nix13
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix10
-rw-r--r--pkgs/servers/coturn/default.nix3
-rw-r--r--pkgs/servers/http/gitlab-pages/default.nix6
-rw-r--r--pkgs/servers/pinnwand/default.nix3
-rw-r--r--pkgs/servers/sip/freeswitch/default.nix20
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix4
-rw-r--r--pkgs/servers/x11/xorg/xwayland.nix12
-rw-r--r--pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--pkgs/tools/backup/btrbk/default.nix4
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix9
-rw-r--r--pkgs/tools/graphics/adriconf/default.nix41
-rw-r--r--pkgs/tools/graphics/gifsicle/default.nix4
-rw-r--r--pkgs/tools/misc/beats/default.nix4
-rw-r--r--pkgs/tools/misc/broot/default.nix2
-rw-r--r--pkgs/tools/misc/goaccess/default.nix4
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix4
-rw-r--r--pkgs/tools/misc/infracost/default.nix6
-rw-r--r--pkgs/tools/misc/mslink/default.nix7
-rw-r--r--pkgs/tools/misc/qmk/default.nix49
-rw-r--r--pkgs/tools/networking/boundary/default.nix8
-rw-r--r--pkgs/tools/package-management/cargo-outdated/default.nix6
-rw-r--r--pkgs/tools/package-management/cargo-release/default.nix6
-rw-r--r--pkgs/tools/security/cfssl/default.nix4
-rw-r--r--pkgs/tools/security/terrascan/default.nix12
-rw-r--r--pkgs/tools/security/traitor/default.nix4
-rw-r--r--pkgs/tools/security/vaultwarden/default.nix (renamed from pkgs/tools/security/bitwarden_rs/default.nix)15
-rw-r--r--pkgs/tools/security/vaultwarden/vault.nix (renamed from pkgs/tools/security/bitwarden_rs/vault.nix)10
-rw-r--r--pkgs/tools/system/rocm-smi/default.nix2
-rw-r--r--pkgs/tools/text/hottext/default.nix2
-rw-r--r--pkgs/tools/text/languagetool/default.nix4
-rw-r--r--pkgs/tools/wayland/wayland-proxy-virtwl/default.nix37
-rw-r--r--pkgs/top-level/aliases.nix8
-rw-r--r--pkgs/top-level/all-packages.nix50
-rw-r--r--pkgs/top-level/python-aliases.nix1
-rw-r--r--pkgs/top-level/python-packages.nix12
187 files changed, 2105 insertions, 905 deletions
diff --git a/.github/workflows/periodic-merge-24h.yml b/.github/workflows/periodic-merge-24h.yml
index adc8fa1e3ea..341656d9392 100644
--- a/.github/workflows/periodic-merge-24h.yml
+++ b/.github/workflows/periodic-merge-24h.yml
@@ -11,7 +11,7 @@ name: "Periodic Merges (24h)"
 on:
   schedule:
     # * is a special character in YAML so you have to quote this string
-    # Merge every 6 hours
+    # Merge every 24 hours
     - cron:  '0 0 * * *'
 
 jobs:
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 5cff742efe9..ff7df97e4b8 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -4061,6 +4061,12 @@
     github = "gytis-ivaskevicius";
     githubId = 23264966;
   };
+  hagl = {
+    email = "harald@glie.be";
+    github = "hagl";
+    githubId = 1162118;
+    name = "Harald Gliebe";
+  };
   hakuch = {
     email = "hakuch@gmail.com";
     github = "hakuch";
@@ -10638,6 +10644,12 @@
     github = "totoroot";
     githubId = 39650930;
   };
+  ToxicFrog = {
+    email = "toxicfrog@ancilla.ca";
+    github = "ToxicFrog";
+    githubId = 90456;
+    name = "Rebecca (Bex) Kelly";
+  };
   travisbhartwell = {
     email = "nafai@travishartwell.net";
     github = "travisbhartwell";
diff --git a/nixos/doc/manual/administration/boot-problems.section.md b/nixos/doc/manual/administration/boot-problems.section.md
index eb9209602a3..dee83e7ec22 100644
--- a/nixos/doc/manual/administration/boot-problems.section.md
+++ b/nixos/doc/manual/administration/boot-problems.section.md
@@ -30,6 +30,12 @@ If NixOS fails to boot, there are a number of kernel command line parameters tha
 
 : Make systemd very verbose and send log messages to the console instead of the journal. For more parameters recognised by systemd, see systemd(1).
 
+In addition, these arguments are recognised by the live image only:
+
+`live.nixos.passwd=password`
+
+: Set the password for the `nixos` live user. This can be used for SSH access if there are issues using the terminal.
+
 Notice that for `boot.shell_on_fail`, `boot.debug1`, `boot.debug1devices`, and `boot.debug1mounts`, if you did **not** select "start the new shell as pid 1", and you `exit` from the new shell, boot will proceed normally from the point where it failed, as if you'd chosen "ignore the error and continue".
 
 If no login prompts or X11 login screens appear (e.g. due to hanging dependencies), you can press Alt+ArrowUp. If you’re lucky, this will start rescue mode (described above). (Also note that since most units have a 90-second timeout before systemd gives up on them, the `agetty` login prompts should appear eventually unless something is very wrong.)
diff --git a/nixos/doc/manual/from_md/administration/boot-problems.section.xml b/nixos/doc/manual/from_md/administration/boot-problems.section.xml
index b484d075818..4ea01e78f32 100644
--- a/nixos/doc/manual/from_md/administration/boot-problems.section.xml
+++ b/nixos/doc/manual/from_md/administration/boot-problems.section.xml
@@ -107,6 +107,23 @@
     </varlistentry>
   </variablelist>
   <para>
+    In addition, these arguments are recognised by the live image only:
+  </para>
+  <variablelist>
+    <varlistentry>
+      <term>
+        <literal>live.nixos.passwd=password</literal>
+      </term>
+      <listitem>
+        <para>
+          Set the password for the <literal>nixos</literal> live user.
+          This can be used for SSH access if there are issues using the
+          terminal.
+        </para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+  <para>
     Notice that for <literal>boot.shell_on_fail</literal>,
     <literal>boot.debug1</literal>,
     <literal>boot.debug1devices</literal>, and
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2105.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2105.section.xml
index e043bee7761..f4155d6f8ce 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2105.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2105.section.xml
@@ -101,16 +101,18 @@
       <listitem>
         <para>
           <link xlink:href="https://www.gnuradio.org/">GNURadio</link>
-          3.8 was
+          3.8 and 3.9 were
           <link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
           packaged, along with a rewrite to the Nix expressions,
           allowing users to override the features upstream supports
           selecting to compile or not to. Additionally, the attribute
-          <literal>gnuradio</literal> and <literal>gnuradio3_7</literal>
-          now point to an externally wrapped by default derivations,
-          that allow you to also add `extraPythonPackages` to the Python
-          interpreter used by GNURadio. Missing environmental variables
-          needed for operational GUI were also added
+          <literal>gnuradio</literal> (3.9),
+          <literal>gnuradio3_8</literal> and
+          <literal>gnuradio3_7</literal> now point to an externally
+          wrapped by default derivations, that allow you to also add
+          `extraPythonPackages` to the Python interpreter used by
+          GNURadio. Missing environmental variables needed for
+          operational GUI were also added
           (<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
         </para>
       </listitem>
@@ -1026,7 +1028,7 @@ self: super:
         <para>
           <link xlink:href="https://kodi.tv/">Kodi</link> has been
           updated to version 19.1 &quot;Matrix&quot;. See the
-          <link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link>
+          <link xlink:href="https://kodi.tv/article/kodi-19-0-matrix-release">announcement</link>
           for further details.
         </para>
       </listitem>
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index abd10a6f9a7..2a285669efe 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -27,6 +27,15 @@
     <itemizedlist>
       <listitem>
         <para>
+          <link xlink:href="https://digint.ch/btrbk/index.html">btrbk</link>,
+          a backup tool for btrfs subvolumes, taking advantage of btrfs
+          specific capabilities to create atomic snapshots and transfer
+          them incrementally to your backup locations. Available as
+          <link xlink:href="options.html#opt-services.brtbk.instances">services.btrbk</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>,
           a GeoIP database updater from MaxMind. Available as
           <link xlink:href="options.html#opt-services.geoipupdate.enable">services.geoipupdate</link>.
@@ -64,7 +73,7 @@
       <listitem>
         <para>
           The <literal>staticjinja</literal> package has been upgraded
-          from 1.0.4 to 2.0.0
+          from 1.0.4 to 3.0.1
         </para>
       </listitem>
       <listitem>
@@ -339,6 +348,116 @@
           release instead of the old 2.31.0 version.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          The <literal>bitwarden_rs</literal> packages and modules were
+          renamed to <literal>vaultwarden</literal>
+          <link xlink:href="https://github.com/dani-garcia/vaultwarden/discussions/1642">following
+          upstream</link>. More specifically,
+        </para>
+        <itemizedlist>
+          <listitem>
+            <para>
+              <literal>pkgs.bitwarden_rs</literal>,
+              <literal>pkgs.bitwarden_rs-sqlite</literal>,
+              <literal>pkgs.bitwarden_rs-mysql</literal> and
+              <literal>pkgs.bitwarden_rs-postgresql</literal> were
+              renamed to <literal>pkgs.vaultwarden</literal>,
+              <literal>pkgs.vaultwarden-sqlite</literal>,
+              <literal>pkgs.vaultwarden-mysql</literal> and
+              <literal>pkgs.vaultwarden-postgresql</literal>,
+              respectively.
+            </para>
+            <itemizedlist spacing="compact">
+              <listitem>
+                <para>
+                  Old names are preserved as aliases for backwards
+                  compatibility, but may be removed in the future.
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  The <literal>bitwarden_rs</literal> executable was
+                  also renamed to <literal>vaultwarden</literal> in all
+                  packages.
+                </para>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>pkgs.bitwarden_rs-vault</literal> was renamed to
+              <literal>pkgs.vaultwarden-vault</literal>.
+            </para>
+            <itemizedlist spacing="compact">
+              <listitem>
+                <para>
+                  <literal>pkgs.bitwarden_rs-vault</literal> is
+                  preserved as an alias for backwards compatibility, but
+                  may be removed in the future.
+                </para>
+              </listitem>
+              <listitem>
+                <para>
+                  The static files were moved from
+                  <literal>/usr/share/bitwarden_rs</literal> to
+                  <literal>/usr/share/vaultwarden</literal>.
+                </para>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+          <listitem>
+            <para>
+              The <literal>services.bitwarden_rs</literal> config module
+              was renamed to <literal>services.vaultwarden</literal>.
+            </para>
+            <itemizedlist spacing="compact">
+              <listitem>
+                <para>
+                  <literal>services.bitwarden_rs</literal> is preserved
+                  as an alias for backwards compatibility, but may be
+                  removed in the future.
+                </para>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>systemd.services.bitwarden_rs</literal>,
+              <literal>systemd.services.backup-bitwarden_rs</literal>
+              and <literal>systemd.timers.backup-bitwarden_rs</literal>
+              were renamed to
+              <literal>systemd.services.vaultwarden</literal>,
+              <literal>systemd.services.backup-vaultwarden</literal> and
+              <literal>systemd.timers.backup-vaultwarden</literal>,
+              respectively.
+            </para>
+            <itemizedlist spacing="compact">
+              <listitem>
+                <para>
+                  Old names are preserved as aliases for backwards
+                  compatibility, but may be removed in the future.
+                </para>
+              </listitem>
+            </itemizedlist>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>users.users.bitwarden_rs</literal> and
+              <literal>users.groups.bitwarden_rs</literal> were renamed
+              to <literal>users.users.vaultwarden</literal> and
+              <literal>users.groups.vaultwarden</literal>, respectively.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              The data directory remains located at
+              <literal>/var/lib/bitwarden_rs</literal>, for backwards
+              compatibility.
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-21.11-notable-changes">
diff --git a/nixos/doc/manual/release-notes/rl-2105.section.md b/nixos/doc/manual/release-notes/rl-2105.section.md
index e4565b8ca60..49b97c203fe 100644
--- a/nixos/doc/manual/release-notes/rl-2105.section.md
+++ b/nixos/doc/manual/release-notes/rl-2105.section.md
@@ -36,7 +36,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 The following new services were added since the last release:
 
-- [GNURadio](https://www.gnuradio.org/) 3.8 was [finally](https://github.com/NixOS/nixpkgs/issues/82263) packaged, along with a rewrite to the Nix expressions, allowing users to override the features upstream supports selecting to compile or not to. Additionally, the attribute `gnuradio` and `gnuradio3_7` now point to an externally wrapped by default derivations, that allow you to also add \`extraPythonPackages\` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added ([\#75478](https://github.com/NixOS/nixpkgs/issues/75478)).
+- [GNURadio](https://www.gnuradio.org/) 3.8 and 3.9 were [finally](https://github.com/NixOS/nixpkgs/issues/82263) packaged, along with a rewrite to the Nix expressions, allowing users to override the features upstream supports selecting to compile or not to. Additionally, the attribute `gnuradio` (3.9), `gnuradio3_8` and `gnuradio3_7` now point to an externally wrapped by default derivations, that allow you to also add \`extraPythonPackages\` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added ([\#75478](https://github.com/NixOS/nixpkgs/issues/75478)).
 
 - [Keycloak](https://www.keycloak.org/), an open source identity and access management server with support for [OpenID Connect](https://openid.net/connect/), [OAUTH 2.0](https://oauth.net/2/) and [SAML 2.0](https://en.wikipedia.org/wiki/SAML_2.0).
 
@@ -300,7 +300,7 @@ When upgrading from a previous release, please be aware of the following incompa
 
   Regarding the NixOS module, new options for HTTPS inspection have been added and `services.privoxy.extraConfig` has been replaced by the new [services.privoxy.settings](options.html#opt-services.privoxy.settings) (See [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) for the motivation).
 
-- [Kodi](https://kodi.tv/) has been updated to version 19.1 \"Matrix\". See the [announcement](https://kodi.tv/article/kodi-190-matrix-release) for further details.
+- [Kodi](https://kodi.tv/) has been updated to version 19.1 \"Matrix\". See the [announcement](https://kodi.tv/article/kodi-19-0-matrix-release) for further details.
 
 - The `services.packagekit.backend` option has been removed as it only supported a single setting which would always be the default. Instead new [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) compliant [services.packagekit.settings](options.html#opt-services.packagekit.settings) and [services.packagekit.vendorSettings](options.html#opt-services.packagekit.vendorSettings) options have been introduced.
 
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 1b7250a1815..0de63a46199 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -10,6 +10,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 ## New Services {#sec-release-21.11-new-services}
 
+- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
+
 - [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
 
 - [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
@@ -20,7 +22,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 ## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
 
-- The `staticjinja` package has been upgraded from 1.0.4 to 2.0.0
+- The `staticjinja` package has been upgraded from 1.0.4 to 3.0.1
 
 - `services.geoip-updater` was broken and has been replaced by [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
 
@@ -85,6 +87,32 @@ In addition to numerous new and upgraded packages, this release has the followin
 * The `libwnck` package now defaults to the 3.x release instead of the
   old 2.31.0 version.
 
+* The `bitwarden_rs` packages and modules were renamed to `vaultwarden`
+  [following upstream](https://github.com/dani-garcia/vaultwarden/discussions/1642). More specifically,
+
+  * `pkgs.bitwarden_rs`, `pkgs.bitwarden_rs-sqlite`, `pkgs.bitwarden_rs-mysql` and
+    `pkgs.bitwarden_rs-postgresql` were renamed to `pkgs.vaultwarden`, `pkgs.vaultwarden-sqlite`,
+    `pkgs.vaultwarden-mysql` and `pkgs.vaultwarden-postgresql`, respectively.
+    * Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
+    * The `bitwarden_rs` executable was also renamed to `vaultwarden` in all packages.
+
+  * `pkgs.bitwarden_rs-vault` was renamed to `pkgs.vaultwarden-vault`.
+    * `pkgs.bitwarden_rs-vault` is preserved as an alias for backwards compatibility, but may be removed in the future.
+    * The static files were moved from `/usr/share/bitwarden_rs` to `/usr/share/vaultwarden`.
+
+  * The `services.bitwarden_rs` config module was renamed to `services.vaultwarden`.
+    * `services.bitwarden_rs` is preserved as an alias for backwards compatibility, but may be removed in the future.
+
+  * `systemd.services.bitwarden_rs`, `systemd.services.backup-bitwarden_rs` and `systemd.timers.backup-bitwarden_rs`
+    were renamed to `systemd.services.vaultwarden`, `systemd.services.backup-vaultwarden` and
+    `systemd.timers.backup-vaultwarden`, respectively.
+    * Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
+
+  * `users.users.bitwarden_rs` and `users.groups.bitwarden_rs` were renamed to `users.users.vaultwarden` and
+    `users.groups.vaultwarden`, respectively.
+
+  * The data directory remains located at `/var/lib/bitwarden_rs`, for backwards compatibility.
+
 ## Other Notable Changes {#sec-release-21.11-notable-changes}
 
 - The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
index 6c7ea293e8a..aecb65b8c57 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
@@ -30,5 +30,16 @@ with lib;
   # Add Memtest86+ to the CD.
   boot.loader.grub.memtest86.enable = true;
 
+  boot.postBootCommands = ''
+    for o in $(</proc/cmdline); do
+      case "$o" in
+        live.nixos.passwd=*)
+          set -- $(IFS==; echo $o)
+          echo "nixos:$2" | ${pkgs.shadow}/bin/chpasswd
+          ;;
+      esac
+    done
+  '';
+
   system.stateVersion = mkDefault "18.03";
 }
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 2d0f5d37f9e..980e7027c98 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -260,6 +260,7 @@
   ./services/backup/bacula.nix
   ./services/backup/borgbackup.nix
   ./services/backup/borgmatic.nix
+  ./services/backup/btrbk.nix
   ./services/backup/duplicati.nix
   ./services/backup/duplicity.nix
   ./services/backup/mysql-backup.nix
@@ -874,7 +875,6 @@
   ./services/search/hound.nix
   ./services/search/kibana.nix
   ./services/search/solr.nix
-  ./services/security/bitwarden_rs/default.nix
   ./services/security/certmgr.nix
   ./services/security/cfssl.nix
   ./services/security/clamav.nix
@@ -900,6 +900,7 @@
   ./services/security/torsocks.nix
   ./services/security/usbguard.nix
   ./services/security/vault.nix
+  ./services/security/vaultwarden/default.nix
   ./services/security/yubikey-agent.nix
   ./services/system/cloud-init.nix
   ./services/system/dbus.nix
diff --git a/nixos/modules/services/backup/btrbk.nix b/nixos/modules/services/backup/btrbk.nix
new file mode 100644
index 00000000000..a8ff71f609a
--- /dev/null
+++ b/nixos/modules/services/backup/btrbk.nix
@@ -0,0 +1,220 @@
+{ config, pkgs, lib, ... }:
+let
+  cfg = config.services.btrbk;
+  sshEnabled = cfg.sshAccess != [ ];
+  serviceEnabled = cfg.instances != { };
+  attr2Lines = attr:
+    let
+      pairs = lib.attrsets.mapAttrsToList (name: value: { inherit name value; }) attr;
+      isSubsection = value:
+        if builtins.isAttrs value then true
+        else if builtins.isString value then false
+        else throw "invalid type in btrbk config ${builtins.typeOf value}";
+      sortedPairs = lib.lists.partition (x: isSubsection x.value) pairs;
+    in
+    lib.flatten (
+      # non subsections go first
+      (
+        map (pair: [ "${pair.name} ${pair.value}" ]) sortedPairs.wrong
+      )
+      ++ # subsections go last
+      (
+        map
+          (
+            pair:
+            lib.mapAttrsToList
+              (
+                childname: value:
+                  [ "${pair.name} ${childname}" ] ++ (map (x: " " + x) (attr2Lines value))
+              )
+              pair.value
+          )
+          sortedPairs.right
+      )
+    )
+  ;
+  addDefaults = settings: { backend = "btrfs-progs-sudo"; } // settings;
+  mkConfigFile = settings: lib.concatStringsSep "\n" (attr2Lines (addDefaults settings));
+  mkTestedConfigFile = name: settings:
+    let
+      configFile = pkgs.writeText "btrbk-${name}.conf" (mkConfigFile settings);
+    in
+    pkgs.runCommand "btrbk-${name}-tested.conf" { } ''
+      mkdir foo
+      cp ${configFile} $out
+      if (set +o pipefail; ${pkgs.btrbk}/bin/btrbk -c $out ls foo 2>&1 | grep $out);
+      then
+      echo btrbk configuration is invalid
+      cat $out
+      exit 1
+      fi;
+    '';
+in
+{
+  options = {
+    services.btrbk = {
+      extraPackages = lib.mkOption {
+        description = "Extra packages for btrbk, like compression utilities for <literal>stream_compress</literal>";
+        type = lib.types.listOf lib.types.package;
+        default = [ ];
+        example = lib.literalExample "[ pkgs.xz ]";
+      };
+      niceness = lib.mkOption {
+        description = "Niceness for local instances of btrbk. Also applies to remote ones connecting via ssh when positive.";
+        type = lib.types.ints.between (-20) 19;
+        default = 10;
+      };
+      ioSchedulingClass = lib.mkOption {
+        description = "IO scheduling class for btrbk (see ionice(1) for a quick description). Applies to local instances, and remote ones connecting by ssh if set to idle.";
+        type = lib.types.enum [ "idle" "best-effort" "realtime" ];
+        default = "best-effort";
+      };
+      instances = lib.mkOption {
+        description = "Set of btrbk instances. The instance named <literal>btrbk</literal> is the default one.";
+        type = with lib.types;
+          attrsOf (
+            submodule {
+              options = {
+                onCalendar = lib.mkOption {
+                  type = lib.types.str;
+                  default = "daily";
+                  description = "How often this btrbk instance is started. See systemd.time(7) for more information about the format.";
+                };
+                settings = lib.mkOption {
+                  type = let t = lib.types.attrsOf (lib.types.either lib.types.str (t // { description = "instances of this type recursively"; })); in t;
+                  default = { };
+                  example = {
+                    snapshot_preserve_min = "2d";
+                    snapshot_preserve = "14d";
+                    volume = {
+                      "/mnt/btr_pool" = {
+                        target = "/mnt/btr_backup/mylaptop";
+                        subvolume = {
+                          "rootfs" = { };
+                          "home" = { snapshot_create = "always"; };
+                        };
+                      };
+                    };
+                  };
+                  description = "configuration options for btrbk. Nested attrsets translate to subsections.";
+                };
+              };
+            }
+          );
+        default = { };
+      };
+      sshAccess = lib.mkOption {
+        description = "SSH keys that should be able to make or push snapshots on this system remotely with btrbk";
+        type = with lib.types; listOf (
+          submodule {
+            options = {
+              key = lib.mkOption {
+                type = str;
+                description = "SSH public key allowed to login as user <literal>btrbk</literal> to run remote backups.";
+              };
+              roles = lib.mkOption {
+                type = listOf (enum [ "info" "source" "target" "delete" "snapshot" "send" "receive" ]);
+                example = [ "source" "info" "send" ];
+                description = "What actions can be performed with this SSH key. See ssh_filter_btrbk(1) for details";
+              };
+            };
+          }
+        );
+        default = [ ];
+      };
+    };
+
+  };
+  config = lib.mkIf (sshEnabled || serviceEnabled) {
+    environment.systemPackages = [ pkgs.btrbk ] ++ cfg.extraPackages;
+    security.sudo.extraRules = [
+      {
+        users = [ "btrbk" ];
+        commands = [
+          { command = "${pkgs.btrfs-progs}/bin/btrfs"; options = [ "NOPASSWD" ]; }
+          { command = "${pkgs.coreutils}/bin/mkdir"; options = [ "NOPASSWD" ]; }
+          { command = "${pkgs.coreutils}/bin/readlink"; options = [ "NOPASSWD" ]; }
+          # for ssh, they are not the same than the one hard coded in ${pkgs.btrbk}
+          { command = "/run/current-system/bin/btrfs"; options = [ "NOPASSWD" ]; }
+          { command = "/run/current-system/sw/bin/mkdir"; options = [ "NOPASSWD" ]; }
+          { command = "/run/current-system/sw/bin/readlink"; options = [ "NOPASSWD" ]; }
+        ];
+      }
+    ];
+    users.users.btrbk = {
+      isSystemUser = true;
+      # ssh needs a home directory
+      home = "/var/lib/btrbk";
+      createHome = true;
+      shell = "${pkgs.bash}/bin/bash";
+      group = "btrbk";
+      openssh.authorizedKeys.keys = map
+        (
+          v:
+          let
+            options = lib.concatMapStringsSep " " (x: "--" + x) v.roles;
+            ioniceClass = {
+              "idle" = 3;
+              "best-effort" = 2;
+              "realtime" = 1;
+            }.${cfg.ioSchedulingClass};
+          in
+          ''command="${pkgs.util-linux}/bin/ionice -t -c ${toString ioniceClass} ${lib.optionalString (cfg.niceness >= 1) "${pkgs.coreutils}/bin/nice -n ${toString cfg.niceness}"} ${pkgs.btrbk}/share/btrbk/scripts/ssh_filter_btrbk.sh --sudo ${options}" ${v.key}''
+        )
+        cfg.sshAccess;
+    };
+    users.groups.btrbk = { };
+    systemd.tmpfiles.rules = [
+      "d /var/lib/btrbk 0750 btrbk btrbk"
+      "d /var/lib/btrbk/.ssh 0700 btrbk btrbk"
+      "f /var/lib/btrbk/.ssh/config 0700 btrbk btrbk - StrictHostKeyChecking=accept-new"
+    ];
+    environment.etc = lib.mapAttrs'
+      (
+        name: instance: {
+          name = "btrbk/${name}.conf";
+          value.source = mkTestedConfigFile name instance.settings;
+        }
+      )
+      cfg.instances;
+    systemd.services = lib.mapAttrs'
+      (
+        name: _: {
+          name = "btrbk-${name}";
+          value = {
+            description = "Takes BTRFS snapshots and maintains retention policies.";
+            unitConfig.Documentation = "man:btrbk(1)";
+            path = [ "/run/wrappers" ] ++ cfg.extraPackages;
+            serviceConfig = {
+              User = "btrbk";
+              Group = "btrbk";
+              Type = "oneshot";
+              ExecStart = "${pkgs.btrbk}/bin/btrbk -c /etc/btrbk/${name}.conf run";
+              Nice = cfg.niceness;
+              IOSchedulingClass = cfg.ioSchedulingClass;
+              StateDirectory = "btrbk";
+            };
+          };
+        }
+      )
+      cfg.instances;
+
+    systemd.timers = lib.mapAttrs'
+      (
+        name: instance: {
+          name = "btrbk-${name}";
+          value = {
+            description = "Timer to take BTRFS snapshots and maintain retention policies.";
+            wantedBy = [ "timers.target" ];
+            timerConfig = {
+              OnCalendar = instance.onCalendar;
+              AccuracySec = "10min";
+              Persistent = true;
+            };
+          };
+        }
+      )
+      cfg.instances;
+  };
+
+}
diff --git a/nixos/modules/services/networking/coturn.nix b/nixos/modules/services/networking/coturn.nix
index 1bfbc307c59..5f7d2893ae2 100644
--- a/nixos/modules/services/networking/coturn.nix
+++ b/nixos/modules/services/networking/coturn.nix
@@ -16,6 +16,7 @@ ${lib.optionalString cfg.lt-cred-mech "lt-cred-mech"}
 ${lib.optionalString cfg.no-auth "no-auth"}
 ${lib.optionalString cfg.use-auth-secret "use-auth-secret"}
 ${lib.optionalString (cfg.static-auth-secret != null) ("static-auth-secret=${cfg.static-auth-secret}")}
+${lib.optionalString (cfg.static-auth-secret-file != null) ("static-auth-secret=#static-auth-secret#")}
 realm=${cfg.realm}
 ${lib.optionalString cfg.no-udp "no-udp"}
 ${lib.optionalString cfg.no-tcp "no-tcp"}
@@ -182,6 +183,13 @@ in {
           by a separate program, so this is why that other mode is 'dynamic'.
         '';
       };
+      static-auth-secret-file = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Path to the file containing the static authentication secret.
+        '';
+      };
       realm = mkOption {
         type = types.str;
         default = config.networking.hostName;
@@ -293,42 +301,63 @@ in {
     };
   };
 
-  config = mkIf cfg.enable {
-    users.users.turnserver =
-      { uid = config.ids.uids.turnserver;
-        description = "coturn TURN server user";
-      };
-    users.groups.turnserver =
-      { gid = config.ids.gids.turnserver;
-        members = [ "turnserver" ];
-      };
+  config = mkIf cfg.enable (mkMerge ([
+    { assertions = [
+      { assertion = cfg.static-auth-secret != null -> cfg.static-auth-secret-file == null ;
+        message = "static-auth-secret and static-auth-secret-file cannot be set at the same time";
+      }
+    ];}
 
-    systemd.services.coturn = {
-      description = "coturn TURN server";
-      after = [ "network-online.target" ];
-      wants = [ "network-online.target" ];
-      wantedBy = [ "multi-user.target" ];
+    {
+      users.users.turnserver =
+        { uid = config.ids.uids.turnserver;
+          description = "coturn TURN server user";
+        };
+      users.groups.turnserver =
+        { gid = config.ids.gids.turnserver;
+          members = [ "turnserver" ];
+        };
 
-      unitConfig = {
-        Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
-      };
+      systemd.services.coturn = let
+        runConfig = "/run/coturn/turnserver.cfg";
+      in {
+        description = "coturn TURN server";
+        after = [ "network-online.target" ];
+        wants = [ "network-online.target" ];
+        wantedBy = [ "multi-user.target" ];
 
-      serviceConfig = {
-        Type = "simple";
-        ExecStart = "${pkgs.coturn}/bin/turnserver -c ${configFile}";
-        RuntimeDirectory = "turnserver";
-        User = "turnserver";
-        Group = "turnserver";
-        AmbientCapabilities =
-          mkIf (
-            cfg.listening-port < 1024 ||
-            cfg.alt-listening-port < 1024 ||
-            cfg.tls-listening-port < 1024 ||
-            cfg.alt-tls-listening-port < 1024 ||
-            cfg.min-port < 1024
-          ) "cap_net_bind_service";
-        Restart = "on-abort";
-      };
-    };
-  };
+        unitConfig = {
+          Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
+        };
+
+        preStart = ''
+          cat ${configFile} > ${runConfig}
+          ${optionalString (cfg.static-auth-secret-file != null) ''
+            STATIC_AUTH_SECRET="$(head -n1 ${cfg.static-auth-secret-file} || :)"
+            sed -e "s,#static-auth-secret#,$STATIC_AUTH_SECRET,g" \
+              -i ${runConfig}
+          '' }
+          chmod 640 ${runConfig}
+        '';
+        serviceConfig = {
+          Type = "simple";
+          ExecStart = "${pkgs.coturn}/bin/turnserver -c ${runConfig}";
+          RuntimeDirectory = "turnserver";
+          User = "turnserver";
+          Group = "turnserver";
+          AmbientCapabilities =
+            mkIf (
+              cfg.listening-port < 1024 ||
+              cfg.alt-listening-port < 1024 ||
+              cfg.tls-listening-port < 1024 ||
+              cfg.alt-tls-listening-port < 1024 ||
+              cfg.min-port < 1024
+            ) "cap_net_bind_service";
+          Restart = "on-abort";
+        };
+      };
+    systemd.tmpfiles.rules = [
+      "d  /run/coturn 0700 turnserver turnserver - -"
+    ];
+  }]));
 }
diff --git a/nixos/modules/services/security/bitwarden_rs/backup.sh b/nixos/modules/services/security/vaultwarden/backup.sh
index 264a7da9cbb..2a3de0ab1de 100644
--- a/nixos/modules/services/security/bitwarden_rs/backup.sh
+++ b/nixos/modules/services/security/vaultwarden/backup.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-# Based on: https://github.com/dani-garcia/bitwarden_rs/wiki/Backing-up-your-vault
+# Based on: https://github.com/dani-garcia/vaultwarden/wiki/Backing-up-your-vault
 if ! mkdir -p "$BACKUP_FOLDER"; then
   echo "Could not create backup folder '$BACKUP_FOLDER'" >&2
   exit 1
diff --git a/nixos/modules/services/security/bitwarden_rs/default.nix b/nixos/modules/services/security/vaultwarden/default.nix
index bed59dbf821..940ac7832da 100644
--- a/nixos/modules/services/security/bitwarden_rs/default.nix
+++ b/nixos/modules/services/security/vaultwarden/default.nix
@@ -3,9 +3,9 @@
 with lib;
 
 let
-  cfg = config.services.bitwarden_rs;
-  user = config.users.users.bitwarden_rs.name;
-  group = config.users.groups.bitwarden_rs.name;
+  cfg = config.services.vaultwarden;
+  user = config.users.users.vaultwarden.name;
+  group = config.users.groups.vaultwarden.name;
 
   # Convert name from camel case (e.g. disable2FARemember) to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
   nameToEnvVar = name:
@@ -26,22 +26,26 @@ let
         if value != null then [ (nameValuePair (nameToEnvVar name) (if isBool value then boolToString value else toString value)) ] else []
       ) cfg.config));
     in { DATA_FOLDER = "/var/lib/bitwarden_rs"; } // optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
-      WEB_VAULT_FOLDER = "${pkgs.bitwarden_rs-vault}/share/bitwarden_rs/vault";
+      WEB_VAULT_FOLDER = "${pkgs.vaultwarden-vault}/share/vaultwarden/vault";
     } // configEnv;
 
-  configFile = pkgs.writeText "bitwarden_rs.env" (concatStrings (mapAttrsToList (name: value: "${name}=${value}\n") configEnv));
+  configFile = pkgs.writeText "vaultwarden.env" (concatStrings (mapAttrsToList (name: value: "${name}=${value}\n") configEnv));
 
-  bitwarden_rs = pkgs.bitwarden_rs.override { inherit (cfg) dbBackend; };
+  vaultwarden = pkgs.vaultwarden.override { inherit (cfg) dbBackend; };
 
 in {
-  options.services.bitwarden_rs = with types; {
-    enable = mkEnableOption "bitwarden_rs";
+  imports = [
+    (mkRenamedOptionModule [ "services" "bitwarden_rs" ] [ "services" "vaultwarden" ])
+  ];
+
+  options.services.vaultwarden = with types; {
+    enable = mkEnableOption "vaultwarden";
 
     dbBackend = mkOption {
       type = enum [ "sqlite" "mysql" "postgresql" ];
       default = "sqlite";
       description = ''
-        Which database backend bitwarden_rs will be using.
+        Which database backend vaultwarden will be using.
       '';
     };
 
@@ -49,7 +53,7 @@ in {
       type = nullOr str;
       default = null;
       description = ''
-        The directory under which bitwarden_rs will backup its persistent data.
+        The directory under which vaultwarden will backup its persistent data.
       '';
     };
 
@@ -65,7 +69,7 @@ in {
         }
       '';
       description = ''
-        The configuration of bitwarden_rs is done through environment variables,
+        The configuration of vaultwarden is done through environment variables,
         therefore the names are converted from camel case (e.g. disable2FARemember)
         to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
         In this conversion digits (0-9) are handled just like upper case characters,
@@ -75,17 +79,17 @@ in {
         This allows working around any potential future conflicting naming conventions.
 
         Based on the attributes passed to this config option an environment file will be generated
-        that is passed to bitwarden_rs's systemd service.
+        that is passed to vaultwarden's systemd service.
 
         The available configuration options can be found in
-        <link xlink:href="https://github.com/dani-garcia/bitwarden_rs/blob/${bitwarden_rs.version}/.env.template">the environment template file</link>.
+        <link xlink:href="https://github.com/dani-garcia/vaultwarden/blob/${vaultwarden.version}/.env.template">the environment template file</link>.
       '';
     };
 
     environmentFile = mkOption {
       type = with types; nullOr path;
       default = null;
-      example = "/root/bitwarden_rs.env";
+      example = "/root/vaultwarden.env";
       description = ''
         Additional environment file as defined in <citerefentry>
         <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
@@ -95,7 +99,7 @@ in {
         may be passed to the service without adding them to the world-readable Nix store.
 
         Note that this file needs to be available on the host on which
-        <literal>bitwarden_rs</literal> is running.
+        <literal>vaultwarden</literal> is running.
       '';
     };
   };
@@ -106,20 +110,21 @@ in {
       message = "Backups for database backends other than sqlite will need customization";
     } ];
 
-    users.users.bitwarden_rs = {
+    users.users.vaultwarden = {
       inherit group;
       isSystemUser = true;
     };
-    users.groups.bitwarden_rs = { };
+    users.groups.vaultwarden = { };
 
-    systemd.services.bitwarden_rs = {
+    systemd.services.vaultwarden = {
+      aliases = [ "bitwarden_rs" ];
       after = [ "network.target" ];
       path = with pkgs; [ openssl ];
       serviceConfig = {
         User = user;
         Group = group;
         EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile;
-        ExecStart = "${bitwarden_rs}/bin/bitwarden_rs";
+        ExecStart = "${vaultwarden}/bin/vaultwarden";
         LimitNOFILE = "1048576";
         PrivateTmp = "true";
         PrivateDevices = "true";
@@ -131,15 +136,16 @@ in {
       wantedBy = [ "multi-user.target" ];
     };
 
-    systemd.services.backup-bitwarden_rs = mkIf (cfg.backupDir != null) {
-      description = "Backup bitwarden_rs";
+    systemd.services.backup-vaultwarden = mkIf (cfg.backupDir != null) {
+      aliases = [ "backup-bitwarden_rs" ];
+      description = "Backup vaultwarden";
       environment = {
         DATA_FOLDER = "/var/lib/bitwarden_rs";
         BACKUP_FOLDER = cfg.backupDir;
       };
       path = with pkgs; [ sqlite ];
       serviceConfig = {
-        SyslogIdentifier = "backup-bitwarden_rs";
+        SyslogIdentifier = "backup-vaultwarden";
         Type = "oneshot";
         User = mkDefault user;
         Group = mkDefault group;
@@ -148,12 +154,13 @@ in {
       wantedBy = [ "multi-user.target" ];
     };
 
-    systemd.timers.backup-bitwarden_rs = mkIf (cfg.backupDir != null) {
-      description = "Backup bitwarden_rs on time";
+    systemd.timers.backup-vaultwarden = mkIf (cfg.backupDir != null) {
+      aliases = [ "backup-bitwarden_rs" ];
+      description = "Backup vaultwarden on time";
       timerConfig = {
         OnCalendar = mkDefault "23:00";
         Persistent = "true";
-        Unit = "backup-bitwarden_rs.service";
+        Unit = "backup-vaultwarden.service";
       };
       wantedBy = [ "multi-user.target" ];
     };
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index 6751ca3f2ee..4e2f25cd27f 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -13,7 +13,7 @@ let
   # !!! fix this
   children = mapAttrs (childName: childConfig:
       (import ../../../lib/eval-config.nix {
-        inherit baseModules specialArgs;
+        inherit lib baseModules specialArgs;
         system = config.nixpkgs.initialSystem;
         modules =
            (optionals childConfig.inheritParentConfig modules)
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index 8c82b4bcf5d..f87d3b07a36 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -621,6 +621,8 @@ in
               Whether to allow TRIM requests to the underlying device. This option
               has security implications; please read the LUKS documentation before
               activating it.
+              This option is incompatible with authenticated encryption (dm-crypt
+              stacked over dm-integrity).
             '';
           };
 
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index b5126be8af7..74160673214 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -42,12 +42,12 @@ in
   bind = handleTest ./bind.nix {};
   bitcoind = handleTest ./bitcoind.nix {};
   bittorrent = handleTest ./bittorrent.nix {};
-  bitwarden = handleTest ./bitwarden.nix {};
   blockbook-frontend = handleTest ./blockbook-frontend.nix {};
   boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
   boot-stage1 = handleTest ./boot-stage1.nix {};
   borgbackup = handleTest ./borgbackup.nix {};
   botamusique = handleTest ./botamusique.nix {};
+  btrbk = handleTest ./btrbk.nix {};
   buildbot = handleTest ./buildbot.nix {};
   buildkite-agents = handleTest ./buildkite-agents.nix {};
   caddy = handleTest ./caddy.nix {};
@@ -88,6 +88,7 @@ in
   containers-tmpfs = handleTest ./containers-tmpfs.nix {};
   convos = handleTest ./convos.nix {};
   corerad = handleTest ./corerad.nix {};
+  coturn = handleTest ./coturn.nix {};
   couchdb = handleTest ./couchdb.nix {};
   cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
   custom-ca = handleTest ./custom-ca.nix {};
@@ -446,6 +447,7 @@ in
   v2ray = handleTest ./v2ray.nix {};
   vault = handleTest ./vault.nix {};
   vault-postgresql = handleTest ./vault-postgresql.nix {};
+  vaultwarden = handleTest ./vaultwarden.nix {};
   vector = handleTest ./vector.nix {};
   victoriametrics = handleTest ./victoriametrics.nix {};
   virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
diff --git a/nixos/tests/btrbk.nix b/nixos/tests/btrbk.nix
new file mode 100644
index 00000000000..2689bb66c63
--- /dev/null
+++ b/nixos/tests/btrbk.nix
@@ -0,0 +1,110 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+  let
+    privateKey = ''
+      -----BEGIN OPENSSH PRIVATE KEY-----
+      b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
+      QyNTUxOQAAACBx8UB04Q6Q/fwDFjakHq904PYFzG9pU2TJ9KXpaPMcrwAAAJB+cF5HfnBe
+      RwAAAAtzc2gtZWQyNTUxOQAAACBx8UB04Q6Q/fwDFjakHq904PYFzG9pU2TJ9KXpaPMcrw
+      AAAEBN75NsJZSpt63faCuaD75Unko0JjlSDxMhYHAPJk2/xXHxQHThDpD9/AMWNqQer3Tg
+      9gXMb2lTZMn0pelo8xyvAAAADXJzY2h1ZXR6QGt1cnQ=
+      -----END OPENSSH PRIVATE KEY-----
+    '';
+    publicKey = ''
+      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHxQHThDpD9/AMWNqQer3Tg9gXMb2lTZMn0pelo8xyv
+    '';
+  in
+  {
+    name = "btrbk";
+    meta = with pkgs.lib; {
+      maintainers = with maintainers; [ symphorien ];
+    };
+
+    nodes = {
+      archive = { ... }: {
+        environment.systemPackages = with pkgs; [ btrfs-progs ];
+        # note: this makes the privateKey world readable.
+        # don't do it with real ssh keys.
+        environment.etc."btrbk_key".text = privateKey;
+        services.btrbk = {
+          extraPackages = [ pkgs.lz4 ];
+          instances = {
+            remote = {
+              onCalendar = "minutely";
+              settings = {
+                ssh_identity = "/etc/btrbk_key";
+                ssh_user = "btrbk";
+                stream_compress = "lz4";
+                volume = {
+                  "ssh://main/mnt" = {
+                    target = "/mnt";
+                    snapshot_dir = "btrbk/remote";
+                    subvolume = "to_backup";
+                  };
+                };
+              };
+            };
+          };
+        };
+      };
+
+      main = { ... }: {
+        environment.systemPackages = with pkgs; [ btrfs-progs ];
+        services.openssh = {
+          enable = true;
+          passwordAuthentication = false;
+          challengeResponseAuthentication = false;
+        };
+        services.btrbk = {
+          extraPackages = [ pkgs.lz4 ];
+          sshAccess = [
+            {
+              key = publicKey;
+              roles = [ "source" "send" "info" "delete" ];
+            }
+          ];
+          instances = {
+            local = {
+              onCalendar = "minutely";
+              settings = {
+                volume = {
+                  "/mnt" = {
+                    snapshot_dir = "btrbk/local";
+                    subvolume = "to_backup";
+                  };
+                };
+              };
+            };
+          };
+        };
+      };
+    };
+
+    testScript = ''
+      start_all()
+
+      # create btrfs partition at /mnt
+      for machine in (archive, main):
+        machine.succeed("dd if=/dev/zero of=/data_fs bs=120M count=1")
+        machine.succeed("mkfs.btrfs /data_fs")
+        machine.succeed("mkdir /mnt")
+        machine.succeed("mount /data_fs /mnt")
+
+      # what to backup and where
+      main.succeed("btrfs subvolume create /mnt/to_backup")
+      main.succeed("mkdir -p /mnt/btrbk/{local,remote}")
+
+      # check that local snapshots work
+      with subtest("local"):
+          main.succeed("echo foo > /mnt/to_backup/bar")
+          main.wait_until_succeeds("cat /mnt/btrbk/local/*/bar | grep foo")
+          main.succeed("echo bar > /mnt/to_backup/bar")
+          main.succeed("cat /mnt/btrbk/local/*/bar | grep foo")
+
+      # check that btrfs send/receive works and ssh access works
+      with subtest("remote"):
+          archive.wait_until_succeeds("cat /mnt/*/bar | grep bar")
+          main.succeed("echo baz > /mnt/to_backup/bar")
+          archive.succeed("cat /mnt/*/bar | grep bar")
+    '';
+  })
diff --git a/nixos/tests/coturn.nix b/nixos/tests/coturn.nix
new file mode 100644
index 00000000000..dff832281c7
--- /dev/null
+++ b/nixos/tests/coturn.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ ... }: {
+  name = "coturn";
+  nodes = {
+    default = {
+      services.coturn.enable = true;
+    };
+    secretsfile = {
+      boot.postBootCommands = ''
+        echo "some-very-secret-string" > /run/coturn-secret
+      '';
+      services.coturn = {
+        enable = true;
+        static-auth-secret-file = "/run/coturn-secret";
+      };
+    };
+  };
+
+  testScript =
+    ''
+      start_all()
+
+      with subtest("by default works without configuration"):
+          default.wait_for_unit("coturn.service")
+
+      with subtest("works with static-auth-secret-file"):
+          secretsfile.wait_for_unit("coturn.service")
+          secretsfile.succeed("grep 'some-very-secret-string' /run/coturn/turnserver.cfg")
+    '';
+})
diff --git a/nixos/tests/bitwarden.nix b/nixos/tests/vaultwarden.nix
index f64cf171f01..b5343f5cad2 100644
--- a/nixos/tests/bitwarden.nix
+++ b/nixos/tests/vaultwarden.nix
@@ -4,7 +4,7 @@
 }:
 
 # These tests will:
-#  * Set up a bitwarden-rs server
+#  * Set up a vaultwarden server
 #  * Have Firefox use the web vault to create an account, log in, and save a password to the valut
 #  * Have the bw cli log in and read that password from the vault
 #
@@ -24,8 +24,8 @@ let
 
   storedPassword = "seeeecret";
 
-  makeBitwardenTest = backend: makeTest {
-    name = "bitwarden_rs-${backend}";
+  makeVaultwardenTest = backend: makeTest {
+    name = "vaultwarden-${backend}";
     meta = {
       maintainers = with pkgs.lib.maintainers; [ jjjollyjim ];
     };
@@ -45,9 +45,9 @@ let
               package = pkgs.mariadb;
             };
 
-            services.bitwarden_rs.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
+            services.vaultwarden.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
 
-            systemd.services.bitwarden_rs.after = [ "mysql.service" ];
+            systemd.services.vaultwarden.after = [ "mysql.service" ];
           };
 
           postgresql = {
@@ -60,9 +60,9 @@ let
               '';
             };
 
-            services.bitwarden_rs.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
+            services.vaultwarden.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
 
-            systemd.services.bitwarden_rs.after = [ "postgresql.service" ];
+            systemd.services.vaultwarden.after = [ "postgresql.service" ];
           };
 
           sqlite = { };
@@ -71,7 +71,7 @@ let
         mkMerge [
           backendConfig.${backend}
           {
-            services.bitwarden_rs = {
+            services.vaultwarden = {
               enable = true;
               dbBackend = backend;
               config.rocketPort = 80;
@@ -152,7 +152,7 @@ let
 
     testScript = ''
       start_all()
-      server.wait_for_unit("bitwarden_rs.service")
+      server.wait_for_unit("vaultwarden.service")
       server.wait_for_open_port(80)
 
       with subtest("configure the cli"):
@@ -184,6 +184,6 @@ let
 in
 builtins.listToAttrs (
   map
-    (backend: { name = backend; value = makeBitwardenTest backend; })
+    (backend: { name = backend; value = makeVaultwardenTest backend; })
     backends
 )
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 38ea3054a60..b962ab6e22b 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -255,12 +255,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2021.1.2"; /* updated by script */
+    version = "2021.1.3"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "1znb4m7sv7xqi1mq3yw0m51m06wfwmhhxmvck0xkv8s0cfg18qim"; /* updated by script */
+      sha256 = "0lhi3vwhwb359va4sa17y071i03l4mfwqpsp7haqxjf900dcld7d"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -268,12 +268,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2021.1.2"; /* updated by script */
+    version = "2021.1.3"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "0g20r7yn4r2h08wv3i8bnnma8x4jljixsbmfml8kixk0pzfhv4px"; /* updated by script */
+      sha256 = "0xy9k90v3kcm9sj48l809qn0vws4ygsxxyqwsg6y9a3r1raqgqxd"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -281,12 +281,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2021.1.2"; /* updated by script */
+    version = "2021.1.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "03i5f6p0abr9yfs9fg90fg7hb1a7zar9q4d4iiag30cmndwpslg2"; /* updated by script */
+      sha256 = "1phpfa9i3k7g92ankmibp53c1469ifnb12g6s8gklln7v7xxakmi"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -294,12 +294,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2021.1.2"; /* updated by script */
+    version = "2021.1.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
-      sha256 = "0mw4acaik1bkr7gqbwgs3i8f8px8zw95hm1zxgd5gd5kh88n17x5"; /* updated by script */
+      sha256 = "13c7a96zbw05w1gy4ds4wzac853hdlnbflww2xaz60jnr1k24gnp"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -320,12 +320,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2021.1.3"; /* updated by script */
+    version = "2021.1.4"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "05hjv1nz1b82bkakadjvsy23v0qv8fyni6h31lcg9198h1890f7v"; /* updated by script */
+      sha256 = "0p9a8l2bpjm25x4af1hlqhmw5xsirsfajznd6y723yqmjy8hs46l"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -333,12 +333,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2021.1.2"; /* updated by script */
+    version = "2021.1.3"; /* updated by script */
     description = "PyCharm Community Edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0sp7w1xrl0y36dai08kqfd0jk06yr7jdbaf1a9f3fgxp5pmspxp1"; /* updated by script */
+      sha256 = "0c03grsrjydb6jcnbq1qi4158c14vni3znr7vysnbvldi8al6w8m"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -346,12 +346,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2021.1.2"; /* updated by script */
+    version = "2021.1.3"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0ny7rbl8g5azpqnlcq8l6bwh6hrp8rgp06lf4a8gdr9rpvw9xsqb"; /* updated by script */
+      sha256 = "01nwc9nprlyrwyij98px915w66g6vxbznsmmmg56rv3rvjvjp7yl"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
diff --git a/pkgs/applications/editors/jetbrains/update.pl b/pkgs/applications/editors/jetbrains/update.pl
index cd3d2193a28..abb4e5f7223 100755
--- a/pkgs/applications/editors/jetbrains/update.pl
+++ b/pkgs/applications/editors/jetbrains/update.pl
@@ -14,7 +14,7 @@ sub semantic_less {
 }
 
 sub get_latest_versions {
-  my @channels = get("http://www.jetbrains.com/updates/updates.xml") =~ /(<channel .+?<\/channel>)/gs;
+  my @channels = get("https://www.jetbrains.com/updates/updates.xml") =~ /(<channel .+?<\/channel>)/gs;
   my %h = {};
   for my $ch (@channels) {
     my ($id) = $ch =~ /^<channel id="[^"]+" name="([^"]+)"/;
diff --git a/pkgs/applications/editors/spacevim/default.nix b/pkgs/applications/editors/spacevim/default.nix
index 661bec463a7..9f6f895efac 100644
--- a/pkgs/applications/editors/spacevim/default.nix
+++ b/pkgs/applications/editors/spacevim/default.nix
@@ -1,8 +1,19 @@
-{ ripgrep, git, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub
-, lib, stdenv, formats, runCommand, spacevim_config ? import ./init.nix }:
+{ ripgrep
+, git
+, fzf
+, makeWrapper
+, vim_configurable
+, vimPlugins
+, fetchFromGitHub
+, lib
+, stdenv
+, formats
+, runCommand
+, spacevim_config ? import ./init.nix
+}:
 
 let
-  format = formats.toml {};
+  format = formats.toml { };
   vim-customized = vim_configurable.customize {
     name = "vim";
     # Not clear at the moment how to import plugins such that
@@ -14,17 +25,18 @@ let
     mkdir -p $out
     cp ${format.generate "init.toml" spacevim_config} $out/init.toml
   '';
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "spacevim";
-  version = "1.6.0";
+  version = "1.7.0";
   src = fetchFromGitHub {
     owner = "SpaceVim";
     repo = "SpaceVim";
     rev = "v${version}";
-    sha256 = "sha256-QQdtjEdbuzmf0Rw+u2ZltLihnJt8LqkfTrLDWLAnCLE=";
+    sha256 = "sha256-TmfPeaGkH1Wq2b5lB29PUYDVddJVN3mBuPAmu9EtiGY=";
   };
 
-  nativeBuildInputs = [ makeWrapper vim-customized];
+  nativeBuildInputs = [ makeWrapper vim-customized ];
   buildInputs = [ vim-customized ];
 
   buildPhase = ''
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index 469437c6c95..cc15b96b4b6 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.4.1";
+  version = "3.6.0";
   pname = "darktable";
 
   src = fetchurl {
     url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
-    sha256 = "sha256-f8P4UdqbzXxQU+zQnyGqPrYQO+mKbFj1IBC28iF0lB4=";
+    sha256 = "sha256:0f8aqwkgw4gs97b5i4ygiqk5zilwq7ax7zwdd31r72zk98cd1g46";
   };
 
   nativeBuildInputs = [ cmake ninja llvm pkg-config intltool perl desktop-file-utils wrapGAppsHook ];
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 05e94bb164c..5bb94baf76f 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
     homepage = "https://about.draw.io/";
     license = licenses.asl20;
     changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index 436e4d7831f..b4b55fa264d 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
     description = "Multi-platform password manager";
     homepage = "https://1password.com/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ danieldk timstott savannidgerinel ];
+    maintainers = with maintainers; [ timstott savannidgerinel ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index 05f63c54803..d0dfde5b382 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "curaengine";
-  version = "4.9.1";
+  version = "4.10.0";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "CuraEngine";
     rev = version;
-    sha256 = "sha256-1hCjtnI1EnfyQ0QfU8qZoSLIjE5pyDYpu8H4J91cWYM=";
+    sha256 = "sha256-t5i6s0KKcaoMqzDxZ6JL1NyKP33uxWdmyziK3xh8q88=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 0eca08907e9..a2280e8bb01 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "9.1";
+  version = "9.2";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-szq1i2/NEtMK4paSkxtkKXc8yY8qGj2U/p6CzNIecAY=";
+    sha256 = "sha256-pU02Eaq6tB7X6EPOo8YAyryJRbSV3KebQv8VELxXaBw=";
   };
 
   patches = (substituteAll {
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index c2e55be1134..42683318840 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.84.3";
+  version = "0.84.4";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3SbF4JsanNup0JmtEoZlyu3SvMn01r+nhnPgIi/W8pA=";
+    sha256 = "sha256-nD2UBDSDG6OFfUvDBXCfhOCiJyFMP2pDXSlIESaEfqE=";
   };
 
   vendorSha256 = "sha256-ImXTOtN6kQL7Q8IBlmK7+i47cWtyZT0xcnQdCw3NvWM=";
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index 2fd217e3cd6..72028478e6e 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
     homepage = "https://code-industry.net/free-pdf-editor/";
     license = licenses.unfreeRedistributable;
     platforms = with platforms; [ "x86_64-linux" ];
-    maintainers = with maintainers; [ cmcdragonkai flokli ];
+    broken = true;
+    maintainers = with maintainers; [ cmcdragonkai ];
   };
 }
diff --git a/pkgs/applications/misc/otpclient/default.nix b/pkgs/applications/misc/otpclient/default.nix
new file mode 100644
index 00000000000..b15eb1a78b4
--- /dev/null
+++ b/pkgs/applications/misc/otpclient/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, gtk3
+, wrapGAppsHook
+, jansson
+, libgcrypt
+, libzip
+, libpng
+, libcotp
+, zbar
+}:
+
+stdenv.mkDerivation rec {
+  pname = "otpclient";
+  version = "2.4.4";
+
+  src = fetchFromGitHub {
+    owner = "paolostivanin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0zjvhcx9q8nsf97zikddxriky0kghi4j4i7312s94pl8c7kb4abr";
+  };
+
+  buildInputs = [ gtk3 jansson libgcrypt libzip libpng libcotp zbar ];
+  nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
+
+  meta = with lib; {
+    description = "Highly secure and easy to use OTP client written in C/GTK that supports both TOTP and HOTP";
+    homepage = "https://github.com/paolostivanin/OTPClient";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ alexbakker ];
+  };
+}
diff --git a/pkgs/applications/networking/3proxy/default.nix b/pkgs/applications/networking/3proxy/default.nix
index f9221d06d02..b83f93b3b68 100644
--- a/pkgs/applications/networking/3proxy/default.nix
+++ b/pkgs/applications/networking/3proxy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "3proxy";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchFromGitHub {
     owner = "z3APA3A";
     repo = pname;
     rev = version;
-    sha256 = "9aopwyz0U2bYTvx5YWLJo9EE8Xfb51IOguHRJodjpm8=";
+    sha256 = "sha256-4bLlQ/ULvpjs6fr19yBBln5mRRc+yj+zVLiTs1e/Ypc=";
   };
 
   makeFlags = [
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 7d5b437b0ac..7b2acbd6b3d 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -90,11 +90,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.26.67";
+  version = "1.26.74";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "Kg6ExXZYdSkyBoivu9h4blytHN9hOc4bUSuFR+1YZOY=";
+    sha256 = "ULmoUXyPWHCewK4FPP7SX1Ena6n0aM/EWR7ZnMN1ztY=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index cc443764447..602e2e6a829 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -62,7 +62,7 @@ mkChromiumDerivation (base: rec {
       -e '/\[Desktop Entry\]/a\' \
       -e 'StartupWMClass=chromium-browser' \
       $out/share/applications/chromium-browser.desktop
-  '' + lib.optionalString (channel == "dev") ''
+  '' + lib.optionalString (channel != "stable") ''
     cp -v "$buildPath/crashpad_handler" "$libExecPath/"
   '';
 
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index 21c42ad786b..69f71a7479e 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.10.0";
+  version = "3.10.1";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-22wYc6W4a5P9+JW7NW+s85IlQ+tfLhYzDarN6PGkFk4=";
+    sha256 = "sha256-fYQqH/J027XJPML/qKMpuu2Nxuvb0cyjOu2czLH8SoM=";
   };
 
-  vendorSha256 = "sha256-TPvO/E/uOyVSMNRQ3zzt15+i0UK0uHvI4qM5PqmHY20=";
+  vendorSha256 = "sha256-225TR9jTZSGEJZz3csl/pR/v2unUK67l08x5ESQTJzA=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 76d149048a3..47aa7c7330f 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, fetchFromGitHub, callPackage
 , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
-, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
-, dee, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
+, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash
+, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
 , tl-expected, hunspell, glibmm, webkitgtk
 , libtgvoip, rnnoise, abseil-cpp, extra-cmake-modules
 # Transitive dependencies:
@@ -23,7 +23,7 @@ let
   tg_owt = callPackage ./tg_owt.nix {};
 in mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.8.3";
+  version = "2.8.4";
   # Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
 
   # Telegram-Desktop with submodules
@@ -32,12 +32,10 @@ in mkDerivation rec {
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "1ywxsy3a99sdibipriblbzskmkqbnxwrz3lavfdr134wq8w8rjf7";
+    sha256 = "sha256-IN3GQgdNM66/GxKa5EGKB/LIkgBxS8Y4mkPBaSEphmw=";
   };
 
   postPatch = ''
-    substituteInPlace Telegram/lib_spellcheck/spellcheck/platform/linux/linux_enchant.cpp \
-      --replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
     substituteInPlace Telegram/CMakeLists.txt \
       --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
   '';
@@ -49,8 +47,8 @@ in mkDerivation rec {
   nativeBuildInputs = [ pkg-config cmake ninja python3 wrapGAppsHook wrapQtAppsHook removeReferencesTo ];
 
   buildInputs = [
-    qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash
-    dee ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
+    qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash
+    ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
     tl-expected hunspell glibmm webkitgtk
     libtgvoip rnnoise abseil-cpp extra-cmake-modules
     tg_owt
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index 6b73f03531d..446da4cdea3 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -1,27 +1,18 @@
-{ mkDerivation, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake, qtbase, qttools
+{ mkDerivation, lib, fetchFromGitHub, pkg-config, cmake, qtbase, qttools
 , seafile-shared, jansson, libsearpc
 , withShibboleth ? true, qtwebengine }:
 
 mkDerivation rec {
   pname = "seafile-client";
-  version = "8.0.1";
+  version = "8.0.3";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-client";
-    rev = "b4b944921c7efef13a93d693c45c997943899dec";
-    sha256 = "2vV+6ZXjVg81JVLfWeD0UK+RdmpBxBU2Ozx790WFSyw=";
+    rev = "v${version}";
+    sha256 = "cG3OSqRhYnxlzfauQia6pM/1gu+iE5mtHTGk3kGMFH0=";
   };
 
-  patches = [
-    # Fix compilation failure with "error: template with C linkage", fixes #122505
-    (fetchpatch {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_build_with_glib2.diff?h=seafile-client&id=7be253aaa2bdb6771721f45aa08bc875c8001c5a";
-      name = "fix_build_with_glib2.diff";
-      sha256 = "0hl7rcqfr8k62c1pr133bp3j63b905izaaggmgvr1af4jibal05v";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ]
     ++ lib.optional withShibboleth qtwebengine;
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
index 56a951919e3..3c139e1eead 100644
--- a/pkgs/applications/office/softmaker/generic.nix
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -123,7 +123,7 @@ in stdenv.mkDerivation {
     description = "An office suite with a word processor, spreadsheet and presentation program";
     homepage = "https://www.softmaker.com/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 7793db2138c..7cb9a9b7e99 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -5,11 +5,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "super-productivity";
-  version = "6.5.2";
+  version = "7.2.1";
 
   src = fetchurl {
     url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
-    sha256 = "1ivl7chsv9axgk6nqkf580pav651hchi3di0mrp0pylpsqgk6f1f";
+    sha256 = "93eeb56fe923c48a9384cde0633e98a9d9dc5c0869fce63b9724ff74bb400049";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/science/chemistry/gwyddion/default.nix b/pkgs/applications/science/chemistry/gwyddion/default.nix
index ca80262eb76..43007cb1f0f 100644
--- a/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -35,10 +35,10 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.58";
+   version = "2.59";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "sha256-0xNnzYkuW3nEsO2o+0WEA+Z71XWoq6FYXm342OWO9Sw=";
+    sha256 = "sha256-APMOJeZt/zp8JvXghKZ5lQFRKWO/4TVDORok8qAgEBk=";
   };
 
   nativeBuildInputs = [ pkg-config file ];
diff --git a/pkgs/applications/science/logic/tlaplus/toolbox.nix b/pkgs/applications/science/logic/tlaplus/toolbox.nix
index defe218b119..ef2d97ef6bf 100644
--- a/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -1,5 +1,5 @@
 { lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
-, gtk3, libXtst, glib, zlib
+, gtk3, libXtst, glib, zlib, wrapGAppsHook
 }:
 
 let
@@ -25,7 +25,11 @@ in stdenv.mkDerivation rec {
     sha256 = "02a2y2mkfab5cczw8g604m61h4xr0apir49zbd1aq6mmgcgngw80";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ gtk3 ];
+
+  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+
+  dontWrapGApps = true;
 
   phases = [ "installPhase" ];
 
@@ -36,6 +40,9 @@ in stdenv.mkDerivation rec {
     cp -r "$src" "$out/toolbox"
     chmod -R +w "$out/toolbox"
 
+    fixupPhase
+    gappsWrapperArgsHook
+
     patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       "$out/toolbox/toolbox"
@@ -52,7 +59,8 @@ in stdenv.mkDerivation rec {
     makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
       --run "set -x; cd $out/toolbox" \
       --add-flags "-data ~/.tla-toolbox" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}"  \
+      "''${gappsWrapperArgs[@]}"
 
     echo -e "\nCreating TLA Toolbox icons..."
     pushd "$src"
diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix
index c142ba12bc2..0fc85cea05c 100644
--- a/pkgs/applications/system/glances/default.nix
+++ b/pkgs/applications/system/glances/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonApplication rec {
   pname = "glances";
-  version = "3.1.7";
+  version = "3.2.0";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "v${version}";
-    sha256 = "sha256-82ZD32dqRYGbGM/uyaJ5VqVZbhDZthiEcTihkV43JOU=";
+    sha256 = "126xpx8i85giy3hkhqh0qcln9i1qj5bfciaqh9486rkl54xm8zsr";
   };
 
   # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
@@ -48,7 +48,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://nicolargo.github.io/glances/";
     description = "Cross-platform curses-based monitoring tool";
-    changelog = "https://github.com/nicolargo/glances/releases/tag/v${version}";
+    changelog = "https://github.com/nicolargo/glances/blob/v${version}/NEWS.rst";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ jonringer primeos koral ];
   };
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index df58b2162fc..3394d44a4be 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -1,95 +1,158 @@
-{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext
+{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext, installShellFiles
 , re2Support ? true
 , rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
-, guiSupport ? false, tk ? null
+, fullBuild ? false
+, gitSupport ? fullBuild
+, guiSupport ? fullBuild, tk
+, highlightSupport ? fullBuild
 , ApplicationServices
 }:
 
 let
-  inherit (python3Packages) docutils python fb-re2;
+  inherit (python3Packages) docutils python fb-re2 pygit2 pygments;
 
-in python3Packages.buildPythonApplication rec {
-  pname = "mercurial";
-  version = "5.8";
+  self = python3Packages.buildPythonApplication rec {
+    pname = "mercurial";
+    version = "5.8";
 
-  src = fetchurl {
-    url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-    sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
-  };
+    src = fetchurl {
+      url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
+      sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
+    };
+
+    patches = [
+      # https://phab.mercurial-scm.org/D10638, needed for below patch to apply
+      (fetchpatch {
+        url = "https://www.mercurial-scm.org/repo/hg/raw-rev/c365850b611490a5fdb235eb1cea310a542c2f84";
+        sha256 = "1gn3xvahbjdhbglffqpmj559w1bkqqsk70wqcanwv7nh972aqy9g";
+      })
+      # https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
+      (fetchpatch {
+        url = "https://www.mercurial-scm.org/repo/hg/raw-rev/c8f62920f07a40af3403ba9aefa1dac8a97d53ea";
+        sha256 = "1kw0xjg2c4jby0ncarjvpa5qafsyl1wzbk6jxls4hnxlxdl53nmn";
+      })
+    ];
+
+    format = "other";
+
+    passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
+
+    cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
+      inherit src;
+      name = "${pname}-${version}";
+      sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
+      sourceRoot = "${pname}-${version}/rust";
+    } else null;
+    cargoRoot = if rustSupport then "rust" else null;
+
+    propagatedBuildInputs = lib.optional re2Support fb-re2
+      ++ lib.optional gitSupport pygit2
+      ++ lib.optional highlightSupport pygments;
+    nativeBuildInputs = [ makeWrapper gettext installShellFiles ]
+      ++ lib.optionals rustSupport (with rustPlatform; [
+           cargoSetupHook
+           rust.cargo
+           rust.rustc
+         ]);
+    buildInputs = [ docutils ]
+      ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
-  patches = [
-    # https://phab.mercurial-scm.org/D10638, needed for below patch to apply
-    (fetchpatch {
-      url = "https://phab.mercurial-scm.org/file/data/l7p2r4zcctcr3pzlybv2/PHID-FILE-bwjzxlz6sbegk3s4irik/D10638.diff";
-      sha256 = "0mfi324is02l7cnd3j0gbmg5rpyyqn3afg3f73flnfwmz5njqa5f";
-    })
-    # https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
-    (fetchpatch {
-      url = "https://phab.mercurial-scm.org/file/data/v53nhburhtkhpccyecei/PHID-FILE-6v34oll6r2gkqo4ng5nt/D10639.diff";
-      sha256 = "0h5ilrd2x1789fr6sf4k1mcvxdh0xdyr94yawdacw87v3x12c8cb";
-    })
-  ];
-
-  format = "other";
-
-  passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
-
-  cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
-    inherit src;
-    name = "${pname}-${version}";
-    sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
-    sourceRoot = "${pname}-${version}/rust";
-  } else null;
-  cargoRoot = if rustSupport then "rust" else null;
-
-  propagatedBuildInputs = lib.optional re2Support fb-re2;
-  nativeBuildInputs = [ makeWrapper gettext ]
-    ++ lib.optionals rustSupport (with rustPlatform; [
-         cargoSetupHook
-         rust.cargo
-         rust.rustc
-       ]);
-  buildInputs = [ docutils ]
-    ++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
-
-  makeFlags = [ "PREFIX=$(out)" ]
-    ++ lib.optional rustSupport "PURE=--rust";
-
-  postInstall = (lib.optionalString guiSupport ''
-    mkdir -p $out/etc/mercurial
-    cp contrib/hgk $out/bin
-    cat >> $out/etc/mercurial/hgrc << EOF
-    [extensions]
-    hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
-    EOF
-    # setting HG so that hgk can be run itself as well (not only hg view)
-    WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
-              --set HG $out/bin/hg
-              --prefix PATH : ${tk}/bin "
-  '') + ''
-    for i in $(cd $out/bin && ls); do
-      wrapProgram $out/bin/$i \
-        $WRAP_TK
-    done
-
-    # copy hgweb.cgi to allow use in apache
-    mkdir -p $out/share/cgi-bin
-    cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
-    chmod u+x $out/share/cgi-bin/hgweb.cgi
-
-    # install bash/zsh completions
-    install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg
-    install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
-  '';
-
-  meta = with lib; {
-    inherit version;
-    description = "A fast, lightweight SCM system for very large distributed projects";
-    homepage = "https://www.mercurial-scm.org";
-    downloadPage = "https://www.mercurial-scm.org/release/";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ eelco lukegb ];
-    updateWalker = true;
-    platforms = platforms.unix;
+    makeFlags = [ "PREFIX=$(out)" ]
+      ++ lib.optional rustSupport "PURE=--rust";
+
+    postInstall = (lib.optionalString guiSupport ''
+      mkdir -p $out/etc/mercurial
+      cp contrib/hgk $out/bin
+      cat >> $out/etc/mercurial/hgrc << EOF
+      [extensions]
+      hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
+      EOF
+      # setting HG so that hgk can be run itself as well (not only hg view)
+      WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
+                --set HG $out/bin/hg
+                --prefix PATH : ${tk}/bin "
+    '') + ''
+      for i in $(cd $out/bin && ls); do
+        wrapProgram $out/bin/$i \
+          $WRAP_TK
+      done
+
+      # copy hgweb.cgi to allow use in apache
+      mkdir -p $out/share/cgi-bin
+      cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
+      chmod u+x $out/share/cgi-bin/hgweb.cgi
+
+      installShellCompletion --cmd hg \
+        --bash contrib/bash_completion \
+        --zsh contrib/zsh_completion
+    '';
+
+    passthru.tests = {};
+
+    meta = with lib; {
+      inherit version;
+      description = "A fast, lightweight SCM system for very large distributed projects";
+      homepage = "https://www.mercurial-scm.org";
+      downloadPage = "https://www.mercurial-scm.org/release/";
+      license = licenses.gpl2Plus;
+      maintainers = with maintainers; [ eelco lukegb ];
+      updateWalker = true;
+      platforms = platforms.unix;
+    };
   };
-}
+in
+  self.overridePythonAttrs (origAttrs: {
+    passthru = origAttrs.passthru // rec {
+      # withExtensions takes a function which takes the python packages set and
+      # returns a list of extensions to install.
+      #
+      # for instance: mercurial.withExtension (pm: [ pm.hg-evolve ])
+      withExtensions = f: let
+        python = self.python;
+        mercurialHighPrio = ps: (ps.toPythonModule self).overrideAttrs (oldAttrs: {
+          meta = oldAttrs.meta // {
+            priority = 50;
+          };
+        });
+        plugins = (f python.pkgs) ++ [ (mercurialHighPrio python.pkgs) ];
+        env = python.withPackages (ps: plugins);
+      in stdenv.mkDerivation {
+        pname = "${self.pname}-with-extensions";
+
+        inherit (self) src version meta;
+
+        buildInputs = self.buildInputs ++ self.propagatedBuildInputs;
+        nativeBuildInputs = self.nativeBuildInputs;
+
+        phases = [ "installPhase" "installCheckPhase" ];
+
+        installPhase = ''
+          runHook preInstall
+
+          mkdir -p $out/bin
+
+          for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do
+            for bin in $bindir/*; do
+              ln -s ${env}/bin/$(basename $bin) $out/bin/
+            done
+          done
+
+          ln -s ${self}/share $out/share
+
+          runHook postInstall
+        '';
+
+        installCheckPhase = ''
+          runHook preInstallCheck
+
+          $out/bin/hg help >/dev/null || exit 1
+
+          runHook postInstallCheck
+        '';
+      };
+
+      tests = origAttrs.passthru.tests // {
+        withExtensions = withExtensions (pm: [ pm.hg-evolve ]);
+      };
+    };
+  })
diff --git a/pkgs/applications/version-management/tortoisehg/default.nix b/pkgs/applications/version-management/tortoisehg/default.nix
index a0fa9318a13..17cde4c8a54 100644
--- a/pkgs/applications/version-management/tortoisehg/default.nix
+++ b/pkgs/applications/version-management/tortoisehg/default.nix
@@ -1,25 +1,16 @@
 { lib, fetchurl, python3Packages
 , mercurial, qt5
-}@args:
+}:
 let
   tortoisehgSrc = fetchurl rec {
     meta.name = "tortoisehg-${meta.version}";
-    meta.version = "5.6";
+    meta.version = "5.8";
     url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${meta.version}.tar.gz";
-    sha256 = "031bafj88wggpvw0lgvl0djhlbhs9nls9vzwvni8yn0m0bgzc9gr";
+    sha256 = "154q7kyrdk045wx7rsblzx41k3wbvp2f40kzkxmiiaa5n35srsm3";
   };
 
-  tortoiseMercurial = (mercurial.override {
-    rustSupport = false;
-    re2Support = lib.versionAtLeast tortoisehgSrc.meta.version "5.8";
-  }).overridePythonAttrs (old: rec {
-    inherit (tortoisehgSrc.meta) version;
-    src = fetchurl {
-      url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-      sha256 = "1hk2y30zzdnlv8f71kabvh0xi9c7qhp28ksh20vpd0r712sv79yz";
-    };
-    patches = [];
-  });
+  # Extension point for when thg's mercurial is lagging behind mainline.
+  tortoiseMercurial = mercurial;
 
 in python3Packages.buildPythonApplication {
     inherit (tortoisehgSrc.meta) name version;
@@ -49,7 +40,7 @@ in python3Packages.buildPythonApplication {
     meta = {
       description = "Qt based graphical tool for working with Mercurial";
       homepage = "https://tortoisehg.bitbucket.io/";
-      license = lib.licenses.gpl2;
+      license = lib.licenses.gpl2Only;
       platforms = lib.platforms.linux;
       maintainers = with lib.maintainers; [ danbst ];
     };
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index da18a8d7abe..9ab35b92a86 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -72,6 +72,6 @@ in mkDerivation {
     license = licenses.unfree;
     homepage = "http://makemkv.com";
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ danieldk titanous ];
+    maintainers = with maintainers; [ titanous ];
   };
 }
diff --git a/pkgs/applications/window-managers/sway/idle.nix b/pkgs/applications/window-managers/sway/idle.nix
index acfbb1ad36b..8c1ae0b3592 100644
--- a/pkgs/applications/window-managers/sway/idle.nix
+++ b/pkgs/applications/window-managers/sway/idle.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub
-, meson, ninja, pkg-config, scdoc
+, meson, ninja, pkg-config, scdoc, wayland-scanner
 , wayland, wayland-protocols, systemd
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
       --replace "version: '1.5'" "version: '${version}'"
   '';
 
-  nativeBuildInputs = [ meson ninja pkg-config scdoc ];
+  nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
   buildInputs = [ wayland wayland-protocols systemd ];
 
   mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=enabled" ];
diff --git a/pkgs/applications/window-managers/sway/lock.nix b/pkgs/applications/window-managers/sway/lock.nix
index 9b1523421ee..6dccedad827 100644
--- a/pkgs/applications/window-managers/sway/lock.nix
+++ b/pkgs/applications/window-managers/sway/lock.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub
-, meson, ninja, pkg-config, scdoc
+, meson, ninja, pkg-config, scdoc, wayland-scanner
 , wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
       --replace "version: '1.4'" "version: '${version}'"
   '';
 
-  nativeBuildInputs = [ meson ninja pkg-config scdoc ];
+  nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
   buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
 
   mesonFlags = [
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 9369e7d3158..ffe5d69ec90 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -117,7 +117,8 @@ rec {
         --tmpdir=$TMPDIR \
         --override-os ${os} \
         --override-arch ${arch} \
-        copy "$sourceURL" "docker-archive://$out:$destNameTag"
+        copy "$sourceURL" "docker-archive://$out:$destNameTag" \
+        | cat  # pipe through cat to force-disable progress bar
     '';
 
   # We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.
diff --git a/pkgs/data/fonts/charis-sil/default.nix b/pkgs/data/fonts/charis-sil/default.nix
index 44b40c72b58..6639cb57d8b 100644
--- a/pkgs/data/fonts/charis-sil/default.nix
+++ b/pkgs/data/fonts/charis-sil/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.000";
+  version = "6.000";
 in
   fetchzip rec {
     name = "charis-sil-${version}";
@@ -14,7 +14,7 @@ in
       unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
     '';
 
-    sha256 = "1a220s8n0flvcdkazqf5g10v6r55s2an308slvvarynpj6l7x27n";
+    sha256 = "sha256-eMmC893rI42qzZVCI17i9XSAbQzXCK2fHVe5Pf1/VnM=";
 
     meta = with lib; {
       homepage = "https://software.sil.org/charis";
diff --git a/pkgs/data/fonts/terminus-font-ttf/default.nix b/pkgs/data/fonts/terminus-font-ttf/default.nix
index f9d25a0128e..1a65798891f 100644
--- a/pkgs/data/fonts/terminus-font-ttf/default.nix
+++ b/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "4.47.0";
+  version = "4.49.1";
 in fetchzip {
   name = "terminus-font-ttf-${version}";
 
@@ -18,7 +18,7 @@ in fetchzip {
     install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
   '';
 
-  sha256 = "1mnx3vlnl0r15yzsa4zb9qqab4hpi603gdwhlbw960wg03i3xn8z";
+  sha256 = "sha256-UaTnCamIRN/3xZsYt5nYzvykXQ3ri94a047sWOJ2RfU=";
 
   meta = with lib; {
     description = "A clean fixed width TTF font";
diff --git a/pkgs/data/misc/fedora-backgrounds/generic.nix b/pkgs/data/misc/fedora-backgrounds/generic.nix
index 3e2e0928c3b..5ebc6ff367e 100644
--- a/pkgs/data/misc/fedora-backgrounds/generic.nix
+++ b/pkgs/data/misc/fedora-backgrounds/generic.nix
@@ -38,6 +38,6 @@ stdenvNoCC.mkDerivation {
     description = "A set of default and supplemental wallpapers for Fedora";
     license = licenses.cc-by-sa-40;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/desktops/cinnamon/bulky/default.nix b/pkgs/desktops/cinnamon/bulky/default.nix
index 16d4e1400e3..511cb6a1c09 100644
--- a/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/pkgs/desktops/cinnamon/bulky/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bulky";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "bulky";
     rev = version;
-    sha256 = "sha256-cO6AhQ0g1N43du74fljfI1M68jb9N04FKUyzjbzC3K0=";
+    sha256 = "sha256-+3OoeuGuyiHWlUrxm5A7CmNR+ijxdlmecmvqk+i+h08=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix
index b529a65026d..ae2255acb91 100644
--- a/pkgs/desktops/gnome/default.nix
+++ b/pkgs/desktops/gnome/default.nix
@@ -339,8 +339,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   inherit (pkgs) gnome-user-docs; # added 2019-11-20
 
-  inherit (pkgs) gegl_0_4; # added 2019-10-31
-
   inherit (pkgs) gjs; # added 2019-01-05
 
   inherit (pkgs) yelp-tools; # added 2019-11-20
diff --git a/pkgs/development/beam-modules/rebar3-nix/default.nix b/pkgs/development/beam-modules/rebar3-nix/default.nix
index ff248700d78..50bd2965835 100644
--- a/pkgs/development/beam-modules/rebar3-nix/default.nix
+++ b/pkgs/development/beam-modules/rebar3-nix/default.nix
@@ -1,12 +1,12 @@
 { lib, buildRebar3, fetchFromGitHub }:
 buildRebar3 rec {
   name = "rebar3_nix";
-  version = "0.1.0";
+  version = "0.1.1";
   src = fetchFromGitHub {
     owner = "erlang-nix";
     repo = name;
     rev = "v${version}";
-    sha256 = "17w8m4aqqgvhpx3xyc7x2qzsrd3ybzc83ay50zs1gyd1b8csh2wf";
+    sha256 = "10ijc06qvv5hqv0qy3w7mbv9pshdb8bvy0f3phr1vd5hksbk731y";
   };
 
   meta = {
diff --git a/pkgs/development/compilers/llvm/rocm/clang.nix b/pkgs/development/compilers/llvm/rocm/clang.nix
index 6ab0f894ca9..45c0bfda192 100644
--- a/pkgs/development/compilers/llvm/rocm/clang.nix
+++ b/pkgs/development/compilers/llvm/rocm/clang.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
     description = "ROCm fork of the clang C/C++/Objective-C/Objective-C++ LLVM compiler frontend";
     homepage = "https://llvm.org/";
     license = with licenses; [ ncsa ];
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/llvm/rocm/lld/default.nix b/pkgs/development/compilers/llvm/rocm/lld/default.nix
index ef60747b013..c8ca83f76c1 100644
--- a/pkgs/development/compilers/llvm/rocm/lld/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/lld/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     description = "ROCm fork of the LLVM Linker";
     homepage = "https://github.com/RadeonOpenCompute/llvm-project";
     license = licenses.ncsa;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/llvm/rocm/llvm/default.nix b/pkgs/development/compilers/llvm/rocm/llvm/default.nix
index b3e8c06195f..6d1ff664972 100644
--- a/pkgs/development/compilers/llvm/rocm/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/llvm/default.nix
@@ -91,7 +91,7 @@ in stdenv.mkDerivation rec {
     description = "ROCm fork of the LLVM compiler infrastructure";
     homepage = "https://github.com/RadeonOpenCompute/llvm-project";
     license = with licenses; [ ncsa ];
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 5bf9f460acf..e76f5012f95 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -53,6 +53,7 @@ in
 , enableParallelBuilding ? true
 , maintainers ? null
 , changelog ? null
+, mainProgram ? null
 , doCoverage ? false
 , doHaddock ? !(ghc.isHaLVM or false)
 , passthru ? {}
@@ -666,6 +667,7 @@ stdenv.mkDerivation ({
          // optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; }
          // optionalAttrs (args ? badPlatforms)   { inherit badPlatforms; }
          // optionalAttrs (args ? changelog)      { inherit changelog; }
+         // optionalAttrs (args ? mainProgram)    { inherit mainProgram; }
          ;
 
 }
diff --git a/pkgs/development/interpreters/alda/default.nix b/pkgs/development/interpreters/alda/default.nix
index 85c48ee2014..96d4207dbe8 100644
--- a/pkgs/development/interpreters/alda/default.nix
+++ b/pkgs/development/interpreters/alda/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alda";
-  version = "1.4.4";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://github.com/alda-lang/alda/releases/download/${version}/alda";
-    sha256 = "sha256-zIq8coSh4B9VGrixkQfhySK7qhlFG2p7O0suvbiScKY=";
+    sha256 = "sha256-OHbOsgYN87ThU7EgjCgxADnOv32qIi+7XwDwcW0dmV0=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index 5d5277afcd3..2ef3f3d3920 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -85,6 +85,6 @@ in stdenv.mkDerivation rec {
     changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${version}";
     license = licenses.mit;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = with maintainers; [ danieldk Flakebi ];
+    maintainers = with maintainers; [ Flakebi ];
   };
 }
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index 9fdccfb3faa..fcc64989606 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "10.5.2";
+  version = "10.5.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "sha256-Y/I87cVIpelASBblDPj4/MSSqxqtxsDO8wv8Kvzq2V8=";
+    sha256 = "sha256-5sUdjVKm94ucZFn2mGE1CT4O5wWmdDBxEPYXXyzV7jc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/babl/default.nix b/pkgs/development/libraries/babl/default.nix
index d6e1d75437e..c0765922de5 100644
--- a/pkgs/development/libraries/babl/default.nix
+++ b/pkgs/development/libraries/babl/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "babl";
-  version = "0.1.86";
+  version = "0.1.88";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/babl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Cz9ZUVmtGyFs1ynAUEw6X2z3gMZB9Nxj/BZPPAOCyPA=";
+    sha256 = "sha256-Tw1/SqoLsucl80mt97NRqVfZ+ybVVdmJWnr4FrQWcDk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index 60ccf5aeeb2..e63f2c3cfd6 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "duckdb";
-  version = "0.2.2";
+  version = "0.2.7";
 
   src = fetchFromGitHub {
     owner = "cwida";
     repo = "duckdb";
     rev = "v${version}";
-    sha256 = "1pzz2zjzpvji5am21vd9kjxj0pnxsjmrsfqrym9h2rk2mi7p2cx8";
+    sha256 = "0cnqq2n1424fqg7gfyvrwkk6nvjal2fm5n08xc8q28ynyhq4sfmj";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/egl-wayland/default.nix b/pkgs/development/libraries/egl-wayland/default.nix
index b3654087ffd..9e7beb0a4f8 100644
--- a/pkgs/development/libraries/egl-wayland/default.nix
+++ b/pkgs/development/libraries/egl-wayland/default.nix
@@ -4,6 +4,7 @@
 , pkg-config
 , meson
 , ninja
+, wayland-scanner
 , libX11
 , mesa
 , libGL
@@ -51,10 +52,15 @@ in stdenv.mkDerivation rec {
     sha256 = "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk";
   };
 
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
+    wayland-scanner
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/gegl/4.0.nix b/pkgs/development/libraries/gegl/4.0.nix
deleted file mode 100644
index 11f4f070c08..00000000000
--- a/pkgs/development/libraries/gegl/4.0.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, pkg-config
-, vala
-, gobject-introspection
-, gtk-doc
-, docbook-xsl-nons
-, docbook_xml_dtd_43
-, glib
-, babl
-, libpng
-, cairo
-, libjpeg
-, librsvg
-, lensfun
-, libspiro
-, maxflow
-, netsurf
-, pango
-, poly2tri-c
-, poppler
-, bzip2
-, json-glib
-, gettext
-, meson
-, ninja
-, libraw
-, gexiv2
-, libwebp
-, luajit
-, openexr
-, OpenCL
-, suitesparse
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gegl";
-  version = "0.4.30";
-
-  outputs = [ "out" "dev" "devdoc" ];
-  outputBin = "dev";
-
-  src = fetchurl {
-    url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-wRJ4LPQJaWniMhfM36vkIoTjXVQ1/wxD1A5McPrsqN0=";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    gettext
-    meson
-    ninja
-    vala
-    gobject-introspection
-    gtk-doc
-    docbook-xsl-nons
-    docbook_xml_dtd_43
-  ];
-
-  buildInputs = [
-    libpng
-    cairo
-    libjpeg
-    librsvg
-    lensfun
-    libspiro
-    maxflow
-    netsurf.libnsgif
-    pango
-    poly2tri-c
-    poppler
-    bzip2
-    libraw
-    libwebp
-    gexiv2
-    luajit
-    openexr
-    suitesparse
-  ] ++ lib.optional stdenv.isDarwin OpenCL;
-
-  # for gegl-4.0.pc
-  propagatedBuildInputs = [
-    glib
-    json-glib
-    babl
-  ];
-
-  mesonFlags = [
-    "-Ddocs=true"
-    "-Dmrg=disabled" # not sure what that is
-    "-Dsdl2=disabled"
-    "-Dpygobject=disabled"
-    "-Dlibav=disabled"
-    "-Dlibv4l=disabled"
-    "-Dlibv4l2=disabled"
-    # Disabled due to multiple vulnerabilities, see
-    # https://github.com/NixOS/nixpkgs/pull/73586
-    "-Djasper=disabled"
-  ];
-
-  # TODO: Fix missing math symbols in gegl seamless clone.
-  # It only appears when we use packaged poly2tri-c instead of vendored one.
-  NIX_CFLAGS_COMPILE = "-lm";
-
-  postPatch = ''
-    chmod +x tests/opencl/opencl_test.sh
-    patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tools/xml_insert.sh
-  '';
-
-  # tests fail to connect to the com.apple.fonts daemon in sandboxed mode
-  doCheck = !stdenv.isDarwin;
-
-  meta = with lib; {
-    description = "Graph-based image processing framework";
-    homepage = "https://www.gegl.org";
-    license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ jtojnar ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/gegl/default.nix b/pkgs/development/libraries/gegl/default.nix
index bd67f3e6b7c..11f4f070c08 100644
--- a/pkgs/development/libraries/gegl/default.nix
+++ b/pkgs/development/libraries/gegl/default.nix
@@ -1,43 +1,115 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , pkg-config
+, vala
+, gobject-introspection
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, glib
 , babl
 , libpng
 , cairo
 , libjpeg
 , librsvg
+, lensfun
+, libspiro
+, maxflow
+, netsurf
 , pango
-, gtk2
+, poly2tri-c
+, poppler
 , bzip2
-, intltool
-, libintl
-, OpenGL ? null }:
+, json-glib
+, gettext
+, meson
+, ninja
+, libraw
+, gexiv2
+, libwebp
+, luajit
+, openexr
+, OpenCL
+, suitesparse
+}:
 
 stdenv.mkDerivation rec {
   pname = "gegl";
-  version = "0.2.0";
+  version = "0.4.30";
+
+  outputs = [ "out" "dev" "devdoc" ];
+  outputBin = "dev";
 
   src = fetchurl {
-    url = "ftp://ftp.gtk.org/pub/gegl/0.2/${pname}-${version}.tar.bz2";
-    sha256 = "df2e6a0d9499afcbc4f9029c18d9d1e0dd5e8710a75e17c9b1d9a6480dd8d426";
+    url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-wRJ4LPQJaWniMhfM36vkIoTjXVQ1/wxD1A5McPrsqN0=";
   };
 
-  patches = [( fetchurl {
-    url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/"
-      + "gegl-0.2.0-CVE-2012-4433.patch?h=packages/gegl&id=57a60fbda5d7bbbd1cc4767cb0724baa80c5e3e9";
-    sha256 = "0p8mxj3w09nn1cc6cbxrd9hx742c5y27903i608wx6ja3kdjis59";
-    name = "CVE-2012-4433.patch";
-  })];
+  nativeBuildInputs = [
+    pkg-config
+    gettext
+    meson
+    ninja
+    vala
+    gobject-introspection
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+  ];
+
+  buildInputs = [
+    libpng
+    cairo
+    libjpeg
+    librsvg
+    lensfun
+    libspiro
+    maxflow
+    netsurf.libnsgif
+    pango
+    poly2tri-c
+    poppler
+    bzip2
+    libraw
+    libwebp
+    gexiv2
+    luajit
+    openexr
+    suitesparse
+  ] ++ lib.optional stdenv.isDarwin OpenCL;
+
+  # for gegl-4.0.pc
+  propagatedBuildInputs = [
+    glib
+    json-glib
+    babl
+  ];
 
-  # needs fonts otherwise don't know how to pass them
-  configureFlags = [ "--disable-docs" ];
+  mesonFlags = [
+    "-Ddocs=true"
+    "-Dmrg=disabled" # not sure what that is
+    "-Dsdl2=disabled"
+    "-Dpygobject=disabled"
+    "-Dlibav=disabled"
+    "-Dlibv4l=disabled"
+    "-Dlibv4l2=disabled"
+    # Disabled due to multiple vulnerabilities, see
+    # https://github.com/NixOS/nixpkgs/pull/73586
+    "-Djasper=disabled"
+  ];
 
-  buildInputs = [ babl libpng cairo libjpeg librsvg pango gtk2 bzip2 intltool libintl ]
-    ++ lib.optional stdenv.isDarwin OpenGL;
+  # TODO: Fix missing math symbols in gegl seamless clone.
+  # It only appears when we use packaged poly2tri-c instead of vendored one.
+  NIX_CFLAGS_COMPILE = "-lm";
 
-  nativeBuildInputs = [ pkg-config ];
+  postPatch = ''
+    chmod +x tests/opencl/opencl_test.sh
+    patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tools/xml_insert.sh
+  '';
 
-  doCheck = false; # fails 3 out of 19 tests
+  # tests fail to connect to the com.apple.fonts daemon in sandboxed mode
+  doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
     description = "Graph-based image processing framework";
diff --git a/pkgs/development/libraries/libbaseencode/default.nix b/pkgs/development/libraries/libbaseencode/default.nix
new file mode 100644
index 00000000000..c40f9bafb47
--- /dev/null
+++ b/pkgs/development/libraries/libbaseencode/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "libbaseencode";
+  version = "1.0.11";
+
+  src = fetchFromGitHub {
+    owner = "paolostivanin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1f52yh052z8k90d1ag6nk01p1gf4i1zxp1daw8mashs8avqr2m7g";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    description = "Library written in C for encoding and decoding data using base32 or base64 (RFC-4648)";
+    homepage = "https://github.com/paolostivanin/libbaseencode";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ alexbakker ];
+  };
+}
diff --git a/pkgs/development/libraries/libcotp/default.nix b/pkgs/development/libraries/libcotp/default.nix
new file mode 100644
index 00000000000..986890102dc
--- /dev/null
+++ b/pkgs/development/libraries/libcotp/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, libgcrypt, libbaseencode }:
+
+stdenv.mkDerivation rec {
+  pname = "libcotp";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "paolostivanin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qq4shwiz1if9vys052dnsbm4dfw1ynlj6nsb0v4zjly3ndspfsk";
+  };
+
+  buildInputs = [ libbaseencode libgcrypt ];
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  meta = with lib; {
+    description = "C library that generates TOTP and HOTP";
+    homepage = "https://github.com/paolostivanin/libcotp";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ alexbakker ];
+  };
+}
diff --git a/pkgs/development/libraries/libliftoff/default.nix b/pkgs/development/libraries/libliftoff/default.nix
new file mode 100644
index 00000000000..759549dbb28
--- /dev/null
+++ b/pkgs/development/libraries/libliftoff/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub
+, meson, pkg-config, ninja
+, libdrm
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libliftoff";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "emersion";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1s53jsll3c7272bhmh4jr6k5m1nvn8i1ld704qmzsm852ilmgrla";
+  };
+
+  nativeBuildInputs = [ meson pkg-config ninja ];
+
+  buildInputs = [ libdrm ];
+
+  meta = with lib; {
+    description = "A lightweight KMS plane library";
+    longDescription = ''
+      libliftoff eases the use of KMS planes from userspace without standing in
+      your way. Users create "virtual planes" called layers, set KMS properties
+      on them, and libliftoff will pick planes for these layers if possible.
+    '';
+    inherit (src.meta) homepage;
+    changelog = "https://github.com/emersion/libliftoff/releases/tag/v${version}";
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/development/libraries/libvmaf/default.nix b/pkgs/development/libraries/libvmaf/default.nix
index c4b945bed44..1410822a1ca 100644
--- a/pkgs/development/libraries/libvmaf/default.nix
+++ b/pkgs/development/libraries/libvmaf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libvmaf";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "netflix";
     repo = "vmaf";
     rev = "v${version}";
-    sha256 = "0dynk1pmsyf23vfxljaazqkr27vfrvhj3dyjzm06zxpzsn59aif3";
+    sha256 = "1jlmivmdzlhizljbmsvqqxnhjfyjh8zxyf5xv6j040vbfj4mf14f";
   };
 
   sourceRoot = "source/libvmaf";
diff --git a/pkgs/development/libraries/libxlsxwriter/default.nix b/pkgs/development/libraries/libxlsxwriter/default.nix
index 4bb80cb04a4..ce9a72f00c1 100644
--- a/pkgs/development/libraries/libxlsxwriter/default.nix
+++ b/pkgs/development/libraries/libxlsxwriter/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libxlsxwriter";
-  version = "1.0.6";
+  version = "1.0.8";
 
   src = fetchFromGitHub {
     owner = "jmcnamara";
     repo = "libxlsxwriter";
     rev = "RELEASE_${version}";
-    sha256 = "03fdcbm0xnkxwv6fir4yy4x9q2p5h08j099w9xh5gc2ni7ygjlyx";
+    sha256 = "1z9bkg0pfkzxbpj2rys4mx9wmcxyjjqsg0nbiaabsg455q00plki";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/opencolorio/default.nix b/pkgs/development/libraries/opencolorio/default.nix
index 522c8cfa4a1..b93e517def6 100644
--- a/pkgs/development/libraries/opencolorio/default.nix
+++ b/pkgs/development/libraries/opencolorio/default.nix
@@ -1,5 +1,5 @@
 {
-  stdenv, lib, fetchFromGitHub,
+  stdenv, lib, fetchFromGitHub, symlinkJoin,
   cmake, expat, libyamlcpp, ilmbase, pystring, # Base dependencies
 
   glew, freeglut, # Only required on Linux
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
     sha256 = "194j9jp5c8ws0fryiz936wyinphnpzwpqnzvw9ryx6rbiwrba487";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ expat libyamlcpp ilmbase pystring ]
+  nativeBuildInputs = [ cmake (symlinkJoin { name = "expat"; paths = [ expat.out expat.dev ]; }) ];
+  buildInputs = [ expat.out libyamlcpp ilmbase pystring ]
     ++ lib.optionals stdenv.hostPlatform.isLinux [ glew freeglut ]
     ++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon GLUT Cocoa ]
     ++ lib.optionals pythonBindings [ python3Packages.python python3Packages.pybind11 ]
diff --git a/pkgs/development/libraries/rocclr/default.nix b/pkgs/development/libraries/rocclr/default.nix
index c93ea5ba78b..cf085d50edb 100644
--- a/pkgs/development/libraries/rocclr/default.nix
+++ b/pkgs/development/libraries/rocclr/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     description = "Radeon Open Compute common language runtime";
     homepage = "https://github.com/ROCm-Developer-Tools/ROCclr";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     # rocclr seems to have some AArch64 ifdefs, but does not seem
     # to be supported yet by the build infrastructure. Recheck in
     # the future.
diff --git a/pkgs/development/libraries/rocm-comgr/default.nix b/pkgs/development/libraries/rocm-comgr/default.nix
index b9a34b113eb..95fe28ce9fd 100644
--- a/pkgs/development/libraries/rocm-comgr/default.nix
+++ b/pkgs/development/libraries/rocm-comgr/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     description = "APIs for compiling and inspecting AMDGPU code objects";
     homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/tree/amd-stg-open/lib/comgr";
     license = licenses.ncsa;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/rocm-device-libs/default.nix b/pkgs/development/libraries/rocm-device-libs/default.nix
index e62d6f0076f..383d91bd08c 100644
--- a/pkgs/development/libraries/rocm-device-libs/default.nix
+++ b/pkgs/development/libraries/rocm-device-libs/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "Set of AMD-specific device-side language runtime libraries";
     homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs";
     license = licenses.ncsa;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/rocm-opencl-icd/default.nix b/pkgs/development/libraries/rocm-opencl-icd/default.nix
index 903c238f455..0a9d124561e 100644
--- a/pkgs/development/libraries/rocm-opencl-icd/default.nix
+++ b/pkgs/development/libraries/rocm-opencl-icd/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "OpenCL ICD definition for AMD GPUs using the ROCm stack";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/rocm-opencl-runtime/default.nix b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
index d721cfece96..40ffcae7924 100644
--- a/pkgs/development/libraries/rocm-opencl-runtime/default.nix
+++ b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
     description = "OpenCL runtime for AMD GPUs, part of the ROCm stack";
     homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime";
     license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/rocm-runtime/default.nix b/pkgs/development/libraries/rocm-runtime/default.nix
index c63e8249cfc..eb4ce3c19fb 100644
--- a/pkgs/development/libraries/rocm-runtime/default.nix
+++ b/pkgs/development/libraries/rocm-runtime/default.nix
@@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
     description = "Platform runtime for ROCm";
     homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime";
     license = with licenses; [ ncsa ];
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/libraries/rocm-thunk/default.nix b/pkgs/development/libraries/rocm-thunk/default.nix
index 1339e035ebf..770dd16740c 100644
--- a/pkgs/development/libraries/rocm-thunk/default.nix
+++ b/pkgs/development/libraries/rocm-thunk/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     description = "Radeon open compute thunk interface";
     homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface";
     license = with licenses; [ bsd2 mit ];
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index 45c2fd228f2..9dc717c3479 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
   # $out for the library and $examples for the example programs (in examples):
   outputs = [ "out" "examples" ];
 
+  depsBuildBuild = [ pkg-config ];
+
   nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
 
   buildInputs = [
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index ea8f2ef7a18..43274c3f3e6 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -126,7 +126,7 @@
 , "indium"
 , "insect"
 , "ionic"
-, {"iosevka": "https://github.com/be5invis/Iosevka/archive/v7.0.4.tar.gz"}
+, {"iosevka": "https://github.com/be5invis/Iosevka/archive/v7.2.4.tar.gz"}
 , "jake"
 , "javascript-typescript-langserver"
 , "joplin"
diff --git a/pkgs/development/ocaml-modules/alcotest/default.nix b/pkgs/development/ocaml-modules/alcotest/default.nix
index 94626f3c179..abef3ef7ef4 100644
--- a/pkgs/development/ocaml-modules/alcotest/default.nix
+++ b/pkgs/development/ocaml-modules/alcotest/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname = "alcotest";
-  version = "1.2.3";
+  version = "1.3.0";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/alcotest/releases/download/${version}/alcotest-mirage-${version}.tbz";
-    sha256 = "1bmjcivbmd4vib15v4chycgd1gl8js9dk94vzxkdg06zxqd4hp08";
+    sha256 = "sha256-efnevbyolTdNb91zr4pHDcvgaLQQSD01wEu2zMM+iaw=";
   };
 
   propagatedBuildInputs = [ astring cmdliner fmt uuidm re stdlib-shims uutf ];
diff --git a/pkgs/development/ocaml-modules/alcotest/lwt.nix b/pkgs/development/ocaml-modules/alcotest/lwt.nix
index 82efbe91a06..5a57dc0fcc2 100644
--- a/pkgs/development/ocaml-modules/alcotest/lwt.nix
+++ b/pkgs/development/ocaml-modules/alcotest/lwt.nix
@@ -1,13 +1,16 @@
-{ lib, buildDunePackage, alcotest, logs, ocaml_lwt }:
+{ lib, buildDunePackage, alcotest, logs, ocaml_lwt, fmt
+, re, cmdliner
+}:
 
 buildDunePackage {
   pname = "alcotest-lwt";
 
   inherit (alcotest) version src useDune2;
 
-  propagatedBuildInputs = [ alcotest logs ocaml_lwt ];
+  propagatedBuildInputs = [ alcotest logs ocaml_lwt fmt ];
 
   doCheck = true;
+  checkInputs = [ re cmdliner ];
 
   meta = alcotest.meta // {
     description = "Lwt-based helpers for Alcotest";
diff --git a/pkgs/development/python-modules/bashlex/default.nix b/pkgs/development/python-modules/bashlex/default.nix
index 8e29eed2acf..0ee12c41480 100644
--- a/pkgs/development/python-modules/bashlex/default.nix
+++ b/pkgs/development/python-modules/bashlex/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "bashlex";
-  version = "0.14";
+  version = "0.15";
 
   src = fetchFromGitHub {
     owner = "idank";
     repo = pname;
     rev = version;
-    sha256 = "070spmbf53y18miky5chgky4x5h8kp9czkp7dm173klv9pi2cn0k";
+    sha256 = "sha256-kKVorAIKlyC9vUzLOlaZ/JrG1kBBRIvLwBmHNj9nx84=";
   };
 
   checkInputs = [ nose ];
@@ -29,9 +29,11 @@ buildPythonPackage rec {
     ${python.interpreter} -m nose --with-doctest
   '';
 
+  pythonImportsCheck = [ "bashlex" ];
+
   meta = with lib; {
     description = "Python parser for bash";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     homepage = "https://github.com/idank/bashlex";
     maintainers = with maintainers; [ multun ];
   };
diff --git a/pkgs/development/python-modules/bugsnag/default.nix b/pkgs/development/python-modules/bugsnag/default.nix
index 65cfa74777a..f23bc566bac 100644
--- a/pkgs/development/python-modules/bugsnag/default.nix
+++ b/pkgs/development/python-modules/bugsnag/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "bugsnag";
-  version = "4.0.3";
+  version = "4.1.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b70bc95e4e4f98b2eef7a3dadfdc50c1a40da7f50446adf43be05574a4b9f7c";
+    sha256 = "sha256-3L1ZzZ7eomzJLvtlGK7YOi81b4G/1azHML/iAvsnwcE=";
   };
 
   propagatedBuildInputs = [ six webob ];
diff --git a/pkgs/development/python-modules/confuse/default.nix b/pkgs/development/python-modules/confuse/default.nix
index 8f1c1754056..2b350be0046 100644
--- a/pkgs/development/python-modules/confuse/default.nix
+++ b/pkgs/development/python-modules/confuse/default.nix
@@ -1,25 +1,45 @@
 { buildPythonPackage
 , enum34
-, fetchPypi
+, fetchFromGitHub
+, flit-core
 , isPy27
 , lib
 , pathlib
 , pyyaml
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "confuse";
-  version = "1.4.0";
+  version = "1.5.0";
+  format = "flit";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-kvwEUcbiwnMqw2PQ9Z1+pgir3b7QYt2o6Y6ajJhs5GQ=";
+  src = fetchFromGitHub {
+    owner = "beetbox";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1kvilxhjifvz6ra64jadf9jiwphrah5rcb9ryq0v7w1dywgn4qp7";
   };
 
-  propagatedBuildInputs = [ pyyaml ] ++ lib.optionals isPy27 [ enum34 pathlib ] ;
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+  ] ++ lib.optionals isPy27 [
+    enum34
+    pathlib
+  ] ;
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "confuse" ];
 
   meta = with lib; {
-    description = "Confuse is a configuration library for Python that uses YAML.";
+    description = "Python configuration library for Python that uses YAML";
     homepage = "https://github.com/beetbox/confuse";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/development/python-modules/crc32c/default.nix b/pkgs/development/python-modules/crc32c/default.nix
index dd2c9059ed5..f4a85fba599 100644
--- a/pkgs/development/python-modules/crc32c/default.nix
+++ b/pkgs/development/python-modules/crc32c/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchFromGitHub }:
 
 buildPythonPackage rec {
-  version = "2.0.1";
+  version = "2.2.post0";
   pname = "crc32c";
 
   src = fetchFromGitHub {
     owner = "ICRAR";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vyac7pchh083h5qdjwhhacfq77frkrq1bjzsn51qv1vwcdrpnrf";
+    sha256 = "sha256-0FgNOVpgJTxRALuufZ7Dt1TwuX+zqw35yCq8kmq4RTc=";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/curio/default.nix b/pkgs/development/python-modules/curio/default.nix
index fb1eceda7f2..1a0f4e2d9fe 100644
--- a/pkgs/development/python-modules/curio/default.nix
+++ b/pkgs/development/python-modules/curio/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , isPy3k
 , pytestCheckHook
 , sphinx
@@ -10,31 +9,19 @@
 
 buildPythonPackage rec {
   pname = "curio";
-  version = "1.4";
+  version = "1.5";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "57edce81c837f3c2cf42fbb346dee26e537d1659e6605269fb13bd179e068744";
+    sha256 = "sha256-rwghLlkLt9qOTMOcQgEnEUlNwg1iLxYhVbopbMLjvBA=";
   };
 
-  patches = [
-    # Fix the flaky test due to slow moving time on Apple Silicon chips.
-    # Remove when https://github.com/dabeaz/curio/pull/339 is in the next release.
-    (fetchpatch {
-      url = "https://github.com/dabeaz/curio/commit/132376724bbfaa0a52d3d63d0791aa4ac1eb6f5f.patch";
-      sha256 = "sha256-AxO0xRcR9l9/NKEJFwyZIoYcyZxpqOhpdNaeaYokVb4=";
-    })
-    # Same as above
-    (fetchpatch {
-      url = "https://github.com/dabeaz/curio/commit/8ac2f12a2cdacbc750b01fc7459cee8879bc1ee3.patch";
-      sha256 = "sha256-2Si3fuDLrI09QuzJd1TrE0QY02G9e9m+1eHFTB/MrWU=";
-    })
+  checkInputs = [
+    pytestCheckHook
+    sphinx
   ];
 
-  disabled = !isPy3k;
-
-  checkInputs = [ pytestCheckHook sphinx ];
-
   __darwinAllowLocalNetworking = true;
 
   disabledTests = [
@@ -46,9 +33,11 @@ buildPythonPackage rec {
      "test_unix_ssl_server" # socket bind error on hydra when built with other packages
    ];
 
+  pythonImportsCheck = [ "curio" ];
+
   meta = with lib; {
     homepage = "https://github.com/dabeaz/curio";
-    description = "Library for performing concurrent I/O with coroutines in Python 3";
+    description = "Library for performing concurrent I/O with coroutines in Python";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index 359ee96f60a..9068814ffd7 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.1.12";
+  version = "1.1.13";
   format = "pyproject";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tJnr+uT8ZF6VI2IVc//LHFtoVKG1wM4dZqippFhgWAc=";
+    sha256 = "012avhf0a8n9xyy4g3xcr5z8z2a3m6rnqic6gfs9fq6p9bkq3ix9";
   };
 
   propagatedBuildInputs = [
@@ -42,8 +42,10 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [ pytestCheckHook ];
+
   pytestFlagsArray = [ "./cvxpy" ];
-  # Disable the slowest benchmarking tests, cuts test time in half
+
+   # Disable the slowest benchmarking tests, cuts test time in half
   disabledTests = [
     "test_tv_inpainting"
     "test_diffcp_sdp_example"
@@ -51,6 +53,8 @@ buildPythonPackage rec {
     "test_ecos_bb_mi_lp_2" # https://github.com/cvxgrp/cvxpy/issues/1241#issuecomment-780912155
   ];
 
+  pythonImportsCheck = [ "cvxpy" ];
+
   meta = with lib; {
     description = "A domain-specific language for modeling convex optimization problems in Python";
     homepage = "https://www.cvxpy.org/";
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index b51ac1701a2..208856490b8 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2021.06.1";
+  version = "2021.06.2";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wrUqLSmlKhd0NSjWBwbow8aX53ZBTgl2n4lEmvxC3bs=";
+    sha256 = "sha256-qvfjdijzlqaJQrDztRAVr5PudTaVd3WOTBid2ElZQgg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dbutils/default.nix b/pkgs/development/python-modules/dbutils/default.nix
index 848e5038af8..294456cc85b 100644
--- a/pkgs/development/python-modules/dbutils/default.nix
+++ b/pkgs/development/python-modules/dbutils/default.nix
@@ -1,13 +1,13 @@
 { lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
-  version = "2.0";
+  version = "2.0.1";
   pname = "dbutils";
 
   src = fetchPypi {
     inherit version;
     pname = "DBUtils";
-    sha256 = "131ifm2c2a7bipij597i8fvjka0dk2qv1xr2ghcvbc30jlkvag2g";
+    sha256 = "sha256-Vw590TbBMRb+74vKGGCeP2a4ZoqcPV8hCdh0TERE2GE=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/deezer-python/default.nix b/pkgs/development/python-modules/deezer-python/default.nix
index cd24ae0fd3e..926dadd031c 100644
--- a/pkgs/development/python-modules/deezer-python/default.nix
+++ b/pkgs/development/python-modules/deezer-python/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "deezer-python";
-  version = "2.2.4";
+  version = "2.3.0";
   disabled = pythonOlder "3.6";
   format = "pyproject";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "browniebroke";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11gqmyf350256gbppak2qv20lg2bmszand4kmks93wphq5yp2iiy";
+    sha256 = "sha256-pRYC0kJHJ5SKgDdGS1KkQEbv+DkF9oPw/A1GnB0AwfQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/devolo-home-control-api/default.nix b/pkgs/development/python-modules/devolo-home-control-api/default.nix
index 44a0165d6fd..751ebaae292 100644
--- a/pkgs/development/python-modules/devolo-home-control-api/default.nix
+++ b/pkgs/development/python-modules/devolo-home-control-api/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "devolo-home-control-api";
-  version = "0.17.3";
+  version = "0.17.4";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "2Fake";
     repo = "devolo_home_control_api";
     rev = "v${version}";
-    sha256 = "1h7admqb1l28sxwhhkkhw0sfzgpn8zpczvmi3h28f68csflkv379";
+    sha256 = "sha256-N/48Q2IEL194vCzrPPuy+mRNejXfkoXy2t2oe0Y6ug4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dftfit/default.nix b/pkgs/development/python-modules/dftfit/default.nix
deleted file mode 100644
index 778b8c3d984..00000000000
--- a/pkgs/development/python-modules/dftfit/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pymatgen
-, marshmallow
-, pyyaml
-, pygmo
-, pandas
-, scipy
-, numpy
-, scikit-learn
-, lammps-cython
-, pymatgen-lammps
-, pytestrunner
-, isPy3k
-}:
-
-buildPythonPackage rec {
-  pname = "dftfit";
-  version = "0.5.1";
-  disabled = (!isPy3k);
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "4dcbde48948835dcf2d49d6628c9df5747a8ec505d517e374b8d6c7fe95892df";
-  };
-
-  buildInputs = [ pytestrunner ];
-  propagatedBuildInputs = [
-    pymatgen
-    marshmallow
-    pyyaml
-    pygmo
-    pandas
-    scipy
-    numpy
-    scikit-learn
-    lammps-cython
-    pymatgen-lammps
-  ];
-
-  # tests require git lfs download. and is quite large so skip tests
-  doCheck = false;
-  pythonImportsCheck = [ "dftfit" ];
-
-  meta = {
-    description = "Ab-Initio Molecular Dynamics Potential Development";
-    homepage = "https://gitlab.com/costrouc/dftfit";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ costrouc ];
-  };
-}
diff --git a/pkgs/development/python-modules/dicom2nifti/default.nix b/pkgs/development/python-modules/dicom2nifti/default.nix
index a9c2e4e8237..dd43902949a 100644
--- a/pkgs/development/python-modules/dicom2nifti/default.nix
+++ b/pkgs/development/python-modules/dicom2nifti/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "dicom2nifti";
-  version = "2.2.12";
+  version = "2.3.0";
   disabled = isPy27;
 
   # no tests in PyPI dist
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "icometrix";
     repo = pname;
     rev = version;
-    sha256 = "0ddzaw0yasyi2wsh7a6r73cdcmdfbb0nh0k0n4yxp9vnkw1ag5z4";
+    sha256 = "sha256-QSu9CGXFjDpI25Cy6QSbrwiQ2bwsVezCUxSovRLs6AI=";
   };
 
   propagatedBuildInputs = [ nibabel numpy pydicom scipy setuptools ];
diff --git a/pkgs/development/python-modules/diff-cover/default.nix b/pkgs/development/python-modules/diff-cover/default.nix
new file mode 100644
index 00000000000..7a9e1205979
--- /dev/null
+++ b/pkgs/development/python-modules/diff-cover/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, chardet
+, fetchPypi
+, inflect
+, jinja2
+, jinja2_pluralize
+, pycodestyle
+, pyflakes
+, pygments
+, pylint
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "diff-cover";
+  version = "5.4.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    pname = "diff_cover";
+    inherit version;
+    sha256 = "sha256-4iQ9/QcXh/lW8HE6wFZWc6Y57xhAEWu2TQnIUZJNAMs=";
+  };
+
+  propagatedBuildInputs = [
+    chardet
+    inflect
+    jinja2
+    jinja2_pluralize
+    pygments
+  ];
+
+  checkInputs = [
+    pycodestyle
+    pyflakes
+    pylint
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    "added_file_pylint_console"
+    "file_does_not_exist"
+  ];
+
+  pythonImportsCheck = [ "diff_cover" ];
+
+  meta = with lib; {
+    description = "Automatically find diff lines that need test coverage";
+    homepage = "https://github.com/Bachmann1234/diff-cover";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dzabraev ];
+  };
+}
diff --git a/pkgs/development/python-modules/diff_cover/default.nix b/pkgs/development/python-modules/diff_cover/default.nix
deleted file mode 100644
index 7eeb378ff41..00000000000
--- a/pkgs/development/python-modules/diff_cover/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi
-, chardet
-, inflect
-, jinja2
-, jinja2_pluralize
-, pygments
-, six
-# test dependencies
-, coverage
-, mock
-, nose
-, pycodestyle
-, pyflakes
-, pylint
-, pytest
-}:
-
-buildPythonPackage rec {
-  pname = "diff_cover";
-  version = "5.2.0";
-
-  preCheck = ''
-    export LC_ALL=en_US.UTF-8;
-  '';
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a1cd54232d2e48bd4c1eabc96cfe4a8727a9a92fd2556b52ff8f65bb8adf8768";
-  };
-
-  propagatedBuildInputs = [ chardet jinja2 jinja2_pluralize pygments six inflect ];
-
-  checkInputs = [ mock coverage pytest nose pylint pyflakes pycodestyle ];
-
-  # ignore tests which try to write files
-  checkPhase = ''
-    pytest -k 'not added_file_pylint_console and not file_does_not_exist'
-  '';
-
-  meta = with lib; {
-    description = "Automatically find diff lines that need test coverage";
-    homepage = "https://github.com/Bachmann1234/diff-cover";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ dzabraev ];
-  };
-}
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 605e905d4ab..ce0cf13e9a9 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -6,7 +6,6 @@
 , dask
 , msgpack
 , psutil
-, six
 , sortedcontainers
 , tblib
 , toolz
@@ -20,27 +19,39 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2021.6.1";
+  version = "2021.6.2";
   disabled = pythonOlder "3.6";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Z79h/WAio5diX2myChx8HPAWe2RB4Ajw7Ybch4XUYFc=";
+    sha256 = "sha256-19ESqGqwSdzvo7If0brqQhKiwD0iwkvVWtONIaf10Ug=";
   };
 
   propagatedBuildInputs = [
-      click cloudpickle dask msgpack psutil six
-      sortedcontainers tblib toolz tornado zict pyyaml mpi4py bokeh
+    bokeh
+    click
+    cloudpickle
+    dask
+    mpi4py
+    msgpack
+    psutil
+    pyyaml
+    sortedcontainers
+    tblib
+    toolz
+    tornado
+    zict
   ];
 
   # when tested random tests would fail and not repeatably
   doCheck = false;
+
   pythonImportsCheck = [ "distributed" ];
 
   meta = with lib; {
-    description = "Distributed computation in Python.";
-    homepage = "https://distributed.readthedocs.io/en/latest/";
+    description = "Distributed computation in Python";
+    homepage = "https://distributed.readthedocs.io/";
     license = licenses.bsd3;
     platforms = platforms.x86; # fails on aarch64
     maintainers = with maintainers; [ teh costrouc ];
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index ae6187e207e..7ee41a962c7 100644
--- a/pkgs/development/python-modules/django/3.nix
+++ b/pkgs/development/python-modules/django/3.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "3.2.4";
+  version = "3.2.5";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15pjwyvrx4n8gi8n51b14wp54bg4jqapr25p52597zn6ikdxijb6";
+    sha256 = "1kam3301jl53vm0mhflwwsqy5d7kb5dksmjanlaj7v7xakm5z81x";
   };
 
   patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/drms/default.nix b/pkgs/development/python-modules/drms/default.nix
index 613d2444d73..1bc5d380b08 100644
--- a/pkgs/development/python-modules/drms/default.nix
+++ b/pkgs/development/python-modules/drms/default.nix
@@ -7,16 +7,18 @@
 , astropy
 , pytestCheckHook
 , pytest-doctestplus
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "drms";
-  version = "0.6.0";
+  version = "0.6.2";
   format = "pyproject";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "74efb903f42647ea536de0c5aea4f9a81efe027c95055ec4e72ef62479a04c89";
+    sha256 = "sha256-Id8rPK8qq71gHn5DKnEi7Lp081GFbcFtGU+v89Vlt9o=";
   };
 
   propagatedBuildInputs = [
@@ -31,10 +33,12 @@ buildPythonPackage rec {
     pytest-doctestplus
   ];
 
+  pythonImportsCheck = [ "drms" ];
+
   meta = with lib; {
     description = "Access HMI, AIA and MDI data with Python";
     homepage = "https://github.com/sunpy/drms";
-    license = licenses.mit;
-    maintainers = [ maintainers.costrouc ];
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/duckdb/default.nix b/pkgs/development/python-modules/duckdb/default.nix
index 4a4dd279a52..fd360bfbd12 100644
--- a/pkgs/development/python-modules/duckdb/default.nix
+++ b/pkgs/development/python-modules/duckdb/default.nix
@@ -5,7 +5,7 @@
 , pandas
 , pybind11
 , setuptools-scm
-, pytestrunner
+, pytest-runner
 , pytestCheckHook
 }:
 
@@ -28,18 +28,24 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     pybind11
     setuptools-scm
-    pytestrunner
+    pytest-runner
   ];
 
-  propagatedBuildInputs = [ numpy pandas ];
+  propagatedBuildInputs = [
+    numpy
+    pandas
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "duckdb" ];
 
   meta = with lib; {
-    description = "DuckDB is an embeddable SQL OLAP Database Management System";
-    homepage = "https://pypi.python.org/pypi/duckdb";
+    description = "Python binding for DuckDB";
+    homepage = "https://duckdb.org/";
     license = licenses.mit;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/editorconfig/default.nix b/pkgs/development/python-modules/editorconfig/default.nix
index 4329db98c2b..6449a3da767 100644
--- a/pkgs/development/python-modules/editorconfig/default.nix
+++ b/pkgs/development/python-modules/editorconfig/default.nix
@@ -6,29 +6,33 @@
 
 buildPythonPackage rec {
   pname = "editorconfig";
-  version = "0.12.2";
+  version = "0.12.3";
 
   # fetchgit used to ensure test submodule is available
   src = fetchgit {
     url = "https://github.com/editorconfig/editorconfig-core-py";
-    rev = "596da5e06ebee05bdbdc6224203c79c4d3c6486a"; # Not tagged
-    sha256 = "05cbp971b0zix7kfxkk7ndxb4ax1l21frwc00d4g78mk4sdz6dig";
+    rev = "1a8fb62b9941fded9e4fb83a3d0599427f5484cb"; # Not tagged
+    sha256 = "0vx8rl7kii72965jsi01mdsz9rfi1q9bwy13x47iaqm6rmcwc1rb";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+  ];
 
   dontUseCmakeConfigure = true;
 
   checkPhase = ''
     cmake .
-    # utf_8_char fails with python3
+    # utf_8_char fails with Python 3
     ctest -E "utf_8_char" .
   '';
 
+  pythonImportsCheck = [ "editorconfig" ];
+
   meta = with lib; {
-    homepage = "https://editorconfig.org";
     description = "EditorConfig File Locator and Interpreter for Python";
+    homepage = "https://editorconfig.org";
     license = licenses.psfl;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/emailthreads/default.nix b/pkgs/development/python-modules/emailthreads/default.nix
index 36553daff55..c57e58368ff 100644
--- a/pkgs/development/python-modules/emailthreads/default.nix
+++ b/pkgs/development/python-modules/emailthreads/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "emailthreads";
-  version = "0.1.0";
+  version = "0.1.3";
   disabled = !isPy3k;
 
   # pypi is missing files for tests
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "emersion";
     repo = "python-emailthreads";
     rev = "v${version}";
-    sha256 = "17pfal8kbxhs025apkijqbkppw2lljca8x1cwcx49jv60h05c3cn";
+    sha256 = "sha256-7BhYS1DQCW9QpG31asPCq5qPyJy+WW2onZpvEHhwQCs=";
   };
 
   PKGVER = version;
diff --git a/pkgs/development/python-modules/emcee/default.nix b/pkgs/development/python-modules/emcee/default.nix
index a4f2bece349..72cb9a64db0 100644
--- a/pkgs/development/python-modules/emcee/default.nix
+++ b/pkgs/development/python-modules/emcee/default.nix
@@ -1,20 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi
-, numpy }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytestCheckHook
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "emcee";
-  version = "3.0.2";
+  version = "3.1.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "035a44d7594fdd03efd10a522558cdfaa080e046ad75594d0bf2aec80ec35388";
+  src = fetchFromGitHub {
+    owner = "dfm";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1x9y4zwlv6hl7jms2knpa2qrh89ywsl847yb7d93n94gyx2s16p0";
   };
 
-  propagatedBuildInputs = [ numpy ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "emcee" ];
 
   meta = with lib; {
     description = "Kick ass affine-invariant ensemble MCMC sampling";
     homepage = "https://emcee.readthedocs.io/";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/emoji/default.nix b/pkgs/development/python-modules/emoji/default.nix
index ce2beb23511..67c9c7a1abd 100644
--- a/pkgs/development/python-modules/emoji/default.nix
+++ b/pkgs/development/python-modules/emoji/default.nix
@@ -1,21 +1,33 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "emoji";
-  version = "1.2.0";
+  version = "1.4.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "18siknldyqvxvjf0nv18m0a1c26ahkg7vmhkij1qayanb0h46vs9";
+  src = fetchFromGitHub {
+    owner = "carpedm20";
+    repo = pname;
+    rev = "v.${version}";
+    sha256 = "0xksxdld20sh3c2s6pry1fm2br9xq8ypdq5pf971fpg5pk2f4iy9";
   };
 
-  checkInputs = [ nose ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = "nosetests";
+  disabledTests = [
+    "test_emojize_name_only"
+  ];
+
+  pythonImportsCheck = [ "emoji" ];
 
   meta = with lib; {
     description = "Emoji for Python";
-    homepage = "https://pypi.python.org/pypi/emoji/";
+    homepage = "https://github.com/carpedm20/emoji/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ joachifm ];
   };
diff --git a/pkgs/development/python-modules/enaml/default.nix b/pkgs/development/python-modules/enaml/default.nix
index 8896c5c706a..8257af2e45f 100644
--- a/pkgs/development/python-modules/enaml/default.nix
+++ b/pkgs/development/python-modules/enaml/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "enaml";
-  version = "0.11.2";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "nucleic";
     repo = pname;
     rev = version;
-    sha256 = "1in5qa5j96qs3gsv8yaxs1l6dbm69xhzvc0pbzg0dd9kpqxfdy1j";
+    sha256 = "sha256-8ZahvFDYW7xUTSTZP1UXnQBCg9RVUywoO7EbqtTQPJI=";
   };
 
   # qt bindings cannot be found during tests
diff --git a/pkgs/development/python-modules/fabulous/default.nix b/pkgs/development/python-modules/fabulous/default.nix
index 6079f22020a..b357eb0c01b 100644
--- a/pkgs/development/python-modules/fabulous/default.nix
+++ b/pkgs/development/python-modules/fabulous/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "fabulous";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "jart";
     repo = pname;
     rev = version;
-    sha256 = "0yxdaz6yayp1a57kdb2i8q7kwwdlwy4a3d0lr012h2ji9m89c8q7";
+    sha256 = "sha256-hchlxuB5QP+VxCx+QZ2739/mR5SQmYyE+9kXLKJ2ij4=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/fastimport/default.nix b/pkgs/development/python-modules/fastimport/default.nix
index c036f5cacb7..fe46405eb3f 100644
--- a/pkgs/development/python-modules/fastimport/default.nix
+++ b/pkgs/development/python-modules/fastimport/default.nix
@@ -1,9 +1,16 @@
-{ lib, buildPythonPackage, python, fetchPypi}:
+{ lib
+, pythonOlder
+, buildPythonPackage
+, fetchPypi
+, python
+}:
 
 buildPythonPackage rec {
   pname = "fastimport";
   version = "0.9.13";
 
+  disabled = pythonOlder "3.5";
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "486135a39edb85808fdbbe2c8009197978800a4544fca56cc2074df32e1304f3";
@@ -13,8 +20,10 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover
   '';
 
+  pythonImportsCheck = [ "fastimport" ];
+
   meta = with lib; {
-    homepage = "https://launchpad.net/python-fastimport";
+    homepage = "https://github.com/jelmer/python-fastimport";
     description = "VCS fastimport/fastexport parser";
     maintainers = with maintainers; [ koral ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/flask-restx/default.nix b/pkgs/development/python-modules/flask-restx/default.nix
index e1de7bf0d3b..4d0d89d0f14 100644
--- a/pkgs/development/python-modules/flask-restx/default.nix
+++ b/pkgs/development/python-modules/flask-restx/default.nix
@@ -20,16 +20,23 @@
 
 buildPythonPackage rec {
   pname = "flask-restx";
-  version = "0.3.0";
+  version = "0.4.0";
 
   # Tests not included in PyPI tarball
   src = fetchFromGitHub {
     owner = "python-restx";
     repo = pname;
     rev = version;
-    sha256 = "0aj13nd3z71gb8c2kqiaz3f9k7jr0srlvrsx8hpz4nkpki8jiz2s";
+    sha256 = "sha256-jM0QJ/klbWh3qho6ZQOH2n1qaguK9C98QIuSfqpI8xA=";
   };
 
+  postPatch = ''
+    # https://github.com/python-restx/flask-restx/pull/341
+    substituteInPlace requirements/install.pip \
+      --replace "Flask>=0.8, <2.0.0" "Flask>=0.8, !=2.0.0" \
+      --replace "werkzeug <2.0.0" "werkzeug !=2.0.0"
+  '';
+
   propagatedBuildInputs = [ aniso8601 jsonschema flask werkzeug pytz six ]
     ++ lib.optionals isPy27 [ enum34 ];
 
@@ -42,6 +49,8 @@ buildPythonPackage rec {
     "--deselect=tests/test_logging.py::LoggingTest::test_override_app_level"
   ];
 
+  pythonImportCheck = [ "flask_restx" ];
+
   meta = with lib; {
     homepage = "https://flask-restx.readthedocs.io/en/${version}/";
     description = "Fully featured framework for fast, easy and documented API development with Flask";
diff --git a/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix b/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix
index 3fada45d0c8..e87c766c0ca 100644
--- a/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix
+++ b/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "georss-ign-sismologia-client";
-  version = "0.3";
+  version = "0.4";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "exxamalte";
     repo = "python-georss-ign-sismologia-client";
     rev = "v${version}";
-    sha256 = "sha256-7Jj6uWb4HyPAh3/XtVTy0N23bk33mlIiqlt9z/PW+4Y=";
+    sha256 = "sha256-g7lZC5ZiJV8dNZJceLROqyBRZSuqaivGFhaQrKe4B7g=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hijri-converter/default.nix b/pkgs/development/python-modules/hijri-converter/default.nix
index d7ae17ed61a..e9ce708b2cb 100644
--- a/pkgs/development/python-modules/hijri-converter/default.nix
+++ b/pkgs/development/python-modules/hijri-converter/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "hijri-converter";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "43b5ac566e7a7deeab364a2397e94405a65fd24ea786073eb3d4c740ebda7b9b";
+    sha256 = "1cq67v0fjk7cd8kbppg2kl31a5i6jm8qrkcdqxx6vxwmx65l68ks";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/lammps-cython/default.nix b/pkgs/development/python-modules/lammps-cython/default.nix
deleted file mode 100644
index cf6bdc38ffa..00000000000
--- a/pkgs/development/python-modules/lammps-cython/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, fetchurl
-, buildPythonPackage
-, lammps-mpi
-, mpi
-, mpi4py
-, numpy
-, cython
-, pymatgen
-, ase
-, pytestrunner
-, isPy3k
-}:
-
-buildPythonPackage rec {
-  pname = "lammps-cython";
-  version = "0.5.7";
-  disabled = (!isPy3k);
-
-  src = fetchurl {
-     url = "https://gitlab.com/costrouc/${pname}/-/archive/v${version}/${pname}-v${version}.tar.gz";
-     sha256 = "1wj9scmjdl00af13b5ihfccrjpikrdgkzd88ialam1nkxvxi42bl";
-  };
-
-  buildInputs = [ cython pytestrunner ];
-  propagatedBuildInputs = [ mpi4py pymatgen ase numpy ];
-
-  preBuild = ''
-    echo "Creating lammps.cfg file..."
-    cat << EOF > lammps.cfg
-    [lammps]
-    lammps_include_dir = ${lammps-mpi}/include
-    lammps_library_dir = ${lammps-mpi}/lib
-    lammps_library = lammps_mpi
-
-    [mpi]
-    mpi_include_dir = ${mpi}/include
-    mpi_library_dir = ${mpi}/lib
-    mpi_library     = mpi
-    EOF
-  '';
-
-  pythonImportsCheck = [ "lammps" ];
-
-  meta = {
-    description = "Pythonic Wrapper to LAMMPS using cython";
-    homepage = "https://gitlab.com/costrouc/lammps-cython";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ costrouc ];
-    # fails import check
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/mdformat/default.nix b/pkgs/development/python-modules/mdformat/default.nix
index 159310035b8..780cafa599d 100644
--- a/pkgs/development/python-modules/mdformat/default.nix
+++ b/pkgs/development/python-modules/mdformat/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "mdformat";
-  version = "0.7.6";
+  version = "0.7.7";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "executablebooks";
     repo = pname;
     rev = version;
-    sha256 = "0mnbi3vp7zgllpcpf6vrjw9y6jas95shphn99ayr8b8wgxsaqkif";
+    sha256 = "sha256-1qwluHxZnSuyNJENzeJzkuhIQN5njTOch2Wz45J0qRI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/micloud/default.nix b/pkgs/development/python-modules/micloud/default.nix
new file mode 100644
index 00000000000..3b3bf448449
--- /dev/null
+++ b/pkgs/development/python-modules/micloud/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, click
+, requests
+, tzlocal
+}:
+
+buildPythonPackage rec {
+  pname = "micloud";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "Squachen";
+    repo = "micloud";
+    rev = "v_${version}";
+    sha256 = "0267zyr79nfb5f9rwdwq3ym258yrpxx1b71xiqmszyz5s83mcixm";
+  };
+
+  propagatedBuildInputs = [
+    click
+    requests
+    tzlocal
+  ];
+
+  # tests require credentials
+  doCheck = false;
+
+  pythonImportsCheck = [ "micloud" ];
+
+  meta = with lib; {
+    description = "Xiaomi cloud connect library";
+    homepage = "https://github.com/Squachen/micloud";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyls-black/default.nix b/pkgs/development/python-modules/pyls-black/default.nix
index d10e4930ac0..128c8cbd0de 100644
--- a/pkgs/development/python-modules/pyls-black/default.nix
+++ b/pkgs/development/python-modules/pyls-black/default.nix
@@ -29,6 +29,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/rupert/pyls-black";
     description = "Black plugin for the Python Language Server";
     license = licenses.mit;
-    maintainers = [ maintainers.mic92 ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyls-isort/default.nix b/pkgs/development/python-modules/pyls-isort/default.nix
index 9dc614035e0..35b43969e52 100644
--- a/pkgs/development/python-modules/pyls-isort/default.nix
+++ b/pkgs/development/python-modules/pyls-isort/default.nix
@@ -24,6 +24,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/paradoxxxzero/pyls-isort";
     description = "Isort plugin for python-language-server";
     license = licenses.mit;
-    maintainers = [ maintainers.mic92 ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyls-mypy/default.nix b/pkgs/development/python-modules/pyls-mypy/default.nix
index eaf069c8ccb..f919ac21cb7 100644
--- a/pkgs/development/python-modules/pyls-mypy/default.nix
+++ b/pkgs/development/python-modules/pyls-mypy/default.nix
@@ -46,6 +46,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/tomv564/pyls-mypy";
     description = "Mypy plugin for the Python Language Server";
     license = licenses.mit;
-    maintainers = [ maintainers.mic92 ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyls-spyder/default.nix b/pkgs/development/python-modules/pyls-spyder/default.nix
index 4e0029783eb..61b0fa7449b 100644
--- a/pkgs/development/python-modules/pyls-spyder/default.nix
+++ b/pkgs/development/python-modules/pyls-spyder/default.nix
@@ -1,18 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi, python-language-server }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python-lsp-server
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pyls-spyder";
   version = "0.4.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "45a321c83f64267d82907492c55199fccabda45bc872dd23bf1efd08edac1b0b";
+  src = fetchFromGitHub {
+    owner = "spyder-ide";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11ajbsia60d4c9s6m6rbvaqp1d69fcdbq6a98lkzkkzv2b9pdhkk";
   };
 
-  propagatedBuildInputs = [ python-language-server ];
+  propagatedBuildInputs = [
+    python-lsp-server
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  # no tests
-  doCheck = false;
   pythonImportsCheck = [ "pyls_spyder" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/python-language-server/default.nix b/pkgs/development/python-modules/python-language-server/default.nix
index daab437c979..3ed9b75ef91 100644
--- a/pkgs/development/python-modules/python-language-server/default.nix
+++ b/pkgs/development/python-modules/python-language-server/default.nix
@@ -84,6 +84,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/palantir/python-language-server";
     description = "An implementation of the Language Server Protocol for Python";
     license = licenses.mit;
-    maintainers = [ maintainers.mic92 ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python-lsp-jsonrpc/default.nix b/pkgs/development/python-modules/python-lsp-jsonrpc/default.nix
new file mode 100644
index 00000000000..6938bc282f8
--- /dev/null
+++ b/pkgs/development/python-modules/python-lsp-jsonrpc/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, ujson
+}:
+
+buildPythonPackage rec {
+  pname = "python-lsp-jsonrpc";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "python-lsp";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0h4bs8s4axcm0p02v59amz9sq3nr4zhzdgwq7iaw6awl27v1hd0i";
+  };
+
+  propagatedBuildInputs = [
+    ujson
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov-report html --cov-report term --junitxml=pytest.xml" "" \
+      --replace "--cov pylsp_jsonrpc --cov test" ""
+  '';
+
+  pythonImportsCheck = [ "pylsp_jsonrpc" ];
+
+  meta = with lib; {
+    description = "Python server implementation of the JSON RPC 2.0 protocol.";
+    homepage = "https://github.com/python-lsp/python-lsp-jsonrpc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-lsp-server/default.nix b/pkgs/development/python-modules/python-lsp-server/default.nix
new file mode 100644
index 00000000000..6a2c396ecf8
--- /dev/null
+++ b/pkgs/development/python-modules/python-lsp-server/default.nix
@@ -0,0 +1,81 @@
+{ lib
+, autopep8
+, buildPythonPackage
+, fetchFromGitHub
+, flake8
+, flaky
+, jedi
+, matplotlib
+, mccabe
+, numpy
+, pandas
+, pluggy
+, pycodestyle
+, pydocstyle
+, pyflakes
+, pylint
+, pyqt5
+, pytestCheckHook
+, python-lsp-jsonrpc
+, pythonOlder
+, rope
+, ujson
+, yapf
+}:
+
+buildPythonPackage rec {
+  pname = "python-lsp-server";
+  version = "1.1.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "python-lsp";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1akdpfnylqg2mcwpkqmdwcg6j6hab23slp5rfjfidhphig2f2yjv";
+  };
+
+  propagatedBuildInputs = [
+    autopep8
+    flake8
+    jedi
+    mccabe
+    pluggy
+    pycodestyle
+    pydocstyle
+    pyflakes
+    pylint
+    python-lsp-jsonrpc
+    rope
+    ujson
+    yapf
+  ];
+
+  checkInputs = [
+    flaky
+    matplotlib
+    numpy
+    pandas
+    pyqt5
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov-report html --cov-report term --junitxml=pytest.xml" "" \
+      --replace "--cov pylsp --cov test" ""
+  '';
+
+  preCheck = ''
+    export HOME=$(mktemp -d);
+  '';
+
+  pythonImportsCheck = [ "pylsp" ];
+
+  meta = with lib; {
+    description = "Python implementation of the Language Server Protocol";
+    homepage = "https://github.com/python-lsp/python-lsp-server";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/selenium/default.nix b/pkgs/development/python-modules/selenium/default.nix
index 370d2548980..7a1d1439c1f 100644
--- a/pkgs/development/python-modules/selenium/default.nix
+++ b/pkgs/development/python-modules/selenium/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   '';
 
   passthru.tests = {
-    testing-bitwarden = nixosTests.bitwarden;
+    testing-vaultwarden = nixosTests.vaultwarden;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/simber/default.nix b/pkgs/development/python-modules/simber/default.nix
index d1471286bb8..331f84252ce 100644
--- a/pkgs/development/python-modules/simber/default.nix
+++ b/pkgs/development/python-modules/simber/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "simber";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "deepjyoti30";
     repo = pname;
     rev = version;
-    sha256 = "0ksc2m61j5ijj0sq6kkc0hhkmfy9f51h9z3cl2sf8g6wbr9vc47h";
+    sha256 = "04dp9b4s7zb166vlacsaypc6iw1p75azqas1wf0flp570qqf3rkx";
   };
 
   propagatedBuildInputs = [ colorama ];
diff --git a/pkgs/development/python-modules/staticjinja/default.nix b/pkgs/development/python-modules/staticjinja/default.nix
index 0681218cd0a..dc36066ec30 100644
--- a/pkgs/development/python-modules/staticjinja/default.nix
+++ b/pkgs/development/python-modules/staticjinja/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "staticjinja";
-  version = "2.1.0";
+  version = "3.0.1";
   format = "pyproject";
 
   # No tests in pypi
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "staticjinja";
     repo = pname;
     rev = version;
-    sha256 = "sha256-VKsDvWEurBdckWbPG5hQLK3dzdM7XVbrp23fR5wp1xk=";
+    sha256 = "sha256-W4q0vG8Kl2gCmA8UnUbdiGRtghhdnWxIJXFIIa6BogA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/textfsm/default.nix b/pkgs/development/python-modules/textfsm/default.nix
index 04bc47913d8..fed2f7c3e3f 100644
--- a/pkgs/development/python-modules/textfsm/default.nix
+++ b/pkgs/development/python-modules/textfsm/default.nix
@@ -9,26 +9,25 @@
 
 buildPythonPackage rec {
   pname = "textfsm";
-  version = "1.1.1";
+  version = "1.1.2";
+  format = "setuptools";
+
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fq2hphd89hns11nh0yifcp6brg6yy4n4hbvfk6avbjd7s40789a";
+    sha256 = "1cbczg3h2841v1xk2s2xg540c69vsrkwxljm758fyr65kshrzlhm";
   };
 
-  patches = [
-    (fetchpatch {
-      # remove pytest-runner dependency
-      url = "https://github.com/google/textfsm/commit/212db75fea4a79aca0f8f85a78954ffbc5667096.patch";
-      sha256 = "0n6qh3sz9wy5gdpq9jjxx8firis48ypr20yacs5bqri59sziwjp0";
-    })
+  propagatedBuildInputs = [
+    six
+    future
   ];
 
-  propagatedBuildInputs = [ six future ];
-
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Python module for parsing semi-structured text into python tables";
diff --git a/pkgs/development/python-modules/token-bucket/default.nix b/pkgs/development/python-modules/token-bucket/default.nix
index ac614d53fd5..f1e90114ac6 100644
--- a/pkgs/development/python-modules/token-bucket/default.nix
+++ b/pkgs/development/python-modules/token-bucket/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "token-bucket";
-  version = "0.2.0";
+  version = "0.3.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "falconry";
     repo = pname;
     rev = version;
-    sha256 = "0kv8j2ab4knvzik2di66bgjwjxdslm2i0hjy35kn9z0dazni585s";
+    sha256 = "0a703y2d09kvv2l9vq7vc97l4pi2wwq1f2hq783mbw2238jymb3m";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index 34335c65e1a..37fbc87f3f7 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.57";
+  version = "0.0.58";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = version;
-    sha256 = "sha256-ajdluj6UIzjJUK30GtoM+e5lsMQRKnn3FPNEg+RS/DM=";
+    sha256 = "sha256-QU5ssbnT3/gioQ3vM9zvlbwxqSWyKIylsV9NuFkNe+Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/scheme-modules/scheme-bytestructures/default.nix b/pkgs/development/scheme-modules/scheme-bytestructures/default.nix
index 67d9e39af62..5be2fca96fb 100644
--- a/pkgs/development/scheme-modules/scheme-bytestructures/default.nix
+++ b/pkgs/development/scheme-modules/scheme-bytestructures/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/TaylanUB/scheme-bytestructures";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ethancedwards8 ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index 25d61d2393e..a2396314387 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.5.5";
+  version = "2.5.6";
 
   dontConfigure = true;
   dontBuild = true;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    sha256 = "sha256-M5O2NEGIVPWYKl11yxMMVreEtDO1VqcMkiGGrjNmk3A=";
+    sha256 = "sha256-YBGKIfBTU7MRm1Om4Jknd5Nu77qJftCgjuohcO/9X/w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 9666bf006d7..a5798c6ad56 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.29.1";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pkz8y3da7i4a3nm79a0640xjj4wfkx3dz6614c4hynqn5svji82";
+    sha256 = "0xdn8xakywms8gcacmjvx0ivv37i3vj1d41c8sjlnf1s13q3zv7k";
   };
 
-  vendorSha256 = "0k8v49sr0jmljfl4fa5pnvzd5k3pg865h201114l6cs257sdkczk";
+  vendorSha256 = "18w0wz3raysba99cxcc8pk4md9j438g4y2d2v2pk2l6qri9apscw";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/build-managers/mill/default.nix b/pkgs/development/tools/build-managers/mill/default.nix
index 4fbd0365af9..4682fab41db 100644
--- a/pkgs/development/tools/build-managers/mill/default.nix
+++ b/pkgs/development/tools/build-managers/mill/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mill";
-  version = "0.9.6";
+  version = "0.9.8";
 
   src = fetchurl {
     url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}";
-    sha256 = "sha256-cAhcTmSPkV5z5ryuCNrpxy9/1iWvvminiVYul9c/DwM=";
+    sha256 = "sha256-vWCzjit7MPrKqEYgJfQHAkam9J9NgMObOQ/A+OQr24o=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/pkgs/development/tools/build-managers/rocm-cmake/default.nix
index 16ea0dc2831..68cd3d449ca 100644
--- a/pkgs/development/tools/build-managers/rocm-cmake/default.nix
+++ b/pkgs/development/tools/build-managers/rocm-cmake/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "CMake modules for common build tasks for the ROCm stack";
     homepage = "https://github.com/RadeonOpenCompute/rocm-cmake";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/cloud-nuke/default.nix b/pkgs/development/tools/cloud-nuke/default.nix
index b947fc1ebfe..ecb6991d3d9 100644
--- a/pkgs/development/tools/cloud-nuke/default.nix
+++ b/pkgs/development/tools/cloud-nuke/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.1.30";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uQj14arxDPc8/k1Cvp3T6hqjln30NFk9MzvYy8tAiJ8=";
+    sha256 = "sha256-FQx5k6HuOf3gKa71LteNGhH2KILUQ+aeKmtQXRwTNYI=";
   };
 
-  vendorSha256 = "sha256-pl3dLisu4Oc77kgfuteKbsZaDzrHo1wUigZEkM4081Q=";
+  vendorSha256 = "sha256-VsP1YWvszux7qiRVLRF40NX3qoNOa9yrfRhQAaw7aKI=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
 
diff --git a/pkgs/development/tools/database/sqlitebrowser/default.nix b/pkgs/development/tools/database/sqlitebrowser/default.nix
index 45b5f185880..9ff5c1b01b8 100644
--- a/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchFromGitHub, cmake
-, qtbase, qttools, sqlite }:
+, qtbase, qttools, sqlite, wrapGAppsHook }:
 
 mkDerivation rec {
   pname = "sqlitebrowser";
@@ -18,7 +18,7 @@ mkDerivation rec {
   # We *really* should get that cleaned up.
   buildInputs = [ qtbase sqlite ];
 
-  nativeBuildInputs = [ cmake qttools ];
+  nativeBuildInputs = [ cmake qttools wrapGAppsHook ];
 
   meta = with lib; {
     description = "DB Browser for SQLite";
diff --git a/pkgs/development/tools/gops/default.nix b/pkgs/development/tools/gops/default.nix
index d23aa71a8ab..bc9cba9df5f 100644
--- a/pkgs/development/tools/gops/default.nix
+++ b/pkgs/development/tools/gops/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gops";
-  version = "0.3.18";
+  version = "0.3.19";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "gops";
     rev = "v${version}";
-    sha256 = "0534jyravpsj73lgdmw6fns1qaqiw401jlfk04wa0as5sv09rfhy";
+    sha256 = "sha256-9QEhc0OVCrIdIY220PDn2+CjUsCF84l6QRQS0HjDEZY=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/literate-programming/noweb/default.nix b/pkgs/development/tools/literate-programming/noweb/default.nix
index c0276403516..6847aff097c 100644
--- a/pkgs/development/tools/literate-programming/noweb/default.nix
+++ b/pkgs/development/tools/literate-programming/noweb/default.nix
@@ -57,7 +57,7 @@ lib.fix (noweb: stdenv.mkDerivation rec {
         # NOTE: substituteInPlace breaks Icon binaries, so make sure the script
         #       uses (n)awk before calling.
         if grep -q nawk "$f"; then
-            substituteInPlace "$f" --replace "nawk" "${nawk}/bin/awk"
+            substituteInPlace "$f" --replace "nawk" "${nawk}/bin/nawk"
         fi
     done
 
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index 739615a841c..70ec9278ae1 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -6,11 +6,11 @@ let
   pygments = python3Packages.pygments;
 in stdenv.mkDerivation rec {
   pname = "global";
-  version = "6.6.6";
+  version = "6.6.7";
 
   src = fetchurl {
     url = "mirror://gnu/global/${pname}-${version}.tar.gz";
-    sha256 = "sha256-dYB4r/+Y1MBRxYeFx62j7Rl3+rt3+Il/9le3HMYtTV0=";
+    sha256 = "sha256-aaD3f1OCfFVoF2wdOCFm3zYedCY6BH8LMFiqLyrVijw=";
   };
 
   nativeBuildInputs = [ libtool makeWrapper ];
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index 739a562227a..6737f161754 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.29.4";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
@@ -10,14 +10,11 @@ buildGoModule rec {
     rev = "v${version}";
     sha256 = "sha256-AjNr+t30ftF92+cEfvt8iHBDVD/SO52ojJRLAkYF9l4=";
   };
-
   vendorSha256 = null;
 
   subPackages = [ "." ];
 
-  preBuild = ''
-    buildFlagsArray+=("-ldflags" "-s -w -X github.com/open-policy-agent/opa/version.Version=${version}")
-  '';
+  ldflags = [ "-s" "-w" "-X github.com/open-policy-agent/opa/version.Version=${version}" ];
 
   doInstallCheck = true;
   installCheckPhase = ''
diff --git a/pkgs/development/tools/pgtop/default.nix b/pkgs/development/tools/pgtop/default.nix
new file mode 100644
index 00000000000..03b3ef89265
--- /dev/null
+++ b/pkgs/development/tools/pgtop/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, perlPackages, fetchFromGitHub, shortenPerlShebang }:
+
+perlPackages.buildPerlPackage rec {
+  pname = "pgtop";
+  version = "0.11";
+
+  src = fetchFromGitHub {
+    owner = "cosimo";
+    repo = "pgtop";
+    rev = "v${version}";
+    sha256 = "1awyl6ddfihm7dfr5y2z15r1si5cyipnlyyj3m1l19pk98s4x66l";
+  };
+
+  outputs = [ "out" ];
+
+  buildInputs = with perlPackages; [ DBI DBDPg TermReadKey JSON LWPUserAgent ];
+
+  nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/pgtop
+  '';
+
+  meta = with lib; {
+    description = "a PostgreSQL clone of `mytop', which in turn is a `top' clone for MySQL";
+    homepage = "https://github.com/cosimo/pgtop";
+    changelog = "https://github.com/cosimo/pgtop/releases/tag/v${version}";
+    maintainers = [ maintainers.hagl ];
+    license = [ licenses.gpl2Only ];
+  };
+}
diff --git a/pkgs/development/tools/rust/crate2nix/default.nix b/pkgs/development/tools/rust/crate2nix/default.nix
index e68eea50ff3..a86e531e7f6 100644
--- a/pkgs/development/tools/rust/crate2nix/default.nix
+++ b/pkgs/development/tools/rust/crate2nix/default.nix
@@ -10,18 +10,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crate2nix";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "kolloch";
     repo = pname;
     rev = version;
-    sha256 = "sha256-dB8wa3CQFw8ckD420zpBGw4TnsLrHqXf+ff/WuhPsVM=";
+    sha256 = "sha256-JaF9/H3m4Wrc5MtXcONkOAgKVkswLVw0yZe0dBr2e4Y=";
   };
 
   sourceRoot = "source/crate2nix";
 
-  cargoSha256 = "sha256-shWhzCaH8ZttUcq82tA7T1hwNl6F1XJy7ansA5lt+Mw=";
+  cargoSha256 = "sha256-PD7R1vcb3FKd4hfpViKyvfCExJ5H1Xo2HPYden5zpxQ=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/development/tools/tapview/default.nix b/pkgs/development/tools/tapview/default.nix
new file mode 100644
index 00000000000..966df4bed65
--- /dev/null
+++ b/pkgs/development/tools/tapview/default.nix
@@ -0,0 +1,32 @@
+{ asciidoctor
+, fetchFromGitLab
+, lib
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tapview";
+  version = "1.1";
+
+  nativeBuildInputs = [ asciidoctor ];
+
+  src = fetchFromGitLab {
+    owner = "esr";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-inrxICNglZU/tup+YnHaDiVss32K2OXht/7f8lOZI4g=";
+  };
+
+  # Remove unecessary `echo` checks: `/bin/echo` fails, and `echo -n` works as expected.
+  patches = [ ./dont_check_echo.patch ];
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  meta = with lib; {
+    description = "A minimalist pure consumer for TAP (Test Anything Protocol)";
+    homepage = "https://gitlab.com/esr/tapview";
+    license = licenses.bsd2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pamplemousse ];
+  };
+}
diff --git a/pkgs/development/tools/tapview/dont_check_echo.patch b/pkgs/development/tools/tapview/dont_check_echo.patch
new file mode 100644
index 00000000000..3b12adb84c5
--- /dev/null
+++ b/pkgs/development/tools/tapview/dont_check_echo.patch
@@ -0,0 +1,44 @@
+diff --git a/tapview b/tapview
+index ad6a33a66d1..4cf9545d42f 100644
+--- a/tapview
++++ b/tapview
+@@ -13,21 +13,6 @@
+ #
+ # This is version 1.1
+ # A newer version may be available at https://gitlab.com/esr/tapview
+-#
+-# POSIX allows but does not mandate that -n suppresses emission of a
+-# trailing newline in echo. Thus, some shell builtin echos don't do
+-# that.  Cope gracefully.
+-# shellcheck disable=SC2039
+-if [ "$(echo -n "a"; echo "b")" != "ab" ]
+-then
+-    ECHO="echo"
+-elif [ "$(/bin/echo -n "a"; /bin/echo "b")" = "ab" ]
+-then
+-    ECHO="/bin/echo"
+-else
+-    echo "tapview: bailing out, your echo lacks -n support."
+-    exit 3
+-fi
+ 
+ OK="."
+ FAIL="F"
+@@ -37,7 +22,7 @@ TODO_OK="u"
+ 
+ ship_char() {
+     # shellcheck disable=SC2039
+-    "${ECHO}" -n "$1"
++    echo -n "$1"
+ }
+ 
+ ship_line() {
+@@ -155,7 +140,7 @@ do
+     fi
+ done
+ 
+-/bin/echo ""
++echo ""
+ 
+ if [ -z "$expect" ]
+ then
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 130ff9c9bcb..3c61121b035 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.227";
+  version = "0.0.228";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "sha256-nql0zK2H0FDQMsnSJSNzC7YmvUZfITHH5p1efFHsj58=";
+    sha256 = "sha256-h8ZiAabB0IIJoeQMMvOO1lQNMdFYAoTXKcTAPmLP5Sw=";
   };
 
   preBuild = ''
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index 1dffd3864de..2457cd1cf96 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -33,14 +33,14 @@ let
 
 in env.mkDerivation rec {
   pname = "katago";
-  version = "1.9.0";
+  version = "1.9.1";
   githash = "b846bddd88fbc5353e4a93fa514f6cbf45358362";
 
   src = fetchFromGitHub {
     owner = "lightvector";
     repo = "katago";
     rev = "v${version}";
-    sha256 = "sha256-6J1UY05NweXLw8D4kOXG3KkCxJRsrQ9NBYWu2Xzu9JI=";
+    sha256 = "sha256-sAtPOqGe6fZ9mAtLdp80fTALXVkP9WdWQU2iTFGXe24=";
   };
 
   fakegit = writeShellScriptBin "git" "echo ${githash}";
diff --git a/pkgs/games/openttd/grfcodec.nix b/pkgs/games/openttd/grfcodec.nix
new file mode 100644
index 00000000000..544cf4f06c4
--- /dev/null
+++ b/pkgs/games/openttd/grfcodec.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchFromGitHub, boost, cmake, git }:
+
+stdenv.mkDerivation rec {
+  pname = "openttd-grfcodec";
+  version = "unstable-2021-03-10";
+
+  src = fetchFromGitHub {
+    owner = "OpenTTD";
+    repo = "grfcodec";
+    rev = "045774dee7cab1a618a3e0d9b39bff78a12b6efa";
+    sha256 = "0b4xnnkqc01d3r834lhkq744ymar6c8iyxk51wc4c7hvz0vp9vmy";
+  };
+
+  buildInputs = [boost];
+  nativeBuildInputs = [cmake git];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -a grfcodec grfid grfstrip nforenum $out/bin/
+  '';
+
+  meta = with lib; {
+    description = "Low-level (dis)assembler and linter for OpenTTD GRF files";
+    homepage    = "http://openttd.org/";
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ ToxicFrog ];
+  };
+}
diff --git a/pkgs/games/openttd/nml.nix b/pkgs/games/openttd/nml.nix
new file mode 100644
index 00000000000..094330faffb
--- /dev/null
+++ b/pkgs/games/openttd/nml.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "openttd-nml";
+  version = "0.5.3";
+
+  src = fetchFromGitHub {
+    owner = "OpenTTD";
+    repo = "nml";
+    rev = version;
+    sha256 = "0kfnkshff3wrxsj1wpfbbw2mmgww2q80v63p5d2pp1f38x8j33w9";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ply pillow];
+
+  meta = with lib; {
+    description = "Compiler for OpenTTD NML files";
+    homepage    = "http://openttdcoop.org/";
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ ToxicFrog ];
+  };
+}
diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix
index 7f2ad875d8c..c3eebf203cb 100644
--- a/pkgs/games/warzone2100/default.nix
+++ b/pkgs/games/warzone2100/default.nix
@@ -84,10 +84,15 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DWZ_DISTRIBUTOR=NixOS"
     # The cmake builder automatically sets CMAKE_INSTALL_BINDIR to an absolute
-    # path, but this results in an error.
-    # By resetting it, we let the CMakeLists set it to an accepted value
-    # based on prefix.
-    "-DCMAKE_INSTALL_BINDIR="
+    # path, but this results in an error:
+    #
+    # > An absolute CMAKE_INSTALL_BINDIR path cannot be used if the following
+    # > are not also absolute paths: WZ_DATADIR
+    #
+    # WZ_DATADIR is based on CMAKE_INSTALL_DATAROOTDIR, so we set that.
+    #
+    # Alternatively, we could have set CMAKE_INSTALL_BINDIR to "bin".
+    "-DCMAKE_INSTALL_DATAROOTDIR=${placeholder "out"}/share"
   ];
 
   postInstall = lib.optionalString withVideos ''
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 15a129246e1..cc6d0ced6d1 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seafile-shared";
-  version = "8.0.1";
+  version = "8.0.3";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
-    rev = "d34499a2aafa024623a4210fe7f663cef13fe9a6";
-    sha256 = "VKoGr3CTDFg3Q0X+MTlwa4BbfLB+28FeTyTJRCq37RA=";
+    rev = "v${version}";
+    sha256 = "QflLh3fj+jOq/8etr9aG8LGrvtIlB/htVkWbdO+GIbM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/bpftools/default.nix b/pkgs/os-specific/linux/bpftools/default.nix
index 3e20efa9f01..f2ca8d87471 100644
--- a/pkgs/os-specific/linux/bpftools/default.nix
+++ b/pkgs/os-specific/linux/bpftools/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   buildInputs = [ libopcodes libbfd libelf zlib readline ];
 
   preConfigure = ''
-    patchShebangs scripts/bpf_helpers_doc.py
+    patchShebangs scripts/bpf_doc.py
 
     cd tools/bpf
     substituteInPlace ./bpftool/Makefile \
diff --git a/pkgs/os-specific/linux/bpftrace/default.nix b/pkgs/os-specific/linux/bpftrace/default.nix
index 650e85df517..4d2f29491fc 100644
--- a/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/pkgs/os-specific/linux/bpftrace/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bpftrace";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner  = "iovisor";
     repo   = "bpftrace";
     rev    = "v${version}";
-    sha256 = "sha256-DZO47AH506DBVH/AuvOF3JfpRxv/D/lmzVg8WOH9Dqo=";
+    sha256 = "sha256-BKWBdFzj0j7rAfG30A0fwyYCpOG/5NFRPODW46EP1u0=";
   };
 
   buildInputs = with llvmPackages;
diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix
index cc335aec4c8..b58bca352e6 100644
--- a/pkgs/os-specific/linux/kernel/perf.nix
+++ b/pkgs/os-specific/linux/kernel/perf.nix
@@ -1,12 +1,14 @@
 { lib, stdenv, kernel, elfutils, python2, python3, perl, newt, slang, asciidoc, xmlto, makeWrapper
 , docbook_xsl, docbook_xml_dtd_45, libxslt, flex, bison, pkg-config, libunwind, binutils
 , libiberty, audit, libbfd, libopcodes, openssl, systemtap, numactl
-, zlib, withGtk ? false, gtk2 ? null
+, zlib
+, withGtk ? false, gtk2
+, withZstd ? true, zstd
+, withLibcap ? true, libcap
 }:
 
 with lib;
 
-assert withGtk -> gtk2 != null;
 assert versionAtLeast kernel.version "3.12";
 
 stdenv.mkDerivation {
@@ -42,7 +44,9 @@ stdenv.mkDerivation {
     elfutils newt slang libunwind libbfd zlib openssl systemtap.stapBuild numactl
     libopcodes python3 perl
   ] ++ lib.optional withGtk gtk2
-    ++ (if (versionAtLeast kernel.version "4.19") then [ python3 ] else [ python2 ]);
+    ++ (if (versionAtLeast kernel.version "4.19") then [ python3 ] else [ python2 ])
+    ++ lib.optional withZstd zstd
+    ++ lib.optional withLibcap libcap;
 
   # Note: we don't add elfutils to buildInputs, since it provides a
   # bad `ld' and other stuff.
@@ -55,8 +59,7 @@ stdenv.mkDerivation {
   ];
 
   postPatch = ''
-    patchShebangs scripts/bpf_helpers_doc.py
-    patchShebangs scripts/bpf_doc.py
+    patchShebangs scripts
   '';
 
   doCheck = false; # requires "sparse"
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 7d715cc3c09..7784aa8e03f 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -195,12 +195,12 @@ in {
   # to be adapted
   zfsStable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.13";
+    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.14";
 
     # this package should point to the latest release.
-    version = "2.0.5";
+    version = "2.1.0";
 
-    sha256 = "0n0d8ab7ibxxa8znfsprh7jxwgighx5g291v7hi8272vfjrmk1mj";
+    sha256 = "sha256-YdY4SStXZGBBdAHdM3R/unco7ztxI3s0/buPSNSeh5o=";
   };
 
   zfsUnstable = common {
@@ -208,9 +208,9 @@ in {
     kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.14";
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "2.1.0-rc8";
+    version = "2.1.0";
 
-    sha256 = "0c53ca6xd59c30h3b2hmvyy63yqyk745x1kdfypnfqj3lnsj1pac";
+    sha256 = "sha256-YdY4SStXZGBBdAHdM3R/unco7ztxI3s0/buPSNSeh5o=";
 
     isUnstable = true;
   };
diff --git a/pkgs/servers/coturn/default.nix b/pkgs/servers/coturn/default.nix
index 73b1ba01844..d076f763bf9 100644
--- a/pkgs/servers/coturn/default.nix
+++ b/pkgs/servers/coturn/default.nix
@@ -8,6 +8,7 @@
 , libprom
 , libpromhttp
 , libmicrohttpd
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
@@ -34,6 +35,8 @@ stdenv.mkDerivation rec {
     ./pure-configure.patch
   ];
 
+  passthru.tests.coturn = nixosTests.coturn;
+
   meta = with lib; {
     homepage = "https://coturn.net/";
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/servers/http/gitlab-pages/default.nix b/pkgs/servers/http/gitlab-pages/default.nix
index a26dd47e024..c62ad8b75c9 100644
--- a/pkgs/servers/http/gitlab-pages/default.nix
+++ b/pkgs/servers/http/gitlab-pages/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "1.39.0";
+  version = "1.40.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    sha256 = "sha256-eyg2o/5k7/zagYjkYJOnJrHeoszbRkmdl7UgO+rmKyc=";
+    sha256 = "sha256-RgWDAvuxqZeFCU+Q2s+FDIM/AroIdnfVq/D5lG4XN7U=";
   };
 
-  vendorSha256 = "sha256-aedJ7vsv70aybjqBfUnSr4qhlFdY7jUUOSas3vXskpM=";
+  vendorSha256 = "sha256-HbMM0IHw1DMDlNN1m2EHaG9CXnj9j9xROPQiT2xTGlM=";
   subPackages = [ "." ];
 
   meta = with lib; {
diff --git a/pkgs/servers/pinnwand/default.nix b/pkgs/servers/pinnwand/default.nix
index 3962ce97110..f8e3dfbc01c 100644
--- a/pkgs/servers/pinnwand/default.nix
+++ b/pkgs/servers/pinnwand/default.nix
@@ -21,7 +21,8 @@ with python3.pkgs; buildPythonApplication rec {
     substituteInPlace pyproject.toml \
       --replace 'click = "^7.0"' 'click = "*"' \
       --replace 'docutils = "^0.16"' 'docutils = "*"' \
-      --replace 'sqlalchemy = "^1.3"' 'sqlalchemy = "*"'
+      --replace 'sqlalchemy = "^1.3"' 'sqlalchemy = "*"' \
+      --replace 'token-bucket = "^0.2.0"' 'token-bucket = "*"'
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/sip/freeswitch/default.nix b/pkgs/servers/sip/freeswitch/default.nix
index d7611baad14..98a1223d279 100644
--- a/pkgs/servers/sip/freeswitch/default.nix
+++ b/pkgs/servers/sip/freeswitch/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, fetchpatch, stdenv, lib, pkg-config, autoreconfHook
+{ fetchFromGitHub, stdenv, lib, pkg-config, autoreconfHook
 , ncurses, gnutls, readline
 , openssl, perl, sqlite, libjpeg, speex, pcre, libuuid
 , ldns, libedit, yasm, which, libsndfile, libtiff
@@ -88,21 +88,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "freeswitch";
-  version = "1.10.5";
+  version = "1.10.6";
   src = fetchFromGitHub {
     owner = "signalwire";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18dhyb19k28dcm1i8mhqvvgm2phsrmrwyjmfn79glk8pdlalvcha";
+    sha256 = "1i5n06pds3kvzhhzfwvhwxnvcb2p2fcr8k52157aplm2i7prl4q2";
   };
 
-  patches = [
-    # https://github.com/signalwire/freeswitch/pull/812 fix mod_spandsp, mod_gsmopen build, drop when updating from 1.10.5
-    (fetchpatch {
-      url = "https://github.com/signalwire/freeswitch/commit/51fba83ed3ed2d9753d8e6b13e13001aca50b493.patch";
-      sha256 = "0h2bmifsyyasxjka3pczbmqym1chvz91fmb589njrdbwpkjyvqh3";
-    })
-  ];
   postPatch = ''
     patchShebangs     libs/libvpx/build/make/rtcd.pl
     substituteInPlace libs/libvpx/build/make/configure.sh \
@@ -117,10 +110,11 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  strictDeps = true;
+  nativeBuildInputs = [ pkg-config autoreconfHook perl which yasm ];
   buildInputs = [
-    openssl ncurses gnutls readline perl libjpeg
-    sqlite pcre speex ldns libedit yasm which
+    openssl ncurses gnutls readline libjpeg
+    sqlite pcre speex ldns libedit
     libsndfile libtiff
     libuuid
   ]
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index 81f3f4fee25..4b69aca710a 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "postgis";
-  version = "3.1.2";
+  version = "3.1.3";
 
   outputs = [ "out" "doc" ];
 
   src = fetchurl {
     url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
-    sha256 = "0ch7gry8a1i9114mlhklxryn7ja3flsz6pxj9r5p09k92xh3gp9c";
+    sha256 = "1jwz6hdrym837b7dvn00qmwnbb40a7gr43va409h8fmp7dajksbi";
   };
 
   buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
diff --git a/pkgs/servers/x11/xorg/xwayland.nix b/pkgs/servers/x11/xorg/xwayland.nix
index 46d7ebfd85a..c16391a3c50 100644
--- a/pkgs/servers/x11/xorg/xwayland.nix
+++ b/pkgs/servers/x11/xorg/xwayland.nix
@@ -32,6 +32,7 @@
 , stdenv
 , wayland
 , wayland-protocols
+, wayland-scanner
 , xkbcomp
 , xkeyboard_config
 , xorgproto
@@ -47,7 +48,16 @@ stdenv.mkDerivation rec {
     url = "mirror://xorg/individual/xserver/${pname}-${version}.tar.xz";
     sha256 = "sha256-MfJhzlG77namyj7AKqNn/6K176K5hBLfV8zv16GQA84=";
   };
-  nativeBuildInputs = [ pkg-config meson ninja ];
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    wayland-scanner
+  ];
   buildInputs = [
     egl-wayland
     epoxy
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index 32049fd11b6..9af721f02e5 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.54.0";
+  version = "0.55.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hWrSjkEdhb0F5lwFGwjkR2G6gQ8T8HommH2lxJE+0bk=";
+    sha256 = "sha256-5PrwOR70pSmNPHFSDHRvXNn0pksIQun5jJkcCFsYhCE=";
   };
 
-  vendorSha256 = "sha256-499c3Y9IUV8lc+O9qcEeFKQDT4QDvOPmu0rmps7M47w=";
+  vendorSha256 = "sha256-N2jdaz0lb4Ut8P+FgNNjgyUeJ731fTQ5XSQgOF8KCQs=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index d6b264a4aa3..7136fecf433 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.32.2";
+  version = "1.34.0";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-Yx+GA959AB6m62hDlZKYjsuT9Y9TJbIdzUVBMM8OgTg=";
+    sha256 = "sha256-Gu9o1aUDlhcEZPZZsfVF0FnlzT1DvbEXMXjnOxhY8tY=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/pkgs/tools/backup/btrbk/default.nix b/pkgs/tools/backup/btrbk/default.nix
index c619a69c111..4b4dadd4faf 100644
--- a/pkgs/tools/backup/btrbk/default.nix
+++ b/pkgs/tools/backup/btrbk/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, bash, btrfs-progs, openssh, perl, perlPackages
-, util-linux, asciidoc, asciidoctor, mbuffer, makeWrapper }:
+, util-linux, asciidoc, asciidoctor, mbuffer, makeWrapper, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "btrbk";
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
       --prefix PATH ':' "${lib.makeBinPath [ btrfs-progs bash mbuffer openssh ]}"
   '';
 
+  passthru.tests.btrbk = nixosTests.btrbk;
+
   meta = with lib; {
     description = "A backup tool for btrfs subvolumes";
     homepage = "https://digint.ch/btrbk";
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index a25bf744a91..72de0295c71 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -38,7 +38,7 @@
 
 # Linux Only Dependencies
 , linuxHeaders, util-linux, libuuid, udev, keyutils, rdma-core, rabbitmq-c
-, libaio ? null, libxfs ? null, zfs ? null
+, libaio ? null, libxfs ? null, zfs ? null, liburing ? null
 , ...
 }:
 
@@ -130,6 +130,8 @@ let
     ps.Mako
     ceph-common
     ps.cherrypy
+    ps.cmd2
+    ps.colorama
     ps.dateutil
     ps.jsonpatch
     ps.pecan
@@ -176,7 +178,7 @@ in rec {
       snappy lz4 oathToolkit leveldb libnl libcap_ng rdkafka
       cryptsetup sqlite lua icu bzip2
     ] ++ lib.optionals stdenv.isLinux [
-      linuxHeaders util-linux libuuid udev keyutils optLibaio optLibxfs optZfs
+      linuxHeaders util-linux libuuid udev keyutils liburing optLibaio optLibxfs optZfs
       # ceph 14
       rdma-core rabbitmq-c
     ] ++ lib.optionals hasRadosgw [
@@ -207,11 +209,12 @@ in rec {
       "-DMGR_PYTHON_VERSION=${ceph-python-env.python.pythonVersion}"
       "-DWITH_SYSTEMD=OFF"
       "-DWITH_TESTS=OFF"
+      "-DWITH_CEPHFS_SHELL=ON"
       # TODO breaks with sandbox, tries to download stuff with npm
       "-DWITH_MGR_DASHBOARD_FRONTEND=OFF"
       # WITH_XFS has been set default ON from Ceph 16, keeping it optional in nixpkgs for now
       ''-DWITH_XFS=${if optLibxfs != null then "ON" else "OFF"}''
-    ];
+    ] ++ lib.optional stdenv.isLinux "-DWITH_SYSTEM_LIBURING=ON";
 
     postFixup = ''
       wrapPythonPrograms
diff --git a/pkgs/tools/graphics/adriconf/default.nix b/pkgs/tools/graphics/adriconf/default.nix
new file mode 100644
index 00000000000..74ff4f1ed66
--- /dev/null
+++ b/pkgs/tools/graphics/adriconf/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, cmake
+, pkg-config
+, libdrm
+, libGL
+, atkmm
+, pcre
+, gtkmm3
+, boost
+, libxmlxx3
+, mesa
+, pciutils
+}:
+
+stdenv.mkDerivation rec {
+  pname = "adriconf";
+  version = "2.4.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "mesa";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "hZy+FpKKBKuho/fALu2O+44zzK6s/M8CTbhrO00ANgo=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libdrm libGL atkmm pcre gtkmm3 boost libxmlxx3 mesa pciutils ];
+
+  cmakeFlags = [ "-DENABLE_UNIT_TESTS=off" ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.freedesktop.org/mesa/adriconf/";
+    description = "A GUI tool used to configure open source graphics drivers";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ musfay ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/graphics/gifsicle/default.nix b/pkgs/tools/graphics/gifsicle/default.nix
index c05a552f205..b200f487b23 100644
--- a/pkgs/tools/graphics/gifsicle/default.nix
+++ b/pkgs/tools/graphics/gifsicle/default.nix
@@ -7,11 +7,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "gifsicle";
-  version = "1.92";
+  version = "1.93";
 
   src = fetchurl {
     url = "https://www.lcdf.org/gifsicle/${pname}-${version}.tar.gz";
-    sha256 = "0rffpzxcak19k6cngpxn73khvm3z1gswrqs90ycdzzb53p05ddas";
+    sha256 = "sha256-kvZweXMr9MHaCH5q4JBSBYRuWsd3ulyqZtEqc6qUNEc=";
   };
 
   buildInputs = optionals gifview [ xorgproto libXt libX11 ];
diff --git a/pkgs/tools/misc/beats/default.nix b/pkgs/tools/misc/beats/default.nix
index 1e6f155f350..3e471c76fdf 100644
--- a/pkgs/tools/misc/beats/default.nix
+++ b/pkgs/tools/misc/beats/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "beats";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "j0hax";
     repo = "beats";
     rev = "v${version}";
-    sha256 = "0qs5cmbncqhs11m4whqmrh2gvv3p3b37qz57xh78x2ma8jbhskqz";
+    sha256 = "1rdvsqrjpily74y8vwch711401585xckb4p41cfwrmj6vf44jhif";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index d1f9ca80f70..a5c456c0050 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -75,7 +75,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
     homepage = "https://dystroy.org/broot/";
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     license = with licenses; [ mit ];
   };
 }
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index 6f0c90517da..051e61e7af8 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, ncurses, gettext, openssl, withGeolocation ? true, libmaxminddb }:
 
 stdenv.mkDerivation rec {
-  version = "1.5";
+  version = "1.5.1";
   pname = "goaccess";
 
   src = fetchurl {
     url = "https://tar.goaccess.io/goaccess-${version}.tar.gz";
-    sha256 = "sha256-liJtXfiXAyg+NBCcF+G07v4kBKWefHaitu76EPOqwWE=";
+    sha256 = "sha256-iEF+eOYrcN45gLdiKRHk/NcZw2YPADyIeWjnGWw5lw8=";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index f5ed58f84fd..18c936befb4 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "0.172.0";
+  version = "0.172.1";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QHtxrdmtmvnyMmtpvbEw5VjGz2XN1iqHu+5dHS9yiNo=";
+    sha256 = "sha256-xTLNAcqvk5GDs9HsNvL+4SPeT8baFMg7J0yW+E8x+Gc=";
   };
 
   vendorSha256 = "sha256-Zd48I7e5zCbSXz5RVckMXQMpqvf6gAoajx5yLk2ODmU=";
diff --git a/pkgs/tools/misc/infracost/default.nix b/pkgs/tools/misc/infracost/default.nix
index 286bc4cbca2..abe1872c67f 100644
--- a/pkgs/tools/misc/infracost/default.nix
+++ b/pkgs/tools/misc/infracost/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "infracost";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "infracost";
     rev = "v${version}";
     repo = "infracost";
-    sha256 = "sha256-3dR4NZ1PiMuHNO+xl3zxeBLPOZTLAbJ0VtYJNYpJuXI=";
+    sha256 = "sha256-TM+7Am5hoiRk/StAwCh5yAN1GKv3oPun38pvhArBoJg=";
   };
 
-  vendorSha256 = "sha256-YHewZsIiDPsgJVYwQX/FovlD+UzJflXy/0oglk8ZkKk=";
+  vendorSha256 = "sha256-6sMtM7MTFTDXwH8AKr5Dxq8rPqE92xzcWqBTixcPi+8=";
 
   checkInputs = [ terraform ];
   checkPhase = "make test";
diff --git a/pkgs/tools/misc/mslink/default.nix b/pkgs/tools/misc/mslink/default.nix
index 56354ff2527..6db1ae3275c 100644
--- a/pkgs/tools/misc/mslink/default.nix
+++ b/pkgs/tools/misc/mslink/default.nix
@@ -1,9 +1,9 @@
-{ stdenv
+{ gccStdenv
 , lib
 , fetchurl
 }:
 
-stdenv.mkDerivation rec {
+gccStdenv.mkDerivation rec {
   pname = "mslink";
   version = "1.3";
 
@@ -17,6 +17,9 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    if [[ "$(uname)" == "Darwin" ]]; then
+      mv mslink.exe mslink
+    fi
     install -D mslink $out/bin/mslink
   '';
 
diff --git a/pkgs/tools/misc/qmk/default.nix b/pkgs/tools/misc/qmk/default.nix
index 40e5d4d23ae..3fa088d8e2b 100644
--- a/pkgs/tools/misc/qmk/default.nix
+++ b/pkgs/tools/misc/qmk/default.nix
@@ -3,38 +3,59 @@
 , fetchpatch
 }:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  inherit (python3.pkgs) buildPythonApplication fetchPypi;
+in
+buildPythonApplication rec {
   pname = "qmk";
-  version = "0.0.45";
+  version = "0.0.52";
 
-  src = python3.pkgs.fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "43f297f36b21d68c34c5efa0ce1449dddb2e28753f80939cadf761ee7a2a0901";
+    sha256 = "sha256-mNF+bRhaL6JhNbROmjYDHkKKokRIALd5FZbRt9Kg5XQ=";
   };
 
-  patches = [
-    # https://github.com/qmk/qmk_cli/pull/48
-    (fetchpatch {
-      name = "remove-unused-install-requires.patch";
-      url = "https://github.com/qmk/qmk_cli/commit/75b6ada1feccfa5a9bc2bb07a4cc749ef40d02dd.patch";
-      sha256 = "0lwi1dz35p07vha5gwq2jxm5q49vm99ix4jyhd6g6ypqbq1qiwc8";
-    })
-  ];
-
   nativeBuildInputs = with python3.pkgs; [
+    flake8
+    nose2
+    pep8-naming
     setuptools-scm
+    yapf
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
+    appdirs
+    argcomplete
+    colorama
+    dotty-dict
+    hid
+    hjson
+    jsonschema
     milc
+    pygments
+    pyusb
   ];
 
   # no tests implemented
   doCheck = false;
 
   meta = with lib; {
-    description = "A program to help users work with QMK Firmware";
     homepage = "https://github.com/qmk/qmk_cli";
+    description = "A program to help users work with QMK Firmware";
+    longDescription = ''
+      qmk_cli is a companion tool to QMK firmware. With it, you can:
+
+      - Interact with your qmk_firmware tree from any location
+      - Use qmk clone to pull down anyone's qmk_firmware fork
+      - Setup and work with your build environment:
+        - qmk setup
+        - qmk doctor
+        - qmk compile
+        - qmk console
+        - qmk flash
+        - qmk lint
+      - ... and many more!
+    '';
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple ];
   };
diff --git a/pkgs/tools/networking/boundary/default.nix b/pkgs/tools/networking/boundary/default.nix
index ab26a39035e..5c9abf57892 100644
--- a/pkgs/tools/networking/boundary/default.nix
+++ b/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src =
     let
@@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
         x86_64-darwin = "darwin_amd64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-vBXNDd9p9g1joBMcwt87uI/EIAeKa+QrndCh1kTwZyM=";
-        aarch64-linux = "sha256-Xompe1Q8Q3gAqpQQT04CWDx/f0Yc8HbnkZQbN+faB0g=";
-        x86_64-darwin = "sha256-cE4YrZPNAldCR31O3gI4W/y4RgV7+64yL15obb5uRcY=";
+        x86_64-linux = "sha256-xHvg2Kdm7hoJ7Dwh4pLXJE+EPcl9Zta/00IN3wRnOzU=";
+        aarch64-linux = "sha256-Kbr7tZjVcYiejy1CB9r10mqG+0serRx+mjPXds2/TJQ=";
+        x86_64-darwin = "sha256-a8e3gKTTsK5QRAYrB4/DtrFFGM2In73wKEcEMcbeUTI=";
       };
     in
     fetchzip {
diff --git a/pkgs/tools/package-management/cargo-outdated/default.nix b/pkgs/tools/package-management/cargo-outdated/default.nix
index fe8f743c71c..beb04041861 100644
--- a/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.9.15";
+  version = "0.9.17";
 
   src = fetchFromGitHub {
     owner = "kbknapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Cd0QWFeAAHSkeCVQvb+Fsg5nBoutV1k1kQpMkWpci2E=";
+    sha256 = "sha256-Ian/vXGoPHecguQUp2IUgdLW6Ll8OdCA2W0WmoYPDrI=";
   };
 
-  cargoSha256 = "sha256-VngJMDVKIV8+ODHia2U2gKKPKskyKiuKhSnO6NJsJHI=";
+  cargoSha256 = "sha256-eDu1dAs543AryUEsCY9COHrvuamQocCk0nBXDIdFmYs=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/pkgs/tools/package-management/cargo-release/default.nix b/pkgs/tools/package-management/cargo-release/default.nix
index bfe003c4890..a8fc4795706 100644
--- a/pkgs/tools/package-management/cargo-release/default.nix
+++ b/pkgs/tools/package-management/cargo-release/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "sunng87";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "sha256-hEpPRAUPHz9lDTJLyDMUAS+dH6hlppvi3Bb3ahnYW9U=";
+    sha256 = "sha256-bCxfZFFmk1Y1Rs41yZXogIjsnZhS/TzkZNXOixbvONU=";
   };
 
-  cargoSha256 = "sha256-tOiralZWA21HBTxYWVB1LZH2ArfgY7HB45dVqHoXe/Q=";
+  cargoSha256 = "sha256-3wSy5WGBLC44Iy3yw2M1f1KpB8KHei+hHuqCGXutgi0=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/pkgs/tools/security/cfssl/default.nix b/pkgs/tools/security/cfssl/default.nix
index e92fe7b951f..6ef07c2c355 100644
--- a/pkgs/tools/security/cfssl/default.nix
+++ b/pkgs/tools/security/cfssl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cfssl";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cfssl";
     rev = "v${version}";
-    sha256 = "1yzxz2l7h2d3f8j6l9xlm7g9659gsa17zf4q0883s0jh3l3xgs5n";
+    sha256 = "sha256-29HEaW5LCoHcuJrfVUN2hnsRtaSTrvIBo8ok2UJbfuQ=";
   };
 
   subPackages = [
diff --git a/pkgs/tools/security/terrascan/default.nix b/pkgs/tools/security/terrascan/default.nix
index 36ccb89dcfe..5fd0578bc87 100644
--- a/pkgs/tools/security/terrascan/default.nix
+++ b/pkgs/tools/security/terrascan/default.nix
@@ -1,22 +1,22 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "terrascan";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "accurics";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-P16CS1W42Q/glsB9G0kagB5oSgwLb5cGMvKFc9jzd8s=";
+    sha256 = "sha256-eCkinYJtZNf5Fo+LXu01cHRInA9CfDONvt1OIs3XJSk=";
   };
 
-  vendorSha256 = "sha256-22T7C4/ph3z+O1c9uC1p2xzg0JFV+TEdfy4iiIS4Y40=";
+  vendorSha256 = "sha256-eez/g0Np/vnSO6uvUA8vtqR3DEaKlBo6lyd9t25LE7s=";
 
-  # tests want to download a vulnerable Terraform project
+  # Tests want to download a vulnerable Terraform project
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/tools/security/traitor/default.nix b/pkgs/tools/security/traitor/default.nix
index 2da9262709a..e056b556aad 100644
--- a/pkgs/tools/security/traitor/default.nix
+++ b/pkgs/tools/security/traitor/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "traitor";
-  version = "0.0.7";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "liamg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UuWJe4nVr87ab3yskqKxnclMg9EywlcgaM/WOREXD/c=";
+    sha256 = "sha256-eUeKkjSpKel6XH3/VVw/WPCG/Nq8BcZwMNFG9z9FUuU=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/security/bitwarden_rs/default.nix b/pkgs/tools/security/vaultwarden/default.nix
index 2790a643499..4342c8f3ac9 100644
--- a/pkgs/tools/security/bitwarden_rs/default.nix
+++ b/pkgs/tools/security/vaultwarden/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, nixosTests
+{ lib, stdenv, rustPlatform, fetchFromGitHub, fetchurl, nixosTests
 , pkg-config, openssl
 , libiconv, Security, CoreServices
 , dbBackend ? "sqlite", libmysqlclient, postgresql }:
@@ -7,16 +7,18 @@ let
   featuresFlag = "--features ${dbBackend}";
 
 in rustPlatform.buildRustPackage rec {
-  pname = "bitwarden_rs";
-  version = "1.20.0";
+  pname = "vaultwarden";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "1ncy4iwmdzdp8rv1gc5i4s1rp97d94n4l4bh08v6w4zdpx0zn8b9";
+    sha256 = "sha256-aXbnNO3mTAgE1yNx7YVDo1vPpO8ACZpBGHQ633fNZ3k=";
   };
 
+  cargoSha256 = "sha256-SFzq3OU0a0s3zlEzUkqGdZb/knYafqDamLy4ghH4i8I=";
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = with lib; [ openssl ]
     ++ optionals stdenv.isDarwin [ libiconv Security CoreServices ]
@@ -25,7 +27,6 @@ in rustPlatform.buildRustPackage rec {
 
   RUSTC_BOOTSTRAP = 1;
 
-  cargoSha256 = "0vdi792bzqxj8g215r9r5anzs4qhqsm6sjzwpj1l9861bn7j4xsz";
   cargoBuildFlags = [ featuresFlag ];
 
   checkPhase = ''
@@ -35,11 +36,11 @@ in rustPlatform.buildRustPackage rec {
     runHook postCheck
   '';
 
-  passthru.tests = nixosTests.bitwarden;
+  passthru.tests = nixosTests.vaultwarden;
 
   meta = with lib; {
     description = "Unofficial Bitwarden compatible server written in Rust";
-    homepage = "https://github.com/dani-garcia/bitwarden_rs";
+    homepage = "https://github.com/dani-garcia/vaultwarden";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ msteen ];
   };
diff --git a/pkgs/tools/security/bitwarden_rs/vault.nix b/pkgs/tools/security/vaultwarden/vault.nix
index 2b0855b821d..49e7cc4f3ba 100644
--- a/pkgs/tools/security/bitwarden_rs/vault.nix
+++ b/pkgs/tools/security/vaultwarden/vault.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
-  pname = "bitwarden_rs-vault";
+  pname = "vaultwarden-vault";
   version = "2.19.0";
 
   src = fetchurl {
@@ -10,16 +10,16 @@ stdenv.mkDerivation rec {
   };
 
   buildCommand = ''
-    mkdir -p $out/share/bitwarden_rs/
-    cd $out/share/bitwarden_rs/
+    mkdir -p $out/share/vaultwarden/
+    cd $out/share/vaultwarden/
     tar xf $src
     mv web-vault vault
   '';
 
-  passthru.tests = nixosTests.bitwarden;
+  passthru.tests = nixosTests.vaultwarden;
 
   meta = with lib; {
-    description = "Integrates the web vault into bitwarden_rs";
+    description = "Integrates the web vault into vaultwarden";
     homepage = "https://github.com/dani-garcia/bw_web_builds";
     platforms = platforms.all;
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/system/rocm-smi/default.nix b/pkgs/tools/system/rocm-smi/default.nix
index ac980e6c36c..de9afdae294 100644
--- a/pkgs/tools/system/rocm-smi/default.nix
+++ b/pkgs/tools/system/rocm-smi/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     description = "System management interface for AMD GPUs supported by ROCm";
     homepage = "https://github.com/RadeonOpenCompute/ROC-smi";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/tools/text/hottext/default.nix b/pkgs/tools/text/hottext/default.nix
index 6d361f50f35..2e9d0a909a2 100644
--- a/pkgs/tools/text/hottext/default.nix
+++ b/pkgs/tools/text/hottext/default.nix
@@ -67,7 +67,7 @@ in stdenv.mkDerivation rec {
 
   nimFlags = [ "-d:release" ] ++ map (lib: "--path:${lib}/src") nimLibs;
 
-  HOTTEXT_FONT_PATH = "${gentium}/share/fonts/truetype/GentiumPlus-R.ttf";
+  HOTTEXT_FONT_PATH = "${gentium}/share/fonts/truetype/GentiumPlus-Regular.ttf";
 
   buildPhase = ''
     runHook preBuild
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index 810e3feaa22..791d779bf83 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "5.3";
+  version = "5.4";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "1km20ajqb65vkhkrf94zy5srcss66ix8padp7ng59pa8pj11wmi2";
+    sha256 = "sha256-2khadADfzwkW+J0uafPWJ6xUQRSQDm8seiBHueQGmKI=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
new file mode 100644
index 00000000000..8673200172e
--- /dev/null
+++ b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, ocamlPackages
+}:
+
+ocamlPackages.buildDunePackage rec {
+  pname = "wayland-proxy-virtwl";
+  version = "unstable-2021-04-15";
+
+  src = fetchFromGitHub {
+    owner = "talex5";
+    repo = pname;
+    rev = "09321a28f3d4c0fa7e41ebb3014106b62090b649";
+    sha256 = "03rc2jp5d2y9y7mfis6kk9gchd49gvq0jg6fq5gi9r21ckb4k5v4";
+  };
+
+  postPatch = ''
+    # no need to vendor
+    rm -r ocaml-wayland
+  '';
+
+  useDune2 = true;
+  minimumOCamlVersion = "4.08";
+
+  buildInputs = with ocamlPackages; [
+    wayland
+    cmdliner
+    logs
+  ];
+
+  meta = {
+    homepage = "https://github.com/talex5/wayland-virtwl-proxy";
+    description = "Proxy Wayland connections across a VM boundary";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 5bfaed5ac45..d36f7e9719d 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -88,6 +88,14 @@ mapAliases ({
   bittorrentSync = throw "bittorrentSync has been deprecated by resilio-sync."; # added 2019-06-03
   bittorrentSync14 = throw "bittorrentSync14 has been deprecated by resilio-sync."; # added 2019-06-03
   bittorrentSync20 = throw "bittorrentSync20 has been deprecated by resilio-sync."; # added 2019-06-03
+
+  # bitwarden_rs renamed to vaultwarden with release 1.21.0 (2021-04-30)
+  bitwarden_rs = vaultwarden;
+  bitwarden_rs-sqlite = vaultwarden-sqlite;
+  bitwarden_rs-mysql = vaultwarden-mysql;
+  bitwarden_rs-postgresql = vaultwarden-postgresql;
+  bitwarden_rs-vault = vaultwarden-vault;
+
   bs1770gain = throw "bs1770gain has been removed from nixpkgs, as it had no maintainer or reverse dependencies."; # added 2021-01-02
   btc1 = throw "btc1 has been removed, it was abandoned by upstream"; # added 2020-11-03
   buildPerlPackage = perlPackages.buildPerlPackage; # added 2018-10-12
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f9cb868165b..2cd8c7051a8 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -474,6 +474,8 @@ in
 
   pkger = callPackage ../development/libraries/pkger { };
 
+  tapview = callPackage ../development/tools/tapview { };
+
   run = callPackage ../development/tools/run { };
 
   mod = callPackage ../development/tools/mod { };
@@ -799,6 +801,8 @@ in
 
   acme-client = callPackage ../tools/networking/acme-client { stdenv = gccStdenv; };
 
+  adriconf = callPackage ../tools/graphics/adriconf { };
+
   amass = callPackage ../tools/networking/amass { };
 
   afew = callPackage ../applications/networking/mailreaders/afew { };
@@ -1308,15 +1312,6 @@ in
 
   inherit (nodePackages) bitwarden-cli;
 
-  bitwarden_rs = callPackage ../tools/security/bitwarden_rs {
-    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
-  };
-  bitwarden_rs-sqlite = bitwarden_rs;
-  bitwarden_rs-mysql = bitwarden_rs.override { dbBackend = "mysql"; };
-  bitwarden_rs-postgresql = bitwarden_rs.override { dbBackend = "postgresql"; };
-
-  bitwarden_rs-vault = callPackage ../tools/security/bitwarden_rs/vault.nix { };
-
   bkyml = callPackage ../tools/misc/bkyml { };
 
   blockbench-electron = callPackage ../applications/graphics/blockbench-electron { };
@@ -2299,6 +2294,8 @@ in
 
   wayland-utils = callPackage ../tools/wayland/wayland-utils { };
 
+  wayland-proxy-virtwl = callPackage ../tools/wayland/wayland-proxy-virtwl { };
+
   wev = callPackage ../tools/wayland/wev { };
 
   wdomirror = callPackage ../tools/wayland/wdomirror { };
@@ -5305,9 +5302,7 @@ in
 
   gnome-podcasts = callPackage ../applications/audio/gnome-podcasts { };
 
-  gnome-photos = callPackage ../applications/graphics/gnome-photos {
-    gegl = gegl_0_4;
-  };
+  gnome-photos = callPackage ../applications/graphics/gnome-photos { };
 
   gnokii = callPackage ../tools/misc/gnokii { };
 
@@ -5614,6 +5609,8 @@ in
 
   pgloader = callPackage ../development/tools/pgloader { };
 
+  pgtop = callPackage ../development/tools/pgtop { };
+
   pigz = callPackage ../tools/compression/pigz { };
 
   pixz = callPackage ../tools/compression/pixz { };
@@ -7668,6 +7665,8 @@ in
 
   otfcc = callPackage ../tools/misc/otfcc { };
 
+  otpclient = callPackage ../applications/misc/otpclient { };
+
   otpw = callPackage ../os-specific/linux/otpw { };
 
   ovftool = callPackage ../tools/virtualization/ovftool { };
@@ -15130,10 +15129,6 @@ in
   };
 
   gegl = callPackage ../development/libraries/gegl {
-    inherit (darwin.apple_sdk.frameworks) OpenGL;
-  };
-
-  gegl_0_4 = callPackage ../development/libraries/gegl/4.0.nix {
     inherit (darwin.apple_sdk.frameworks) OpenCL;
   };
 
@@ -16036,6 +16031,8 @@ in
     inherit (ocaml-ng.ocamlPackages) bap ocaml findlib ctypes;
   };
 
+  libbaseencode = callPackage ../development/libraries/libbaseencode { };
+
   libbass = (callPackage ../development/libraries/audio/libbass { }).bass;
   libbass_fx = (callPackage ../development/libraries/audio/libbass { }).bass_fx;
 
@@ -16149,6 +16146,8 @@ in
 
   libctemplate = callPackage ../development/libraries/libctemplate { };
 
+  libcotp = callPackage ../development/libraries/libcotp { };
+
   libcouchbase = callPackage ../development/libraries/libcouchbase { };
 
   libcue = callPackage ../development/libraries/libcue { };
@@ -16509,6 +16508,8 @@ in
 
   liblcf = callPackage ../development/libraries/liblcf { };
 
+  libliftoff = callPackage ../development/libraries/libliftoff { };
+
   liblqr1 = callPackage ../development/libraries/liblqr-1 { };
 
   liblockfile = callPackage ../development/libraries/liblockfile { };
@@ -20908,8 +20909,6 @@ in
 
     dpdk-kmods = callPackage ../os-specific/linux/dpdk-kmods { };
 
-    dpdk = throw "The dpdk driver has been renamed to dpdk-kmods.";
-
     exfat-nofuse = callPackage ../os-specific/linux/exfat { };
 
     evdi = callPackage ../os-specific/linux/evdi { };
@@ -24161,7 +24160,6 @@ in
 
   gimp = callPackage ../applications/graphics/gimp {
     autoreconfHook = buildPackages.autoreconfHook269;
-    gegl = gegl_0_4;
     lcms = lcms2;
     inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
   };
@@ -24174,7 +24172,6 @@ in
 
   glimpse = callPackage ../applications/graphics/glimpse {
     autoreconfHook = buildPackages.autoreconfHook269;
-    gegl = gegl_0_4;
     lcms = lcms2;
     inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
   };
@@ -25419,7 +25416,7 @@ in
     inherit (darwin.apple_sdk.frameworks) ApplicationServices;
   };
 
-  mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; });
+  mercurialFull = appendToName "full" (pkgs.mercurial.override { fullBuild = true; });
 
   merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };
 
@@ -28974,6 +28971,8 @@ in
       static = true;
     };
   };
+  openttd-grfcodec = callPackage ../games/openttd/grfcodec.nix {};
+  openttd-nml = callPackage ../games/openttd/nml.nix {};
 
   opentyrian = callPackage ../games/opentyrian { };
 
@@ -31571,6 +31570,15 @@ in
 
   vazir-code-font = callPackage ../data/fonts/vazir-code-font { };
 
+  vaultwarden = callPackage ../tools/security/vaultwarden {
+    inherit (darwin.apple_sdk.frameworks) Security CoreServices;
+  };
+  vaultwarden-sqlite = vaultwarden;
+  vaultwarden-mysql = vaultwarden.override { dbBackend = "mysql"; };
+  vaultwarden-postgresql = vaultwarden.override { dbBackend = "postgresql"; };
+
+  vaultwarden-vault = callPackage ../tools/security/vaultwarden/vault.nix { };
+
   vazir-fonts = callPackage ../data/fonts/vazir-fonts { };
 
   vbam = callPackage ../misc/emulators/vbam { };
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 7ea35711623..09a77cfe6bd 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -36,6 +36,7 @@ mapAliases ({
   blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # Added 2020-11-29
   bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
   detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
+  diff_cover = diff-cover; # added 2021-07-02
   dns = dnspython; # Alias for compatibility, 2017-12-10
   faulthandler = throw "faulthandler is built into ${python.executable}";
   gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 5eac97ab189..050e232460b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1905,8 +1905,6 @@ in {
 
   devpi-common = callPackage ../development/python-modules/devpi-common { };
 
-  dftfit = callPackage ../development/python-modules/dftfit { };
-
   diagrams = callPackage ../development/python-modules/diagrams { };
 
   diceware = callPackage ../development/python-modules/diceware { };
@@ -1921,7 +1919,7 @@ in {
 
   dicttoxml = callPackage ../development/python-modules/dicttoxml { };
 
-  diff_cover = callPackage ../development/python-modules/diff_cover { };
+  diff-cover = callPackage ../development/python-modules/diff-cover { };
 
   diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
 
@@ -3914,8 +3912,6 @@ in {
 
   labmath = callPackage ../development/python-modules/labmath { };
 
-  lammps-cython = callPackage ../development/python-modules/lammps-cython { };
-
   langcodes = callPackage ../development/python-modules/langcodes { };
 
   langdetect = callPackage ../development/python-modules/langdetect { };
@@ -5235,6 +5231,8 @@ in {
 
   phonenumbers = callPackage ../development/python-modules/phonenumbers { };
 
+  micloud = callPackage ../development/python-modules/micloud { };
+
   netmap = callPackage ../development/python-modules/netmap { };
 
   openapi-core = callPackage ../development/python-modules/openapi-core { };
@@ -6998,6 +6996,10 @@ in {
 
   python-louvain = callPackage ../development/python-modules/python-louvain { };
 
+  python-lsp-jsonrpc = callPackage ../development/python-modules/python-lsp-jsonrpc { };
+
+  python-lsp-server = callPackage ../development/python-modules/python-lsp-server { };
+
   python-ly = callPackage ../development/python-modules/python-ly { };
 
   python-lz4 = callPackage ../development/python-modules/python-lz4 { };