summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/languages-frameworks/rust.section.md186
-rw-r--r--nixos/modules/tasks/network-interfaces-systemd.nix12
-rw-r--r--pkgs/applications/audio/mda-lv2/default.nix4
-rw-r--r--pkgs/applications/kde/akonadi-contacts.nix8
-rw-r--r--pkgs/applications/kde/akonadi/0001-akonadi-paths.patch74
-rw-r--r--pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch10
-rw-r--r--pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch26
-rw-r--r--pkgs/applications/kde/akonadi/default.nix4
-rw-r--r--pkgs/applications/kde/calendarsupport.nix11
-rw-r--r--pkgs/applications/kde/default.nix3
-rw-r--r--pkgs/applications/kde/dolphin.nix3
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/ffmpegthumbs.nix4
-rw-r--r--pkgs/applications/kde/filelight.nix3
-rw-r--r--pkgs/applications/kde/incidenceeditor.nix4
-rw-r--r--pkgs/applications/kde/kaddressbook.nix11
-rw-r--r--pkgs/applications/kde/kalarm.nix18
-rw-r--r--pkgs/applications/kde/kdebugsettings.nix3
-rw-r--r--pkgs/applications/kde/kdenetwork-filesharing.nix5
-rw-r--r--pkgs/applications/kde/kdenlive/default.nix (renamed from pkgs/applications/kde/kdenlive.nix)0
-rw-r--r--pkgs/applications/kde/kdenlive/ffmpeg-path.patch (renamed from pkgs/applications/kde/ffmpeg-path.patch)0
-rw-r--r--pkgs/applications/kde/kdenlive/mlt-path.patch (renamed from pkgs/applications/kde/mlt-path.patch)0
-rw-r--r--pkgs/applications/kde/kdepim-addons.nix4
-rw-r--r--pkgs/applications/kde/kdepim-apps-libs/default.nix20
-rw-r--r--pkgs/applications/kde/kmail.nix4
-rw-r--r--pkgs/applications/kde/kompare.nix10
-rw-r--r--pkgs/applications/kde/konqueror.nix3
-rw-r--r--pkgs/applications/kde/kontact.nix4
-rw-r--r--pkgs/applications/kde/korganizer.nix4
-rw-r--r--pkgs/applications/kde/kpat.nix2
-rw-r--r--pkgs/applications/kde/krdc.nix3
-rw-r--r--pkgs/applications/kde/messagelib.nix4
-rw-r--r--pkgs/applications/kde/srcs.nix1808
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix14
-rw-r--r--pkgs/build-support/rust/default.nix144
-rw-r--r--pkgs/build-support/rust/fetchCargoTarball.nix2
-rw-r--r--pkgs/build-support/rust/hooks/cargo-build-hook.sh33
-rw-r--r--pkgs/build-support/rust/hooks/cargo-setup-hook.sh84
-rw-r--r--pkgs/build-support/rust/hooks/default.nix76
-rw-r--r--pkgs/build-support/rust/hooks/maturin-build-hook.sh39
-rw-r--r--pkgs/data/themes/matcha/default.nix4
-rw-r--r--pkgs/development/compilers/openjdk/11.nix6
-rw-r--r--pkgs/development/compilers/rust/make-rust-platform.nix7
-rw-r--r--pkgs/development/interpreters/perl/default.nix8
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix4
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix4
-rw-r--r--pkgs/development/libraries/glibc/2.32-master.patch.gz (renamed from pkgs/development/libraries/glibc/2.32-35.patch.gz)bin51693 -> 54979 bytes
-rw-r--r--pkgs/development/libraries/glibc/common.nix8
-rw-r--r--pkgs/development/libraries/gnu-config/default.nix8
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--pkgs/development/libraries/icu/68.nix4
-rw-r--r--pkgs/development/libraries/json-glib/default.nix52
-rw-r--r--pkgs/development/libraries/lcms2/default.nix4
-rw-r--r--pkgs/development/libraries/libaom/default.nix4
-rw-r--r--pkgs/development/libraries/libblockdev/default.nix4
-rw-r--r--pkgs/development/libraries/libbytesize/default.nix4
-rw-r--r--pkgs/development/libraries/libdatrie/default.nix2
-rw-r--r--pkgs/development/libraries/libevdev/default.nix4
-rw-r--r--pkgs/development/libraries/libheif/default.nix12
-rw-r--r--pkgs/development/libraries/libical/default.nix11
-rw-r--r--pkgs/development/libraries/libmbim/default.nix4
-rw-r--r--pkgs/development/libraries/libpcap/default.nix10
-rw-r--r--pkgs/development/libraries/libthai/default.nix6
-rw-r--r--pkgs/development/libraries/libusb1/default.nix8
-rw-r--r--pkgs/development/libraries/libuv/default.nix4
-rw-r--r--pkgs/development/libraries/rinutils/default.nix21
-rw-r--r--pkgs/development/python-modules/adblock/default.nix33
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix26
-rw-r--r--pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--pkgs/development/python-modules/johnnycanencrypt/default.nix37
-rw-r--r--pkgs/development/python-modules/lxml/default.nix4
-rw-r--r--pkgs/development/python-modules/retworkx/default.nix29
-rw-r--r--pkgs/development/python-modules/shapely/default.nix26
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix33
-rw-r--r--pkgs/development/python-modules/wasmer/default.nix63
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix4
-rw-r--r--pkgs/development/tools/documentation/gtk-doc/default.nix19
-rw-r--r--pkgs/development/tools/misc/help2man/default.nix4
-rw-r--r--pkgs/development/tools/parsing/bison/default.nix4
-rw-r--r--pkgs/games/black-hole-solver/default.nix30
-rw-r--r--pkgs/misc/emulators/mednaffe/default.nix4
-rw-r--r--pkgs/misc/jackaudio/default.nix3
-rw-r--r--pkgs/os-specific/linux/alsa-plugins/default.nix3
-rw-r--r--pkgs/os-specific/linux/hwdata/default.nix10
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix10
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix164
-rw-r--r--pkgs/servers/livepeer/default.nix6
-rw-r--r--pkgs/servers/sql/postgresql/default.nix24
-rw-r--r--pkgs/shells/liquidprompt/default.nix4
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/misc/bc/default.nix11
-rw-r--r--pkgs/tools/misc/parted/default.nix4
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix4
-rw-r--r--pkgs/tools/security/rage/default.nix6
-rw-r--r--pkgs/tools/system/pciutils/default.nix12
-rw-r--r--pkgs/top-level/all-packages.nix13
98 files changed, 1943 insertions, 1517 deletions
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 8f6db28ab4d..c53818f8157 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -237,6 +237,192 @@ rustPlatform.buildRustPackage rec {
 }
 ```
 
+## Compiling non-Rust packages that include Rust code
+
+Several non-Rust packages incorporate Rust code for performance- or
+security-sensitive parts. `rustPlatform` exposes several functions and
+hooks that can be used to integrate Cargo in non-Rust packages.
+
+### Vendoring of dependencies
+
+Since network access is not allowed in sandboxed builds, Rust crate
+dependencies need to be retrieved using a fetcher. `rustPlatform`
+provides the `fetchCargoTarball` fetcher, which vendors all
+dependencies of a crate. For example, given a source path `src`
+containing `Cargo.toml` and `Cargo.lock`, `fetchCargoTarball`
+can be used as follows:
+
+```nix
+cargoDeps = rustPlatform.fetchCargoTarball {
+  inherit src;
+  hash = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
+};
+```
+
+The `src` attribute is required, as well as a hash specified through
+one of the `sha256` or `hash` attributes. The following optional
+attributes can also be used:
+
+* `name`: the name that is used for the dependencies tarball.  If
+  `name` is not specified, then the name `cargo-deps` will be used.
+* `sourceRoot`: when the `Cargo.lock`/`Cargo.toml` are in a
+  subdirectory, `sourceRoot` specifies the relative path to these
+  files.
+* `patches`: patches to apply before vendoring. This is useful when
+  the `Cargo.lock`/`Cargo.toml` files need to be patched before
+  vendoring.
+
+### Hooks
+
+`rustPlatform` provides the following hooks to automate Cargo builds:
+
+* `cargoSetupHook`: configure Cargo to use depenencies vendored
+  through `fetchCargoTarball`. This hook uses the `cargoDeps`
+  environment variable to find the vendored dependencies. If a project
+  already vendors its dependencies, the variable `cargoVendorDir` can
+  be used instead. When the `Cargo.toml`/`Cargo.lock` files are not in
+  `sourceRoot`, then the optional `cargoRoot` is used to specify the
+  Cargo root directory relative to `sourceRoot`.
+* `cargoBuildHook`: use Cargo to build a crate. If the crate to be
+  built is a crate in e.g. a Cargo workspace, the relative path to the
+  crate to build can be set through the optional `buildAndTestSubdir`
+  environment variable. Additional Cargo build flags can be passed
+  through `cargoBuildFlags`.
+* `maturinBuildHook`: use [Maturin](https://github.com/PyO3/maturin)
+  to build a Python wheel. Similar to `cargoBuildHook`, the optional
+  variable `buildAndTestSubdir` can be used to build a crate in a
+  Cargo workspace. Additional maturin flags can be passed through
+  `maturinBuildFlags`.
+
+### Examples
+
+#### Python package using `setuptools-rust`
+
+For Python packages using `setuptools-rust`, you can use
+`fetchCargoTarball` and `cargoSetupHook` to retrieve and set up Cargo
+dependencies. The build itself is then performed by
+`buildPythonPackage`.
+
+The following example outlines how the `tokenizers` Python package is
+built. Since the Python package is in the `source/bindings/python`
+directory of the *tokenizers* project's source archive, we use
+`sourceRoot` to point the tooling to this directory:
+
+```nix
+{ fetchFromGitHub
+, buildPythonPackage
+, rustPlatform
+, setuptools-rust
+}:
+
+buildPythonPackage rec {
+  pname = "tokenizers";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = pname;
+    rev = "python-v${version}";
+    hash = "sha256-rQ2hRV52naEf6PvRsWVCTN7B1oXAQGmnpJw4iIdhamw=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src sourceRoot;
+    name = "${pname}-${version}";
+    hash = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
+  };
+
+  sourceRoot = "source/bindings/python";
+
+  nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
+
+  # ...
+}
+```
+
+In some projects, the Rust crate is not in the main Python source
+directory.  In such cases, the `cargoRoot` attribute can be used to
+specify the crate's directory relative to `sourceRoot`. In the
+following example, the crate is in `src/rust`, as specified in the
+`cargoRoot` attribute. Note that we also need to specify the correct
+path for `fetchCargoTarball`.
+
+```nix
+
+{ buildPythonPackage
+, fetchPypi
+, rustPlatform
+, setuptools-rust
+, openssl
+}:
+
+buildPythonPackage rec {
+  pname = "cryptography";
+  version = "3.4.2"; # Also update the hash in vectors.nix
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1i1mx5y9hkyfi9jrrkcw804hmkcglxi6rmf7vin7jfnbr2bf4q64";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    sourceRoot = "${pname}-${version}/${cargoRoot}";
+    name = "${pname}-${version}";
+    hash = "sha256-PS562W4L1NimqDV2H0jl5vYhL08H9est/pbIxSdYVfo=";
+  };
+
+  cargoRoot = "src/rust";
+
+  # ...
+}
+```
+
+#### Python package using `maturin`
+
+Python packages that use [Maturin](https://github.com/PyO3/maturin)
+can be built with `fetchCargoTarball`, `cargoSetupHook`, and
+`maturinBuildHook`. For example, the following (partial) derivation
+builds the `retworkx` Python package. `fetchCargoTarball` and
+`cargoSetupHook` are used to fetch and set up the crate dependencies.
+`maturinBuildHook` is used to perform the build.
+
+```nix
+{ lib
+, buildPythonPackage
+, rustPlatform
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "retworkx";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Qiskit";
+    repo = "retworkx";
+    rev = version;
+    sha256 = "11n30ldg3y3y6qxg3hbj837pnbwjkqw3nxq6frds647mmmprrd20";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-heOBK8qi2nuc/Ib+I/vLzZ1fUUD/G/KTw9d7M4Hz5O0=";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
+
+  # ...
+}
+```
+
 ## Compiling Rust crates using Nix instead of Cargo
 
 ### Simple operation
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 088bffd7c50..23e1e611a71 100644
--- a/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -93,17 +93,7 @@ in
             (if i.useDHCP != null then i.useDHCP else false));
           address = forEach (interfaceIps i)
             (ip: "${ip.address}/${toString ip.prefixLength}");
-          # IPv6PrivacyExtensions=kernel seems to be broken with networkd.
-          # Instead of using IPv6PrivacyExtensions=kernel, configure it according to the value of
-          # `tempAddress`:
-          networkConfig.IPv6PrivacyExtensions = {
-            # generate temporary addresses and use them by default
-            "default" = true;
-            # generate temporary addresses but keep using the standard EUI-64 ones by default
-            "enabled" = "prefer-public";
-            # completely disable temporary addresses
-            "disabled" = false;
-          }.${i.tempAddress};
+          networkConfig.IPv6PrivacyExtensions = "kernel";
           linkConfig = optionalAttrs (i.macAddress != null) {
             MACAddress = i.macAddress;
           } // optionalAttrs (i.mtu != null) {
diff --git a/pkgs/applications/audio/mda-lv2/default.nix b/pkgs/applications/audio/mda-lv2/default.nix
index 30d654ab87a..92f8506483f 100644
--- a/pkgs/applications/audio/mda-lv2/default.nix
+++ b/pkgs/applications/audio/mda-lv2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mda-lv2";
-  version = "1.2.4";
+  version = "1.2.6";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "1a3cv6w5xby9yn11j695rbh3c4ih7rxfxmkca9s1324ljphh06m8";
+    sha256 = "sha256-zWYRcCSuBJzzrKg/npBKcCdyJOI6lp9yqcXQEKSYV9s=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook python3 ];
diff --git a/pkgs/applications/kde/akonadi-contacts.nix b/pkgs/applications/kde/akonadi-contacts.nix
index 2076723a372..ad94c79e0f3 100644
--- a/pkgs/applications/kde/akonadi-contacts.nix
+++ b/pkgs/applications/kde/akonadi-contacts.nix
@@ -2,9 +2,9 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules,
   qtwebengine,
-  grantlee,
+  grantlee, grantleetheme,
   kdbusaddons, ki18n, kiconthemes, kio, kitemmodels, ktextwidgets, prison,
-  akonadi, akonadi-mime, kcontacts, kmime,
+  akonadi, akonadi-mime, kcontacts, kmime, libkleo,
 }:
 
 mkDerivation {
@@ -16,9 +16,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     qtwebengine
-    grantlee
+    grantlee grantleetheme
     kdbusaddons ki18n kiconthemes kio kitemmodels ktextwidgets prison
-    akonadi-mime kcontacts kmime
+    akonadi-mime kcontacts kmime libkleo
   ];
   propagatedBuildInputs = [ akonadi ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch b/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
index 58390cba226..3e5ccc9cdaa 100644
--- a/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
+++ b/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
@@ -1,6 +1,6 @@
-From 90969b9b36400d47b1afe761fb8468c1acb8a04a Mon Sep 17 00:00:00 2001
+From f4d718502ecd8242500078a7783e27caba72871e Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:19 -0500
+Date: Sun, 31 Jan 2021 11:00:03 -0600
 Subject: [PATCH 1/3] akonadi paths
 
 ---
@@ -11,10 +11,10 @@ Subject: [PATCH 1/3] akonadi paths
  4 files changed, 11 insertions(+), 40 deletions(-)
 
 diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
-index 23b4a1f..c13b658 100644
+index 31e0cf2..6436e87 100644
 --- a/src/akonadicontrol/agentmanager.cpp
 +++ b/src/akonadicontrol/agentmanager.cpp
-@@ -61,7 +61,7 @@ public:
+@@ -48,7 +48,7 @@ public:
                  []() {
                      QCoreApplication::instance()->exit(255);
                  });
@@ -23,7 +23,7 @@ index 23b4a1f..c13b658 100644
      }
  
      ~StorageProcessControl() override
-@@ -84,7 +84,7 @@ public:
+@@ -70,7 +70,7 @@ public:
                  []() {
                      qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
                  });
@@ -33,10 +33,10 @@ index 23b4a1f..c13b658 100644
  
      ~AgentServerProcessControl() override
 diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
-index 4e58f7e..e8bb532 100644
+index c98946c..aa307ca 100644
 --- a/src/akonadicontrol/agentprocessinstance.cpp
 +++ b/src/akonadicontrol/agentprocessinstance.cpp
-@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
+@@ -49,7 +49,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
      } else {
          Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
          const QStringList arguments = QStringList() << executable << identifier();
@@ -46,10 +46,10 @@ index 4e58f7e..e8bb532 100644
      }
      return true;
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
-index cac40f5..527649b 100644
+index d595a3a..99324f6 100644
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -83,7 +83,6 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -69,7 +69,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -57,7 +57,7 @@ index cac40f5..527649b 100644
      QString defaultCleanShutdownCommand;
  
  #ifndef Q_OS_WIN
-@@ -92,16 +91,7 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -78,16 +77,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
  #endif
  
      const bool defaultInternalServer = true;
@@ -75,7 +75,7 @@ index cac40f5..527649b 100644
      if (!mysqladminPath.isEmpty()) {
  #ifndef Q_OS_WIN
          defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/%4 shutdown")
-@@ -111,10 +101,10 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -97,10 +87,10 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
  #endif
      }
  
@@ -88,7 +88,7 @@ index cac40f5..527649b 100644
      qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
  
      mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
-@@ -131,7 +121,7 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -117,7 +107,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -97,7 +97,7 @@ index cac40f5..527649b 100644
      mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
      settings.endGroup();
  
-@@ -141,9 +131,6 @@ bool DbConfigMysql::init(QSettings &settings)
+@@ -127,9 +117,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
          // intentionally not namespaced as we are the only one in this db instance when using internal mode
          mDatabaseName = QStringLiteral("akonadi");
      }
@@ -107,17 +107,17 @@ index cac40f5..527649b 100644
  
      qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
  
-@@ -152,9 +139,6 @@ bool DbConfigMysql::init(QSettings &settings)
-     settings.setValue(QStringLiteral("Name"), mDatabaseName);
-     settings.setValue(QStringLiteral("Host"), mHostName);
-     settings.setValue(QStringLiteral("Options"), mConnectionOptions);
--    if (!mMysqldPath.isEmpty()) {
--        settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
--    }
-     settings.setValue(QStringLiteral("StartServer"), mInternalServer);
-     settings.endGroup();
-     settings.sync();
-@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -139,9 +126,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
+         settings.setValue(QStringLiteral("Name"), mDatabaseName);
+         settings.setValue(QStringLiteral("Host"), mHostName);
+         settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+-        if (!mMysqldPath.isEmpty()) {
+-            settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
+-        }
+         settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+         settings.endGroup();
+         settings.sync();
+@@ -214,7 +198,7 @@ bool DbConfigMysql::startInternalServer()
  #endif
  
      // generate config file
@@ -127,10 +127,10 @@ index cac40f5..527649b 100644
      const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
      if (globalConfig.isEmpty()) {
 diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
-index 09cdbd5..1c8996b 100644
+index dd273fc..05288d9 100644
 --- a/src/server/storage/dbconfigpostgresql.cpp
 +++ b/src/server/storage/dbconfigpostgresql.cpp
-@@ -141,9 +141,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -127,9 +127,7 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -140,7 +140,7 @@ index 09cdbd5..1c8996b 100644
      QString defaultPgData;
  
  #ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
-@@ -154,12 +152,8 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -140,12 +138,8 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
  
      mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
      if (mInternalServer) {
@@ -154,7 +154,7 @@ index 09cdbd5..1c8996b 100644
          defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
      }
  
-@@ -178,20 +172,14 @@ bool DbConfigPostgresql::init(QSettings &settings)
+@@ -164,20 +158,14 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -177,14 +177,14 @@ index 09cdbd5..1c8996b 100644
      qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
      mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
      if (mPgData.isEmpty()) {
-@@ -207,7 +195,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
-         settings.setValue(QStringLiteral("Port"), mHostPort);
-     }
-     settings.setValue(QStringLiteral("Options"), mConnectionOptions);
--    settings.setValue(QStringLiteral("ServerPath"), mServerPath);
-     settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
-     settings.setValue(QStringLiteral("StartServer"), mInternalServer);
-     settings.endGroup();
+@@ -194,7 +182,6 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
+             settings.setValue(QStringLiteral("Port"), mHostPort);
+         }
+         settings.setValue(QStringLiteral("Options"), mConnectionOptions);
+-        settings.setValue(QStringLiteral("ServerPath"), mServerPath);
+         settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
+         settings.setValue(QStringLiteral("StartServer"), mInternalServer);
+         settings.endGroup();
 -- 
-2.25.4
+2.29.2
 
diff --git a/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch b/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
index ac9b3146e17..24f59f67916 100644
--- a/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
+++ b/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
@@ -1,6 +1,6 @@
-From b8c6a2a017321649db8fec553a644b8da2300514 Mon Sep 17 00:00:00 2001
+From badd4be311afd37a99126c60490f1ae5daced6c4 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:35 -0500
+Date: Sun, 31 Jan 2021 11:00:15 -0600
 Subject: [PATCH 2/3] akonadi timestamps
 
 ---
@@ -8,10 +8,10 @@ Subject: [PATCH 2/3] akonadi timestamps
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
-index 527649b..08c3dd4 100644
+index 99324f6..3c170a8 100644
 --- a/src/server/storage/dbconfigmysql.cpp
 +++ b/src/server/storage/dbconfigmysql.cpp
-@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer()
+@@ -240,8 +240,7 @@ bool DbConfigMysql::startInternalServer()
      bool confUpdate = false;
      QFile actualFile(actualConfig);
      // update conf only if either global (or local) is newer than actual
@@ -22,5 +22,5 @@ index 527649b..08c3dd4 100644
          QFile localFile(localConfig);
          if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
 -- 
-2.25.4
+2.29.2
 
diff --git a/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch b/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
index 1a0bc000c80..3aa61da73e4 100644
--- a/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
+++ b/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
@@ -1,6 +1,6 @@
-From 7afe018382cf68b477b35f87b666424d62d19ef4 Mon Sep 17 00:00:00 2001
+From 82bfa975af60757374ffad787e56a981d6df0f98 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Mon, 13 Jul 2020 11:41:55 -0500
+Date: Sun, 31 Jan 2021 11:01:24 -0600
 Subject: [PATCH 3/3] akonadi revert make relocatable
 
 ---
@@ -9,10 +9,10 @@ Subject: [PATCH 3/3] akonadi revert make relocatable
  2 files changed, 3 insertions(+), 6 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d927471..83a74c0 100644
+index 4bb5fec..35720b4 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -330,9 +330,6 @@ configure_package_config_file(
+@@ -343,9 +343,6 @@ configure_package_config_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
      "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
      INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
@@ -23,29 +23,23 @@ index d927471..83a74c0 100644
  
  install(FILES
 diff --git a/KF5AkonadiConfig.cmake.in b/KF5AkonadiConfig.cmake.in
-index 421e1df..e3abf27 100644
+index bcf7320..1574319 100644
 --- a/KF5AkonadiConfig.cmake.in
 +++ b/KF5AkonadiConfig.cmake.in
-@@ -24,8 +24,8 @@ if(BUILD_TESTING)
-     find_dependency(Qt5Test "@QT_REQUIRED_VERSION@")
- endif()
+@@ -1,10 +1,10 @@
+ @PACKAGE_INIT@
  
 -set_and_check(AKONADI_DBUS_INTERFACES_DIR  "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
 -set_and_check(AKONADI_INCLUDE_DIR          "@PACKAGE_AKONADI_INCLUDE_DIR@")
 +set_and_check(AKONADI_DBUS_INTERFACES_DIR  "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
 +set_and_check(AKONADI_INCLUDE_DIR          "@AKONADI_INCLUDE_DIR@")
  
- find_dependency(Boost "@Boost_MINIMUM_VERSION@")
- 
-@@ -33,7 +33,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiTargets.cmake)
- include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiMacros.cmake)
- 
  # The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed
 -set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@")
 +set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@")
  
- ####################################################################################
- # CMAKE_AUTOMOC
+ # set the directories
+ if(NOT AKONADI_INSTALL_DIR)
 -- 
-2.25.4
+2.29.2
 
diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix
index d24e19f89e7..e0b0e2324b1 100644
--- a/pkgs/applications/kde/akonadi/default.nix
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, shared-mime-info, qtbase, accounts-qt,
   boost, kaccounts-integration, kcompletion, kconfigwidgets, kcrash, kdbusaddons,
   kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
-  signond,
+  signond, lzma,
 }:
 
 mkDerivation {
@@ -21,7 +21,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
     kaccounts-integration kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin
-    ki18n kiconthemes kio kwindowsystem accounts-qt qttools signond
+    ki18n kiconthemes kio kwindowsystem lzma accounts-qt qttools signond
   ];
   propagatedBuildInputs = [ boost kitemmodels ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/calendarsupport.nix b/pkgs/applications/kde/calendarsupport.nix
index b316ab4e568..c7ef5c4615c 100644
--- a/pkgs/applications/kde/calendarsupport.nix
+++ b/pkgs/applications/kde/calendarsupport.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam, fetchpatch,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils, kdepim-apps-libs,
+  akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils,
   kholidays, kidentitymanagement, kmime, pimcommon, qttools,
 }:
 
@@ -11,16 +11,9 @@ mkDerivation {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
-  patches = [
-    # Patch for Qt 5.15.2 until version 20.12.0
-    (fetchpatch {
-      url = "https://invent.kde.org/pim/calendarsupport/-/commit/b4193facb223bd5b73a65318dec8ced51b66adf7.patch";
-      sha256 = "sha256:1da11rqbxxrl06ld3avc41p064arz4n6w5nxq8r008v8ws3s64dy";
-    })
-  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi akonadi-mime akonadi-notes kcalutils kdepim-apps-libs kholidays pimcommon qttools
+    akonadi akonadi-mime akonadi-notes kcalutils kholidays pimcommon qttools
   ];
   propagatedBuildInputs = [ akonadi-calendar kidentitymanagement kmime ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 33f392fdccc..b312a566a70 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -109,10 +109,9 @@ let
       kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {};
       kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {};
       kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix {};
-      kdenlive = callPackage ./kdenlive.nix {};
+      kdenlive = callPackage ./kdenlive {};
       kdepim-runtime = callPackage ./kdepim-runtime {};
       kdepim-addons = callPackage ./kdepim-addons.nix {};
-      kdepim-apps-libs = callPackage ./kdepim-apps-libs {};
       kdf = callPackage ./kdf.nix {};
       kdialog = callPackage ./kdialog.nix {};
       kdiamond = callPackage ./kdiamond.nix {};
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index 3774c7e00b6..a558ad26677 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -5,7 +5,7 @@
   kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
   kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
   kparts, ktexteditor, kwindowsystem, phonon, solid,
-  wayland, qtwayland
+  wayland, qtbase, qtwayland
 }:
 
 mkDerivation {
@@ -13,6 +13,7 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 fdl12 ];
     maintainers = [ lib.maintainers.ttuegel ];
+    broken = lib.versionOlder qtbase.version "5.14";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedUserEnvPkgs = [ baloo ];
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index e3bba77f972..d659c551bd6 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/release-service/20.08.3/src -A '*.tar.xz' )
+WGET_ARGS=( http://download.kde.org/stable/release-service/20.12.1/src -A '*.tar.xz' )
diff --git a/pkgs/applications/kde/ffmpegthumbs.nix b/pkgs/applications/kde/ffmpegthumbs.nix
index 2a8b82352b4..f19ee160984 100644
--- a/pkgs/applications/kde/ffmpegthumbs.nix
+++ b/pkgs/applications/kde/ffmpegthumbs.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules,
-  ffmpeg_3, kio
+  ffmpeg_3, kio, taglib
 }:
 
 mkDerivation {
@@ -11,5 +11,5 @@ mkDerivation {
     maintainers = [ lib.maintainers.ttuegel ];
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ ffmpeg_3 kio ];
+  buildInputs = [ ffmpeg_3 kio taglib ];
 }
diff --git a/pkgs/applications/kde/filelight.nix b/pkgs/applications/kde/filelight.nix
index 1aeff531862..95a89b01b8c 100644
--- a/pkgs/applications/kde/filelight.nix
+++ b/pkgs/applications/kde/filelight.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kio, kparts, kxmlgui, qtscript, solid
+  kio, kparts, kxmlgui, qtbase, qtscript, solid
 }:
 
 mkDerivation {
@@ -9,6 +9,7 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ fridh vcunat ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
diff --git a/pkgs/applications/kde/incidenceeditor.nix b/pkgs/applications/kde/incidenceeditor.nix
index 981c184d151..7f2c284ad74 100644
--- a/pkgs/applications/kde/incidenceeditor.nix
+++ b/pkgs/applications/kde/incidenceeditor.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-mime, calendarsupport, eventviews, kdepim-apps-libs,
+  akonadi, akonadi-mime, calendarsupport, eventviews,
   kdiagram, kldap, kmime, pimcommon, qtbase
 }:
 
@@ -13,7 +13,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi akonadi-mime calendarsupport eventviews kdepim-apps-libs kdiagram
+    akonadi akonadi-mime calendarsupport eventviews kdiagram
     kldap kmime pimcommon qtbase
   ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/kaddressbook.nix b/pkgs/applications/kde/kaddressbook.nix
index 452c5142157..2672d815fb0 100644
--- a/pkgs/applications/kde/kaddressbook.nix
+++ b/pkgs/applications/kde/kaddressbook.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam, fetchpatch,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-search, grantlee, grantleetheme, kcmutils, kcompletion,
-  kcrash, kdbusaddons, kdepim-apps-libs, ki18n, kontactinterface, kparts,
+  kcrash, kdbusaddons, ki18n, kontactinterface, kparts,
   kpimtextedit, kxmlgui, libkdepim, libkleo, mailcommon, pimcommon, prison,
   qgpgme, qtbase,
 }:
@@ -13,17 +13,10 @@ mkDerivation {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
-  patches = [
-    # Patch for Qt 5.15.2 until version 20.12.0
-    (fetchpatch {
-      url = "https://invent.kde.org/pim/kaddressbook/-/commit/8aee8d40ae2a1c920d3520163d550d3b49720226.patch";
-      sha256 = "sha256:0dsy119cd5w9khiwgk6fb7xnjzmj94rfphf327k331lf15zq4853";
-    })
-  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-search grantlee grantleetheme kcmutils kcompletion kcrash
-    kdbusaddons kdepim-apps-libs ki18n kontactinterface kparts kpimtextedit
+    kdbusaddons ki18n kontactinterface kparts kpimtextedit
     kxmlgui libkdepim libkleo mailcommon pimcommon prison qgpgme qtbase
   ];
 }
diff --git a/pkgs/applications/kde/kalarm.nix b/pkgs/applications/kde/kalarm.nix
index 70ee3f74185..8709f26bd12 100644
--- a/pkgs/applications/kde/kalarm.nix
+++ b/pkgs/applications/kde/kalarm.nix
@@ -3,12 +3,13 @@
   extra-cmake-modules,
 
   kauth, kcodecs, kcompletion, kconfig, kconfigwidgets, kdbusaddons, kdoctools,
-  kguiaddons, ki18n, kiconthemes, kjobwidgets, kcmutils, kdelibs4support, kio,
-  knotifications, kservice, kwidgetsaddons, kwindowsystem, kxmlgui, phonon,
+  kguiaddons, ki18n, kiconthemes, kidletime, kjobwidgets, kcmutils,
+  kdelibs4support, kio, knotifications, knotifyconfig, kservice, kwidgetsaddons,
+  kwindowsystem, kxmlgui, phonon,
 
   kimap, akonadi, akonadi-contacts, akonadi-mime, kalarmcal, kcalendarcore, kcalutils,
   kholidays, kidentitymanagement, libkdepim, mailcommon, kmailtransport, kmime,
-  pimcommon, kpimtextedit, kdepim-apps-libs, messagelib,
+  pimcommon, kpimtextedit, messagelib,
 
   qtx11extras,
 
@@ -24,12 +25,13 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kauth kcodecs kcompletion kconfig kconfigwidgets kdbusaddons kdoctools
-    kguiaddons ki18n kiconthemes kjobwidgets kcmutils kdelibs4support kio
-    knotifications kservice kwidgetsaddons kwindowsystem kxmlgui phonon
+    kguiaddons ki18n kiconthemes kidletime kjobwidgets kcmutils kdelibs4support
+    kio knotifications knotifyconfig kservice kwidgetsaddons kwindowsystem
+    kxmlgui phonon
 
-    kimap akonadi akonadi-contacts akonadi-mime kalarmcal kcalendarcore kcalutils
-    kholidays kidentitymanagement libkdepim mailcommon kmailtransport kmime
-    pimcommon kpimtextedit kdepim-apps-libs messagelib
+    kimap akonadi akonadi-contacts akonadi-mime kalarmcal kcalendarcore
+    kcalutils kholidays kidentitymanagement libkdepim mailcommon kmailtransport
+    kmime pimcommon kpimtextedit messagelib
 
     qtx11extras
   ];
diff --git a/pkgs/applications/kde/kdebugsettings.nix b/pkgs/applications/kde/kdebugsettings.nix
index f4dd7ec145d..0287830485e 100644
--- a/pkgs/applications/kde/kdebugsettings.nix
+++ b/pkgs/applications/kde/kdebugsettings.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   gettext,
   kcoreaddons, kconfig, kdbusaddons, kwidgetsaddons, kitemviews, kcompletion,
-  python
+  qtbase, python
 }:
 
 mkDerivation {
@@ -11,6 +11,7 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.rittelle ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
diff --git a/pkgs/applications/kde/kdenetwork-filesharing.nix b/pkgs/applications/kde/kdenetwork-filesharing.nix
index 94656b02671..a7da03ffdd1 100644
--- a/pkgs/applications/kde/kdenetwork-filesharing.nix
+++ b/pkgs/applications/kde/kdenetwork-filesharing.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kcoreaddons, ki18n, kio, kwidgetsaddons, samba
+  kcoreaddons, kdeclarative, ki18n, kio, kwidgetsaddons, samba, qtbase,
 }:
 
 mkDerivation {
@@ -9,7 +9,8 @@ mkDerivation {
   meta = {
     license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [ kcoreaddons ki18n kio kwidgetsaddons samba ];
+  buildInputs = [ kcoreaddons kdeclarative ki18n kio kwidgetsaddons samba ];
 }
diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive/default.nix
index 47afcd0a67e..47afcd0a67e 100644
--- a/pkgs/applications/kde/kdenlive.nix
+++ b/pkgs/applications/kde/kdenlive/default.nix
diff --git a/pkgs/applications/kde/ffmpeg-path.patch b/pkgs/applications/kde/kdenlive/ffmpeg-path.patch
index a0cef882f59..a0cef882f59 100644
--- a/pkgs/applications/kde/ffmpeg-path.patch
+++ b/pkgs/applications/kde/kdenlive/ffmpeg-path.patch
diff --git a/pkgs/applications/kde/mlt-path.patch b/pkgs/applications/kde/kdenlive/mlt-path.patch
index 9bfb66c1a83..9bfb66c1a83 100644
--- a/pkgs/applications/kde/mlt-path.patch
+++ b/pkgs/applications/kde/kdenlive/mlt-path.patch
diff --git a/pkgs/applications/kde/kdepim-addons.nix b/pkgs/applications/kde/kdepim-addons.nix
index 0939b0ecd26..42532644a1a 100644
--- a/pkgs/applications/kde/kdepim-addons.nix
+++ b/pkgs/applications/kde/kdepim-addons.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, shared-mime-info,
   akonadi-import-wizard, akonadi-notes, calendarsupport, eventviews,
   incidenceeditor, kcalendarcore, kcalutils, kconfig, kdbusaddons, kdeclarative,
-  kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
+  kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
   libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass,
   kitinerary, kontactinterface
 }:
@@ -18,7 +18,7 @@ mkDerivation {
   buildInputs = [
     akonadi-import-wizard akonadi-notes calendarsupport eventviews
     incidenceeditor kcalendarcore kcalutils kconfig kdbusaddons kdeclarative
-    kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar
+    kholidays ki18n kmime ktexteditor ktnef libgravatar
     libksieve mailcommon mailimporter messagelib poppler prison kpkpass
     kitinerary kontactinterface
   ];
diff --git a/pkgs/applications/kde/kdepim-apps-libs/default.nix b/pkgs/applications/kde/kdepim-apps-libs/default.nix
deleted file mode 100644
index 19f476fd781..00000000000
--- a/pkgs/applications/kde/kdepim-apps-libs/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  mkDerivation, lib, kdepimTeam,
-  extra-cmake-modules, kdoctools,
-  akonadi, akonadi-contacts, grantlee, grantleetheme, kconfig, kconfigwidgets,
-  kcontacts, ki18n, kiconthemes, kio, libkleo, pimcommon, prison,
-}:
-
-mkDerivation {
-  pname = "kdepim-apps-libs";
-  meta = {
-    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-    maintainers = kdepimTeam;
-  };
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [
-    akonadi akonadi-contacts grantlee grantleetheme kconfig kconfigwidgets
-    kcontacts ki18n kiconthemes kio libkleo pimcommon prison
-  ];
-  outputs = [ "out" "dev" ];
-}
diff --git a/pkgs/applications/kde/kmail.nix b/pkgs/applications/kde/kmail.nix
index fa3fe033035..e742f566678 100644
--- a/pkgs/applications/kde/kmail.nix
+++ b/pkgs/applications/kde/kmail.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi-search, kbookmarks, kcalutils, kcmutils, kcompletion, kconfig,
-  kconfigwidgets, kcoreaddons, kdelibs4support, kdepim-apps-libs, libkdepim,
+  kconfigwidgets, kcoreaddons, kdelibs4support, libkdepim,
   kdepim-runtime, kguiaddons, ki18n, kiconthemes, kinit, kio, kldap,
   kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
   kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
@@ -19,7 +19,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi-search kbookmarks kcalutils kcmutils kcompletion kconfig
-    kconfigwidgets kcoreaddons kdelibs4support kdepim-apps-libs kguiaddons ki18n
+    kconfigwidgets kcoreaddons kdelibs4support kguiaddons ki18n
     kiconthemes kinit kio kldap kmail-account-wizard kmailtransport libkdepim
     knotifications knotifyconfig kontactinterface kparts kpty kservice
     ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
diff --git a/pkgs/applications/kde/kompare.nix b/pkgs/applications/kde/kompare.nix
index a449a1e4f51..d4d49c6a942 100644
--- a/pkgs/applications/kde/kompare.nix
+++ b/pkgs/applications/kde/kompare.nix
@@ -12,15 +12,5 @@ mkDerivation {
   buildInputs = [
     kiconthemes kparts ktexteditor kwidgetsaddons libkomparediff2
   ];
-
-  patches = [
-    (fetchpatch {
-      # Portaway from Obsolete methods of QPrinter
-      # Part of v20.12.0
-      url = "https://invent.kde.org/sdk/kompare/-/commit/68d3eee36c48a2f44ccfd3f9e5a36311b829104b.patch";
-      sha256 = "B2i5n5cUDjCqTEF0OyTb1+LhPa5yWCnFycwijf35kwU=";
-    })
-  ];
-
   outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/konqueror.nix b/pkgs/applications/kde/konqueror.nix
index 72fcf8ff220..eb188ccef11 100644
--- a/pkgs/applications/kde/konqueror.nix
+++ b/pkgs/applications/kde/konqueror.nix
@@ -2,7 +2,7 @@
 , mkDerivation
 , extra-cmake-modules, kdoctools
 , kdelibs4support, kcmutils, khtml, kdesu
-, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
+, qtbase, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
 }:
 
 mkDerivation {
@@ -24,5 +24,6 @@ mkDerivation {
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ ];
+    broken = lib.versionOlder qtbase.version "5.13";
   };
 }
diff --git a/pkgs/applications/kde/kontact.nix b/pkgs/applications/kde/kontact.nix
index 3dfa28e9dfe..801c6845e40 100644
--- a/pkgs/applications/kde/kontact.nix
+++ b/pkgs/applications/kde/kontact.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   qtwebengine,
   kcmutils, kcrash, kdbusaddons, kparts, kwindowsystem,
-  akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit,
+  akonadi, grantleetheme, kontactinterface, kpimtextedit,
   mailcommon, libkdepim, pimcommon
 }:
 
@@ -17,7 +17,7 @@ mkDerivation {
   buildInputs = [
     qtwebengine
     kcmutils kcrash kdbusaddons kparts kwindowsystem
-    akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit
+    akonadi grantleetheme kontactinterface kpimtextedit
     mailcommon libkdepim pimcommon
   ];
 }
diff --git a/pkgs/applications/kde/korganizer.nix b/pkgs/applications/kde/korganizer.nix
index f28e0406b13..a6a28427772 100644
--- a/pkgs/applications/kde/korganizer.nix
+++ b/pkgs/applications/kde/korganizer.nix
@@ -5,7 +5,7 @@
   phonon,
   knewstuff,
   akonadi-calendar, akonadi-contacts, akonadi-notes, akonadi-search,
-  calendarsupport, eventviews, incidenceeditor, kcalutils, kdepim-apps-libs,
+  calendarsupport, eventviews, incidenceeditor, kcalutils,
   kholidays, kidentitymanagement, kldap, kmailtransport, kontactinterface,
   kpimtextedit, pimcommon,
 }:
@@ -22,7 +22,7 @@ mkDerivation {
     phonon
     knewstuff
     akonadi-calendar akonadi-contacts akonadi-notes akonadi-search
-    calendarsupport eventviews incidenceeditor kcalutils kdepim-apps-libs
+    calendarsupport eventviews incidenceeditor kcalutils
     kholidays kidentitymanagement kldap kmailtransport kontactinterface
     kpimtextedit pimcommon
   ];
diff --git a/pkgs/applications/kde/kpat.nix b/pkgs/applications/kde/kpat.nix
index d1e47af6b72..96bd6dd542e 100644
--- a/pkgs/applications/kde/kpat.nix
+++ b/pkgs/applications/kde/kpat.nix
@@ -5,6 +5,7 @@
 , shared-mime-info
 , libkdegames
 , freecell-solver
+, black-hole-solver
 }:
 
 mkDerivation {
@@ -14,6 +15,7 @@ mkDerivation {
     shared-mime-info
   ];
   buildInputs = [
+    black-hole-solver
     knewstuff
     libkdegames
     freecell-solver
diff --git a/pkgs/applications/kde/krdc.nix b/pkgs/applications/kde/krdc.nix
index 01cc39d9895..b0e79b0ff89 100644
--- a/pkgs/applications/kde/krdc.nix
+++ b/pkgs/applications/kde/krdc.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools, makeWrapper,
   kcmutils, kcompletion, kconfig, kdnssd, knotifyconfig, kwallet, kwidgetsaddons,
-  kwindowsystem, libvncserver, freerdp
+  kwindowsystem, libvncserver, freerdp, qtbase,
 }:
 
 mkDerivation {
@@ -21,5 +21,6 @@ mkDerivation {
     license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
+    broken = lib.versionOlder qtbase.version "5.14";
   };
 }
diff --git a/pkgs/applications/kde/messagelib.nix b/pkgs/applications/kde/messagelib.nix
index d47a5504417..6709a1f072a 100644
--- a/pkgs/applications/kde/messagelib.nix
+++ b/pkgs/applications/kde/messagelib.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-mime, akonadi-notes, akonadi-search, gpgme, grantlee,
   grantleetheme, karchive, kcodecs, kconfig, kconfigwidgets, kcontacts,
-  kdepim-apps-libs, kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
+  kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
   kmailtransport, kmbox, kmime, kwindowsystem, libgravatar, libkdepim, libkleo,
   pimcommon, qca-qt5, qtwebengine, syntax-highlighting
 }:
@@ -17,7 +17,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi-notes akonadi-search gpgme grantlee grantleetheme karchive kcodecs
-    kconfig kconfigwidgets kdepim-apps-libs kiconthemes kio kjobwidgets kldap
+    kconfig kconfigwidgets kiconthemes kio kjobwidgets kldap
     kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qca-qt5
     syntax-highlighting
   ];
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 5ff13eaf240..f78d29db6bc 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1731 +4,1795 @@
 
 {
   akonadi = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-20.08.3.tar.xz";
-      sha256 = "1hwaan45cyw2nmfmdp5pbhvm00xdxy9la68ms3sa8a67zcsfljhl";
-      name = "akonadi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadi-20.12.1.tar.xz";
+      sha256 = "1173365c84fq5vn58blsmbdp9x34gf2yrwvsi89i0l7xhpz8zx5k";
+      name = "akonadi-20.12.1.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-calendar-20.08.3.tar.xz";
-      sha256 = "18rwvn5i6i4ng335rxpwx3a2m4vyq96w9m3fa1gvmr8ls7vkaqrk";
-      name = "akonadi-calendar-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadi-calendar-20.12.1.tar.xz";
+      sha256 = "0zzy4f03zypj4crjy0fhk5xjgipflal3gpfibav2wcmgx034znw5";
+      name = "akonadi-calendar-20.12.1.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-calendar-tools-20.08.3.tar.xz";
-      sha256 = "1pnm3xi26bnbjmnv9zwi9w5rkr1pdry50hzy3gxw7b0g11zz036w";
-      name = "akonadi-calendar-tools-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadi-calendar-tools-20.12.1.tar.xz";
+      sha256 = "1x5zmv32iaf17n9b8y034yhwq0dhwjwxw3i5cj97k4dpyar5s72q";
+      name = "akonadi-calendar-tools-20.12.1.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadiconsole-20.08.3.tar.xz";
-      sha256 = "061r0p9pj22x0hiz6piz4vramll3w5xy92sx8nfhcp2gmnvj9890";
-      name = "akonadiconsole-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadiconsole-20.12.1.tar.xz";
+      sha256 = "0rf7ckra0yjkwspmd4401lssiss2p8qrw9rd6j5gbw7kii05bcmz";
+      name = "akonadiconsole-20.12.1.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-contacts-20.08.3.tar.xz";
-      sha256 = "18n9x41fmh4q9q9lfv882iwk6j1hvgpl11y4qn873vwr9sdrcf4s";
-      name = "akonadi-contacts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadi-contacts-20.12.1.tar.xz";
+      sha256 = "0gxcs8nn07y6ln5ymsbdhcm63zqxcq2ja2sxziim65bfg9g85arl";
+      name = "akonadi-contacts-20.12.1.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-import-wizard-20.08.3.tar.xz";
-      sha256 = "0gny0rxvyks5w4rdb73ly06lyvz7kcfvff1268bn6i96xr83kmim";
-      name = "akonadi-import-wizard-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadi-import-wizard-20.12.1.tar.xz";
+      sha256 = "1wdhgvv2zblyhcxrvby7ic3449hdmcnn3hvcswgwrgbcy4bzz7zz";
+      name = "akonadi-import-wizard-20.12.1.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-mime-20.08.3.tar.xz";
-      sha256 = "12ps633y64mj72iryd9z2nmrf7lxbkqj7xnzj28549cvg6jizgl7";
-      name = "akonadi-mime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadi-mime-20.12.1.tar.xz";
+      sha256 = "1xsrc8572zlslabn47km58sr48wdb0pmfrh3jbn9227w9iwir3z5";
+      name = "akonadi-mime-20.12.1.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-notes-20.08.3.tar.xz";
-      sha256 = "1z90r37lqc7ydmily730idd4s8rcbr6i3a8x9m647snbala16z36";
-      name = "akonadi-notes-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadi-notes-20.12.1.tar.xz";
+      sha256 = "15d23wm0kymifcxcbip0hpnzwmzdjwxmcvqvmwgq00vy81j6k7wm";
+      name = "akonadi-notes-20.12.1.tar.xz";
     };
   };
   akonadi-search = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-search-20.08.3.tar.xz";
-      sha256 = "0izpkvjybp6r79rai0p5j74bm0f8ksgsl3z34ggb51j6vj9rla7h";
-      name = "akonadi-search-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akonadi-search-20.12.1.tar.xz";
+      sha256 = "065qp3nf8274fh0bna8hjs28p030wgfnr3gnp7b2791kzp25l488";
+      name = "akonadi-search-20.12.1.tar.xz";
     };
   };
   akregator = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/akregator-20.08.3.tar.xz";
-      sha256 = "1gqh820s5by3r9lz7r16r0krh916idsks6sgy26hcrwfmva45wn5";
-      name = "akregator-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/akregator-20.12.1.tar.xz";
+      sha256 = "0xs5adbq9ra0ziccl1z0nsm6kvrf8vjwa8djd3nwc2csjw8wim5k";
+      name = "akregator-20.12.1.tar.xz";
     };
   };
   analitza = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/analitza-20.08.3.tar.xz";
-      sha256 = "16s6kjyclj73lq8z8mvrbsl75h1nrnv7syp6wpip6gvfs5ynai90";
-      name = "analitza-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/analitza-20.12.1.tar.xz";
+      sha256 = "1qnqqbrjpzndbffjwqlyfqmxxxz04fi3i2g8dx6y8q79z927fzkd";
+      name = "analitza-20.12.1.tar.xz";
     };
   };
   ark = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ark-20.08.3.tar.xz";
-      sha256 = "03kwjp2nj570k9ph8bgj042sjj4x0h9jwv8nwx0pfpcxkgxv5pzy";
-      name = "ark-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ark-20.12.1.tar.xz";
+      sha256 = "18zaaawwhlci23hkzjl535qsi8wdjc05hij3r76225jb1jb6cwrm";
+      name = "ark-20.12.1.tar.xz";
     };
   };
   artikulate = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/artikulate-20.08.3.tar.xz";
-      sha256 = "0bx97qi6zi7jmlzm3g7qamnzg0966g4w9xpskbxbr4cgjr312x19";
-      name = "artikulate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/artikulate-20.12.1.tar.xz";
+      sha256 = "1cvpya408r521p9398mk0xn8pb6awqm74qcjy2r0ylx0l6bkv3ca";
+      name = "artikulate-20.12.1.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/audiocd-kio-20.08.3.tar.xz";
-      sha256 = "01n4nyda7l7by1nyx2sgxdl8qkdfndk0w6hj0qc6a7fllcfj5cpb";
-      name = "audiocd-kio-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/audiocd-kio-20.12.1.tar.xz";
+      sha256 = "1rlr1w0cy3q31jsaqiv50frqcl3x5jq31pnrkmyhgy23mays8ly1";
+      name = "audiocd-kio-20.12.1.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/baloo-widgets-20.08.3.tar.xz";
-      sha256 = "0ciidrsvwc3ppxhw7w5116q4lfbsvij9jsvyzm292pmjln2vikrg";
-      name = "baloo-widgets-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/baloo-widgets-20.12.1.tar.xz";
+      sha256 = "115y0cdlsdzx6c017gr8x6in9jxyw0sqyamakqgfyy5phn203yr3";
+      name = "baloo-widgets-20.12.1.tar.xz";
     };
   };
   blinken = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/blinken-20.08.3.tar.xz";
-      sha256 = "1gfw0w66nm3sx81bnr0p0yz1bhjj63lvd3cr86x3b2pny5rcw1da";
-      name = "blinken-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/blinken-20.12.1.tar.xz";
+      sha256 = "05dbmh1lk1ag735yiv7vql6fx15lw9a3qihxflzhbfrgng7dsxks";
+      name = "blinken-20.12.1.tar.xz";
     };
   };
   bomber = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/bomber-20.08.3.tar.xz";
-      sha256 = "1nw1a9cf0nqgk00hvzcqch3bl97lx6bih0wsax5q0z1kzwlz0kgr";
-      name = "bomber-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/bomber-20.12.1.tar.xz";
+      sha256 = "07iy6b8hwklb5mgrf8sagmrza78p3yf7i4x7w9lb2z9v2x5qw22y";
+      name = "bomber-20.12.1.tar.xz";
     };
   };
   bovo = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/bovo-20.08.3.tar.xz";
-      sha256 = "06pbivyvfgjx6zkadvwfwnrg9vjy4rf52k2a74qjcnl2ms16sr1g";
-      name = "bovo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/bovo-20.12.1.tar.xz";
+      sha256 = "1wrw81xrayhjadvjfi0zdc0vw445f4zmd32n0rca78i68ls5qbxv";
+      name = "bovo-20.12.1.tar.xz";
     };
   };
   calendarsupport = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/calendarsupport-20.08.3.tar.xz";
-      sha256 = "09w06n745764fs440nh0piy5sahfn50kh3zrljhgzadcij6165vd";
-      name = "calendarsupport-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/calendarsupport-20.12.1.tar.xz";
+      sha256 = "1accj2vx6zvqp632i5c85q4rzpg54xlihzf1rs80sdb9lch8nwrp";
+      name = "calendarsupport-20.12.1.tar.xz";
     };
   };
   cantor = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/cantor-20.08.3.tar.xz";
-      sha256 = "1njqycx0v3zq5mdcvfdfgxs8vgl01v80s27qgapsxxrgr9hgxbhl";
-      name = "cantor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/cantor-20.12.1.tar.xz";
+      sha256 = "1qj6lmcgmqr110qw2r906b0kp73f9gzvm75ry1gdb77bza5g67x2";
+      name = "cantor-20.12.1.tar.xz";
     };
   };
   cervisia = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/cervisia-20.08.3.tar.xz";
-      sha256 = "1bsc72kxcmzx25408ngzqzj4a0168vqfr3a2gvmm6d8klbgpm3gv";
-      name = "cervisia-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/cervisia-20.12.1.tar.xz";
+      sha256 = "0hnpysp01z5a3gmm2jr2m1y7a5hcfl32lhmnrm0rg589pdxb30xf";
+      name = "cervisia-20.12.1.tar.xz";
     };
   };
   dolphin = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dolphin-20.08.3.tar.xz";
-      sha256 = "107n763qix95b1hgy86hddpj9x2clzhaiw8q8yjn9lzj1rz5facx";
-      name = "dolphin-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/dolphin-20.12.1.tar.xz";
+      sha256 = "0n2g8mqq28xrjy17jyja4siaf2ac2b8gppqc19wjxn981zs545mp";
+      name = "dolphin-20.12.1.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dolphin-plugins-20.08.3.tar.xz";
-      sha256 = "0fmay0sycfj9s7zyxbldgcal5lj2psi0n9zrgq812s5qr4rb5c8c";
-      name = "dolphin-plugins-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/dolphin-plugins-20.12.1.tar.xz";
+      sha256 = "0kn79c3w6qx70d7f8kdavl5ifq1pmcs4dc88i0zma8hskgvcjvcj";
+      name = "dolphin-plugins-20.12.1.tar.xz";
     };
   };
   dragon = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/dragon-20.08.3.tar.xz";
-      sha256 = "14qsb7h8w58i9jsh1gpcj8pwjgy7y3mqfy51hca82yrd82z5b9rn";
-      name = "dragon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/dragon-20.12.1.tar.xz";
+      sha256 = "0nj2cba4w7q4q1w7lv63s9zgqrvha5figp5w9apklqps4z1d2p0s";
+      name = "dragon-20.12.1.tar.xz";
     };
   };
   elisa = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/elisa-20.08.3.tar.xz";
-      sha256 = "0893nbj0jsapnfd09cp961k2m7lq6sjvzynpa4hfp9ch1jbc912c";
-      name = "elisa-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/elisa-20.12.1.tar.xz";
+      sha256 = "1lmgxi7xdyzjyi15ighkp2ylc6riqzgjmnfjc7p6na88vl2h2diy";
+      name = "elisa-20.12.1.tar.xz";
     };
   };
   eventviews = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/eventviews-20.08.3.tar.xz";
-      sha256 = "158j5g3i0wbbxpg9jmr50dvbpms4c4vgcnpmn3b3vfbszzwsy6rg";
-      name = "eventviews-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/eventviews-20.12.1.tar.xz";
+      sha256 = "10nq8gx1bybhjx5dnrx2x5gslg8nw3vazy22jz03slgspm0gsajc";
+      name = "eventviews-20.12.1.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ffmpegthumbs-20.08.3.tar.xz";
-      sha256 = "186hpq949r3xx2a64nqjy4pcn67d6kdvsy80zr238lgb9qqcqygi";
-      name = "ffmpegthumbs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ffmpegthumbs-20.12.1.tar.xz";
+      sha256 = "17p9xqyfsaibhkfkhbx9mxjkdl5xdc3h91gsrkkwkqyfa5vs9c5g";
+      name = "ffmpegthumbs-20.12.1.tar.xz";
     };
   };
   filelight = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/filelight-20.08.3.tar.xz";
-      sha256 = "1jljsnjdhnqphh1kanj6hi2rswq3i9119iah1j33jy5pladcyf5q";
-      name = "filelight-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/filelight-20.12.1.tar.xz";
+      sha256 = "0k7ia3q1j520n3i1va7v4nhdfycxv54sis6vq62ihm53kb0jrj4i";
+      name = "filelight-20.12.1.tar.xz";
     };
   };
   granatier = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/granatier-20.08.3.tar.xz";
-      sha256 = "195bc2rcz11v76c0cwa9mb7rfixjn7sb0a52wrzz0sf9624m0rcs";
-      name = "granatier-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/granatier-20.12.1.tar.xz";
+      sha256 = "0mhqjg0wznvf1dc7f9dmw6ccva84g09cds2jls37zzblqbfdnzw3";
+      name = "granatier-20.12.1.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/grantlee-editor-20.08.3.tar.xz";
-      sha256 = "1k2rdicd68jdk3pazyn3q0vj99n0vnkpzkrnacpymkjy85cjgrv9";
-      name = "grantlee-editor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/grantlee-editor-20.12.1.tar.xz";
+      sha256 = "1684k6gpmvbbxjha5qkvfvas2lws0zm5v5s41z6yjxyshrbc29jh";
+      name = "grantlee-editor-20.12.1.tar.xz";
     };
   };
   grantleetheme = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/grantleetheme-20.08.3.tar.xz";
-      sha256 = "07b7v5v2vyz3vyj1jjzryzaak8bbqg8a2caxwb6s7cwhy19y6my5";
-      name = "grantleetheme-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/grantleetheme-20.12.1.tar.xz";
+      sha256 = "1w87pz09lb3n511w0qir70c317j4gqgc7iyw3cgs2pqzz9f19vcx";
+      name = "grantleetheme-20.12.1.tar.xz";
     };
   };
   gwenview = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/gwenview-20.08.3.tar.xz";
-      sha256 = "09mwp3z97hgd7c15w0hz8k61qn5icb81rj27nxzy877ph1xnrixc";
-      name = "gwenview-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/gwenview-20.12.1.tar.xz";
+      sha256 = "0xjipr1ib8r42xsd75ack2198q6gf3xxl1zc9ir2ihdk3sg6lsb1";
+      name = "gwenview-20.12.1.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/incidenceeditor-20.08.3.tar.xz";
-      sha256 = "15kkl8z1nig9qyxfrq54c3sqh1xs1lzlbm5rphj34y0yb8dbn8kx";
-      name = "incidenceeditor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/incidenceeditor-20.12.1.tar.xz";
+      sha256 = "1hdyy1sisavxjhwgpxh4ab4a3cvsvjj6hfa9w8kn8ypipd6nmqac";
+      name = "incidenceeditor-20.12.1.tar.xz";
+    };
+  };
+  itinerary = {
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/itinerary-20.12.1.tar.xz";
+      sha256 = "02mmbj32ankv06mlgdrfyppkfi1dkgy9ky22d6bnz3l1vyld76s9";
+      name = "itinerary-20.12.1.tar.xz";
     };
   };
   juk = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/juk-20.08.3.tar.xz";
-      sha256 = "1jvj0r4grm55cnck4apnh4fh44mv1ycm0pprrkh57iwj1dlf7kif";
-      name = "juk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/juk-20.12.1.tar.xz";
+      sha256 = "0rx4dmnk15xrf9knwsvjmf963xn59rlzwwsa6wrjjpi8r6br8x4r";
+      name = "juk-20.12.1.tar.xz";
     };
   };
   k3b = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/k3b-20.08.3.tar.xz";
-      sha256 = "0qg2p6gdg0clgv6qab5vr0i451m9hqqmpwq335w8m9nwb6wg30cx";
-      name = "k3b-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/k3b-20.12.1.tar.xz";
+      sha256 = "02ybzn8gg82r7i7rg8swyza30zwsf3fassmp6hqffn15g4kc2lrp";
+      name = "k3b-20.12.1.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaccounts-integration-20.08.3.tar.xz";
-      sha256 = "006cglw5ai274a1r5jbk109mdrvw8v6fp3cdyi1kbrq7lp3123a2";
-      name = "kaccounts-integration-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kaccounts-integration-20.12.1.tar.xz";
+      sha256 = "01xy3ih2fw4xnf5jkadrbq1dzmvvvrslbq4afj9501vhzyfqgm92";
+      name = "kaccounts-integration-20.12.1.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaccounts-providers-20.08.3.tar.xz";
-      sha256 = "1vpv366bzj0sk7dqyxrq06a8ixgaaqi125mf2gmybvhj5yvrn3fp";
-      name = "kaccounts-providers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kaccounts-providers-20.12.1.tar.xz";
+      sha256 = "1f3gr63jwm7b8nkpdmpkgvsrhrpaxf7wcl0gczhdli1v6svjv8vq";
+      name = "kaccounts-providers-20.12.1.tar.xz";
     };
   };
   kaddressbook = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kaddressbook-20.08.3.tar.xz";
-      sha256 = "00mia1jh2c5rcnsyx3wizjdg65pvpazfb8ayppjzv4rrc2nhr9nn";
-      name = "kaddressbook-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kaddressbook-20.12.1.tar.xz";
+      sha256 = "0j6mjj902h5zpipywp5xhbifrbgrb1lz1cg317md7ya4wc7z36fp";
+      name = "kaddressbook-20.12.1.tar.xz";
     };
   };
   kajongg = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kajongg-20.08.3.tar.xz";
-      sha256 = "0wr045xqm1q03vy0jbgrldpdc9k3lgnhd39yhi574la367ayffpa";
-      name = "kajongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kajongg-20.12.1.tar.xz";
+      sha256 = "0v9sq5l6w3x78dpimdlbm36g9n4qy06xr0bzfzn2jf3bzgzrn2zk";
+      name = "kajongg-20.12.1.tar.xz";
     };
   };
   kalarm = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalarm-20.08.3.tar.xz";
-      sha256 = "0194rapyvnpmhkba0rgclrai1ywx9anr8dski0j6z1yg0kgav8df";
-      name = "kalarm-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kalarm-20.12.1.tar.xz";
+      sha256 = "0k4fxrzxb6vvpdqlln4g7iz1s34d9jkk415c44f1i34kl2mfsyq0";
+      name = "kalarm-20.12.1.tar.xz";
     };
   };
   kalarmcal = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalarmcal-20.08.3.tar.xz";
-      sha256 = "1i9hi3y4j2pmdmlj13kl13vfplxrh8w23fxz0mmawi1wn533fp66";
-      name = "kalarmcal-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kalarmcal-20.12.1.tar.xz";
+      sha256 = "104fbq2mf20p67rs7x76h36qk8d0srkkll2pq39ln4hc7nhsrws5";
+      name = "kalarmcal-20.12.1.tar.xz";
     };
   };
   kalgebra = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalgebra-20.08.3.tar.xz";
-      sha256 = "0k7miil5ilrw68j6xl9g6cf3zfw7g52h0gfwd5j248nx2nxr150c";
-      name = "kalgebra-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kalgebra-20.12.1.tar.xz";
+      sha256 = "10y9zygpik418y5781xmy5xysvf3xa97sbzdbch8lrvxwprbmkzm";
+      name = "kalgebra-20.12.1.tar.xz";
     };
   };
   kalzium = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kalzium-20.08.3.tar.xz";
-      sha256 = "1r80bnpdrybsdwcblpj7cg32dv90l79gs0i42gpm6inilfr3vp5n";
-      name = "kalzium-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kalzium-20.12.1.tar.xz";
+      sha256 = "1n1ar12zq2maa4dn5yq7m6l3m60n7c98c460mrd6rp7f73kadnsj";
+      name = "kalzium-20.12.1.tar.xz";
     };
   };
   kamera = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kamera-20.08.3.tar.xz";
-      sha256 = "06fwxdgbyywdrf1r0w17w3chfr0s8jhqswz9chmdfds9f2bb45cr";
-      name = "kamera-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kamera-20.12.1.tar.xz";
+      sha256 = "1bj01d9h26ifq8nsa1bw49xfihmisnbk7p557zpqvixxayq6v8dq";
+      name = "kamera-20.12.1.tar.xz";
     };
   };
   kamoso = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kamoso-20.08.3.tar.xz";
-      sha256 = "0zhl3va65ajz3hdggg0jvvgvj14s461pjw9adw9bnfcbs4jzkl2y";
-      name = "kamoso-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kamoso-20.12.1.tar.xz";
+      sha256 = "087m9lphj6s0xssaryyh91gh9v3ji5423rjd549dkd3vscgda4lb";
+      name = "kamoso-20.12.1.tar.xz";
     };
   };
   kanagram = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kanagram-20.08.3.tar.xz";
-      sha256 = "1cyx8yq03xaw34ic69ghz9gafk8l30qinp0kkp9a1wh4pry8rnxf";
-      name = "kanagram-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kanagram-20.12.1.tar.xz";
+      sha256 = "0bflybrm3kz1p1n6fksihvd8m0h0jj968b2wjz88663bs48jqf6q";
+      name = "kanagram-20.12.1.tar.xz";
     };
   };
   kapman = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kapman-20.08.3.tar.xz";
-      sha256 = "0nh1f0v026rib5ahj1mhvs99yabrgdq71bis465vfpm4favnirzy";
-      name = "kapman-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kapman-20.12.1.tar.xz";
+      sha256 = "1hs88q4h5l58fvr09vb5ns9pdj4k064ax5ccnj9yan4bn0s9b4f9";
+      name = "kapman-20.12.1.tar.xz";
     };
   };
   kapptemplate = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kapptemplate-20.08.3.tar.xz";
-      sha256 = "1r98ym9sazjzknxfw58hjiyxhmi49fyhrdn02v0b8fm711vprxab";
-      name = "kapptemplate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kapptemplate-20.12.1.tar.xz";
+      sha256 = "1a8fpwbvs2zmmak7zyv75z67ja31vx68s9lz9vldmiik9rrslyy6";
+      name = "kapptemplate-20.12.1.tar.xz";
     };
   };
   kate = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kate-20.08.3.tar.xz";
-      sha256 = "1m7ximinknc0l9zqv4p25ybn6zysz59l4vvdb9xkhjp53aqskdz9";
-      name = "kate-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kate-20.12.1.tar.xz";
+      sha256 = "13m24b3fxb1d1k9rg2xfa7i28cjx68g9dbjrbd34acmpg01vp6vk";
+      name = "kate-20.12.1.tar.xz";
     };
   };
   katomic = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/katomic-20.08.3.tar.xz";
-      sha256 = "1v31x6371r9ccvc676vq5dlpkp4829xf0r37dnvdxlfm22mgsdnk";
-      name = "katomic-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/katomic-20.12.1.tar.xz";
+      sha256 = "15s5kwddd1m9g5lhpc61bj6yzxpwzcc8fm24yhslb8l44nk685id";
+      name = "katomic-20.12.1.tar.xz";
     };
   };
   kbackup = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbackup-20.08.3.tar.xz";
-      sha256 = "1sayzvj46ckhn5zgp7qi6zmrmd7bjh5mg05mcl5pfwv4dcvxkrng";
-      name = "kbackup-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kbackup-20.12.1.tar.xz";
+      sha256 = "043dkgpdk56jmx0z8izlgj8r9j8h9rvjc3yalpqd5nrlgmj0smym";
+      name = "kbackup-20.12.1.tar.xz";
     };
   };
   kblackbox = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kblackbox-20.08.3.tar.xz";
-      sha256 = "0vka2pswbza1z8f97nhxcjrczx4w1x0qyjpzs9ycn9a14smqpsrh";
-      name = "kblackbox-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kblackbox-20.12.1.tar.xz";
+      sha256 = "001yf4j14xzpabwg37yisls5na9rpxpgs45d4wdlqa90d50syzl7";
+      name = "kblackbox-20.12.1.tar.xz";
     };
   };
   kblocks = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kblocks-20.08.3.tar.xz";
-      sha256 = "1jc063xn6dphydf49kv0izzy0nv06dr412xxjvkp7vccwv9qd5gf";
-      name = "kblocks-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kblocks-20.12.1.tar.xz";
+      sha256 = "029dxqg2d6c08r99ng16lc3b1dnnrj5bpz25zgv90aygzx31qq4s";
+      name = "kblocks-20.12.1.tar.xz";
     };
   };
   kbounce = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbounce-20.08.3.tar.xz";
-      sha256 = "0863vlirljvf101mdv6jxprj9axs4cikrnld3wvxrcqw3w2dy6wy";
-      name = "kbounce-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kbounce-20.12.1.tar.xz";
+      sha256 = "1vdc7xhbh0wpvk66sqs0xly0mmbpw922vg4kjjn21awamv4r52pm";
+      name = "kbounce-20.12.1.tar.xz";
     };
   };
   kbreakout = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbreakout-20.08.3.tar.xz";
-      sha256 = "14nd1dnbdyxv59y8iildhydhxgal38hvj7bk6544glwl8yalak8z";
-      name = "kbreakout-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kbreakout-20.12.1.tar.xz";
+      sha256 = "11bx32lffagmyvxx2wss794fy3icz9k5yq4mjs2qxpf9pyvg6qgd";
+      name = "kbreakout-20.12.1.tar.xz";
     };
   };
   kbruch = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kbruch-20.08.3.tar.xz";
-      sha256 = "03s1hl4h8rsx0gn7wqfssi1ga4igx48jb47gpw6f9rfjm8f199vb";
-      name = "kbruch-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kbruch-20.12.1.tar.xz";
+      sha256 = "06sbr6wrn4nh69hq96i5rgzbr9g0rc6c54h9g2zpnpff339lnsqi";
+      name = "kbruch-20.12.1.tar.xz";
     };
   };
   kcachegrind = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcachegrind-20.08.3.tar.xz";
-      sha256 = "17j06z9cpj5qhfbp1xgw4qmhi4jckf2i99c9brys4ifb3p0rkbrs";
-      name = "kcachegrind-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kcachegrind-20.12.1.tar.xz";
+      sha256 = "0v06y1mybda4rmvjrjxhmxp7bj0wp6v45xahn08j253d20k7qixi";
+      name = "kcachegrind-20.12.1.tar.xz";
     };
   };
   kcalc = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcalc-20.08.3.tar.xz";
-      sha256 = "1mk30fkv51w3fqlpkzgm1yj5sp98h26kkphplqkjva5v6s1jzmjy";
-      name = "kcalc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kcalc-20.12.1.tar.xz";
+      sha256 = "1p59i6k0kq4xgcfsgcsb9z3yrrzgk564fh0apwmbawrmg6pp78dw";
+      name = "kcalc-20.12.1.tar.xz";
     };
   };
   kcalutils = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcalutils-20.08.3.tar.xz";
-      sha256 = "1i2yh4gvdwlylj7f7p32g1z7lzh3p19rrbd96l1gqhy700f2whpw";
-      name = "kcalutils-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kcalutils-20.12.1.tar.xz";
+      sha256 = "0b7w9n8sf31qbpxiw998xd4dls46mxf2bvl4n937vgzisfwb5sxs";
+      name = "kcalutils-20.12.1.tar.xz";
     };
   };
   kcharselect = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcharselect-20.08.3.tar.xz";
-      sha256 = "1p6rijjfa2jk4vr0ivjn6p5qf2ys5kvhw0cwfyjs45ff7zg0s2ga";
-      name = "kcharselect-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kcharselect-20.12.1.tar.xz";
+      sha256 = "1ss5zwp0zggk9phdccj7bcn8h49p9avzg8qm38c3wnwddgaw1pdb";
+      name = "kcharselect-20.12.1.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcolorchooser-20.08.3.tar.xz";
-      sha256 = "1874qa04whiivyydxfcn0f1xch515ga1af4ym42zqz64j3kq7i47";
-      name = "kcolorchooser-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kcolorchooser-20.12.1.tar.xz";
+      sha256 = "07qvwk8amvmgiwxrl6gbyf25ms666hradmg1vl8lf3hmfxx6j40z";
+      name = "kcolorchooser-20.12.1.tar.xz";
     };
   };
   kcron = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kcron-20.08.3.tar.xz";
-      sha256 = "1piwssyg9fvah25gql6w0n8xf634f6gy475cz52gb1bl7rp72q6j";
-      name = "kcron-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kcron-20.12.1.tar.xz";
+      sha256 = "01xabwaxhxgwk6kh44rz3fm20jis2f6g9mrska5s03gxk7n0p1dc";
+      name = "kcron-20.12.1.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdebugsettings-20.08.3.tar.xz";
-      sha256 = "11xnvr9qib3hnp48whsw659c724s2114p5dr3fswvhm3hkw1aky7";
-      name = "kdebugsettings-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdebugsettings-20.12.1.tar.xz";
+      sha256 = "1jlxp6v6yci4cff1mcz0w7dz0hfjig0wck9cc9maaw1a9swqc3r1";
+      name = "kdebugsettings-20.12.1.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdeconnect-kde-20.08.3.tar.xz";
-      sha256 = "0x10ga81qlsahavmv356xzjxyds41y2b4v338rqcyqkxvfmxj01k";
-      name = "kdeconnect-kde-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdeconnect-kde-20.12.1.tar.xz";
+      sha256 = "0q11319ydibn1jgch98r66gzh3n6nb67l7xgzg0crdalm3dvf5gw";
+      name = "kdeconnect-kde-20.12.1.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kde-dev-scripts-20.08.3.tar.xz";
-      sha256 = "0x8ba4mlxx17vk674738xln2dy696b148fa3s87za4yb4jj9gc5n";
-      name = "kde-dev-scripts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kde-dev-scripts-20.12.1.tar.xz";
+      sha256 = "0hlabgf75qmww1161nd4ggqccp6h9ibsfkzpxdqvgxr9f1f31zz5";
+      name = "kde-dev-scripts-20.12.1.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kde-dev-utils-20.08.3.tar.xz";
-      sha256 = "0k7zb1km89nnqfi2p1mhp6dvwkhmgbcgw89301acag34yy954dvn";
-      name = "kde-dev-utils-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kde-dev-utils-20.12.1.tar.xz";
+      sha256 = "1bir6ifq5wlwgdna48s5c1al7hfq6vl9pi2yvbnzf0rz4ix1sw4r";
+      name = "kde-dev-utils-20.12.1.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdeedu-data-20.08.3.tar.xz";
-      sha256 = "1k164h4n8r4yjlll5900fz764lr0qiy3q1fpcpkr8f1n7qs7f797";
-      name = "kdeedu-data-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdeedu-data-20.12.1.tar.xz";
+      sha256 = "1hzrwkb2333dkvp1n50p18gfci21klafibaknm4hdrk96b3s4fxp";
+      name = "kdeedu-data-20.12.1.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdegraphics-mobipocket-20.08.3.tar.xz";
-      sha256 = "0ifxbwn7pmxr7y4ri617a303b27nqwqa418isgfrfk11jc4yyxhq";
-      name = "kdegraphics-mobipocket-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdegraphics-mobipocket-20.12.1.tar.xz";
+      sha256 = "1n3x4cf5ck0lfn70d9g0iiy4pddc0r49gwir71q5six5l4pz21hd";
+      name = "kdegraphics-mobipocket-20.12.1.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdegraphics-thumbnailers-20.08.3.tar.xz";
-      sha256 = "0mbzkw7pxcfmkpb8ivhahnxkkrkjhmbjqy2l9gqx35gp5855gmxf";
-      name = "kdegraphics-thumbnailers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdegraphics-thumbnailers-20.12.1.tar.xz";
+      sha256 = "0lrijvphyc6wbkb499zf0gjpmqrjgrx5li93kvpsil1ivfpflv7w";
+      name = "kdegraphics-thumbnailers-20.12.1.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdenetwork-filesharing-20.08.3.tar.xz";
-      sha256 = "0id19wmiivdrx10r1hwbwi7bx6g1v9g5lpbhlmfrapvy82ijfmbg";
-      name = "kdenetwork-filesharing-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdenetwork-filesharing-20.12.1.tar.xz";
+      sha256 = "0axi5vdgqkjdcbq0x34b3lnh1497vk54p9aca9d2wfhkd55zjbcv";
+      name = "kdenetwork-filesharing-20.12.1.tar.xz";
     };
   };
   kdenlive = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdenlive-20.08.3.tar.xz";
-      sha256 = "187d5khqq9ckmqp8amd7ghlvig1z97w2jzm9s4zsfhjzyqv3d3wz";
-      name = "kdenlive-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdenlive-20.12.1.tar.xz";
+      sha256 = "0n543nswn0gxasc1445nqg35z5466a3ssivigxz4acqw66nj4vlv";
+      name = "kdenlive-20.12.1.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-addons-20.08.3.tar.xz";
-      sha256 = "17m8pwiig46pc6x4ylvymb3b6c7xcm2df3vjma665kcir1dr0q7p";
-      name = "kdepim-addons-20.08.3.tar.xz";
-    };
-  };
-  kdepim-apps-libs = {
-    version = "20.08.3";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-apps-libs-20.08.3.tar.xz";
-      sha256 = "08iw1p9mv4jic7pk6skxc5anp7k46lhcdqxpq1i6wlhbrk6bpsvg";
-      name = "kdepim-apps-libs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdepim-addons-20.12.1.tar.xz";
+      sha256 = "1dc5sl9ksk5i2sgs2vf41blb5cdpl8fv3vzmrrz9sl3r75pga5m0";
+      name = "kdepim-addons-20.12.1.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-runtime-20.08.3.tar.xz";
-      sha256 = "0zz2zwq3gr177vgkwz6b70q4n2ra4ym58f167pgvi9kxv3884fib";
-      name = "kdepim-runtime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdepim-runtime-20.12.1.tar.xz";
+      sha256 = "1np7xbdhm2wczm04cmsr25a74421i28iln39myiybq01im2ahapq";
+      name = "kdepim-runtime-20.12.1.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdesdk-kioslaves-20.08.3.tar.xz";
-      sha256 = "1kwzms0qha058cm92d4f8pr89r3bqaqx5zfw6gz05s6lg892j5in";
-      name = "kdesdk-kioslaves-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdesdk-kioslaves-20.12.1.tar.xz";
+      sha256 = "18yy2s39sxfzi5lcky1jvlv7z77ygidhnfa4zhwas27yhcc6h0w4";
+      name = "kdesdk-kioslaves-20.12.1.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdesdk-thumbnailers-20.08.3.tar.xz";
-      sha256 = "10fc0agpvzpqdxqynd70vzya0g1nbdw0ylbnl9w35n9jhww42jff";
-      name = "kdesdk-thumbnailers-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdesdk-thumbnailers-20.12.1.tar.xz";
+      sha256 = "1hgqd2d2a9iwaxvd4xd7sdj7pyf3p3v2xg6v9dyy9y39q2f1qs23";
+      name = "kdesdk-thumbnailers-20.12.1.tar.xz";
     };
   };
   kdf = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdf-20.08.3.tar.xz";
-      sha256 = "02k5nhsf1zzkx9cl3r2500pj2zfmvjhlfsb3smgpka6in7iivxyp";
-      name = "kdf-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdf-20.12.1.tar.xz";
+      sha256 = "0ba67hs4vlb3qyvdzhnpmf8p62df12s8aqw4hzf9vnxff3qix5k1";
+      name = "kdf-20.12.1.tar.xz";
     };
   };
   kdialog = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdialog-20.08.3.tar.xz";
-      sha256 = "0knl6176bjazjiacg1qqaldlqcjlb3bi829sliq1sdh4lzzwrbzk";
-      name = "kdialog-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdialog-20.12.1.tar.xz";
+      sha256 = "13n6bc3aqi9v6i4p4vkwzjv4rsqinx45n028ls6ndlapayd750f4";
+      name = "kdialog-20.12.1.tar.xz";
     };
   };
   kdiamond = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kdiamond-20.08.3.tar.xz";
-      sha256 = "0ls1kg3wank1al46knq12jilmp8gaa4rn7zbgflcrhgy5gw8l5px";
-      name = "kdiamond-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kdiamond-20.12.1.tar.xz";
+      sha256 = "0iaq3cai1sn3vlym4zshfziviy9k4s7pm92c7bzwa9adfak6y9h4";
+      name = "kdiamond-20.12.1.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/keditbookmarks-20.08.3.tar.xz";
-      sha256 = "0m8ap5hvjgldj9hdk6shpkv8xylhhjla2xn1zs86pvj4la3zh4f8";
-      name = "keditbookmarks-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/keditbookmarks-20.12.1.tar.xz";
+      sha256 = "1a41zpl2wzqdmp13m915agcc2nlxndyamy5aqyn98y3s8k5n6d9p";
+      name = "keditbookmarks-20.12.1.tar.xz";
     };
   };
   kfind = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfind-20.08.3.tar.xz";
-      sha256 = "10i5mw6q2parq5w7pi955kgfvdlw8hwis2p7r9vkvabjdk69nkdr";
-      name = "kfind-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kfind-20.12.1.tar.xz";
+      sha256 = "0rlxq4dl221ycxcybav7yf88wz23v07n5yzp7jgrd602lk5k8jdp";
+      name = "kfind-20.12.1.tar.xz";
     };
   };
   kfloppy = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfloppy-20.08.3.tar.xz";
-      sha256 = "1cp0pwgldscc7va508gk43im3fv0lsxd5sbhpw8kxlzjlpbwlp8v";
-      name = "kfloppy-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kfloppy-20.12.1.tar.xz";
+      sha256 = "1wpcv2ipx0izg60rbgf8qwhys3bhw8i36qpsvh8bihkzij28xc84";
+      name = "kfloppy-20.12.1.tar.xz";
     };
   };
   kfourinline = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kfourinline-20.08.3.tar.xz";
-      sha256 = "0h1n44dncr2siw447n7b0gkx3380vajvqjsgjvapkg7m7bmz7nsv";
-      name = "kfourinline-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kfourinline-20.12.1.tar.xz";
+      sha256 = "1fv68smci1f59xzqzqj36qry2ibgr0ps731vhvafn210q8h2f5b5";
+      name = "kfourinline-20.12.1.tar.xz";
     };
   };
   kgeography = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgeography-20.08.3.tar.xz";
-      sha256 = "1mk5cip55chc8pmh8wfl7an5x076ywisr0i7isqcjaij2cv54283";
-      name = "kgeography-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kgeography-20.12.1.tar.xz";
+      sha256 = "13jsrfv17lzlwi9rg7i8q2sfl8n19k15qdbv1y5lggykvf8prp8h";
+      name = "kgeography-20.12.1.tar.xz";
     };
   };
   kget = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kget-20.08.3.tar.xz";
-      sha256 = "144ydk8bbfirph464mkkvwpnynj465i2ynhm8n9d330kcrhnaxd0";
-      name = "kget-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kget-20.12.1.tar.xz";
+      sha256 = "03s8wpfrzl3j6whxbfbmbydghaghcnr8xbskf4wkyk9kvyk4bqha";
+      name = "kget-20.12.1.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgoldrunner-20.08.3.tar.xz";
-      sha256 = "101cdl04wb6xbq95b51ax36570y9ahkcy5gccqsyvc307ij9yg7r";
-      name = "kgoldrunner-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kgoldrunner-20.12.1.tar.xz";
+      sha256 = "0n96clxf0bmhm8hlyvd7q9w1zhjn5irvh2vrf9d79ng44zgygjvh";
+      name = "kgoldrunner-20.12.1.tar.xz";
     };
   };
   kgpg = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kgpg-20.08.3.tar.xz";
-      sha256 = "1ip21yal37yxg5i5sfy6lgfb3sz9lld0dwa7a1w4lbddf9w3akd6";
-      name = "kgpg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kgpg-20.12.1.tar.xz";
+      sha256 = "05wwdbx90wg3rm6hcin1dykbrbzz82g01dxnkgh21zzab72wmx8a";
+      name = "kgpg-20.12.1.tar.xz";
     };
   };
   khangman = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/khangman-20.08.3.tar.xz";
-      sha256 = "1zwdd2gpjkld3vkawp0lj83il257ryxf8wpmbgzn1wz8sxxi01jj";
-      name = "khangman-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/khangman-20.12.1.tar.xz";
+      sha256 = "0ljavjbh69qyp2323pqlkibzjkwgddmdjd35m0m5n4nwvnz3l5y7";
+      name = "khangman-20.12.1.tar.xz";
     };
   };
   khelpcenter = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/khelpcenter-20.08.3.tar.xz";
-      sha256 = "1xan4awwgs08k7ksfy80rfcxqd6bi8i1fjdgy55hh7wshv76zf5r";
-      name = "khelpcenter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/khelpcenter-20.12.1.tar.xz";
+      sha256 = "1cba8siq3g78xjap4mhfkgvk9n031qy81ir08fpwk6zp9fkkgqb6";
+      name = "khelpcenter-20.12.1.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kidentitymanagement-20.08.3.tar.xz";
-      sha256 = "0vkydvf4yw3qlqrg9m1zdm6j0c1crxdvc7l24yls9fjbj957vbls";
-      name = "kidentitymanagement-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kidentitymanagement-20.12.1.tar.xz";
+      sha256 = "1f8l8xbwy7qk5hadvknr45ihhg1j7zpqvpf5wxj3h6zg9fmadly9";
+      name = "kidentitymanagement-20.12.1.tar.xz";
     };
   };
   kig = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kig-20.08.3.tar.xz";
-      sha256 = "1dvizdfkvl7p7hr4xm4zh51lpr8qr3s5j5zz162s7arr7sws4w8h";
-      name = "kig-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kig-20.12.1.tar.xz";
+      sha256 = "0ns4rhk822p7jjqy9wnhkbrbais4ih1viw405rl5r5xlqn9bvsiz";
+      name = "kig-20.12.1.tar.xz";
     };
   };
   kigo = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kigo-20.08.3.tar.xz";
-      sha256 = "0sx3klivzn8h96mpnbkiv2nbi2l6w0j6fclj7q3ql3cm81jh6n15";
-      name = "kigo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kigo-20.12.1.tar.xz";
+      sha256 = "0lvcc423mw3gs6c5x4lrlny07q93pa8ivaqphq6y4771n5y5dqqa";
+      name = "kigo-20.12.1.tar.xz";
     };
   };
   killbots = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/killbots-20.08.3.tar.xz";
-      sha256 = "1j41my0brpqpvd8xibv39z4x4kmw1sqz7wy7ibhh0zir3jh64n83";
-      name = "killbots-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/killbots-20.12.1.tar.xz";
+      sha256 = "0cdlixd7rakcxa8f5pf3pmq86mlipg7yhygnii858165v0gwkpx3";
+      name = "killbots-20.12.1.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kimagemapeditor-20.08.3.tar.xz";
-      sha256 = "1m9mrksdl08ijmpmx3lhdysnm70mrnqz9rlbcn1h95p2sq0bk8cg";
-      name = "kimagemapeditor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kimagemapeditor-20.12.1.tar.xz";
+      sha256 = "0vj2w3bgkq020gdi5q1zh650ipf4zc0hvzx5fpjknx4hd8b52rf8";
+      name = "kimagemapeditor-20.12.1.tar.xz";
     };
   };
   kimap = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kimap-20.08.3.tar.xz";
-      sha256 = "16paglkqgnyzwjydhn02qw7zg0d4casir4bsfch15wdmqv389mrg";
-      name = "kimap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kimap-20.12.1.tar.xz";
+      sha256 = "1x6lapmb3srw3pddi7rmlzjdsw54x94pkr6jyrncpfpqqsgb3l4v";
+      name = "kimap-20.12.1.tar.xz";
     };
   };
   kio-extras = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kio-extras-20.08.3.tar.xz";
-      sha256 = "0i7k9asc97r9z4lfk5hyf7mcbx0za7j6v4dhqn43j5v4x2i0201c";
-      name = "kio-extras-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kio-extras-20.12.1.tar.xz";
+      sha256 = "1ym07jzy4w21frf3j5aadxg8ny7bgrm5dbhrc3xdyyj2rwh3iygg";
+      name = "kio-extras-20.12.1.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kio-gdrive-20.08.3.tar.xz";
-      sha256 = "0pp0nvsnfdm8vskw194qjfac4agnlsjm44w1704b5sqx6i27dafy";
-      name = "kio-gdrive-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kio-gdrive-20.12.1.tar.xz";
+      sha256 = "0axh8138rcfpa0a7s5w8zi8i6chz3z1q7560v497x6rd3d1z2zp0";
+      name = "kio-gdrive-20.12.1.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kipi-plugins-20.08.3.tar.xz";
-      sha256 = "1pplhv8yjfl1ifx9ykf4w2lgma8jvshihmd5c5mz9liqk3lawq15";
-      name = "kipi-plugins-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kipi-plugins-20.12.1.tar.xz";
+      sha256 = "0pv5f6v37n75vrz4vaw755bjyyqk1mm9dla26k0jy3qr76g8bg9d";
+      name = "kipi-plugins-20.12.1.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kirigami-gallery-20.08.3.tar.xz";
-      sha256 = "0l100ng8ai55s0vl8nkpq4vysy2nc6sk1dbisc2mp7br74ykyfp9";
-      name = "kirigami-gallery-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kirigami-gallery-20.12.1.tar.xz";
+      sha256 = "00f3alhlvlphcz81465nfrdvvabbzy5n1s06bvwzsvf290h5chbh";
+      name = "kirigami-gallery-20.12.1.tar.xz";
     };
   };
   kiriki = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kiriki-20.08.3.tar.xz";
-      sha256 = "1gddjii84cbz1dg8k0pnd3dyzar4lvj03j9v84vabggjjjbpir0f";
-      name = "kiriki-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kiriki-20.12.1.tar.xz";
+      sha256 = "07qsmyf1ylgcwy704s8x9g1h4kalsipqz4z3bj1z5m5a2y9l8y8q";
+      name = "kiriki-20.12.1.tar.xz";
     };
   };
   kiten = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kiten-20.08.3.tar.xz";
-      sha256 = "0n9mq86gcl6s2f45l8lbp4gsdj356l78xjkdvm14f6qlh81vsqlc";
-      name = "kiten-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kiten-20.12.1.tar.xz";
+      sha256 = "0dfz2wdscgn0f967lnhzpyb3iz1iw068x0l10542pm5dh32afs4m";
+      name = "kiten-20.12.1.tar.xz";
     };
   };
   kitinerary = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kitinerary-20.08.3.tar.xz";
-      sha256 = "169pmy5fyjkbya8r2kdkd9s83sim0jplc3lx8bv2xh6r10mvzgm6";
-      name = "kitinerary-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kitinerary-20.12.1.tar.xz";
+      sha256 = "07zjd3ikbx6rw39ndy04aia8q35r75p5n52fijwnc4fkfc40xyxz";
+      name = "kitinerary-20.12.1.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kjumpingcube-20.08.3.tar.xz";
-      sha256 = "19246jwwd686x8i0jrvz2c8mpkf6qhm7rnskzin59dqzr76xrpgz";
-      name = "kjumpingcube-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kjumpingcube-20.12.1.tar.xz";
+      sha256 = "0li9bq7j30fbdzg981i6jkpxgrv1z84bpig8m5mxfyfhs5c55j69";
+      name = "kjumpingcube-20.12.1.tar.xz";
     };
   };
   kldap = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kldap-20.08.3.tar.xz";
-      sha256 = "1ihaazsnb9r30m2qhzcp2ns9f5fs7l3agsc9f9wxi4cyw73bq0n3";
-      name = "kldap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kldap-20.12.1.tar.xz";
+      sha256 = "02w4hk9j1f1d81k0j8dzrj4hxwk2xwrf48305hzmm658wjvkv4k3";
+      name = "kldap-20.12.1.tar.xz";
     };
   };
   kleopatra = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kleopatra-20.08.3.tar.xz";
-      sha256 = "1r879g7hw3c5cww58z0kvqj47pgzbiq1vpgxz847smrylqajcpyi";
-      name = "kleopatra-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kleopatra-20.12.1.tar.xz";
+      sha256 = "1g06mq8vl1jhkyrjfrgsbl44v7yq04m8xbb8dxlyhyv40dwlz7l6";
+      name = "kleopatra-20.12.1.tar.xz";
     };
   };
   klettres = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klettres-20.08.3.tar.xz";
-      sha256 = "0irc0f7vjznlsczan30zzprbnvgnbg19vabr97cw9rkkfa28azx9";
-      name = "klettres-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/klettres-20.12.1.tar.xz";
+      sha256 = "0k66xdkyv6i1zgk9nvz9633pmxygv1bwm4nkbg3izlh4g23rn3kk";
+      name = "klettres-20.12.1.tar.xz";
     };
   };
   klickety = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klickety-20.08.3.tar.xz";
-      sha256 = "1qsm9grmy0bnalpdghg48xi68zzk6ysmg6n0d74ldmmnirv3r0zf";
-      name = "klickety-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/klickety-20.12.1.tar.xz";
+      sha256 = "17ml80p02sndhac5q6lkf7bb1kz9snsia991fghhahcjvd1g2qn6";
+      name = "klickety-20.12.1.tar.xz";
     };
   };
   klines = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/klines-20.08.3.tar.xz";
-      sha256 = "1l95ph1sjp3r1q065k3rj18lm36krl7bh41zgqh021p692ywc48c";
-      name = "klines-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/klines-20.12.1.tar.xz";
+      sha256 = "1ba71n90x0s8nf300p53libzfjd0j9r6m0fng636m1qjaz6z9a3c";
+      name = "klines-20.12.1.tar.xz";
     };
   };
   kmag = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmag-20.08.3.tar.xz";
-      sha256 = "0y44gz3qn91vl840xz25l5kc5jj82k5qqxkgsvvyld2s99rif84k";
-      name = "kmag-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmag-20.12.1.tar.xz";
+      sha256 = "0m4zy1ybk2p4wzdfrdf64n06ck39sn7s0nb82miizcpscaxqswhj";
+      name = "kmag-20.12.1.tar.xz";
     };
   };
   kmahjongg = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmahjongg-20.08.3.tar.xz";
-      sha256 = "0wgp9m7xzf5ysmrrnyng4p4jypvzfnqkyw62gknl0qhk531cgq3h";
-      name = "kmahjongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmahjongg-20.12.1.tar.xz";
+      sha256 = "1hszrp81pffg7rp0rk54qx49v3acmqfdi0if47kh9w124iicsi3z";
+      name = "kmahjongg-20.12.1.tar.xz";
     };
   };
   kmail = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmail-20.08.3.tar.xz";
-      sha256 = "0g59s7wl0n4bp8kw559rdlamlqxl47qvwfms9kr9ign35rvs0ghg";
-      name = "kmail-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmail-20.12.1.tar.xz";
+      sha256 = "128l57x29mqg3fcx50hviqydl7gw6n2zbjnmzrj7fzgl6gafcdgw";
+      name = "kmail-20.12.1.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmail-account-wizard-20.08.3.tar.xz";
-      sha256 = "0vama5a02dfgxrl4iz88lbi8dvq3d9b055xil770d90pwp0sljcz";
-      name = "kmail-account-wizard-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmail-account-wizard-20.12.1.tar.xz";
+      sha256 = "1gl4pvn7lyyc9rsk70yp5mikpdbakp4zgwx3plypqhmqd1z92pin";
+      name = "kmail-account-wizard-20.12.1.tar.xz";
     };
   };
   kmailtransport = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmailtransport-20.08.3.tar.xz";
-      sha256 = "07552qj3ngwvyss7f8cy87c0gmzc47agn54wk85qq0v1fwr73n6z";
-      name = "kmailtransport-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmailtransport-20.12.1.tar.xz";
+      sha256 = "08i4fmhkpxil7q6vn045xha54x00jkm19kibphx2q3sb3c6s3plm";
+      name = "kmailtransport-20.12.1.tar.xz";
     };
   };
   kmbox = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmbox-20.08.3.tar.xz";
-      sha256 = "0ipmwcicn3qklybqy9v41lh7byn7j62ja8b0xf06z9nliwkk4b0b";
-      name = "kmbox-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmbox-20.12.1.tar.xz";
+      sha256 = "1w172gqanhpkmcd9hc62lsmrkylg8mlfyk3nq3n89k6m2dkcfvqd";
+      name = "kmbox-20.12.1.tar.xz";
     };
   };
   kmime = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmime-20.08.3.tar.xz";
-      sha256 = "1ndbx712vm4v0fi7p8j28d8z35h3bmsixc97z5r9dg03v1kzd36v";
-      name = "kmime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmime-20.12.1.tar.xz";
+      sha256 = "0hr5mh8a4b9bi0dqs055x4mpig7awqy9sd6j0i8lxix4cngcb6a2";
+      name = "kmime-20.12.1.tar.xz";
     };
   };
   kmines = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmines-20.08.3.tar.xz";
-      sha256 = "1mn5hip3vnzmkk1hy14glsplp7f5pm56yv0d5mz25icfgw0xa6lp";
-      name = "kmines-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmines-20.12.1.tar.xz";
+      sha256 = "18jzzn03c6mlmc02qg5fimid77b8gs0h4lci6wmj11fmb94g1hic";
+      name = "kmines-20.12.1.tar.xz";
     };
   };
   kmix = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmix-20.08.3.tar.xz";
-      sha256 = "00gm93faqmqx0hhkxi3k2pn6sq82k2f622vqgk7mwznkpg66mf4k";
-      name = "kmix-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmix-20.12.1.tar.xz";
+      sha256 = "1q1jz33mwnr5nr2mw92g40g7paclaxhwcvqik91la6dnvl0vpi8p";
+      name = "kmix-20.12.1.tar.xz";
     };
   };
   kmousetool = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmousetool-20.08.3.tar.xz";
-      sha256 = "09qznykysr42rzz5cmqvhvz91cr8dbzwjd73hwaib2lfs3c2cgbl";
-      name = "kmousetool-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmousetool-20.12.1.tar.xz";
+      sha256 = "1nahq9cgffcd4llqc8lwkicxjw8nwphvpws9xkalwsswb7ai9jrk";
+      name = "kmousetool-20.12.1.tar.xz";
     };
   };
   kmouth = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmouth-20.08.3.tar.xz";
-      sha256 = "0ajhnl1sjllfb42nyafpirmlgcs6waqp8qxvgsz5dk5zkb8daqmr";
-      name = "kmouth-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmouth-20.12.1.tar.xz";
+      sha256 = "0qhparw2qszv7z7lrzb76kyvkcgr9sgry9ir9965dd0sp4c1fhgc";
+      name = "kmouth-20.12.1.tar.xz";
     };
   };
   kmplot = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kmplot-20.08.3.tar.xz";
-      sha256 = "0cv7q1wmbb3fkf4s6ns4q1il5zr4q02b3xghpp661ma82d8jhjcy";
-      name = "kmplot-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kmplot-20.12.1.tar.xz";
+      sha256 = "0iz61jjr7z0j5bh5nqdv9nbdbiz0jhda89bxjds0n9636q42rifm";
+      name = "kmplot-20.12.1.tar.xz";
     };
   };
   knavalbattle = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knavalbattle-20.08.3.tar.xz";
-      sha256 = "1028i8zl5ynm3vvqajsms2hq8gmmjmjc5dc6r3jyh6r964vxq3nq";
-      name = "knavalbattle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/knavalbattle-20.12.1.tar.xz";
+      sha256 = "0k7kqnc8zp3n0ckrmmih12x6h1vgn9s7hrgp7n37bns2g39ij0xn";
+      name = "knavalbattle-20.12.1.tar.xz";
     };
   };
   knetwalk = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knetwalk-20.08.3.tar.xz";
-      sha256 = "13pspvi2p68irpbr3f2ck78qmvfl3vahm5qjw2fwhidhpindf9nl";
-      name = "knetwalk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/knetwalk-20.12.1.tar.xz";
+      sha256 = "0px8yfi5h9nipgdjcgskrm66dr23yg5ks0kyxjsly6mv41qxjiw8";
+      name = "knetwalk-20.12.1.tar.xz";
     };
   };
   knights = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knights-20.08.3.tar.xz";
-      sha256 = "0zqb87mr2x085hi3r9cvdrx2kvxmclh4ffi1ajcb8v1f79wiwzin";
-      name = "knights-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/knights-20.12.1.tar.xz";
+      sha256 = "098ywblshbr3qx7b8m4qj0036dq3c3mackmsbjnr85acb0204bjb";
+      name = "knights-20.12.1.tar.xz";
     };
   };
   knotes = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/knotes-20.08.3.tar.xz";
-      sha256 = "0ysw8js2s6njilg4v4vqrl1bzcmqvk42l68pzvyflr112zviqz28";
-      name = "knotes-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/knotes-20.12.1.tar.xz";
+      sha256 = "11gfk2p240a2gqxgkn9ymf7ds2zpij8h2vbbkax6ariddmhmlqk0";
+      name = "knotes-20.12.1.tar.xz";
     };
   };
   kolf = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kolf-20.08.3.tar.xz";
-      sha256 = "1ywyny8iq2sxglsvpgw6p3w3w567k6cw6waywfcfy0lcnfarg1n0";
-      name = "kolf-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kolf-20.12.1.tar.xz";
+      sha256 = "12b424dl6rizj2pdcd4cr01lmp4kmirii79k40v22hn0yn6a9qdv";
+      name = "kolf-20.12.1.tar.xz";
     };
   };
   kollision = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kollision-20.08.3.tar.xz";
-      sha256 = "1l8a32bni40jz5jna0ip9ggbx7zp1hhiw2mip7v8f6qc4arbknl8";
-      name = "kollision-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kollision-20.12.1.tar.xz";
+      sha256 = "1hxv4qd5dl61d5440r4hnd9r24prn78ibmnk3m06c15zc3hfdsdn";
+      name = "kollision-20.12.1.tar.xz";
     };
   };
   kolourpaint = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kolourpaint-20.08.3.tar.xz";
-      sha256 = "0d64gnnb553rxscr8710h5bx8ijxd87jrbix07k41y79i5x60irh";
-      name = "kolourpaint-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kolourpaint-20.12.1.tar.xz";
+      sha256 = "1a2wgrf9hirvj61k2nd8x7rv5v8i9r1vrvpdmi9ik4qdg6lpvqay";
+      name = "kolourpaint-20.12.1.tar.xz";
     };
   };
   kompare = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kompare-20.08.3.tar.xz";
-      sha256 = "0r9m2vcw9hbdkfdy24pfpqs2b5r0jyxh1ma2h66hfv4ycd470ilc";
-      name = "kompare-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kompare-20.12.1.tar.xz";
+      sha256 = "13di8dzp7xzlfacas5f92h1vwiqf64cd0rkc4yv4l2g8aq2jzcqh";
+      name = "kompare-20.12.1.tar.xz";
     };
   };
   konqueror = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konqueror-20.08.3.tar.xz";
-      sha256 = "1ssjj83jcbcq8i7wx5zd12z7crh2zg6awbpy38maq3c7747nqz7k";
-      name = "konqueror-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/konqueror-20.12.1.tar.xz";
+      sha256 = "026f8fybr8azq3diw2k3p3qpmqj9lk6n9ipcl3xkwdss7i5v5w3y";
+      name = "konqueror-20.12.1.tar.xz";
     };
   };
   konquest = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konquest-20.08.3.tar.xz";
-      sha256 = "1wq0j02dzdah6yhx8r2cg191617hid9fs780yr317fprkwkgb8cb";
-      name = "konquest-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/konquest-20.12.1.tar.xz";
+      sha256 = "1s08mvj7z91r86i0zwkcv05fnnr4lzhp596qr38d2yv6rxf5vr57";
+      name = "konquest-20.12.1.tar.xz";
     };
   };
   konsole = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/konsole-20.08.3.tar.xz";
-      sha256 = "0jjidy756x8n456qbm977a73l8229kk8i489jh52296k8pkh6yjx";
-      name = "konsole-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/konsole-20.12.1.tar.xz";
+      sha256 = "1v39sx00c115apnm32wn00yir69z1h0y3lblmjmvbjk24hwvx45n";
+      name = "konsole-20.12.1.tar.xz";
     };
   };
   kontact = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kontact-20.08.3.tar.xz";
-      sha256 = "0qasgxvq7xps0zxk4hf2sizmy90mxyq70m2pq49pq17ij2pa9ynl";
-      name = "kontact-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kontact-20.12.1.tar.xz";
+      sha256 = "0dr59jj97zxkgc61zgwa8i26m81sfxvymxcrh5midwd24z8nslkz";
+      name = "kontact-20.12.1.tar.xz";
     };
   };
   kontactinterface = {
-    version = "20.08.3";
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/kontactinterface-20.12.1.tar.xz";
+      sha256 = "0sdlgmwvir2s9ys466i4bj4raf2af43w838and64jwsr9qb1hg4j";
+      name = "kontactinterface-20.12.1.tar.xz";
+    };
+  };
+  kontrast = {
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kontactinterface-20.08.3.tar.xz";
-      sha256 = "1ah2814js08sm49ykarqdw7z03w4fbym5cc4vwmzimcvh2bc78j3";
-      name = "kontactinterface-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kontrast-20.12.1.tar.xz";
+      sha256 = "0cs31sn4va2hhfi7ps3bz9sy2hlxb8cawn5vijfdhzb9mmc962br";
+      name = "kontrast-20.12.1.tar.xz";
+    };
+  };
+  konversation = {
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/konversation-20.12.1.tar.xz";
+      sha256 = "1x6pyiv73avc3qmxlbnwwzk3gz6qbr991p896f9yb4rqfqj8j7j4";
+      name = "konversation-20.12.1.tar.xz";
     };
   };
   kopete = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kopete-20.08.3.tar.xz";
-      sha256 = "1lsab66k0xq1g0w0cxcpadmf9kkc09x8wwbv4i8y3aj2mn7849gh";
-      name = "kopete-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kopete-20.12.1.tar.xz";
+      sha256 = "1cfbl3jalmaphwrzw443l4q5k1fx4nja65ajgrv3nly8rfabfnfl";
+      name = "kopete-20.12.1.tar.xz";
     };
   };
   korganizer = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/korganizer-20.08.3.tar.xz";
-      sha256 = "112h6vn2y9d3q3z62cwg3zrak3xgx9affibc9cvr6fzhp4z0x9ps";
-      name = "korganizer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/korganizer-20.12.1.tar.xz";
+      sha256 = "1ci6ca6w3a77gf3d7fh9rjkblm5qa2jic176rwmax79qgvjjq8wm";
+      name = "korganizer-20.12.1.tar.xz";
+    };
+  };
+  kosmindoormap = {
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/kosmindoormap-20.12.1.tar.xz";
+      sha256 = "186kfqaznxyxqchwqsrb4dvk4v69rhqwfg93fcjsp43l14ml5rnx";
+      name = "kosmindoormap-20.12.1.tar.xz";
     };
   };
   kpat = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpat-20.08.3.tar.xz";
-      sha256 = "1id4b9jkphi8pp29gc2vb3n9f0g8kl9yy5v8cnyv3jq673aj0fs9";
-      name = "kpat-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kpat-20.12.1.tar.xz";
+      sha256 = "1kd3i7qhjwxi04x8dkc7q9rgx73zyx3njm5rhq0hc1v32m8nn659";
+      name = "kpat-20.12.1.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpimtextedit-20.08.3.tar.xz";
-      sha256 = "1m4r5zbhbjvj3za78xfp3dibyf7mp9gan5ir5zd0k2p7adp3i652";
-      name = "kpimtextedit-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kpimtextedit-20.12.1.tar.xz";
+      sha256 = "15m26qssw80nxv1m51jq3q629nginhh4hb69a5y15jgvrv4k59b4";
+      name = "kpimtextedit-20.12.1.tar.xz";
     };
   };
   kpkpass = {
-    version = "20.08.3";
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/kpkpass-20.12.1.tar.xz";
+      sha256 = "09idbgf9gnzyr520indlzhwb9pr5hx3dag26qrfi7l8ywzdkrsr2";
+      name = "kpkpass-20.12.1.tar.xz";
+    };
+  };
+  kpmcore = {
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kpkpass-20.08.3.tar.xz";
-      sha256 = "0zw3xx5mi38za0xbvld97f5bqvwwgyz47kybyrdm7jrhvmmiiiis";
-      name = "kpkpass-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kpmcore-20.12.1.tar.xz";
+      sha256 = "0nyqz1jfr9h9n80npvp7yyizbyga6iv8yljq52myk6b40vs9q41v";
+      name = "kpmcore-20.12.1.tar.xz";
+    };
+  };
+  kpublictransport = {
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/kpublictransport-20.12.1.tar.xz";
+      sha256 = "0saqykqb9rrm3ngvcx910dmhyh1hc3n0x3qfzlzrxlq678ag94hq";
+      name = "kpublictransport-20.12.1.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kqtquickcharts-20.08.3.tar.xz";
-      sha256 = "0l7v8vrc7by0w0yshnh21jaqhspmhkvm5cd0hpay6jc9v2azkcf3";
-      name = "kqtquickcharts-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kqtquickcharts-20.12.1.tar.xz";
+      sha256 = "0025vj4n0k3g5bsmjq6ydx80izvpx6g73jxz27hp69vbl8p4ylpc";
+      name = "kqtquickcharts-20.12.1.tar.xz";
     };
   };
   krdc = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/krdc-20.08.3.tar.xz";
-      sha256 = "1g9lxdldljh5a2s4g7g9b98lij168l99ah0vr6nvdl53n35pfr8n";
-      name = "krdc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/krdc-20.12.1.tar.xz";
+      sha256 = "067xrhs55di2ff0lxvcl2x7qblmv2pbrgjkc5bjsx6ai6w9bv4dh";
+      name = "krdc-20.12.1.tar.xz";
     };
   };
   kreversi = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kreversi-20.08.3.tar.xz";
-      sha256 = "0d3y072q61xcik9lf0pz0c9njvarwlvf6hqv5fp5jyqaf2902pmi";
-      name = "kreversi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kreversi-20.12.1.tar.xz";
+      sha256 = "1yw9lxzqyxk6fsh2lzsrp2cmdw545hszdz9253lm6b5ppax6z42a";
+      name = "kreversi-20.12.1.tar.xz";
     };
   };
   krfb = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/krfb-20.08.3.tar.xz";
-      sha256 = "13nypbcdhh53wq72w59z5q46a09g1w4yyi1pmsjwa8r7jnk8cafk";
-      name = "krfb-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/krfb-20.12.1.tar.xz";
+      sha256 = "0pfxd0nci9g4wkh4qcgk3yhm9rl9yx2d4jpfxgdmiacfp9hkqxj6";
+      name = "krfb-20.12.1.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kross-interpreters-20.08.3.tar.xz";
-      sha256 = "0mr5vpbbcv66s6dyrrypy1ai6ba744z8cn4r0iwys35p6am075qj";
-      name = "kross-interpreters-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kross-interpreters-20.12.1.tar.xz";
+      sha256 = "1csk3xkkkqvffms5ivy08hyd2mizg7ywcrdapxx40m5kwsn6vpxs";
+      name = "kross-interpreters-20.12.1.tar.xz";
     };
   };
   kruler = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kruler-20.08.3.tar.xz";
-      sha256 = "1vhl8acccdqfdj7lci8r2mig9qf1js4f8v7b4fqljpnc3gdg8749";
-      name = "kruler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kruler-20.12.1.tar.xz";
+      sha256 = "1jiz9s647bndpi4gg3f7wwg0c0cv8wf1myjxwdpx5a0ggdr2xh3q";
+      name = "kruler-20.12.1.tar.xz";
     };
   };
   kshisen = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kshisen-20.08.3.tar.xz";
-      sha256 = "1vy8qh8s60a4ikyw3sh4cbr3p3fk35d4dwdqc263gn4skyrsb1l9";
-      name = "kshisen-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kshisen-20.12.1.tar.xz";
+      sha256 = "1awnpj66080g2y41014g2pgb5llyqw56b54z6ydhfya4a0a8gsds";
+      name = "kshisen-20.12.1.tar.xz";
     };
   };
   ksirk = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksirk-20.08.3.tar.xz";
-      sha256 = "1kxc1b05r8x6pvaiwpvjpgrr88qkm5qs4d3s1ym8rki60c724qpl";
-      name = "ksirk-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ksirk-20.12.1.tar.xz";
+      sha256 = "11bcmxjjyf095i790f5r3cr5hskw2x9458vwfm7yd57qx3r01axz";
+      name = "ksirk-20.12.1.tar.xz";
     };
   };
   ksmtp = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksmtp-20.08.3.tar.xz";
-      sha256 = "1p9clzvmsym2fijwvs3s0zqx57bk82mlks52j5ni3il6lvklaayc";
-      name = "ksmtp-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ksmtp-20.12.1.tar.xz";
+      sha256 = "1yahcgchfhk742n6hmpr2b2fll6jrw0vs1hrfvms3n7w7vxnkyxg";
+      name = "ksmtp-20.12.1.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksnakeduel-20.08.3.tar.xz";
-      sha256 = "03ydbwknn20gadjpwcw0z8zw777hgj8j10w4gvp2dwpb07rdg1pn";
-      name = "ksnakeduel-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ksnakeduel-20.12.1.tar.xz";
+      sha256 = "1647m2a918kr762fmvffj2ipamhvcihc8yg8z80b8lwinpspcdfc";
+      name = "ksnakeduel-20.12.1.tar.xz";
     };
   };
   kspaceduel = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kspaceduel-20.08.3.tar.xz";
-      sha256 = "1ii3lnxd11d3ihl8j1abh9qn9q0qq8ra9hbrwjs5df2kk36bnirj";
-      name = "kspaceduel-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kspaceduel-20.12.1.tar.xz";
+      sha256 = "17i2saa48xq62j0aca555lqjxf6ry3wkxw5vm5v32g3kwkr10m78";
+      name = "kspaceduel-20.12.1.tar.xz";
     };
   };
   ksquares = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksquares-20.08.3.tar.xz";
-      sha256 = "1ch7lbylzb9ngdzvpzqq5f30gkm2l4rzk6iqa8xm53rawr7jjqcy";
-      name = "ksquares-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ksquares-20.12.1.tar.xz";
+      sha256 = "085bvcx5p13j32017c0vm3zvcr0r0dzcbxpp21mvrp1xzy2dw7v2";
+      name = "ksquares-20.12.1.tar.xz";
     };
   };
   ksudoku = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksudoku-20.08.3.tar.xz";
-      sha256 = "0hnqbd3krxi3zwj8p4n9ydhwfwhw8wljhjdfv0llv0nhj1wb89p9";
-      name = "ksudoku-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ksudoku-20.12.1.tar.xz";
+      sha256 = "0a0i87ddxa75admnxl181dsqmab4cwbb6pncl34z4sppf272z8km";
+      name = "ksudoku-20.12.1.tar.xz";
     };
   };
   ksystemlog = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ksystemlog-20.08.3.tar.xz";
-      sha256 = "11fc2mn4hkcibpxp7s2gihpp05yix7ws84a0bm6vjiqlidmrk192";
-      name = "ksystemlog-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ksystemlog-20.12.1.tar.xz";
+      sha256 = "0535s6sq4wccdxv0xw12x3zzjkp0746s3hmlk93sginwq5fixxc0";
+      name = "ksystemlog-20.12.1.tar.xz";
     };
   };
   kteatime = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kteatime-20.08.3.tar.xz";
-      sha256 = "1vj738s2a7nnrvxi847mdmn1vg79kh9k8gqaflcwnvyxanf6n4f7";
-      name = "kteatime-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kteatime-20.12.1.tar.xz";
+      sha256 = "0j9c3wy398z61ciyf91hv7l3bxski827di9ib94wyjkwqd6516zx";
+      name = "kteatime-20.12.1.tar.xz";
     };
   };
   ktimer = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktimer-20.08.3.tar.xz";
-      sha256 = "1rc1z93s24b7p2ixr4xbpg0sj8ls90gzfijwj9f8b0lrwd905ysv";
-      name = "ktimer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktimer-20.12.1.tar.xz";
+      sha256 = "0iac06mzszg6g1flbs0mzj8ddnvh6kdgbhakjxl969in4c1frz9w";
+      name = "ktimer-20.12.1.tar.xz";
     };
   };
   ktnef = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktnef-20.08.3.tar.xz";
-      sha256 = "1lj93sqyi522k91jiyf7d26vx5sgn5njhyaf8plsfz5rj82dw1m4";
-      name = "ktnef-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktnef-20.12.1.tar.xz";
+      sha256 = "1pq4mabh7glpxl2iwj5rrfwim4x6xfg2vlpx7z0d0n13gh85b4fd";
+      name = "ktnef-20.12.1.tar.xz";
+    };
+  };
+  ktorrent = {
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/ktorrent-20.12.1.tar.xz";
+      sha256 = "0m43wsz0k87ncvg3zdffsp06nwdrlfnw52fi1ry12z2rnkcm4pwc";
+      name = "ktorrent-20.12.1.tar.xz";
     };
   };
   ktouch = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktouch-20.08.3.tar.xz";
-      sha256 = "1ssxd7f75866rn5k192bnm016d8674q13ibcgmaxqsmr7wqkyd39";
-      name = "ktouch-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktouch-20.12.1.tar.xz";
+      sha256 = "10lm2p8w26c9n6lhvw3301myfss0dq7hl7rawzb3hsy1lqvmvdib";
+      name = "ktouch-20.12.1.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-accounts-kcm-20.08.3.tar.xz";
-      sha256 = "0039svbzx7fphyk6cw4hb8k4h7l6q31pbwvp6pvls450rycz8i8y";
-      name = "ktp-accounts-kcm-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-accounts-kcm-20.12.1.tar.xz";
+      sha256 = "0440s2rrh03x8h5bp6xywidngrb1pinndsigaj4k4yvz122j2y53";
+      name = "ktp-accounts-kcm-20.12.1.tar.xz";
     };
   };
   ktp-approver = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-approver-20.08.3.tar.xz";
-      sha256 = "1kqsdw7vkcd0ka98y2r7qz7dp5hsrr2m8k1xlh3gpj7fdxpla2bh";
-      name = "ktp-approver-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-approver-20.12.1.tar.xz";
+      sha256 = "14ygpqvjhyzryrlinz0i2a6nyn1gnxs0hwx35imiz8hg4sb9402k";
+      name = "ktp-approver-20.12.1.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-auth-handler-20.08.3.tar.xz";
-      sha256 = "0wbhg458ysipwma8sygimasq71sbrzmx3vwqi51ai8y5hwrx04j4";
-      name = "ktp-auth-handler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-auth-handler-20.12.1.tar.xz";
+      sha256 = "1bysipq957kqbl33zj88m1g987b02v25gmh5lpnmrnlqznxw0ws7";
+      name = "ktp-auth-handler-20.12.1.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-call-ui-20.08.3.tar.xz";
-      sha256 = "1fh8bz9kc6f8v28x12xp3vw19swgcq07zyjzhd6qcnwf1bv6gl7i";
-      name = "ktp-call-ui-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-call-ui-20.12.1.tar.xz";
+      sha256 = "154zgg84ln823al40s5fwxf10k3p73mz4fjn2lyhdqgsx68l08sy";
+      name = "ktp-call-ui-20.12.1.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-common-internals-20.08.3.tar.xz";
-      sha256 = "193yx4g1fwlwysy5scb7m24wqmvwmfyyb9sv7arw7zn5czlg480z";
-      name = "ktp-common-internals-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-common-internals-20.12.1.tar.xz";
+      sha256 = "1f8l1ywccxga3ff8qvf4ybabkd57apidkx7ky49dfi785kgvym16";
+      name = "ktp-common-internals-20.12.1.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-contact-list-20.08.3.tar.xz";
-      sha256 = "0093z17r1xqlb1zlgxfayrnrkyl8zmnnasfd8i97dx712wmbbxxa";
-      name = "ktp-contact-list-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-contact-list-20.12.1.tar.xz";
+      sha256 = "122p2xp6wqmvk7mbplgnilsbnk6hfzrgbxpr39n462pkwbmvs44j";
+      name = "ktp-contact-list-20.12.1.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-contact-runner-20.08.3.tar.xz";
-      sha256 = "063jylnq3gm0s0jh1xs6b591a161sb6gdi840l40mqlhhg7i8x55";
-      name = "ktp-contact-runner-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-contact-runner-20.12.1.tar.xz";
+      sha256 = "1w8jp1nmjwaaqpim2jfpbv3d7w9asn93qi2ag2d6wx6mcc2q84jb";
+      name = "ktp-contact-runner-20.12.1.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-desktop-applets-20.08.3.tar.xz";
-      sha256 = "1i69qzfa455phjnd5ycflyggcbq7ycn2cc7a3ni5195isjzq6r6s";
-      name = "ktp-desktop-applets-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-desktop-applets-20.12.1.tar.xz";
+      sha256 = "0z3vv7q5kk27fm32bmhffpj6w72mldcdxsq6p3d33zf6rkz2rb74";
+      name = "ktp-desktop-applets-20.12.1.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-filetransfer-handler-20.08.3.tar.xz";
-      sha256 = "0a26ziacl3fkd0a0h1579jnwjzjlsz0zymj9k4da4sb60zad5y72";
-      name = "ktp-filetransfer-handler-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-filetransfer-handler-20.12.1.tar.xz";
+      sha256 = "0b8ha1jxhrdk67mzwrd0ypz99shlfr6sanxbbv0j3xh77sjcqpq3";
+      name = "ktp-filetransfer-handler-20.12.1.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-kded-module-20.08.3.tar.xz";
-      sha256 = "105vh6b7a0v02arksbwxn30slpcg11cpvb7dqmvf041iyr13sqsv";
-      name = "ktp-kded-module-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-kded-module-20.12.1.tar.xz";
+      sha256 = "1hbb5pj3gaw9sg5rj2rb7a8xqrixfhr040rcdjsln337zyy98iqf";
+      name = "ktp-kded-module-20.12.1.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-send-file-20.08.3.tar.xz";
-      sha256 = "08pp3029jplc6rcbav40cgy787gn3jjl312gbgvnwzglxaqvcg4b";
-      name = "ktp-send-file-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-send-file-20.12.1.tar.xz";
+      sha256 = "1vgfqa062h5yxdsz71h2zz247mzv6mn0zm7dz1v8p4pzns9kscq1";
+      name = "ktp-send-file-20.12.1.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktp-text-ui-20.08.3.tar.xz";
-      sha256 = "1anxl9wa5ndyi9r9w0kpivx8nv1xpx28xjvkdplkc75cc1wl88sw";
-      name = "ktp-text-ui-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktp-text-ui-20.12.1.tar.xz";
+      sha256 = "13cx2pv4wqmrgbi4sg51fhp418r50ajjhc9yz5mv7ad2gxml5c61";
+      name = "ktp-text-ui-20.12.1.tar.xz";
     };
   };
   ktuberling = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/ktuberling-20.08.3.tar.xz";
-      sha256 = "0q6ynmn6w5q65a77fq8n9vxqswrimln22b1zfgxmb2i3qwnhkrmz";
-      name = "ktuberling-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/ktuberling-20.12.1.tar.xz";
+      sha256 = "06la1cvwvpiqjdwv7icdg55dd8pkc587bfwwjdq2fhp2pyh3ws6j";
+      name = "ktuberling-20.12.1.tar.xz";
     };
   };
   kturtle = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kturtle-20.08.3.tar.xz";
-      sha256 = "0riv76vwvz94zixqhhwkxw8sz2r2xqai39yh9hr31d28q9rza384";
-      name = "kturtle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kturtle-20.12.1.tar.xz";
+      sha256 = "12jr4sbchjpvc730cy4bp2cccdsd8vw901dgyq0nar8p0pvg4ybb";
+      name = "kturtle-20.12.1.tar.xz";
     };
   };
   kubrick = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kubrick-20.08.3.tar.xz";
-      sha256 = "03k73gr33dr3va69vc70fsfcdwkqz70bg87yk2l2j33x8wsgl4wx";
-      name = "kubrick-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kubrick-20.12.1.tar.xz";
+      sha256 = "1hdkm9vw9wpc8b3mw0yy9cz5ylm0h75zbg51rw4glai48bb3gs8i";
+      name = "kubrick-20.12.1.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwalletmanager-20.08.3.tar.xz";
-      sha256 = "1l07vxl2x3jl8553rbvr3p0k3rc95nmrw4vhxxynl3102xshrg5i";
-      name = "kwalletmanager-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kwalletmanager-20.12.1.tar.xz";
+      sha256 = "0nsg2xjzz6qvjqpxj1bbzzikvcl1ipqjwwab2kdwg71vlp99ravj";
+      name = "kwalletmanager-20.12.1.tar.xz";
     };
   };
   kwave = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwave-20.08.3.tar.xz";
-      sha256 = "0zk8ik03qcc6y0vhpih8sk2jpkxwxalmqmaan2767k9h92grdpc8";
-      name = "kwave-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kwave-20.12.1.tar.xz";
+      sha256 = "1w5r7di9401dm60p3bkp8qg41pvlz4226szki5s6pmmq89dixdgq";
+      name = "kwave-20.12.1.tar.xz";
     };
   };
   kwordquiz = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/kwordquiz-20.08.3.tar.xz";
-      sha256 = "1kiqk3xyd0l7kqdxqjqs8mw4drcdbdri9xxi5gcav57ndcinknqb";
-      name = "kwordquiz-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/kwordquiz-20.12.1.tar.xz";
+      sha256 = "1dvbvfwaja4n2v9binj8pbdjizqz4zp49fiq8b4k5jxygcsgnx2p";
+      name = "kwordquiz-20.12.1.tar.xz";
     };
   };
   libgravatar = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libgravatar-20.08.3.tar.xz";
-      sha256 = "09dvx2rb1j7q4r0gkbhz0vjk8ya3njqprpjqdhwcq7xwc2j9h0hr";
-      name = "libgravatar-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libgravatar-20.12.1.tar.xz";
+      sha256 = "12byf7p0fwsfy61gcv112bhq3zczjy5n1dm32x2lrjyis2dh2z9j";
+      name = "libgravatar-20.12.1.tar.xz";
     };
   };
   libkcddb = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkcddb-20.08.3.tar.xz";
-      sha256 = "0r36hs79hmq0znsds0d04lj7ffs6l2d866kyn1z1fdwr9b3crirg";
-      name = "libkcddb-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkcddb-20.12.1.tar.xz";
+      sha256 = "07ky4ly72689gb58jxqqzq5bgmb9wslxkqj0ldam6v82ldk8ss7k";
+      name = "libkcddb-20.12.1.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkcompactdisc-20.08.3.tar.xz";
-      sha256 = "1nglk3kbx5czqla3cnpnf1fk71pf2cl9h6rgb40ak1xw4z31d456";
-      name = "libkcompactdisc-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkcompactdisc-20.12.1.tar.xz";
+      sha256 = "101szps2js8dhxdn913mj9b2z953rp47ikkbrrdjl1fq1i8dh6ib";
+      name = "libkcompactdisc-20.12.1.tar.xz";
     };
   };
   libkdcraw = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdcraw-20.08.3.tar.xz";
-      sha256 = "1806i99qsrmixdg5b0hyi8h55fk00q6wxsnrblbwcmsb268jddp7";
-      name = "libkdcraw-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkdcraw-20.12.1.tar.xz";
+      sha256 = "1vkjyccyax622a3jvqdfnppansabxaxplyk9prn302zqmgvl05h3";
+      name = "libkdcraw-20.12.1.tar.xz";
     };
   };
   libkdegames = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdegames-20.08.3.tar.xz";
-      sha256 = "1ccbcwwqb53bgqlr1rq9plpw21mipxp8rsi1f7l0p1jzpw054p08";
-      name = "libkdegames-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkdegames-20.12.1.tar.xz";
+      sha256 = "1zy44k98xjjydsa35bagf152kfb394wxpdx0c06vcf404jkhk7ng";
+      name = "libkdegames-20.12.1.tar.xz";
     };
   };
   libkdepim = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkdepim-20.08.3.tar.xz";
-      sha256 = "1v77g02v5sdqprh8psx5xpjgf8v91il60ca59yivm5jvc3hdf3f6";
-      name = "libkdepim-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkdepim-20.12.1.tar.xz";
+      sha256 = "0kp2xssl1qbl3ziskxl3hhvyp8nc35d2fijk6hl99j3sxpdi2s4f";
+      name = "libkdepim-20.12.1.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkeduvocdocument-20.08.3.tar.xz";
-      sha256 = "0ghkx6x5sn5fl934ybhl32knwv9zky0n1vkjw2w93lpms45xmw76";
-      name = "libkeduvocdocument-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkeduvocdocument-20.12.1.tar.xz";
+      sha256 = "0kqnhaabfi91clqg7nlnjcybl5ca0p3ysn5zlwhxz1fcjxm83g4w";
+      name = "libkeduvocdocument-20.12.1.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkexiv2-20.08.3.tar.xz";
-      sha256 = "1lh3947w6xgzl2r1wm6m4kd478q6bv89f0c3c38ldv30imfw7rfl";
-      name = "libkexiv2-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkexiv2-20.12.1.tar.xz";
+      sha256 = "1vylyl3gxk3xais7c640kdnp4s4jwd9y2xxkwmf36ax0dv8wdcv0";
+      name = "libkexiv2-20.12.1.tar.xz";
     };
   };
   libkgapi = {
-    version = "20.08.3";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkgapi-20.08.3.tar.xz";
-      sha256 = "1kmgf9v9rvb67l7aw5xsx7v44l4pz8rl6p09lk26irq7gd4k68la";
-      name = "libkgapi-20.08.3.tar.xz";
-    };
-  };
-  libkgeomap = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkgeomap-20.08.3.tar.xz";
-      sha256 = "14ipksxnvgk2s1sw7a70153iy9aik9mf4i7k8y3pzdr3l3155ayk";
-      name = "libkgeomap-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkgapi-20.12.1.tar.xz";
+      sha256 = "0cx8lbzq8ambz2lbslakczzcfmhri4268p7zf7hnf3ymd17a5y8d";
+      name = "libkgapi-20.12.1.tar.xz";
     };
   };
   libkipi = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkipi-20.08.3.tar.xz";
-      sha256 = "1b5qby7xm926qnzrf1zpb89fwx1a2syhqnznmdjxifj499p1jqjb";
-      name = "libkipi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkipi-20.12.1.tar.xz";
+      sha256 = "1ln4f1n9ghiqb9h4lpw6qcwz7wrvm8jlcqn1ingjh9s58zw8wqsg";
+      name = "libkipi-20.12.1.tar.xz";
     };
   };
   libkleo = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkleo-20.08.3.tar.xz";
-      sha256 = "1d6dal4qnrikg6ma2ird4b2sdivqqkkhamvd3s1srcxppc3aiq79";
-      name = "libkleo-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkleo-20.12.1.tar.xz";
+      sha256 = "0dq86pg0jchlpsynk0355wwq3pggqkj0mxhyvgi6a0xb2riy2r4a";
+      name = "libkleo-20.12.1.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkmahjongg-20.08.3.tar.xz";
-      sha256 = "0xabp1vzbzs52m3bb9nzm1d9md1n4j4pr13izn6nv28ja7477nnm";
-      name = "libkmahjongg-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkmahjongg-20.12.1.tar.xz";
+      sha256 = "0cq0bcl7hkgj1v7giqzbrvlds2933ji52fg53cakz29fkgxibj3x";
+      name = "libkmahjongg-20.12.1.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libkomparediff2-20.08.3.tar.xz";
-      sha256 = "0nk0jkf0jwaz1yqzzp44c6xyjgw42gclkcvw8w61w1f8sdl40wb8";
-      name = "libkomparediff2-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libkomparediff2-20.12.1.tar.xz";
+      sha256 = "04klqvhh8zl5lyblpqgm92wycq4r0hh6gx18nqnsgx6lknlrx9y3";
+      name = "libkomparediff2-20.12.1.tar.xz";
     };
   };
   libksane = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libksane-20.08.3.tar.xz";
-      sha256 = "0d2cnmvk16g1vnx9jd7jvp3bpw07ss54khmhqip8iskkvcfll9j0";
-      name = "libksane-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libksane-20.12.1.tar.xz";
+      sha256 = "07xsfs0lkh35nj0fy7y1r46nkdmm26nbpsm846v18lh7wflxi36j";
+      name = "libksane-20.12.1.tar.xz";
     };
   };
   libksieve = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/libksieve-20.08.3.tar.xz";
-      sha256 = "0bhpdqynazssql2iivvpb9l8npa441345gcn59fc0va6barl9sam";
-      name = "libksieve-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/libksieve-20.12.1.tar.xz";
+      sha256 = "07zgcsdl38fdy5pskp51rj5p7m3pz9szwidyg24mdyzb08k5xpdz";
+      name = "libksieve-20.12.1.tar.xz";
+    };
+  };
+  libktorrent = {
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/libktorrent-20.12.1.tar.xz";
+      sha256 = "18mcrb064gizqb699cs9bvm918gg06wm6sq33pi87kwki5cniamv";
+      name = "libktorrent-20.12.1.tar.xz";
     };
   };
   lokalize = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/lokalize-20.08.3.tar.xz";
-      sha256 = "0iab8sd1qh7h0zna7lc3v43z6rcmxba9v4nynhl5miiac4r6ddr8";
-      name = "lokalize-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/lokalize-20.12.1.tar.xz";
+      sha256 = "0mxzk9s0yrjf8gj70dpl1wbvnrkzc3ncqab2bj3yx0xk05hagjlx";
+      name = "lokalize-20.12.1.tar.xz";
     };
   };
   lskat = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/lskat-20.08.3.tar.xz";
-      sha256 = "1rcmh592w5gd5b69czfxycypidj74y2d91cw92rccariadz9vnjz";
-      name = "lskat-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/lskat-20.12.1.tar.xz";
+      sha256 = "0p8n2cgfdxxjbx4jcpqf85h6k36nggj32h982yj3ig5dh1csym5d";
+      name = "lskat-20.12.1.tar.xz";
     };
   };
   mailcommon = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mailcommon-20.08.3.tar.xz";
-      sha256 = "0bhs60cz4qcrqkmw2sm6cd2laq8lzj9vcwi8kjqkajsidh342wdv";
-      name = "mailcommon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/mailcommon-20.12.1.tar.xz";
+      sha256 = "191d6l314njlj227qhz7qqmkjkz9zm7xnvm9rlfj302san90a338";
+      name = "mailcommon-20.12.1.tar.xz";
     };
   };
   mailimporter = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mailimporter-20.08.3.tar.xz";
-      sha256 = "0w6yfgqx0adlkwx32vmb23kl6n50737jiabmad3pnhqw8rv41h80";
-      name = "mailimporter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/mailimporter-20.12.1.tar.xz";
+      sha256 = "0jqdckpwlipc4zxxwnvysl44ri19h0hgr37dp36k99sxa3688jxc";
+      name = "mailimporter-20.12.1.tar.xz";
     };
   };
   marble = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/marble-20.08.3.tar.xz";
-      sha256 = "1xpxgy724z97k063fdk0l3mrl8i6nvnhj35b4987jqji76i92ffb";
-      name = "marble-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/marble-20.12.1.tar.xz";
+      sha256 = "0w398igxx7pmyd4bj65ppbxfc4fiz4hsjmcffya88dnxxz73djb5";
+      name = "marble-20.12.1.tar.xz";
+    };
+  };
+  markdownpart = {
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/markdownpart-20.12.1.tar.xz";
+      sha256 = "1389hswbhcssl9ybb605h9i50fv6jajggldkiyfwqxbi7aysghwk";
+      name = "markdownpart-20.12.1.tar.xz";
     };
   };
   mbox-importer = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/mbox-importer-20.08.3.tar.xz";
-      sha256 = "1qh0f93df228cqlcqdwc7g6im3g0gkfmzir3ccsmb5iv0ygvjl6f";
-      name = "mbox-importer-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/mbox-importer-20.12.1.tar.xz";
+      sha256 = "1kgbiq933f93sb8m2nqmpp1x6qkqqcm2hcb3ihk5741dcpdmxx9n";
+      name = "mbox-importer-20.12.1.tar.xz";
     };
   };
   messagelib = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/messagelib-20.08.3.tar.xz";
-      sha256 = "16amni6qrq96h8jr313gc7k9frwr20d4pk9y2i61a1xm2w3xsqd4";
-      name = "messagelib-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/messagelib-20.12.1.tar.xz";
+      sha256 = "0yjh7s80ksyyi78vxjw4i5f1bmsfziphwm6flgnw18gfzj3pyyy7";
+      name = "messagelib-20.12.1.tar.xz";
     };
   };
   minuet = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/minuet-20.08.3.tar.xz";
-      sha256 = "1l45g7labnyz0pkwcfhjl5a3ypr7cy3bsshr06ab85364yjwazvi";
-      name = "minuet-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/minuet-20.12.1.tar.xz";
+      sha256 = "13jlz2m57x379zyv4x5zk2h6jc0qcz1zymkyrzs431bfmhyhdna2";
+      name = "minuet-20.12.1.tar.xz";
     };
   };
   okular = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/okular-20.08.3.tar.xz";
-      sha256 = "1q59ikcwsfgjc0202daingxv15iarnzba6szdncznzcafd6hhk9z";
-      name = "okular-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/okular-20.12.1.tar.xz";
+      sha256 = "0gpm7n47yijsjg4yba561j5pbvd98hgvr93w1kvzk851nb87m89c";
+      name = "okular-20.12.1.tar.xz";
     };
   };
   palapeli = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/palapeli-20.08.3.tar.xz";
-      sha256 = "107z3izfznrq7g5aqb5a7r8a4ibaia90g334d7wwvd7prm7hdgfp";
-      name = "palapeli-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/palapeli-20.12.1.tar.xz";
+      sha256 = "05d3f0snbg0iz78ggxk7hv1qn3blvpnpclhrhzcw1c5znr7al2xm";
+      name = "palapeli-20.12.1.tar.xz";
     };
   };
   parley = {
-    version = "20.08.3";
+    version = "20.12.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.12.1/src/parley-20.12.1.tar.xz";
+      sha256 = "00xc1dv3fj783brfqh3ggvrwv26m840k35vrx2izzq5lqx2g1p5a";
+      name = "parley-20.12.1.tar.xz";
+    };
+  };
+  partitionmanager = {
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/parley-20.08.3.tar.xz";
-      sha256 = "0wli09zkk5z50y1gzp5wc9k056xjaadlq97j09lf6lqyg6kb56ya";
-      name = "parley-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/partitionmanager-20.12.1.tar.xz";
+      sha256 = "1zypkah2smmqclni2r8571sd6qd5cbc0915r6gzf800yyccsfb65";
+      name = "partitionmanager-20.12.1.tar.xz";
     };
   };
   picmi = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/picmi-20.08.3.tar.xz";
-      sha256 = "1lkpazsi9dyb2y9q5bk56d80x7x035rf4hdap25i8qfj3ilykv3w";
-      name = "picmi-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/picmi-20.12.1.tar.xz";
+      sha256 = "0aiaq99sb57vvz5wjwdwm0jj456nj26qs4m6vwibb1f0f8js4i03";
+      name = "picmi-20.12.1.tar.xz";
     };
   };
   pimcommon = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pimcommon-20.08.3.tar.xz";
-      sha256 = "0mpl7li2y5xjzk4hdb85d1x7cz15cicd91c1krlw74q7pbrjinlq";
-      name = "pimcommon-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/pimcommon-20.12.1.tar.xz";
+      sha256 = "1w5avmvssqnvxl31xrlh1xfns6q386w8ixlzfbzjkz5m95m4wr57";
+      name = "pimcommon-20.12.1.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pim-data-exporter-20.08.3.tar.xz";
-      sha256 = "0f08c16d3730fbdsbrwlr9w5c4l9xcmd1bdbv5m38h5r2ddlkvzr";
-      name = "pim-data-exporter-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/pim-data-exporter-20.12.1.tar.xz";
+      sha256 = "0k9lh3llkzx0n5x8q14hkbjjrkczm10kr246bzr1zz8lcv1za1jc";
+      name = "pim-data-exporter-20.12.1.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/pim-sieve-editor-20.08.3.tar.xz";
-      sha256 = "1falzw2a2v912fdzlyljsw9rcy1whrn9ys9ccrskkpvjn8y444x4";
-      name = "pim-sieve-editor-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/pim-sieve-editor-20.12.1.tar.xz";
+      sha256 = "0lifarfkpcpdvwmn61gmfd45k5i0dbf3sjrb0z1yaqsq7m158di1";
+      name = "pim-sieve-editor-20.12.1.tar.xz";
     };
   };
   poxml = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/poxml-20.08.3.tar.xz";
-      sha256 = "0gzg3vbsjrfhs1jg59g7b3gf3b4qajiffkb94njkz8v1f0fadlxp";
-      name = "poxml-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/poxml-20.12.1.tar.xz";
+      sha256 = "1smjvblx0jcv3afs2sr4qcmvhqd44iw24hvr9fppa3nxhrmjwmlk";
+      name = "poxml-20.12.1.tar.xz";
     };
   };
   print-manager = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/print-manager-20.08.3.tar.xz";
-      sha256 = "18nl9gpmzz4g9fqzyvbh858nxz23b2vyi505qacqvcrz13r0l78z";
-      name = "print-manager-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/print-manager-20.12.1.tar.xz";
+      sha256 = "1nx442bi41gd64i4j0nc8hx0wdv6ayvnp2wydn4l7sgsf0ms4x6y";
+      name = "print-manager-20.12.1.tar.xz";
     };
   };
   rocs = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/rocs-20.08.3.tar.xz";
-      sha256 = "0bd9x7kh2s4z79ff9byd3ly7k040c574zwrrgi8sq21yd531hxhj";
-      name = "rocs-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/rocs-20.12.1.tar.xz";
+      sha256 = "11gg2pmx21wfrw63qv7w8bjzcsxf86j5ripa2dwqfl3355wvi5mb";
+      name = "rocs-20.12.1.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/signon-kwallet-extension-20.08.3.tar.xz";
-      sha256 = "1s0syq9aw2q34k1wxrpjqqi12xay1h0vc4s2d8l184hzzg8qq71i";
-      name = "signon-kwallet-extension-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/signon-kwallet-extension-20.12.1.tar.xz";
+      sha256 = "0m48a5mqmwrjl4wc4m30n5csl7fwp8g70pv0nib0v36lp0424xjb";
+      name = "signon-kwallet-extension-20.12.1.tar.xz";
     };
   };
   spectacle = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/spectacle-20.08.3.tar.xz";
-      sha256 = "16dwbsk9hik7gmz9s4x78hibz4x9d1fpx8x2i2giry5hwzknfcw4";
-      name = "spectacle-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/spectacle-20.12.1.tar.xz";
+      sha256 = "04jsm0ipfaccc80qxnhhbfc9fn009cxa7dys89iqfqza6ssvq51l";
+      name = "spectacle-20.12.1.tar.xz";
     };
   };
   step = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/step-20.08.3.tar.xz";
-      sha256 = "05ljsmgpra1az64yddy8idi46cv3afaf2v4n7d5j81a8vvlz7fj1";
-      name = "step-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/step-20.12.1.tar.xz";
+      sha256 = "05xj4zv4r82nnz5rzb0rmrps4dagnkw9f5lapil5mi1i1gwqfi2k";
+      name = "step-20.12.1.tar.xz";
     };
   };
   svgpart = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/svgpart-20.08.3.tar.xz";
-      sha256 = "0wwq576dblqmfknr0qs8kskw7nar6hah95fqicdn97xdy4nvzhc6";
-      name = "svgpart-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/svgpart-20.12.1.tar.xz";
+      sha256 = "09n0pf5saww8gppmd501i3dfr13yvn4r2rfbdz42zlvcpcpgxdry";
+      name = "svgpart-20.12.1.tar.xz";
     };
   };
   sweeper = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/sweeper-20.08.3.tar.xz";
-      sha256 = "0i4zvbljdzkj47vh8kizam7vsc9k7mvf8dqd2j6ixr4p0cqvw5a8";
-      name = "sweeper-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/sweeper-20.12.1.tar.xz";
+      sha256 = "06a9a9vbkfhmlcc927ysa0qnp5qqbl5iywhkgbvyz90nsdaw3jjl";
+      name = "sweeper-20.12.1.tar.xz";
     };
   };
   umbrello = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/umbrello-20.08.3.tar.xz";
-      sha256 = "1hh5gyggb4f3pjip8dfvx00hi83gj65c92jgzkzahj7p35mkplgl";
-      name = "umbrello-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/umbrello-20.12.1.tar.xz";
+      sha256 = "07fxxyw5zn1xj05kjr16rkgpj7ms9xvgpj4zlg428037gfa8g9vl";
+      name = "umbrello-20.12.1.tar.xz";
     };
   };
   yakuake = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/yakuake-20.08.3.tar.xz";
-      sha256 = "05zd2xm5vgrgz0bxbkh1mpiknlqzpzk5jb74lnd5x7wn5b80ngv0";
-      name = "yakuake-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/yakuake-20.12.1.tar.xz";
+      sha256 = "02pal9xx1wbpw7dimvs2aw1xnyjqlvbjlybkkfhf8x7c6m1r63aa";
+      name = "yakuake-20.12.1.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "20.08.3";
+    version = "20.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.3/src/zeroconf-ioslave-20.08.3.tar.xz";
-      sha256 = "1afga0liiy9n98kb0gmxzbb6ckhdgbrdc4ig1x9pwp98wr1fzmcg";
-      name = "zeroconf-ioslave-20.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.1/src/zeroconf-ioslave-20.12.1.tar.xz";
+      sha256 = "1lx94qgrqhyva3nv7sgzy0blbdgx3b6m0g0i0psg74qckdh8glas";
+      name = "zeroconf-ioslave-20.12.1.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index c3e9a774fa9..6a91be6a305 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "1.8.3";
+  version = "1.8.4";
   commit = "ef5010c3a0b5e027fd642732d03c5b0391b1e574";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    sha256 = "sha256-do5DAxaQ1gBdvNN/YGKAkmkFcJ+j/ojBaWPwrXXQko0=";
+    sha256 = "sha256-E/IHJul2dGt8ITwZBhvZN8c4vQzzA99lGArCaLNJo5Q=";
   };
 
   vendorSha256 = "sha256-6DOay+aeXz7EQKe5SzQSmg/5KyUI0g6wzPgx/+F2RW4=";
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 90f6ba5ac5a..8761fc9fbca 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -8,6 +8,7 @@
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
 , perlSupport ? true
 , nlsSupport ? true
+, osxkeychainSupport ? stdenv.isDarwin
 , guiSupport
 , withManual ? true
 , pythonSupport ? true
@@ -19,11 +20,12 @@
 , gzip # needed at runtime by gitweb.cgi
 }:
 
+assert osxkeychainSupport -> stdenv.isDarwin;
 assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.30.0";
+  version = "2.30.1";
   svn = subversionClient.override { perlBindings = perlSupport; };
 
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -35,7 +37,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "06ad6dylgla34k9am7d5z8y3rryc8ln3ibq5z0d74rcm20hm0wsm";
+    sha256 = "0rwlbps9x8kgk2hsm0bvsrkpsk9bnbnz8alknbd7i688jnhai27r";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -115,7 +117,7 @@ stdenv.mkDerivation {
     make -C contrib/subtree
   '' + (lib.optionalString perlSupport ''
     make -C contrib/diff-highlight
-  '') + (lib.optionalString stdenv.isDarwin ''
+  '') + (lib.optionalString osxkeychainSupport ''
     make -C contrib/credential/osxkeychain
   '') + (lib.optionalString withLibsecret ''
     make -C contrib/credential/libsecret
@@ -129,7 +131,7 @@ stdenv.mkDerivation {
 
   installFlags = [ "NO_INSTALL_HARDLINKS=1" ];
 
-  preInstall = (lib.optionalString stdenv.isDarwin ''
+  preInstall = (lib.optionalString osxkeychainSupport ''
     mkdir -p $out/bin
     ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/
     rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o
@@ -248,8 +250,8 @@ stdenv.mkDerivation {
          notSupported "$out/$prog"
        done
      '')
-   + lib.optionalString stdenv.isDarwin ''
-    # enable git-credential-osxkeychain by default if darwin
+   + lib.optionalString osxkeychainSupport ''
+    # enable git-credential-osxkeychain on darwin if desired (default)
     mkdir -p $out/etc
     cat > $out/etc/gitconfig << EOF
     [credential]
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index dc86a7dc581..19ec71261be 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -3,7 +3,8 @@
 , buildPackages
 , cacert
 , cargo
-, diffutils
+, cargoBuildHook
+, cargoSetupHook
 , fetchCargoTarball
 , runCommandNoCC
 , rustPlatform
@@ -37,7 +38,6 @@
 , cargoBuildFlags ? []
 , buildType ? "release"
 , meta ? {}
-, target ? rust.toRustTargetSpec stdenv.hostPlatform
 , cargoVendorDir ? null
 , checkType ? buildType
 , depsExtraArgs ? {}
@@ -71,19 +71,7 @@ let
   # against the src fixed-output derivation to check consistency.
   validateCargoDeps = !(cargoHash == "" && cargoSha256 == "");
 
-  # Some cargo builds include build hooks that modify their own vendor
-  # dependencies. This copies the vendor directory into the build tree and makes
-  # it writable. If we're using a tarball, the unpackFile hook already handles
-  # this for us automatically.
-  setupVendorDir = if cargoVendorDir == null
-    then (''
-      unpackFile "$cargoDeps"
-      cargoDepsCopy=$(stripHash $cargoDeps)
-    '')
-    else ''
-      cargoDepsCopy="$sourceRoot/${cargoVendorDir}"
-    '';
-
+  target = rust.toRustTargetSpec stdenv.hostPlatform;
   targetIsJSON = lib.hasSuffix ".json" target;
   useSysroot = targetIsJSON && !__internal_dontAddSysroot;
 
@@ -99,18 +87,9 @@ let
     originalCargoToml = src + /Cargo.toml; # profile info is later extracted
   };
 
-  ccForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
-  cxxForBuild="${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
-  ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
-  cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
   releaseDir = "target/${shortTarget}/${buildType}";
   tmpDir = "${releaseDir}-tmp";
 
-  # Specify the stdenv's `diff` by abspath to ensure that the user's build
-  # inputs do not cause us to find the wrong `diff`.
-  # The `.nativeDrv` stanza works like nativeBuildInputs and ensures cross-compiling has the right version available.
-  diff = "${diffutils.nativeDrv or diffutils}/bin/diff";
-
 in
 
 # Tests don't currently work for `no_std`, and all custom sysroots are currently built without `std`.
@@ -120,11 +99,17 @@ assert useSysroot -> !(args.doCheck or true);
 stdenv.mkDerivation ((removeAttrs args ["depsExtraArgs"]) // lib.optionalAttrs useSysroot {
   RUSTFLAGS = "--sysroot ${sysroot} " + (args.RUSTFLAGS or "");
 } // {
-  inherit cargoDeps;
+  inherit buildAndTestSubdir cargoDeps releaseDir tmpDir;
+
+  cargoBuildFlags = lib.concatStringsSep " " cargoBuildFlags;
+
+  cargoBuildType = "--${buildType}";
 
   patchRegistryDeps = ./patch-registry-deps;
 
-  nativeBuildInputs = nativeBuildInputs ++ [ cacert git cargo rustc ];
+  nativeBuildInputs = nativeBuildInputs ++
+    [ cacert git cargo cargoBuildHook cargoSetupHook rustc ];
+
   buildInputs = buildInputs ++ lib.optional stdenv.hostPlatform.isMinGW windows.pthreads;
 
   patches = cargoPatches ++ patches;
@@ -135,109 +120,14 @@ stdenv.mkDerivation ((removeAttrs args ["depsExtraArgs"]) // lib.optionalAttrs u
   postUnpack = ''
     eval "$cargoDepsHook"
 
-    ${setupVendorDir}
-
-    mkdir .cargo
-    config="$(pwd)/$cargoDepsCopy/.cargo/config";
-    if [[ ! -e $config ]]; then
-      config=${./fetchcargo-default-config.toml};
-    fi;
-    substitute $config .cargo/config \
-      --subst-var-by vendor "$(pwd)/$cargoDepsCopy"
-
-    cat >> .cargo/config <<'EOF'
-    [target."${rust.toRustTarget stdenv.buildPlatform}"]
-    "linker" = "${ccForBuild}"
-    ${lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) ''
-    [target."${shortTarget}"]
-    "linker" = "${ccForHost}"
-    ${# https://github.com/rust-lang/rust/issues/46651#issuecomment-433611633
-      lib.optionalString (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64) ''
-    "rustflags" = [ "-C", "target-feature=+crt-static", "-C", "link-arg=-lgcc" ]
-    ''}
-    ''}
-    EOF
-
     export RUST_LOG=${logLevel}
   '' + (args.postUnpack or "");
 
-  # After unpacking and applying patches, check that the Cargo.lock matches our
-  # src package. Note that we do this after the patchPhase, because the
-  # patchPhase may create the Cargo.lock if upstream has not shipped one.
-  postPatch = (args.postPatch or "") + lib.optionalString validateCargoDeps ''
-    cargoDepsLockfile=$NIX_BUILD_TOP/$cargoDepsCopy/Cargo.lock
-    srcLockfile=$NIX_BUILD_TOP/$sourceRoot/Cargo.lock
-
-    echo "Validating consistency between $srcLockfile and $cargoDepsLockfile"
-    if ! ${diff} $srcLockfile $cargoDepsLockfile; then
-
-      # If the diff failed, first double-check that the file exists, so we can
-      # give a friendlier error msg.
-      if ! [ -e $srcLockfile ]; then
-        echo "ERROR: Missing Cargo.lock from src. Expected to find it at: $srcLockfile"
-        echo "Hint: You can use the cargoPatches attribute to add a Cargo.lock manually to the build."
-        exit 1
-      fi
-
-      if ! [ -e $cargoDepsLockfile ]; then
-        echo "ERROR: Missing lockfile from cargo vendor. Expected to find it at: $cargoDepsLockfile"
-        exit 1
-      fi
-
-      echo
-      echo "ERROR: cargoSha256 is out of date"
-      echo
-      echo "Cargo.lock is not the same in $cargoDepsCopy"
-      echo
-      echo "To fix the issue:"
-      echo '1. Use "0000000000000000000000000000000000000000000000000000" as the cargoSha256 value'
-      echo "2. Build the derivation and wait for it to fail with a hash mismatch"
-      echo "3. Copy the 'got: sha256:' value back into the cargoSha256 field"
-      echo
-
-      exit 1
-    fi
-  '' + ''
-    unset cargoDepsCopy
-  '';
-
   configurePhase = args.configurePhase or ''
     runHook preConfigure
     runHook postConfigure
   '';
 
-  buildPhase = with builtins; args.buildPhase or ''
-    ${lib.optionalString (buildAndTestSubdir != null) "pushd ${buildAndTestSubdir}"}
-    runHook preBuild
-
-    (
-    set -x
-    env \
-      "CC_${rust.toRustTarget stdenv.buildPlatform}"="${ccForBuild}" \
-      "CXX_${rust.toRustTarget stdenv.buildPlatform}"="${cxxForBuild}" \
-      "CC_${rust.toRustTarget stdenv.hostPlatform}"="${ccForHost}" \
-      "CXX_${rust.toRustTarget stdenv.hostPlatform}"="${cxxForHost}" \
-      cargo build -j $NIX_BUILD_CORES \
-        ${lib.optionalString (buildType == "release") "--release"} \
-        --target ${target} \
-        --frozen ${concatStringsSep " " cargoBuildFlags}
-    )
-
-    runHook postBuild
-
-    ${lib.optionalString (buildAndTestSubdir != null) "popd"}
-
-    # This needs to be done after postBuild: packages like `cargo` do a pushd/popd in
-    # the pre/postBuild-hooks that need to be taken into account before gathering
-    # all binaries to install.
-    mkdir -p $tmpDir
-    cp -r $releaseDir/* $tmpDir/
-    bins=$(find $tmpDir \
-      -maxdepth 1 \
-      -type f \
-      -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \))
-  '';
-
   checkPhase = args.checkPhase or (let
     argstr = "${lib.optionalString (checkType == "release") "--release"} --target ${target} --frozen";
     threads = if cargoParallelTestThreads then "$NIX_BUILD_CORES" else "1";
@@ -254,11 +144,19 @@ stdenv.mkDerivation ((removeAttrs args ["depsExtraArgs"]) // lib.optionalAttrs u
 
   strictDeps = true;
 
-  inherit releaseDir tmpDir;
-
   installPhase = args.installPhase or ''
     runHook preInstall
 
+    # This needs to be done after postBuild: packages like `cargo` do a pushd/popd in
+    # the pre/postBuild-hooks that need to be taken into account before gathering
+    # all binaries to install.
+    mkdir -p $tmpDir
+    cp -r $releaseDir/* $tmpDir/
+    bins=$(find $tmpDir \
+      -maxdepth 1 \
+      -type f \
+      -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \))
+
     # rename the output dir to a architecture independent one
     mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${tmpDir}$')
     for target in "''${targets[@]}"; do
diff --git a/pkgs/build-support/rust/fetchCargoTarball.nix b/pkgs/build-support/rust/fetchCargoTarball.nix
index c30e88d99b8..3b36554e707 100644
--- a/pkgs/build-support/rust/fetchCargoTarball.nix
+++ b/pkgs/build-support/rust/fetchCargoTarball.nix
@@ -21,7 +21,7 @@ in
 , src ? null
 , srcs ? []
 , patches ? []
-, sourceRoot
+, sourceRoot ? ""
 , hash ? ""
 , sha256 ? ""
 , cargoUpdateHook ? ""
diff --git a/pkgs/build-support/rust/hooks/cargo-build-hook.sh b/pkgs/build-support/rust/hooks/cargo-build-hook.sh
new file mode 100644
index 00000000000..55585233413
--- /dev/null
+++ b/pkgs/build-support/rust/hooks/cargo-build-hook.sh
@@ -0,0 +1,33 @@
+cargoBuildHook() {
+    echo "Executing cargoBuildHook"
+
+    runHook preBuild
+
+    if [ ! -z "${buildAndTestSubdir-}" ]; then
+        pushd "${buildAndTestSubdir}"
+    fi
+
+    (
+    set -x
+    env \
+      "CC_@rustBuildPlatform@=@ccForBuild@" \
+      "CXX_@rustBuildPlatform@=@cxxForBuild@" \
+      "CC_@rustTargetPlatform@=@ccForHost@" \
+      "CXX_@rustTargetPlatform@=@cxxForHost@" \
+      cargo build -j $NIX_BUILD_CORES \
+        --target @rustTargetPlatformSpec@ \
+        --frozen \
+        ${cargoBuildType} \
+        ${cargoBuildFlags}
+    )
+
+    runHook postBuild
+
+    if [ ! -z "${buildAndTestSubdir-}" ]; then
+        popd
+    fi
+
+    echo "Finished cargoBuildHook"
+}
+
+buildPhase=cargoBuildHook
diff --git a/pkgs/build-support/rust/hooks/cargo-setup-hook.sh b/pkgs/build-support/rust/hooks/cargo-setup-hook.sh
new file mode 100644
index 00000000000..0fddd30582a
--- /dev/null
+++ b/pkgs/build-support/rust/hooks/cargo-setup-hook.sh
@@ -0,0 +1,84 @@
+cargoSetupPostUnpackHook() {
+    echo "Executing cargoSetupPostUnpackHook"
+
+    # Some cargo builds include build hooks that modify their own vendor
+    # dependencies. This copies the vendor directory into the build tree and makes
+    # it writable. If we're using a tarball, the unpackFile hook already handles
+    # this for us automatically.
+    if [ -z $cargoVendorDir ]; then
+        unpackFile "$cargoDeps"
+        export cargoDepsCopy=$(stripHash $cargoDeps)
+    else
+      cargoDepsCopy="$sourceRoot/${cargoRoot:+$cargoRoot/}${cargoVendorDir}"
+    fi
+
+    if [ ! -d .cargo ]; then
+        mkdir .cargo
+    fi
+
+    config="$(pwd)/$cargoDepsCopy/.cargo/config";
+    if [[ ! -e $config ]]; then
+      config=@defaultConfig@
+    fi;
+
+    tmp_config=$(mktemp)
+    substitute $config $tmp_config \
+      --subst-var-by vendor "$(pwd)/$cargoDepsCopy"
+    cat ${tmp_config} >> .cargo/config
+
+    cat >> .cargo/config <<'EOF'
+    @rustTarget@
+EOF
+
+    echo "Finished cargoSetupPostUnpackHook"
+}
+
+# After unpacking and applying patches, check that the Cargo.lock matches our
+# src package. Note that we do this after the patchPhase, because the
+# patchPhase may create the Cargo.lock if upstream has not shipped one.
+cargoSetupPostPatchHook() {
+    echo "Executing cargoSetupPostPatchHook"
+
+    cargoDepsLockfile="$NIX_BUILD_TOP/$cargoDepsCopy/Cargo.lock"
+    srcLockfile="$NIX_BUILD_TOP/$sourceRoot/${cargoRoot:+$cargoRoot/}/Cargo.lock"
+
+    echo "Validating consistency between $srcLockfile and $cargoDepsLockfile"
+    if ! @diff@ $srcLockfile $cargoDepsLockfile; then
+
+      # If the diff failed, first double-check that the file exists, so we can
+      # give a friendlier error msg.
+      if ! [ -e $srcLockfile ]; then
+        echo "ERROR: Missing Cargo.lock from src. Expected to find it at: $srcLockfile"
+        echo "Hint: You can use the cargoPatches attribute to add a Cargo.lock manually to the build."
+        exit 1
+      fi
+
+      if ! [ -e $cargoDepsLockfile ]; then
+        echo "ERROR: Missing lockfile from cargo vendor. Expected to find it at: $cargoDepsLockfile"
+        exit 1
+      fi
+
+      echo
+      echo "ERROR: cargoSha256 is out of date"
+      echo
+      echo "Cargo.lock is not the same in $cargoDepsCopy"
+      echo
+      echo "To fix the issue:"
+      echo '1. Use "0000000000000000000000000000000000000000000000000000" as the cargoSha256 value'
+      echo "2. Build the derivation and wait for it to fail with a hash mismatch"
+      echo "3. Copy the 'got: sha256:' value back into the cargoSha256 field"
+      echo
+
+      exit 1
+    fi
+
+    unset cargoDepsCopy
+
+    echo "Finished cargoSetupPostPatchHook"
+}
+
+postUnpackHooks+=(cargoSetupPostUnpackHook)
+
+if [ -z ${cargoVendorDir-} ]; then
+  postPatchHooks+=(cargoSetupPostPatchHook)
+fi
diff --git a/pkgs/build-support/rust/hooks/default.nix b/pkgs/build-support/rust/hooks/default.nix
new file mode 100644
index 00000000000..d4b2cc15605
--- /dev/null
+++ b/pkgs/build-support/rust/hooks/default.nix
@@ -0,0 +1,76 @@
+{ buildPackages
+, callPackage
+, cargo
+, diffutils
+, lib
+, makeSetupHook
+, maturin
+, rust
+, stdenv
+, target ? rust.toRustTargetSpec stdenv.hostPlatform
+}:
+
+let
+  targetIsJSON = lib.hasSuffix ".json" target;
+
+  # see https://github.com/rust-lang/cargo/blob/964a16a28e234a3d397b2a7031d4ab4a428b1391/src/cargo/core/compiler/compile_kind.rs#L151-L168
+  # the "${}" is needed to transform the path into a /nix/store path before baseNameOf
+  shortTarget = if targetIsJSON then
+      (lib.removeSuffix ".json" (builtins.baseNameOf "${target}"))
+    else target;
+  ccForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc";
+  cxxForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++";
+  ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
+  cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
+  rustBuildPlatform = rust.toRustTarget stdenv.buildPlatform;
+  rustTargetPlatform = rust.toRustTarget stdenv.hostPlatform;
+  rustTargetPlatformSpec = rust.toRustTargetSpec stdenv.hostPlatform;
+in {
+  cargoBuildHook = callPackage ({ }:
+    makeSetupHook {
+      name = "cargo-build-hook.sh";
+      deps = [ cargo ];
+      substitutions = {
+        inherit ccForBuild ccForHost cxxForBuild cxxForHost
+          rustBuildPlatform rustTargetPlatform rustTargetPlatformSpec;
+      };
+    } ./cargo-build-hook.sh) {};
+
+  cargoSetupHook = callPackage ({ }:
+    makeSetupHook {
+      name = "cargo-setup-hook.sh";
+      deps = [ ];
+      substitutions = {
+        defaultConfig = ../fetchcargo-default-config.toml;
+
+        # Specify the stdenv's `diff` by abspath to ensure that the user's build
+        # inputs do not cause us to find the wrong `diff`.
+        # The `.nativeDrv` stanza works like nativeBuildInputs and ensures cross-compiling has the right version available.
+        diff = "${diffutils.nativeDrv or diffutils}/bin/diff";
+
+        # Target platform
+        rustTarget = ''
+          [target."${rust.toRustTarget stdenv.buildPlatform}"]
+          "linker" = "${ccForBuild}"
+          ${lib.optionalString (stdenv.buildPlatform.config != stdenv.hostPlatform.config) ''
+            [target."${shortTarget}"]
+            "linker" = "${ccForHost}"
+            ${# https://github.com/rust-lang/rust/issues/46651#issuecomment-433611633
+            lib.optionalString (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isAarch64) ''
+              "rustflags" = [ "-C", "target-feature=+crt-static", "-C", "link-arg=-lgcc" ]
+            ''}
+          ''}
+        '';
+      };
+    } ./cargo-setup-hook.sh) {};
+
+  maturinBuildHook = callPackage ({ }:
+    makeSetupHook {
+      name = "maturin-build-hook.sh";
+      deps = [ cargo maturin ];
+      substitutions = {
+        inherit ccForBuild ccForHost cxxForBuild cxxForHost
+          rustBuildPlatform rustTargetPlatform rustTargetPlatformSpec;
+      };
+    } ./maturin-build-hook.sh) {};
+}
diff --git a/pkgs/build-support/rust/hooks/maturin-build-hook.sh b/pkgs/build-support/rust/hooks/maturin-build-hook.sh
new file mode 100644
index 00000000000..7e2599d9224
--- /dev/null
+++ b/pkgs/build-support/rust/hooks/maturin-build-hook.sh
@@ -0,0 +1,39 @@
+maturinBuildHook() {
+    echo "Executing maturinBuildHook"
+
+    runHook preBuild
+
+    if [ ! -z "${buildAndTestSubdir-}" ]; then
+        pushd "${buildAndTestSubdir}"
+    fi
+
+    (
+    set -x
+    env \
+      "CC_@rustBuildPlatform@=@ccForBuild@" \
+      "CXX_@rustBuildPlatform@=@cxxForBuild@" \
+      "CC_@rustTargetPlatform@=@ccForHost@" \
+      "CXX_@rustTargetPlatform@=@cxxForHost@" \
+      maturin build \
+        --cargo-extra-args="-j $NIX_BUILD_CORES --frozen" \
+        --target @rustTargetPlatformSpec@ \
+        --manylinux off \
+        --strip \
+        --release \
+        ${maturinBuildFlags-}
+    )
+
+    runHook postBuild
+
+    if [ ! -z "${buildAndTestSubdir-}" ]; then
+        popd
+    fi
+
+    # Move the wheel to dist/ so that regular Python tooling can find it.
+    mkdir -p dist
+    mv target/wheels/*.whl dist/
+
+    echo "Finished maturinBuildHook"
+}
+
+buildPhase=maturinBuildHook
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index f7f139a9ea9..5297fe05683 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "matcha-gtk-theme";
-  version = "2021-01-12";
+  version = "2021-02-04";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1h6y89aajygbp1rc3d5dw2vgb64a3hiajlifb4xnzhycc77vjskr";
+    sha256 = "sha256-CDym+yqLu7QpqmdUpXAbJTCjQf/r9D1sl7ZdpaWaXFE=";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix
index 18440a718d1..a24dca373f1 100644
--- a/pkgs/development/compilers/openjdk/11.nix
+++ b/pkgs/development/compilers/openjdk/11.nix
@@ -11,8 +11,8 @@
 let
   major = "11";
   minor = "0";
-  update = "9";
-  build = "11";
+  update = "10";
+  build = "9";
 
   openjdk = stdenv.mkDerivation rec {
     pname = "openjdk" + lib.optionalString headless "-headless";
@@ -22,7 +22,7 @@ let
       owner = "openjdk";
       repo = "jdk${major}u";
       rev = "jdk-${version}";
-      sha256 = "11j2rqz9nag5y562g99py4p72f2kv4wwwyrnaspmrzax00wynyx7";
+      sha256 = "06pm3hpz4ggiqwvkgzxr39y9kga7vk4flakfznz5979bvgb926vw";
     };
 
     nativeBuildInputs = [ pkg-config autoconf ];
diff --git a/pkgs/development/compilers/rust/make-rust-platform.nix b/pkgs/development/compilers/rust/make-rust-platform.nix
index 4b1f572bebb..1ea97b48c44 100644
--- a/pkgs/development/compilers/rust/make-rust-platform.nix
+++ b/pkgs/development/compilers/rust/make-rust-platform.nix
@@ -12,7 +12,7 @@ rec {
   };
 
   buildRustPackage = callPackage ../../../build-support/rust {
-    inherit rustc cargo fetchCargoTarball;
+    inherit rustc cargo cargoBuildHook cargoSetupHook fetchCargoTarball;
   };
 
   rustcSrc = callPackage ./rust-src.nix {
@@ -22,4 +22,9 @@ rec {
   rustLibSrc = callPackage ./rust-lib-src.nix {
     inherit rustc;
   };
+
+  # Hooks
+  inherit (callPackage ../../../build-support/rust/hooks {
+    inherit cargo;
+  }) cargoBuildHook cargoSetupHook maturinBuildHook;
 }
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 75fe1bac8cb..66e0b284fc0 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -168,11 +168,11 @@ let
       priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
     };
   } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
-    crossVersion = "4c55233ae95a6aef4d93291fe8ad12709b11e575"; # Jan 21, 2021
+    crossVersion = "1.3.5"; # Jan 24, 2021
 
     perl-cross-src = fetchurl {
       url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
-      sha256 = "04bxn43ir7b4c2bb1z1l71l93hrysjv00h879nm70m99q6vxq2hc";
+      sha256 = "1sa2f8s1hc604g5y98w6m6y5q43s9jiyrpnp4b34zkfx1qs3w6l4";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -200,8 +200,8 @@ in {
   perl532 = common {
     perl = pkgs.perl532;
     buildPerl = buildPackages.perl532;
-    version = "5.32.0";
-    sha256 = "1d6001cjnpxfv79000bx00vmv2nvdz7wrnyas451j908y7hirszg";
+    version = "5.32.1";
+    sha256 = "0b7brakq9xs4vavhg391as50nbhzryc7fy5i65r81bnq3j897dh3";
   };
 
   # the latest Devel version
diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index 79f09f48464..f074287ab16 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lilv";
-  version = "0.24.10";
+  version = "0.24.12";
 
   src = fetchurl {
     url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
-    sha256 = "1565zy0yz46cf2f25pi46msdnzkj6bbhml9gfigdpjnsdlyskfyi";
+    sha256 = "sha256-JqN3kIkMnB+DggO0f1sjIDNP6SwCpNJuu+Jmnb12kGE=";
   };
 
   patches = [ ./lilv-pkgconfig.patch ];
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index 45caf0b36c5..616ad5b0c89 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lv2";
-  version = "1.18.0";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "https://lv2plug.in/spec/${pname}-${version}.tar.bz2";
-    sha256 = "0gs7401xz23q9vajqr31aa2db8dvssgyh5zrvr4ipa6wig7yb8wh";
+    sha256 = "sha256-TokfvHRMBYVb6136gugisUkX3Wbpj4K4Iw29HHqy4F4=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook ];
diff --git a/pkgs/development/libraries/glibc/2.32-35.patch.gz b/pkgs/development/libraries/glibc/2.32-master.patch.gz
index f77e490ebf5..36aaf51cce9 100644
--- a/pkgs/development/libraries/glibc/2.32-35.patch.gz
+++ b/pkgs/development/libraries/glibc/2.32-master.patch.gz
Binary files differdiff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 54882ba6718..8bf78300739 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -42,7 +42,7 @@
 
 let
   version = "2.32";
-  patchSuffix = "-35";
+  patchSuffix = "-37";
   sha256 = "0di848ibffrnwq7g2dvgqrnn4xqhj3h96csn69q4da51ymafl9qn";
 in
 
@@ -63,10 +63,10 @@ stdenv.mkDerivation ({
          and using git or something would complicate bootstrapping.
          Fortunately it's not too big.
           $ git checkout origin/release/2.32/master; git describe
-          glibc-2.32-35-g082798622d
-          $ git show --reverse glibc-2.32.. | gzip -n -9 --rsyncable - > 2.32-35.patch.gz
+          glibc-2.32-37-g760e1d2878
+          $ git show --reverse glibc-2.32.. | gzip -n -9 --rsyncable - > 2.32-master.patch.gz
        */
-      ./2.32-35.patch.gz
+      ./2.32-master.patch.gz
 
       /* Allow NixOS and Nix to handle the locale-archive. */
       ./nix-locale-archive.patch
diff --git a/pkgs/development/libraries/gnu-config/default.nix b/pkgs/development/libraries/gnu-config/default.nix
index 74b94e68f56..a08997ea2cd 100644
--- a/pkgs/development/libraries/gnu-config/default.nix
+++ b/pkgs/development/libraries/gnu-config/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchurl }:
 
 let
-  rev = "e78c96e5288993aaea3ec44e5c6ee755c668da79";
+  rev = "6faca61810d335c7837f320733fe8e15a1431fc2";
 
   # Don't use fetchgit as this is needed during Aarch64 bootstrapping
   configGuess = fetchurl {
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.guess?id=${rev}";
-    sha256 = "sha256-TSLpYIDGSp1flqCBi2Sgg9IWDV5bcO+Hn2Menv3R6KU=";
+    sha256 = "06wkkhpbx9slmknr2g7mcd8x3zsdhnmmay25l31h3rkdp1wkq7kx";
   };
   configSub = fetchurl {
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}";
-    sha256 = "sha256-DkCGDN/DE3phQ1GO/Ua5ZPPtp0Ya93PnW3yfSK8EV9s=";
+    sha256 = "1qkph8cqanmgy3s4a18bm1a4vk62i8pf8cy5pc1hkpqwn4g6l0di";
   };
 in stdenv.mkDerivation {
   pname = "gnu-config";
-  version = "2020-05-04";
+  version = "2021-01-25";
 
   buildCommand = ''
     mkdir -p $out
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index b3615893b53..3f31a3f6db3 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -11,7 +11,7 @@
 }:
 
 let
-  version = "2.7.2";
+  version = "2.7.4";
   inherit (lib) optional optionals optionalString;
   mesonFeatureFlag = opt: b:
     "-D${opt}=${if b then "enabled" else "disabled"}";
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
     owner  = "harfbuzz";
     repo   = "harfbuzz";
     rev    = version;
-    sha256 = "0vfyxr3lvzp80j1347nrwpr1ndv265p15rj2q8rj31lb26nyz4dm";
+    sha256 = "sha256-uMkniDNBQ2mxDmeM7K/YQtZ3Avh9RVXYe7XsUErGas8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/icu/68.nix b/pkgs/development/libraries/icu/68.nix
new file mode 100644
index 00000000000..5aeba0f2628
--- /dev/null
+++ b/pkgs/development/libraries/icu/68.nix
@@ -0,0 +1,4 @@
+import ./base.nix {
+  version = "68.2";
+  sha256 = "09fng7a80xj8d5r1cgbgq8r47dsw5jsr6si9p2cj2ylhwgg974f7";
+}
diff --git a/pkgs/development/libraries/json-glib/default.nix b/pkgs/development/libraries/json-glib/default.nix
index a820d947b7f..ed086dac90f 100644
--- a/pkgs/development/libraries/json-glib/default.nix
+++ b/pkgs/development/libraries/json-glib/default.nix
@@ -1,23 +1,47 @@
-{ lib, stdenv, fetchurl, glib, meson, ninja, pkg-config, gettext
-, gobject-introspection, fixDarwinDylibNames, gnome3
+{ lib
+, stdenv
+, fetchurl
+, glib
+, meson
+, ninja
+, pkg-config
+, gettext
+, gobject-introspection
+, fixDarwinDylibNames
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gnome3
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "json-glib";
-  version = "1.4.4";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "1.6.2";
+
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3";
   };
 
-  propagatedBuildInputs = [ glib ];
-  nativeBuildInputs = [ meson ninja pkg-config gettext gobject-introspection glib ]
-    ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    gobject-introspection
+    glib
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+  ] ++ lib.optional stdenv.hostPlatform.isDarwin [
+    fixDarwinDylibNames
+  ];
 
-  outputs = [ "out" "dev" ];
+  propagatedBuildInputs = [
+    glib
+  ];
 
   doCheck = true;
 
@@ -30,8 +54,8 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A library providing (de)serialization support for the JavaScript Object Notation (JSON) format";
     homepage = "https://wiki.gnome.org/Projects/JsonGlib";
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl21Plus;
+    maintainers = teams.gnome.members;
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/libraries/lcms2/default.nix b/pkgs/development/libraries/lcms2/default.nix
index 129b5785198..66bdcc03b96 100644
--- a/pkgs/development/libraries/lcms2/default.nix
+++ b/pkgs/development/libraries/lcms2/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, libtiff, libjpeg, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "lcms2-2.11";
+  name = "lcms2-2.12";
 
   src = fetchurl {
     url = "mirror://sourceforge/lcms/${name}.tar.gz";
-    sha256 = "0bkpf315925lhmd9i4mzjnkq5dh255r1lms0c0vzzkfpwk4bjjfw";
+    sha256 = "sha256-GGY5hehkEARVrD5QdiXEOMNxA1TYXly7fNQEPhH+EPU=";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/libraries/libaom/default.nix b/pkgs/development/libraries/libaom/default.nix
index edbc61957c0..5483909689d 100644
--- a/pkgs/development/libraries/libaom/default.nix
+++ b/pkgs/development/libraries/libaom/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "libaom";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchgit {
     url = "https://aomedia.googlesource.com/aom";
     rev	= "v${version}";
-    sha256 = "1vakwmcwvmmrdw7460m8hzq96y71lxqix8b2g07c6s12br0rrdhl";
+    sha256 = "0f3i983s9yvh9zc6mpy1ck5sjcg9l09lpw9v4md3mv8gbih9f0z0";
   };
 
   patches = [ ./outputs.patch ];
diff --git a/pkgs/development/libraries/libblockdev/default.nix b/pkgs/development/libraries/libblockdev/default.nix
index 11a65006422..584ea93293e 100644
--- a/pkgs/development/libraries/libblockdev/default.nix
+++ b/pkgs/development/libraries/libblockdev/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "libblockdev";
-  version = "2.24";
+  version = "2.25";
 
   src = fetchFromGitHub {
     owner = "storaged-project";
     repo = "libblockdev";
     rev = "${version}-1";
-    sha256 = "1gzwlwdv0jyb3lh2n016limy2ngfdsa05x7jvg9llf2ls672nq89";
+    sha256 = "sha256-eHUHTogKoNrnwwSo6JaI7NMxVt9JeMqfWyhR62bDMuQ=";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/libbytesize/default.nix b/pkgs/development/libraries/libbytesize/default.nix
index a84f010b9e6..7ce8d6e7f83 100644
--- a/pkgs/development/libraries/libbytesize/default.nix
+++ b/pkgs/development/libraries/libbytesize/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  version = "2.4";
+  version = "2.5";
 in stdenv.mkDerivation rec {
   pname = "libbytesize";
   inherit version;
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
     owner = "storaged-project";
     repo = "libbytesize";
     rev = version;
-    sha256 = "1kq0hnw2yxjdmcrwvgp0x4j1arkka23k8vp2l6nqcw9lc15x18fp";
+    sha256 = "sha256-F8Ur8gtNYp4PYfBQ9sDJGBgW7KohJYNEU9SI2SbNuvM=";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/libdatrie/default.nix b/pkgs/development/libraries/libdatrie/default.nix
index f4e2df36d91..257673b1a96 100644
--- a/pkgs/development/libraries/libdatrie/default.nix
+++ b/pkgs/development/libraries/libdatrie/default.nix
@@ -7,6 +7,8 @@ stdenv.mkDerivation rec {
   pname = "libdatrie";
   version = "2019-12-20";
 
+  outputs = [ "bin" "out" "lib" "dev" ];
+
   src = fetchFromGitHub {
     owner = "tlwg";
     repo = "libdatrie";
diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix
index daae6984ab2..33b3f0b32e1 100644
--- a/pkgs/development/libraries/libevdev/default.nix
+++ b/pkgs/development/libraries/libevdev/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libevdev";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0jidjv78lay8kl3yigwhx9fii908sk7gn9nfd2ny12ql5ipc48im";
+    sha256 = "sha256-Y/TqFImFihCQgOC0C9Q+TgkDoeEuqIjVgduMSVdHwtA=";
   };
 
   nativeBuildInputs = [ python3 ];
diff --git a/pkgs/development/libraries/libheif/default.nix b/pkgs/development/libraries/libheif/default.nix
index b0872b9da1e..71dfca5e643 100644
--- a/pkgs/development/libraries/libheif/default.nix
+++ b/pkgs/development/libraries/libheif/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, libde265, x265, libpng,
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, dav1d, rav1e, libde265, x265, libpng,
   libjpeg, libaom }:
 
 stdenv.mkDerivation rec {
   pname = "libheif";
-  version = "1.9.1";
+  version = "1.11.0";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
@@ -11,21 +11,19 @@ stdenv.mkDerivation rec {
     owner = "strukturag";
     repo = "libheif";
     rev = "v${version}";
-    sha256 = "0hjs1i076jmy4ryj8y2zs293wx53kzg38y8i42cbcsqydvsdp6hz";
+    sha256 = "sha256-xT0sfYPp5atYXnVpP8TYu2TC9/Z/ClyEP1OTSfcw1gw=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ libde265 x265 libpng libjpeg libaom ];
-  # TODO: enable dav1d and rav1e codecs when libheif can find them via pkg-config
+  buildInputs = [ dav1d rav1e libde265 x265 libpng libjpeg libaom ];
 
   enableParallelBuilding = true;
 
   meta = {
     homepage = "http://www.libheif.org/";
     description = "ISO/IEC 23008-12:2017 HEIF image file format decoder and encoder";
-    license = lib.licenses.lgpl3;
+    license = lib.licenses.lgpl3Plus;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ gebner ];
   };
-
 }
diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix
index 7f5e739a99c..51e2ff52ff6 100644
--- a/pkgs/development/libraries/libical/default.nix
+++ b/pkgs/development/libraries/libical/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , buildPackages
 , cmake
 , glib
@@ -22,7 +21,7 @@ assert introspectionSupport -> gobject-introspection != null && vala != null;
 
 stdenv.mkDerivation rec {
   pname = "libical";
-  version = "3.0.8";
+  version = "3.0.9";
 
   outputs = [ "out" "dev" ]; # "devdoc" ];
 
@@ -30,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "libical";
     repo = "libical";
     rev = "v${version}";
-    sha256 = "0pkh74bfrgp1slv8wsv7lbmal2m7qkixwm5llpmfwaiv14njlp68";
+    sha256 = "sha256-efdiGktLGITaQ6VinnfYG52fMhO0Av+JKROt2kTvS1U=";
   };
 
   nativeBuildInputs = [
@@ -75,12 +74,6 @@ stdenv.mkDerivation rec {
     # Will appear in 3.1.0
     # https://github.com/libical/libical/issues/350
     ./respect-env-tzdir.patch
-    # Export src-generator binary for use while cross-compiling
-    # https://github.com/libical/libical/pull/439
-    (fetchpatch {
-      url = "https://github.com/libical/libical/commit/1197d84b63dce179b55a6293cfd6d0523607baf1.patch";
-      sha256 = "18i1khnwmw488s7g5a1kf05sladf8dbyhfc69mbcf6dkc4nnc3dg";
-    })
   ];
 
   # Using install check so we do not have to manually set
diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix
index 850c7aa1df0..9695b221cb9 100644
--- a/pkgs/development/libraries/libmbim/default.nix
+++ b/pkgs/development/libraries/libmbim/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmbim";
-  version = "1.24.4";
+  version = "1.24.6";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz";
-    sha256 = "11djb1d8w9ms07aklfm3pskjw9rnff4p4n3snanschv22zk8wj6x";
+    sha256 = "sha256-dgRlyqoczWmcFCkOl5HaRW1TAN0R6/TBSGFRAz6HXf0=";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/development/libraries/libpcap/default.nix b/pkgs/development/libraries/libpcap/default.nix
index 0b30bf6c2b0..c04d4a001a1 100644
--- a/pkgs/development/libraries/libpcap/default.nix
+++ b/pkgs/development/libraries/libpcap/default.nix
@@ -4,11 +4,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "libpcap";
-  version = "1.9.1";
+  version = "1.10.0";
 
   src = fetchurl {
     url = "https://www.tcpdump.org/release/${pname}-${version}.tar.gz";
-    sha256 = "153h1378diqyc27jjgz6gg5nxmb4ddk006d9xg69nqavgiikflk3";
+    sha256 = "sha256-jRK0JiPu7+6HLxI70NyF1TWwDfTULoZfmTxA97/JKx4=";
   };
 
   nativeBuildInputs = [ flex bison ]
@@ -21,13 +21,11 @@ stdenv.mkDerivation rec {
       linux = "linux";
       darwin = "bpf";
     }.${stdenv.hostPlatform.parsed.kernel.name})
+  ] ++ optionals stdenv.isDarwin [
+    "--disable-universal"
   ] ++ optionals (stdenv.hostPlatform == stdenv.buildPlatform)
     [ "ac_cv_linux_vers=2" ];
 
-  prePatch = optionalString stdenv.isDarwin ''
-    substituteInPlace configure --replace " -arch i386" ""
-  '';
-
   postInstall = ''
     if [ "$dontDisableStatic" -ne "1" ]; then
       rm -f $out/lib/libpcap.a
diff --git a/pkgs/development/libraries/libthai/default.nix b/pkgs/development/libraries/libthai/default.nix
index ad00906bb8c..97745813ef2 100644
--- a/pkgs/development/libraries/libthai/default.nix
+++ b/pkgs/development/libraries/libthai/default.nix
@@ -4,12 +4,16 @@ stdenv.mkDerivation rec {
   pname = "libthai";
   version = "0.1.28";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     url = "https://github.com/tlwg/libthai/releases/download/v${version}/libthai-${version}.tar.xz";
     sha256 = "04g93bgxrcnay9fglpq2lj9nr7x1xh06i60m7haip8as9dxs3q7z";
   };
 
-  nativeBuildInputs = [ installShellFiles pkg-config ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ installShellFiles (lib.getBin libdatrie) pkg-config ];
 
   buildInputs = [ libdatrie ];
 
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index d69c8d670c4..69410cf2b98 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , autoreconfHook
 , pkg-config
 , enableUdev ? stdenv.isLinux && !stdenv.hostPlatform.isMusl
@@ -22,6 +23,13 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  patches = [ (fetchpatch {
+    # https://bugs.archlinux.org/task/69121
+    url = "https://github.com/libusb/libusb/commit/f6d2cb561402c3b6d3627c0eb89e009b503d9067.patch";
+    sha256 = "1dbahikcbwkjhyvks7wbp7fy2bf7nca48vg5z0zqvqzjb9y595cq";
+    excludes = [ "libusb/version_nano.h" ];
+  }) ];
+
   nativeBuildInputs = [ pkg-config autoreconfHook ];
   propagatedBuildInputs =
     lib.optional enableUdev udev ++
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index a4447ed3378..0a092ab0be5 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkg-config, ApplicationServices, CoreServices }:
 
 stdenv.mkDerivation rec {
-  version = "1.40.0";
+  version = "1.41.0";
   pname = "libuv";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hd0x6i80ca3j0c3a7laygzab5qkgxjkz692jwzrsinsfhvbq0pg";
+    sha256 = "sha256-i6AYD1Ony0L2+3yWK6bxOfwoZEvd9qCg33QSqA7bRXI=";
   };
 
   postPatch = let
diff --git a/pkgs/development/libraries/rinutils/default.nix b/pkgs/development/libraries/rinutils/default.nix
new file mode 100644
index 00000000000..35e48140fdd
--- /dev/null
+++ b/pkgs/development/libraries/rinutils/default.nix
@@ -0,0 +1,21 @@
+{
+  stdenv, lib, fetchurl,
+  cmake, perl,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rinutils";
+  version = "0.8.0";
+
+  meta = with lib; {
+    homepage = "https://github.com/shlomif/rinutils";
+    license = licenses.mit;
+  };
+
+  src = fetchurl {
+    url = "https://github.com/shlomif/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
+    sha256 = "1q09aihm5m42xiq2prpa9mf0srwiirzgzblkp5nl74i7zg6pg5hx";
+  };
+
+  nativeBuildInputs = [ cmake perl ];
+}
diff --git a/pkgs/development/python-modules/adblock/default.nix b/pkgs/development/python-modules/adblock/default.nix
index de6d72a61ec..c608f48fdf9 100644
--- a/pkgs/development/python-modules/adblock/default.nix
+++ b/pkgs/development/python-modules/adblock/default.nix
@@ -1,10 +1,9 @@
 { stdenv
 , lib
-, rustPlatform
 , fetchFromGitHub
-, pipInstallHook
+, buildPythonPackage
+, rustPlatform
 , pythonImportsCheckHook
-, maturin
 , pkg-config
 , openssl
 , publicsuffix-list
@@ -13,7 +12,7 @@
 , Security
 }:
 
-rustPlatform.buildRustPackage rec {
+buildPythonPackage rec {
   pname = "adblock";
   version = "0.4.0";
   disabled = isPy27;
@@ -25,33 +24,27 @@ rustPlatform.buildRustPackage rec {
     rev = version;
     sha256 = "10d6ks2fyzbizq3kb69q478idj0h86k6ygjb6wl3zq3mf65ma4zg";
   };
-  format = "pyproject";
 
-  cargoSha256 = "0di05j942rrm2crpdpp9czhh65fmidyrvdp2n3pipgnagy7nchc0";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-gEFmj3/KvhvvsOK2nX2L1RUD4Wfp3nYzEzVnQZIsIDY=";
+  };
 
-  nativeBuildInputs = [ pipInstallHook maturin pkg-config pythonImportsCheckHook ];
+  format = "pyproject";
+
+  nativeBuildInputs = [ pkg-config pythonImportsCheckHook ]
+    ++ (with rustPlatform; [ cargoSetupHook maturinBuildHook ]);
 
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
 
   PSL_PATH = "${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat";
 
-  buildPhase = ''
-    runHook preBuild
-    maturin build --release --manylinux off --strip
-    runHook postBuild
-  '';
-
   # There are no rust tests
   doCheck = false;
-  pythonImportsCheck = [ "adblock" ];
 
-  installPhase = ''
-    runHook preInstall
-    install -Dm644 -t dist target/wheels/*.whl
-    pipInstallPhase
-    runHook postInstall
-  '';
+  pythonImportsCheck = [ "adblock" ];
 
   passthru.meta = with lib; {
     description = "Python wrapper for Brave's adblocking library, which is written in Rust";
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index eb4eba0f587..341625cbc76 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -2,8 +2,8 @@
 , buildPythonPackage
 , fetchPypi
 , fetchpatch
-, isPy27
-, ipaddress
+, rustPlatform
+, setuptools-rust
 , openssl
 , cryptography_vectors
 , darwin
@@ -13,27 +13,38 @@
 , isPyPy
 , cffi
 , pytest
+, pytest-subtests
 , pretend
 , iso8601
 , pytz
 , hypothesis
-, enum34
 }:
 
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "3.3.2"; # Also update the hash in vectors.nix
+  version = "3.4.5"; # Also update the hash in vectors.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vcvw4lkw1spiq322pm1256kail8nck6bbgpdxx3pqa905wd6q2s";
+    sha256 = "0nykwsifsjca5mbw5j9x0180z8cqyv1g2nplm36h5zji5fl62rsg";
   };
 
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    sourceRoot = "${pname}-${version}/${cargoRoot}";
+    name = "${pname}-${version}";
+    sha256 = "0bz3ig0pa3lchdd2yh94k9smqa6fwibmkdgd2lza3fw5bx30m5vj";
+  };
+
+  cargoRoot = "src/rust";
+
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = lib.optionals (!isPyPy) [
     cffi
-  ];
+    rustPlatform.cargoSetupHook
+    setuptools-rust
+  ] ++ (with rustPlatform; [ rust.cargo rust.rustc ]);
 
   buildInputs = [ openssl ]
              ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
@@ -42,8 +53,6 @@ buildPythonPackage rec {
     six
   ] ++ lib.optionals (!isPyPy) [
     cffi
-  ] ++ lib.optionals isPy27 [
-    ipaddress enum34
   ];
 
   checkInputs = [
@@ -52,6 +61,7 @@ buildPythonPackage rec {
     iso8601
     pretend
     pytest
+    pytest-subtests
     pytz
   ];
 
diff --git a/pkgs/development/python-modules/cryptography/vectors.nix b/pkgs/development/python-modules/cryptography/vectors.nix
index f9b7c525237..98003092a36 100644
--- a/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/pkgs/development/python-modules/cryptography/vectors.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yhaps0f3h2yjb6lmz953z1l1d84y9swk4k3gj9nqyk4vbx5m7cc";
+    sha256 = "0wasfyfqhs0drly94cma88bhkj3r9p40l22k2gq4akl5kfndw8f9";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/johnnycanencrypt/default.nix b/pkgs/development/python-modules/johnnycanencrypt/default.nix
index 77789fa44db..a0c82902d3e 100644
--- a/pkgs/development/python-modules/johnnycanencrypt/default.nix
+++ b/pkgs/development/python-modules/johnnycanencrypt/default.nix
@@ -1,14 +1,13 @@
 { lib
 , stdenv
-, rustPlatform
 , fetchFromGitHub
-, pipInstallHook
+, buildPythonPackage
+, rustPlatform
 , llvmPackages
 , pkg-config
 , maturin
 , pcsclite
 , nettle
-, python
 , requests
 , vcrpy
 , numpy
@@ -17,7 +16,7 @@
 , PCSC
 }:
 
-rustPlatform.buildRustPackage rec {
+buildPythonPackage rec {
   pname = "johnnycanencrypt";
   version = "0.5.0";
   disabled = pythonOlder "3.7";
@@ -28,7 +27,16 @@ rustPlatform.buildRustPackage rec {
     rev = "v${version}";
     sha256 = "192wfrlyylrpzq70yki421mi1smk8q2cyki2a1d03q7h6apib3j4";
   };
-  cargoPatches = [ ./Cargo.lock.patch ];
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit patches src;
+    name = "${pname}-${version}";
+    hash = "sha256-2XhXCKyXVlFgbcOoMy/A5ajiIVxBii56YeI29mO720U=";
+  };
+
+  format = "pyproject";
+
+  patches = [ ./Cargo.lock.patch ];
 
   cargoSha256 = "0ifvpdizcdp2c5x2x2j1bhhy5a75q0pk7a63dmh52mlpmh45fy6r";
 
@@ -42,10 +50,10 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [
     llvmPackages.clang
     pkg-config
-    python
-    maturin
-    pipInstallHook
-  ];
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ]);
 
   buildInputs = [
     pcsclite
@@ -67,17 +75,6 @@ rustPlatform.buildRustPackage rec {
     sed '/project-url = /d' -i Cargo.toml
   '';
 
-  buildPhase = ''
-    runHook preBuild
-    maturin build --release --manylinux off --strip --cargo-extra-args="-j $NIX_BUILD_CORES --frozen"
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    install -Dm644 -t dist target/wheels/*.whl
-    pipInstallPhase
-  '';
-
   preCheck = ''
     export TESTDIR=$(mktemp -d)
     cp -r tests/ $TESTDIR
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index aa009e0a3e7..b5837603103 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.5.2";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1d0cpwdjxfzwjzmnz066ibzicyj2vhx15qxmm775l8hxqi65xps4";
+    sha256 = "1zidx62sxh2r4fmjfjzd4f6i4yxgzkpd20nafbyr0i0wnw9da3fd";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
diff --git a/pkgs/development/python-modules/retworkx/default.nix b/pkgs/development/python-modules/retworkx/default.nix
index 02a3ef64c57..8cce139facb 100644
--- a/pkgs/development/python-modules/retworkx/default.nix
+++ b/pkgs/development/python-modules/retworkx/default.nix
@@ -1,16 +1,14 @@
 { lib
+, buildPythonPackage
 , rustPlatform
-, python
 , fetchFromGitHub
-, pipInstallHook
-, maturin
-, pip
+
   # Check inputs
 , pytestCheckHook
 , numpy
 }:
 
-rustPlatform.buildRustPackage rec {
+buildPythonPackage rec {
   pname = "retworkx";
   version = "0.6.0";
 
@@ -21,11 +19,15 @@ rustPlatform.buildRustPackage rec {
     sha256 = "11n30ldg3y3y6qxg3hbj837pnbwjkqw3nxq6frds647mmmprrd20";
   };
 
-  cargoSha256 = "1vg4yf0k6yypqf9z46zz818mz7fdrgxj7zl6zjf7pnm2r8mq3qw5";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-heOBK8qi2nuc/Ib+I/vLzZ1fUUD/G/KTw9d7M4Hz5O0=";
+  };
 
-  propagatedBuildInputs = [ python ];
+  format = "pyproject";
 
-  nativeBuildInputs = [ pipInstallHook maturin pip ];
+  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
 
   # Needed b/c need to check AFTER python wheel is installed (using Rust Build, not buildPythonPackage)
   doCheck = false;
@@ -33,17 +35,6 @@ rustPlatform.buildRustPackage rec {
 
   installCheckInputs = [ pytestCheckHook numpy ];
 
-  buildPhase = ''
-    runHook preBuild
-    maturin build --release --manylinux off --strip
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    install -Dm644 -t dist target/wheels/*.whl
-    pipInstallPhase
-  '';
-
   preCheck = ''
     export TESTDIR=$(mktemp -d)
     cp -r tests/ $TESTDIR
diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix
index b5dd0be5445..519d9bd3415 100644
--- a/pkgs/development/python-modules/shapely/default.nix
+++ b/pkgs/development/python-modules/shapely/default.nix
@@ -1,17 +1,25 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, substituteAll, pythonOlder
-, geos, pytest, cython
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, pythonOlder
+, geos
+, pytest
+, cython
 , numpy
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "Shapely";
   version = "1.7.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0adiz4jwmwxk7k1awqifb1a9bj5x4nx4gglb5dz9liam21674h8n";
   };
-  disabled = pythonOlder "3.5";
 
   nativeBuildInputs = [
     geos # for geos-config
@@ -26,6 +34,18 @@ buildPythonPackage rec {
   GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
 
   patches = [
+    # Fix with geos 3.9. This patch will be part of the next release after 1.7.1
+    (fetchpatch {
+      url = "https://github.com/Toblerity/Shapely/commit/77879a954d24d1596f986d16ba3eff5e13861164.patch";
+      sha256 = "1w7ngjqbpf9vnvrfg4nyv34kckim9a60gvx20h6skc79xwihd4m5";
+      excludes = [
+        "tests/test_create_inconsistent_dimensionality.py"
+        "appveyor.yml"
+        ".travis.yml"
+      ];
+    })
+
+    # Patch to search form GOES .so/.dylib files in a Nix-aware way
     (substituteAll {
       src = ./library-paths.patch;
       libgeos_c = GEOS_LIBRARY_PATH;
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
index cf122613f63..ef265b87c05 100644
--- a/pkgs/development/python-modules/tokenizers/default.nix
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -1,12 +1,10 @@
 { lib
-, rustPlatform
 , fetchFromGitHub
 , fetchurl
-, pipInstallHook
+, buildPythonPackage
+, rustPlatform
 , setuptools-rust
-, wheel
 , numpy
-, python
 , datasets
 , pytestCheckHook
 , requests
@@ -49,7 +47,7 @@ let
     url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-merges.txt";
     sha256 = "09a754pm4djjglv3x5pkgwd6f79i2rq8ydg0f7c3q1wmwqdbba8f";
   };
-in rustPlatform.buildRustPackage rec {
+in buildPythonPackage rec {
   pname = "tokenizers";
   version = "0.10.0";
 
@@ -60,19 +58,22 @@ in rustPlatform.buildRustPackage rec {
     hash = "sha256-rQ2hRV52naEf6PvRsWVCTN7B1oXAQGmnpJw4iIdhamw=";
   };
 
-  cargoSha256 = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src sourceRoot;
+    name = "${pname}-${version}";
+    hash = "sha256-BoHIN/519Top1NUBjpB/oEMqi86Omt3zTQcXFWqrek0=";
+  };
 
   sourceRoot = "source/bindings/python";
 
-  nativeBuildInputs = [
-    pipInstallHook
-    setuptools-rust
-    wheel
-  ];
+  nativeBuildInputs = [ setuptools-rust ] ++ (with rustPlatform; [
+    cargoSetupHook
+    rust.cargo
+    rust.rustc
+  ]);
 
   propagatedBuildInputs = [
     numpy
-    python
   ];
 
   installCheckInputs = [
@@ -99,14 +100,6 @@ in rustPlatform.buildRustPackage rec {
       ln -s ${openaiMerges} openai-gpt-merges.txt )
   '';
 
-  buildPhase = ''
-    ${python.interpreter} setup.py bdist_wheel
-  '';
-
-  installPhase = ''
-    pipInstallPhase
-  '';
-
   preCheck = ''
     HOME=$TMPDIR
   '';
diff --git a/pkgs/development/python-modules/wasmer/default.nix b/pkgs/development/python-modules/wasmer/default.nix
index 62c8a2a06b7..28c9b8b5c16 100644
--- a/pkgs/development/python-modules/wasmer/default.nix
+++ b/pkgs/development/python-modules/wasmer/default.nix
@@ -1,63 +1,34 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
-, maturin
 , buildPythonPackage
-, isPy38
-, python
 }:
 let
   pname = "wasmer";
   version = "1.0.0";
+in buildPythonPackage rec {
+  inherit pname version;
 
-  wheel = rustPlatform.buildRustPackage rec {
-    inherit pname version;
-
-    src = fetchFromGitHub {
-      owner = "wasmerio";
-      repo = "wasmer-python";
-      rev = version;
-      hash = "sha256-I1GfjLaPYMIHKh2m/5IQepUsJNiVUEJg49wyuuzUYtY=";
-    };
-
-    cargoHash = "sha256-txOOia1C4W+nsXuXp4EytEn82CFfSmiOYwRLC4WPImc=";
-
-    nativeBuildInputs = [ maturin python ];
-
-    preBuild = ''
-      cd packages/api
-    '';
-
-    buildPhase = ''
-      runHook preBuild
-      maturin build --release --manylinux off --strip
-      runHook postBuild
-    '';
-
-    postBuild = ''
-      cd ../..
-    '';
-
-    doCheck = false;
+  src = fetchFromGitHub {
+    owner = "wasmerio";
+    repo = "wasmer-python";
+    rev = version;
+    hash = "sha256-I1GfjLaPYMIHKh2m/5IQepUsJNiVUEJg49wyuuzUYtY=";
+  };
 
-    installPhase = ''
-      runHook preInstall
-      install -Dm644 -t $out target/wheels/*.whl
-      runHook postInstall
-    '';
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-txOOia1C4W+nsXuXp4EytEn82CFfSmiOYwRLC4WPImc=";
   };
 
-in
-buildPythonPackage rec {
-  inherit pname version;
+  format = "pyproject";
+
+  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
 
-  format = "wheel";
-  src = wheel;
+  buildAndTestSubdir = "packages/api";
 
-  unpackPhase = ''
-    mkdir -p dist
-    cp $src/*.whl dist
-  '';
+  doCheck = false;
 
   pythonImportsCheck = [ "wasmer" ];
 
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index 5de894bd1b4..7c2e5372e73 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -20,12 +20,12 @@ stdenv.mkDerivation (rec {
           + lib.optionalString useNcurses "-cursesUI"
           + lib.optionalString withQt5 "-qt5UI"
           + lib.optionalString useQt4 "-qt4UI";
-  version = "3.19.3";
+  version = "3.19.4";
 
   src = fetchurl {
     url = "${meta.homepage}files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
     # compare with https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}-SHA-256.txt
-    sha256 = "sha256-P6ynwTFJSh401m6fiXL/U2nkjUGeqM6qPcFbTBE2dzI=";
+    sha256 = "sha256-fQIyufHFfo3oHzgHHvggPmgg/n7siuRqHfEl2I28wuE=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/documentation/gtk-doc/default.nix b/pkgs/development/tools/documentation/gtk-doc/default.nix
index d82c288e5aa..e74a6b9c3c6 100644
--- a/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , python3
 , docbook_xml_dtd_43
-, docbook_xsl
+, docbook-xsl-nons
 , libxslt
 , gettext
 , gnome3
@@ -14,7 +14,9 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gtk-doc";
-  version = "1.33.1";
+  version = "1.33.2";
+
+  outputDevdoc = "out";
 
   format = "other";
 
@@ -23,15 +25,13 @@ python3.pkgs.buildPythonApplication rec {
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "L9CjhZ60F42xbo50x7cdKfJrav/9mf38pff8S4xkEVo=";
+    sha256 = "A6OXpazrJ05SUIO1ZPVN0xHTXOSov8UnPvUolZAv/Iw=";
   };
 
   patches = [
     passthru.respect_xml_catalog_files_var_patch
   ];
 
-  outputDevdoc = "out";
-
   nativeBuildInputs = [
     pkg-config
     gettext
@@ -42,7 +42,7 @@ python3.pkgs.buildPythonApplication rec {
 
   buildInputs = [
     docbook_xml_dtd_43
-    docbook_xsl
+    docbook-xsl-nons
     libxslt
   ] ++ lib.optionals withDblatex [
     dblatex
@@ -50,7 +50,6 @@ python3.pkgs.buildPythonApplication rec {
 
   pythonPath = with python3.pkgs; [
     pygments # Needed for https://gitlab.gnome.org/GNOME/gtk-doc/blob/GTK_DOC_1_32/meson.build#L42
-    (anytree.override { withGraphviz = false; })
     lxml
   ];
 
@@ -79,8 +78,8 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tools to extract documentation embedded in GTK and GNOME source code";
-    homepage = "https://www.gtk.org/gtk-doc";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ pSub worldofpeace ];
+    homepage = "https://gitlab.gnome.org/GNOME/gtk-doc";
+    license = licenses.gpl2Plus;
+    maintainers = teams.gnome.members ++ (with maintainers; [ pSub ]);
   };
 }
diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix
index 6afc4415e11..ba1fa720dd4 100644
--- a/pkgs/development/tools/misc/help2man/default.nix
+++ b/pkgs/development/tools/misc/help2man/default.nix
@@ -6,11 +6,11 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "help2man-1.47.16";
+  name = "help2man-1.47.17";
 
   src = fetchurl {
     url = "mirror://gnu/help2man/${name}.tar.xz";
-    sha256 = "1x586h7wvripcay35kdh2kvydx84y8yy93ffjah2rqw6bc65iy1y";
+    sha256 = "sha256-2jo1xQseH4yPoyLWn6R8kBHORDqPuNHWcbHwG4sACOs=";
   };
 
   nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];
diff --git a/pkgs/development/tools/parsing/bison/default.nix b/pkgs/development/tools/parsing/bison/default.nix
index 662961ae46a..42c9ee872fe 100644
--- a/pkgs/development/tools/parsing/bison/default.nix
+++ b/pkgs/development/tools/parsing/bison/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bison";
-  version = "3.7.4";
+  version = "3.7.5";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1qkp2rfi5njyp5c5avajab00aj74pkmkgzkvshv4p2ydkhswgazv";
+    sha256 = "sha256-FRy18ScW4/6TonoxfNRIeDKWWfJ1s0J3m/rvSlJrv3A=";
   };
 
   nativeBuildInputs = [ m4 perl ] ++ lib.optional stdenv.isSunOS help2man;
diff --git a/pkgs/games/black-hole-solver/default.nix b/pkgs/games/black-hole-solver/default.nix
new file mode 100644
index 00000000000..e859e72d96b
--- /dev/null
+++ b/pkgs/games/black-hole-solver/default.nix
@@ -0,0 +1,30 @@
+{
+  stdenv, lib, fetchurl,
+  cmake, perl, pkg-config, python3,
+  rinutils, PathTiny,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "black-hole-solver";
+  version = "1.10.1";
+
+  meta = with lib; {
+    homepage = "https://www.shlomifish.org/open-source/projects/black-hole-solitaire-solver/";
+    description = "A solver for Solitaire variants Golf, Black Hole, and All in a Row.";
+    license = licenses.mit;
+  };
+
+  src = fetchurl {
+    url = "https://fc-solve.shlomifish.org/downloads/fc-solve/${pname}-${version}.tar.xz";
+    sha256 = "1qhihmk4fwz6n16c7bnxnh3v7jhbb7xhkc9wk9484bp0k4x9bq9n";
+  };
+
+  nativeBuildInputs = [ cmake perl pkg-config python3 ];
+
+  buildInputs = [ rinutils PathTiny ];
+
+  prePatch = ''
+    patchShebangs ./scripts
+  '';
+
+}
diff --git a/pkgs/misc/emulators/mednaffe/default.nix b/pkgs/misc/emulators/mednaffe/default.nix
index 7d0d6c6f68e..8a11b633d28 100644
--- a/pkgs/misc/emulators/mednaffe/default.nix
+++ b/pkgs/misc/emulators/mednaffe/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mednaffe";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "AmatCoder";
     repo = "mednaffe";
     rev = version;
-    sha256 = "sha256-BS/GNnRYj9klc4RRj7LwNikgApNttv4IyWPL694j+gM=";
+    sha256 = "sha256-YU8PHnQHAsY90LN/WDugi4WhsuZGBj/z3BS4o69qMS4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index 24d2b5e135c..9dd97367441 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -48,6 +48,9 @@ stdenv.mkDerivation rec {
         --replace /bin/bash ${bash}/bin/bash
   '';
 
+  PKGCONFIG = "${stdenv.cc.targetPrefix}pkg-config";
+
+  dontAddWafCrossFlags = "true";
   wafConfigureFlags = [
     "--classic"
     "--autostart=${if (optDbus != null) then "dbus" else "classic"}"
diff --git a/pkgs/os-specific/linux/alsa-plugins/default.nix b/pkgs/os-specific/linux/alsa-plugins/default.nix
index 602d4278183..09dbdbc9b6f 100644
--- a/pkgs/os-specific/linux/alsa-plugins/default.nix
+++ b/pkgs/os-specific/linux/alsa-plugins/default.nix
@@ -15,8 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ alsaLib libogg ]
     ++ lib.optional (libpulseaudio != null) libpulseaudio
-    # https://github.com/NixOS/nixpkgs/issues/96548
-    ++ lib.optional (libjack2 != null && (stdenv.buildPlatform == stdenv.hostPlatform)) libjack2;
+    ++ lib.optional (libjack2 != null) libjack2;
 
   meta = with lib; {
     description = "Various plugins for ALSA";
diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix
index 6cee603664d..bd52f37e62f 100644
--- a/pkgs/os-specific/linux/hwdata/default.nix
+++ b/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hwdata";
-  version = "0.335";
+  version = "0.344";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    sha256 = "0f8ikwfrs6xd5sywypd9rq9cln8a0rf3vj6nm0adwzn1p8mgmrb2";
+    sha256 = "0rsnm94r814shr86jk6f2323i1n4p58inkgkx7362yz9k4a8ir7a";
   };
 
   preConfigure = "patchShebangs ./configure";
@@ -19,12 +19,12 @@ stdenv.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "101lppd1805drwd038b4njr5czzjnqqxf3xlf6v3l22wfwr2cn3l";
+  outputHash = "011lyldzskfb4sfn4i7qyyq3i4gaf1v9yfbc82889cabka0n4nfz";
 
   meta = {
     homepage = "https://github.com/vcrhonek/hwdata";
     description = "Hardware Database, including Monitors, pci.ids, usb.ids, and video cards";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
+    license = lib.licenses.gpl2Plus;
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index 7a81d9434e3..a2a63e2bcab 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -69,12 +69,12 @@ let
 in {
   inherit makeLinuxHeaders;
 
-  linuxHeaders = let version = "5.10.9"; in
+  linuxHeaders = let version = "5.11"; in
     makeLinuxHeaders {
       inherit version;
       src = fetchurl {
         url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-        sha256 = "0la7dklpy6xd79fkzavpmlfyrc60kmmwz491msd95dmvv06kwwvz";
+        sha256 = "1d37w0zvmf8c1l99xvy1hy6p55icjhmbsv7f0amxy2nly1a7pw04";
       };
       patches = [
          ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 3a01d650b06..904e2c76901 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -252,10 +252,16 @@ let
       DRM_AMDGPU_SI = whenAtLeast "4.9" yes;
       # (stable) amdgpu support for bonaire and newer chipsets
       DRM_AMDGPU_CIK = whenAtLeast "4.9" yes;
-      # amdgpu support for RX6000 series
-      DRM_AMD_DC_DCN3_0 = whenAtLeast "5.9.12" yes;
       # Allow device firmware updates
       DRM_DP_AUX_CHARDEV = whenAtLeast "4.6" yes;
+      # amdgpu display core (DC) support
+      DRM_AMD_DC_DCN1_0 = whenBetween "4.15" "5.6" yes;
+      DRM_AMD_DC_PRE_VEGA = whenBetween "4.15" "4.18" yes;
+      DRM_AMD_DC_DCN2_0 = whenBetween "5.3" "5.6" yes;
+      DRM_AMD_DC_DCN2_1 = whenBetween "5.4" "5.6" yes;
+      DRM_AMD_DC_DCN3_0 = whenBetween "5.9" "5.11" yes;
+      DRM_AMD_DC_HDCP = whenAtLeast "5.5" yes;
+      DRM_AMD_DC_SI = whenAtLeast "5.10" yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       # Intel GVT-g graphics virtualization supports 64-bit only
       DRM_I915_GVT = whenAtLeast "4.16" yes;
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 421fc5986af..7e3c6d1fe51 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -1,3 +1,5 @@
+# NOTE: Make sure to (re-)format this file on changes with `nixpkgs-fmt`!
+
 { stdenv
 , lib
 , fetchFromGitHub
@@ -111,7 +113,7 @@ assert withCryptsetup ->
 let
   wantCurl = withRemote || withImportd;
 
-  version = "247.2";
+  version = "247.3";
 in
 stdenv.mkDerivation {
   inherit version pname;
@@ -122,7 +124,7 @@ stdenv.mkDerivation {
     owner = "systemd";
     repo = "systemd-stable";
     rev = "v${version}";
-    sha256 = "091pwrvxz3gcf80shlp28d6l4gvjzc6pb61v4mwxmk9d71qaq7ry";
+    sha256 = "0zn0b74iwz3vxabqsk4yydwpgky3c5z4dl83wxbs1qi5d2dnbqa7";
   };
 
   # If these need to be regenerated, `git am path/to/00*.patch` them into a
@@ -160,83 +162,87 @@ stdenv.mkDerivation {
       --replace \
       "find_program('objcopy'" \
       "find_program('${stdenv.cc.bintools.targetPrefix}objcopy'"
-  '' + (let
-
-    # The folllowing dlopen patches ensure that all the features that are
-    # implemented via dlopen(3) are available (or explicitly deactivated) by
-    # pointing dlopen to the absolute store path instead of relying on the
-    # linkers runtime lookup code.
-    #
-    # All of the dlopen calls have to be handled. When new ones are introduced
-    # by upstream (or one of our patches) they must be explicitly declared,
-    # otherwise the build will fail.
-    #
-    # As of systemd version 247 we've seen a few errors like `libpcre2.… not
-    # found` when using e.g. --grep with journalctl. Those errors should
-    # become less unexpected now.
-    #
-    # There are generally two classes of dlopen(3) calls. Those that we want to
-    # support and those that should be deactivated / unsupported. This change
-    # enforces that we handle all dlopen calls explicitly. Meaning: There is
-    # not a single dlopen call in the source code tree that we did not
-    # explicitly handle.
-    #
-    # In order to do this we introduced a list of attributes that maps from
-    # shared object name to the package that contains them. The package can be
-    # null meaning the reference should be nuked and the shared object will
-    # never be loadable during runtime (because it points at an invalid store
-    # path location).
-    #
-    # To get a list of dynamically loaded libraries issue something like
-    # `grep -ri 'dlopen("lib' $src` and update the below list.
-    dlopenLibs = [
-      # We did never provide support for libxkbcommon & qrencode
-      { name = "libxkbcommon.so.0"; pkg = null; }
-      { name = "libqrencode.so.4"; pkg = null; }
-
-      # We did not provide libpwquality before so it is safe to disable it for
-      # now.
-      { name = "libpwquality.so.1"; pkg = null; }
-
-      # Only include cryptsetup if it is enabled. We might not be able to
-      # provide it during "bootstrap" in e.g. the minimal systemd build as
-      # cryptsetup has udev (aka systemd) in it's dependencies.
-      { name = "libcryptsetup.so.12"; pkg = if withCryptsetup then cryptsetup else null; }
-
-      # We are using libidn2 so we only provide that and ignore the others.
-      # Systemd does this decision during configure time and uses ifdef's to
-      # enable specific branches. We can safely ignore (nuke) the libidn "v1"
-      # libraries.
-      { name = "libidn2.so.0"; pkg = libidn2; }
-      { name = "libidn.so.12"; pkg = null; }
-      { name = "libidn.so.11"; pkg = null; }
-
-      # journalctl --grep requires libpcre so lets provide it
-      { name = "libpcre2-8.so.0"; pkg = pcre2; }
-    ];
-
-    patchDlOpen = dl: let
-      library = "${lib.makeLibraryPath [dl.pkg]}/${dl.name}";
-    in if dl.pkg == null then ''
-      # remove the dependency on the library by replacing it with an invalid path
-      for file in $(grep -lr 'dlopen("${dl.name}"' src); do
-        echo "patching dlopen(\"${dl.name}\", …) in $file to an invalid store path ("/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}")…"
-        substituteInPlace "$file" --replace 'dlopen("${dl.name}"' 'dlopen("/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}"'
-      done
-    '' else ''
-      # ensure that the library we provide actually exists
-      if ! [ -e ${library} ]; then
-        echo 'The shared library `${library}` does not exist but was given as subtitute for `${dl.name}`'
-        exit 1
-      fi
-      # make the path to the dependency explicit
-      for file in $(grep -lr 'dlopen("${dl.name}"' src); do
-        echo "patching dlopen(\"${dl.name}\", …) in $file to ${library}…"
-        substituteInPlace "$file" --replace 'dlopen("${dl.name}"' 'dlopen("${library}"'
-      done
-    '';
-  in # patch all the dlopen calls to contain absolute paths to the libraries
-  lib.concatMapStringsSep "\n" patchDlOpen dlopenLibs)
+  '' + (
+    let
+      # The folllowing dlopen patches ensure that all the features that are
+      # implemented via dlopen(3) are available (or explicitly deactivated) by
+      # pointing dlopen to the absolute store path instead of relying on the
+      # linkers runtime lookup code.
+      #
+      # All of the dlopen calls have to be handled. When new ones are introduced
+      # by upstream (or one of our patches) they must be explicitly declared,
+      # otherwise the build will fail.
+      #
+      # As of systemd version 247 we've seen a few errors like `libpcre2.… not
+      # found` when using e.g. --grep with journalctl. Those errors should
+      # become less unexpected now.
+      #
+      # There are generally two classes of dlopen(3) calls. Those that we want to
+      # support and those that should be deactivated / unsupported. This change
+      # enforces that we handle all dlopen calls explicitly. Meaning: There is
+      # not a single dlopen call in the source code tree that we did not
+      # explicitly handle.
+      #
+      # In order to do this we introduced a list of attributes that maps from
+      # shared object name to the package that contains them. The package can be
+      # null meaning the reference should be nuked and the shared object will
+      # never be loadable during runtime (because it points at an invalid store
+      # path location).
+      #
+      # To get a list of dynamically loaded libraries issue something like
+      # `grep -ri 'dlopen("lib' $src` and update the below list.
+      dlopenLibs = [
+        # We did never provide support for libxkbcommon & qrencode
+        { name = "libxkbcommon.so.0"; pkg = null; }
+        { name = "libqrencode.so.4"; pkg = null; }
+
+        # We did not provide libpwquality before so it is safe to disable it for
+        # now.
+        { name = "libpwquality.so.1"; pkg = null; }
+
+        # Only include cryptsetup if it is enabled. We might not be able to
+        # provide it during "bootstrap" in e.g. the minimal systemd build as
+        # cryptsetup has udev (aka systemd) in it's dependencies.
+        { name = "libcryptsetup.so.12"; pkg = if withCryptsetup then cryptsetup else null; }
+
+        # We are using libidn2 so we only provide that and ignore the others.
+        # Systemd does this decision during configure time and uses ifdef's to
+        # enable specific branches. We can safely ignore (nuke) the libidn "v1"
+        # libraries.
+        { name = "libidn2.so.0"; pkg = libidn2; }
+        { name = "libidn.so.12"; pkg = null; }
+        { name = "libidn.so.11"; pkg = null; }
+
+        # journalctl --grep requires libpcre so lets provide it
+        { name = "libpcre2-8.so.0"; pkg = pcre2; }
+      ];
+
+      patchDlOpen = dl:
+        let
+          library = "${lib.makeLibraryPath [ dl.pkg ]}/${dl.name}";
+        in
+        if dl.pkg == null then ''
+          # remove the dependency on the library by replacing it with an invalid path
+          for file in $(grep -lr 'dlopen("${dl.name}"' src); do
+            echo "patching dlopen(\"${dl.name}\", …) in $file to an invalid store path ("/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}")…"
+            substituteInPlace "$file" --replace 'dlopen("${dl.name}"' 'dlopen("/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}"'
+          done
+        '' else ''
+          # ensure that the library we provide actually exists
+          if ! [ -e ${library} ]; then
+            echo 'The shared library `${library}` does not exist but was given as subtitute for `${dl.name}`'
+            exit 1
+          fi
+          # make the path to the dependency explicit
+          for file in $(grep -lr 'dlopen("${dl.name}"' src); do
+            echo "patching dlopen(\"${dl.name}\", …) in $file to ${library}…"
+            substituteInPlace "$file" --replace 'dlopen("${dl.name}"' 'dlopen("${library}"'
+          done
+        '';
+    in
+    # patch all the dlopen calls to contain absolute paths to the libraries
+    lib.concatMapStringsSep "\n" patchDlOpen dlopenLibs
+  )
   # finally ensure that there are no left-over dlopen calls that we didn't handle
   + ''
     if grep -qr 'dlopen("[^/]' src; then
diff --git a/pkgs/servers/livepeer/default.nix b/pkgs/servers/livepeer/default.nix
index a016c8e7f09..ad67cdf4348 100644
--- a/pkgs/servers/livepeer/default.nix
+++ b/pkgs/servers/livepeer/default.nix
@@ -4,16 +4,16 @@
 
 buildGoModule rec {
   pname = "livepeer";
-  version = "0.5.13";
+  version = "0.5.14";
 
   runVend = true;
-  vendorSha256 = "sha256-wAjGgYDyBWqE8KCQ6TQ+LGDDZqF+5XY+NzU74RwPuRE=";
+  vendorSha256 = "sha256-StkgU11VLEKg89kn3zPcdC8HBw9MmJrfDPGk1SUQO64=";
 
   src = fetchFromGitHub {
     owner = "livepeer";
     repo = "go-livepeer";
     rev = "v${version}";
-    sha256 = "sha256-b4O8Hc8A8TN5KFcQ7KYvFPVFgposDgPw06WowrXzpAs=";
+    sha256 = "sha256-GxgpGI1ymhbYhzCP2Bs5wJ5kq5rHHkClXcAsYlaQ/AM=";
   };
 
   # livepeer_cli has a vendoring problem
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index 27345616f89..d2f87295fbb 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -192,54 +192,54 @@ let
 in self: {
 
   postgresql_9_5 = self.callPackage generic {
-    version = "9.5.24";
+    version = "9.5.25";
     psqlSchema = "9.5";
-    sha256 = "0an2k4m1da96897hyxlff8p4p63wg4dffwsfg57aib7mp4yzsp06";
+    sha256 = "00yny0sskxrqk4ji2phgv3iqxd1aiy6rh660k73s4s1pn9gcaa3n";
     this = self.postgresql_9_5;
     thisAttr = "postgresql_9_5";
     inherit self;
   };
 
   postgresql_9_6 = self.callPackage generic {
-    version = "9.6.20";
+    version = "9.6.21";
     psqlSchema = "9.6";
-    sha256 = "1dkv916y7vrfbygrfbfvs6y3fxaysnh32i5j88nvcnnl16jcn21x";
+    sha256 = "0d0ngpadf1i7c0i2psaxcbmiwx8334ibcsn283n9fp4853pyl3wk";
     this = self.postgresql_9_6;
     thisAttr = "postgresql_9_6";
     inherit self;
   };
 
   postgresql_10 = self.callPackage generic {
-    version = "10.15";
+    version = "10.16";
     psqlSchema = "10.0"; # should be 10, but changing it is invasive
-    sha256 = "0zhzj9skag1pgqas2rnd217vj41ilaalqna17j47gyngpvhbqmjr";
+    sha256 = "1cvv8qw0gkkczqhiwx6ns7w88dwkvdz4cvb2d4ff14363f5p2p53";
     this = self.postgresql_10;
     thisAttr = "postgresql_10";
     inherit self;
   };
 
   postgresql_11 = self.callPackage generic {
-    version = "11.10";
+    version = "11.11";
     psqlSchema = "11.1"; # should be 11, but changing it is invasive
-    sha256 = "16bqp6ds37kbwqx7mk5gg3y6gv59wq6xz33iqwxldzk20vwd5rhk";
+    sha256 = "0v0qk298nxmpzpgsxcsxma328hdkyzd7fwjs0zsn6zavl5zpnq20";
     this = self.postgresql_11;
     thisAttr = "postgresql_11";
     inherit self;
   };
 
   postgresql_12 = self.callPackage generic {
-    version = "12.5";
+    version = "12.6";
     psqlSchema = "12";
-    sha256 = "15gzg778da23sbfmy7sqg443f9ny480301lm7i3vay4m3ls2a3dx";
+    sha256 = "028asz92mi3706zabfs8w9z03mzyx62d1l71qy9zdwfabj6xjzfz";
     this = self.postgresql_12;
     thisAttr = "postgresql_12";
     inherit self;
   };
 
   postgresql_13 = self.callPackage generic {
-    version = "13.1";
+    version = "13.2";
     psqlSchema = "13";
-    sha256 = "07z6zwr58dckaa97yl9ml240z83d1lhgaxw9aq49i8lsp21mqd0j";
+    sha256 = "1z5d847jnajcfr3wa6jn52a8xjhamvwzmz18xlm5nvxqip8grmsz";
     this = self.postgresql_13;
     thisAttr = "postgresql_13";
     inherit self;
diff --git a/pkgs/shells/liquidprompt/default.nix b/pkgs/shells/liquidprompt/default.nix
index 4463d70cf52..a84e2e14677 100644
--- a/pkgs/shells/liquidprompt/default.nix
+++ b/pkgs/shells/liquidprompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "1.12.1";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "nojhan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vlwwkdbkxjsjcfmcspmq3f163kf0x4mwa8svxkzgnn2g4kl41ja";
+    sha256 = "sha256-+qNH4Df0wCI3KE6LT3YWKpp7yzJcedmVlm/f1Myz108=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index ec9cd7ca61a..c55c1bc1c5d 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "5.10";
+  version = "5.10.1";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "sha256-5xoNbdUE86XZV/zpowKB62Hs+ZHIrzFf4AYaG5eh0CE=";
+    sha256 = "sha256-E3nMcx/q5/RzrZ43yEW7+4czge9ns0Dxoi+8qaTaA0Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/bc/default.nix b/pkgs/tools/misc/bc/default.nix
index 96c2d00ffa8..bb5ed84e7d7 100644
--- a/pkgs/tools/misc/bc/default.nix
+++ b/pkgs/tools/misc/bc/default.nix
@@ -3,9 +3,10 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "bc-1.07.1";
+  pname = "bc";
+  version = "1.07.1";
   src = fetchurl {
-    url = "mirror://gnu/bc/${name}.tar.gz";
+    url = "mirror://gnu/bc/${pname}-${version}.tar.gz";
     sha256 = "62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a";
   };
 
@@ -30,10 +31,10 @@ stdenv.mkDerivation rec {
   # masss-rebuild.
   strictDeps = true;
 
-  meta = {
+  meta = with lib; {
     description = "GNU software calculator";
     homepage = "https://www.gnu.org/software/bc/";
-    license = lib.licenses.gpl3;
-    platforms = lib.platforms.all;
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/parted/default.nix b/pkgs/tools/misc/parted/default.nix
index 7c7a611b97c..e954bfbe5e4 100644
--- a/pkgs/tools/misc/parted/default.nix
+++ b/pkgs/tools/misc/parted/default.nix
@@ -15,11 +15,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "parted-3.3";
+  name = "parted-3.4";
 
   src = fetchurl {
     url = "mirror://gnu/parted/${name}.tar.xz";
-    sha256 = "0i1xp367wpqw75b20c3jnism3dg3yqj4a7a22p2jb1h1hyyv9qjp";
+    sha256 = "sha256-4SmAIkctpVibfyvh1e48G2bsPZbfutA9xkKv0AnaU0I=";
   };
 
   outputs = [ "out" "dev" "man" "info" ];
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index d92408b3669..d8f4285e0b8 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "dnsmasq";
-  version = "2.83";
+  version = "2.84";
 
   src = fetchurl {
     url = "http://www.thekelleys.org.uk/dnsmasq/${pname}-${version}.tar.xz";
-    sha256 = "1sjamz1v588qf35m8z6wcqkjk5w12bqhj7d7p48dj8jyn3lgghgz";
+    sha256 = "sha256-YDGVxktzE3YJsH4QJK4LN/ZSsvX+Rn3OZphbPRhQBQw=";
   };
 
   postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
diff --git a/pkgs/tools/security/rage/default.nix b/pkgs/tools/security/rage/default.nix
index 3724637c604..d248fb19a27 100644
--- a/pkgs/tools/security/rage/default.nix
+++ b/pkgs/tools/security/rage/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rage";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "str4d";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XSDfAsXfwSoe5JMdJtZlC324Sra+4fVJhE3/k2TthEc=";
+    sha256 = "sha256-oYCARqG5YwKO0b73aEMLr/xzXl6xBEMCvE1HMCtMq20=";
   };
 
-  cargoSha256 = "sha256-GPr5zxeODAjD+ynp/nned9gZUiReYcdzosuEbLIKZSs=";
+  cargoSha256 = "sha256-vadXIdqfmol4thHIwpkQCn7HsXdxo0l+6CBm3QIJmeA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 20a96311176..8c017c42d7a 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, zlib, kmod, which
+, hwdata
 , static ? stdenv.hostPlatform.isStatic
 , IOKit
 }:
@@ -30,8 +31,15 @@ stdenv.mkDerivation rec {
 
   installTargets = [ "install" "install-lib" ];
 
-  # Get rid of update-pciids as it won't work.
-  postInstall = "rm $out/sbin/update-pciids $out/man/man8/update-pciids.8";
+  postInstall = ''
+    # Remove update-pciids as it won't work on nixos
+    rm $out/sbin/update-pciids $out/man/man8/update-pciids.8
+
+    # use database from hwdata instead
+    # (we don't create a symbolic link because we do not want to pull in the
+    # full closure of hwdata)
+    cp --reflink=auto ${hwdata}/share/hwdata/pci.ids $out/share/pci.ids
+  '';
 
   meta = with lib; {
     homepage = "http://mj.ucw.cz/pciutils.html";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6451aaf5dae..8efe986e560 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14375,8 +14375,13 @@ in
   } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
       stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
     }));
+  icu68 = callPackage ../development/libraries/icu/68.nix ({
+    nativeBuildRoot = buildPackages.icu68.override { buildRootOnly = true; };
+  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
+      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
+    }));
 
-  icu = icu67;
+  icu = icu68;
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
@@ -16530,6 +16535,8 @@ in
 
   readosm = callPackage ../development/libraries/readosm { };
 
+  rinutils = callPackage ../development/libraries/rinutils { };
+
   kissfft = callPackage ../development/libraries/kissfft { };
 
   lambdabot = callPackage ../development/tools/haskell/lambdabot {
@@ -26534,6 +26541,10 @@ in
     lua = lua5;
   };
 
+  black-hole-solver = callPackage ../games/black-hole-solver {
+    inherit (perlPackages) PathTiny;
+  };
+
   blackshades = callPackage ../games/blackshades { };
 
   blobby = callPackage ../games/blobby { };